Ik heb een programma, dit programma noem ik nu maar even programma 'A'.
Dit programma bestaat uit een executable en een shared object library.
A heb ik geschreven en steeds gecompileerd onder Red Hat 7.3 (GCC 2.96)
Nu ben ik overgestapt op Red Hat Null (beta3 van RH8) en probeer A maar weer eens te compileren, maar deze keer met GCC 3.2 (die bij NULL zit)
Na een hoop unresolved externe functies te hebben opgelost zit ik er nu nog met 1 waarvan ik echt NIET weet wat ik er mee aan moet
Zie de output van ldd van de so:
Weet iemand misschien hoe ik dit kan oplossen?
(ik zit al sinds vanochtend vroeg te prutsen hiermee
terwijl ik normaal altijd alles in een paar minuutjes heb opgelost..
)
Volgens G00gle heeft het allemaal te maken met GCC 3.2, en verder wordt ik daar ook niet echt veel wijzer van, want dat had ik zelf ook wel kunnen bedenken dat het komt door deze nieuwe versie van de compiler + bijbehorende zut.
Oja, ik heb ook al bijna alle mogelijke (toepasbare) link opties geprobeerd, waaronder -shared en -fPIC
Dit programma bestaat uit een executable en een shared object library.
A heb ik geschreven en steeds gecompileerd onder Red Hat 7.3 (GCC 2.96)
Nu ben ik overgestapt op Red Hat Null (beta3 van RH8) en probeer A maar weer eens te compileren, maar deze keer met GCC 3.2 (die bij NULL zit)
Na een hoop unresolved externe functies te hebben opgelost zit ik er nu nog met 1 waarvan ik echt NIET weet wat ik er mee aan moet
Zie de output van ldd van de so:
En dit is wat ik te zien krijg wanneer ik m'n programma probeer te starten:libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
libm.so.6 => /lib/i686/libm.so.6 (0x4015d000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x40180000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x401f3000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4026f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40283000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40291000)
libdl.so.2 => /lib/libdl.so.2 (0x4036f000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40372000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40424000)
undefined symbol: __dso_handle (./libA.so)
Met het nm commando kon ik zien dat deze __dso_handle in libgcc_s.so zat:./A: relocation error: /<pad>/libAditIsDieLibraryDieWordtGebruiktDoorA.so: undefined symbol: __dso_handle
Maar libgcc_s is dus al gelinkt met dat programma + bijbehorende library..nm /usr/lib/libgcc_s.so | grep __dso_handle
00007000 d __dso_handle
Weet iemand misschien hoe ik dit kan oplossen?
(ik zit al sinds vanochtend vroeg te prutsen hiermee
Volgens G00gle heeft het allemaal te maken met GCC 3.2, en verder wordt ik daar ook niet echt veel wijzer van, want dat had ik zelf ook wel kunnen bedenken dat het komt door deze nieuwe versie van de compiler + bijbehorende zut.
Oja, ik heb ook al bijna alle mogelijke (toepasbare) link opties geprobeerd, waaronder -shared en -fPIC