[gelöst] PHP 4, unixODBC, SuSE10

SoeDib

Member
Moin zusammen,
es gibt seit längerem (ich glaube SuSE 9.1) das Problem, dass /usr/lib/php/extensions/unixODBC.so (aus php4-unixODBC) nicht richtig funktioniert. Wenn man versucht, aus einem PHP-Skript über ODBC eine Verbindung zu einer Datenbank herzustellen, erhält man diese Fehlermeldung im Apache-Log:
/usr/sbin/httpd2-prefork: symbol lookup error: /usr/lib/php/extensions/unixODBC.so: undefined symbol: SQLAllocEnv

Für dieses Problem gab es eine "Lösung", die aber anscheinend unter SuSE10 nicht länger funktioniert. Statt dessen bekomme ich nun diese Fehlermeldung im Log beim Apache-Start:
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php/extensions/unixODBC.so' - /usr/lib/php/extensions/unixODBC.so: symbol __cxa_finalize, version GLIBC_2.1.3 not defined in file xxodbc.so with link time reference in Unknown on line 0

Ich habe testweise das src.rpm neu kompiliert, ohne verändertes Ergebnis, SuFu, Google etc. haben für mich hier nichts erbracht. Kennt jemand das Problem und kennt womöglich sogar eine Lösung?

Grüße,
SoeDib
 

SoeDib

Member
So, nach 3 Tagen Detektivarbeit durch die Makefiles, Makefile.ins, aclocal.m4s, acinclude.m4s, config.m4s, *odbc*.[ch], php-4*.diff etc. pp. hab ich die Ursache gefunden: SuSE hat mit einem Patch tatsächlich den Build der unixODBC.so versaubeutelt.

Nach einigem Rumspielen kompiliert php4 hier jetzt sauber durch, und die unixODBC.so aus dem php4-unixODBC-Unterpaket ist auch korrekt gegen libodbc.so gelinkt. Ich habe das Paket jetzt auch zum Herunterladen bereitgestellt, falls noch andere Menschen ein funktionierendes php4-unixODBC brauchen.

Grüße,
SoeDib
 
Oben