|
Register or have you forgotten your password?
|
|
|
| Amiga Software Issues and Discussion This forum exists for the discussion of the use, issues with, and fun brought about by classic and next generation Amiga software. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 | ||||||||
|
VIP / Donor
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 5,017
|
I've just finished solving the OS4 equivalent of an episode of DLL hell. An issue in either DOpus 4.18.22 or elf.library 53.12 attempts to open libbz2.so.1.0, which doesn't exist on a 4.1u2 installation with the latest SDK (there's libbz2.so.1.0.4 instead), resulting in 2 highly uninformative error requesters. I was finally able to track down the culprits with the help of a Snoopy log file. xadmaster.library might be involved as well.
This is what happens when version strings are embedded in filenames and then hardcoded into programs. Too many files to keep track of, and they're easily lost during minor upgrades. Has anyone else experienced this? Or, has anyone ever experienced anything like this with the traditional .library system? |
||||||||
|
|
|
|
|
#2 | ||||||||
|
Premium Member
|
It's up to the app to make meaningful error messages if LoadLibrary returns NULL. If it just exits with no error message, you're back to using snoopy to find which library failed.
|
||||||||
|
|
|
|
|
#3 | ||||||||
|
' union select name,pwd--
Join Date: Aug 2002
Location: Helsinki, Finland
Posts: 6,946
|
You didn't even run into the fun scenario: Two incompatible SObjs with the exact same name, but different ABI (this has happened at least once already). There hasn't been proper documentation about SObj creation and this has lead into all sort of trouble.
They're worse than amiga shared libraries anyway: SObjs aren't even shared, each opener gets their own copy in memory. As far as I can tell the only reason they exist is that apparently OS4 coders are incapable of creating amiga shared libraries with per caller library base (and the static data in the library base possize). Or they're just too lazy to do it properly, and decided to take the shortcut by introducing the non-shared libraries. A grave mistake if you ask me. |
||||||||
|
|
|
|
|
#4 | ||||||||
|
Defender of the Faith
![]()
Join Date: Nov 2007
Posts: 1,234
|
incorporating version numbers into lib names seems to be a bad habit taken over from the systems incapable to provide version information ín another way.
|
||||||||
|
|
|
|
|
#5 | ||||||||||
|
VIP / Donor
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 5,017
|
Quote:
Quote:
Compiling these ported libraries into programs statically would be a cleaner solution. |
||||||||||
|
|
|
|
|
#6 | ||||||||||||
|
Sockologist
![]()
|
To my mind, the biggest problem with shared objects is that they suffer from NIH. However, since we all decided ELF was a good idea, it's not entirely unreasonable for someone to consider the linkable part of the specification.
Quote:
Quote:
Quote:
If someone wrote an improved .library specification and loader that allowed things like C++ symbol export it would surely have problems too and at least we know what .so's particular problems are. Quote:
__________________
OCA This isn't SCSI... This is SATA!!! I have CDO. It's like OCD except all the letters are in ascending order. The way they should be. Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64 A1XE 800MHz / 512MB / Radeon 9200 / OS4.1 A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4 A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9 A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB Last edited by Karlos; 11-01-2010 at 04:01 AM.. |
||||||||||||
|
|
|
|
|
#7 | ||||||||||
|
Sockologist
![]()
|
Quote:
Quote:
__________________
OCA This isn't SCSI... This is SATA!!! I have CDO. It's like OCD except all the letters are in ascending order. The way they should be. Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64 A1XE 800MHz / 512MB / Radeon 9200 / OS4.1 A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4 A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9 A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB |
||||||||||
|
|
|
|
|
#8 | |||||||||||
|
' union select name,pwd--
Join Date: Aug 2002
Location: Helsinki, Finland
Posts: 6,946
|
Quote:
Quote:
Quote:
|
|||||||||||
|
|
|
|
|
#9 | |||||||||
|
VIP / Donor
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 5,017
|
Quote:
|
|||||||||
|
|
|
|
|
#10 | ||||||||
|
Sockologist
![]()
|
Get away with ye' , y' love it really :-)
Well, I do, and that's all that matters from this direction
__________________
OCA This isn't SCSI... This is SATA!!! I have CDO. It's like OCD except all the letters are in ascending order. The way they should be. Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64 A1XE 800MHz / 512MB / Radeon 9200 / OS4.1 A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4 A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9 A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB |
||||||||
|
|
|
|
|
#11 | |||||||||
|
Technoid
![]()
Join Date: Mar 2002
Location: Belgium
Posts: 500
|
Quote:
I know, mentioning security and Amiga in the same context does currently not make much sense. greets, Staf.
__________________
Trust me... I know what I'm doing |
|||||||||
|
|
|
|
|
#12 | ||||||||
|
Sockologist
![]()
|
Personally, I'd love to see some native implementation supported by a decent compiler that would allow traditional shared libraries to provide the required services that .so files provide as far as languages beyond C are concerned.
However, since nobody has done anything like that (and it would not be a trivial undertaking), supporting the existing ELF shared object at least grants the developer some flexibility. Furthermore, it's not as alien a concept as it seems, seeing as we're using ELF already. The earlier observation that a pair of identically named .so files implementing different ABIs being a uniquely bad problem seems a little contrived. After all, the existing .library mechanism doesn't prevent this kind of lunacy either. I could create a foo.library that is nothing to do with the existing foo.library and as long as the meta data is acceptable, the OS will happily pass it to clients that wanted the original, only to invoke meaningless vectors and crash.
__________________
OCA This isn't SCSI... This is SATA!!! I have CDO. It's like OCD except all the letters are in ascending order. The way they should be. Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64 A1XE 800MHz / 512MB / Radeon 9200 / OS4.1 A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4 A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9 A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB |
||||||||
|
|
|
|
|
#13 | ||||||||||
|
VIP / Donor
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 5,017
|
Quote:
![]() And if a developer needs to recompile to fix a security hole, maybe they'll also take the time to squash bugs or add new features. Quote:
|
||||||||||
|
|
|
|
|
#14 | |||||||||
|
Technoid
![]()
Join Date: Dec 2002
Posts: 414
|
Quote:
__________________
~ |
|||||||||
|
|
|
|
|
#15 | |||||||||
|
Kindred of Babble-on
![]()
|
Quote:
__________________
Playstation Network ID: xeron6 |
|||||||||
|
|
|
![]() |
| Bookmarks |
| Tags |
| great , sobjs , idea |
| Thread Tools | |
| Display Modes | |
|
|