Am 29.03.2020 um 22:31 teilte Andreas Fett mit:
On Sun, Mar 29, 2020 at 09:47:33PM +0200, Hilmar Preuße wrote:
Moin,
-lodbc ist ein Linker Flag und gegen das entsprechende Shared Object zu linken. In diesem Fall libodbc (www.unixodbc.org resp. libodbc1 Debian Package).
OK, klar soweit.
Schau mal in configure resp. configure.in. Dort wir der Kram mit sed aus den Source Files "verwursted".
Hmm, leider weiß ich nicht welches configure Du meinst. In contrib selber gibt es keines und im Main Directory finde ich nicht zum Thema odbc.
TL;DR; es sollte IMHO drin bleiben wenn man mod_sql_odbc erfolgreich kompilieren möchte. Es sei denn das Debian Paket fummelt noch anderweitig in den Linker Flags rum (hab ich mir jetzt nicht angeschaut).
So, ich habe jetzt das Paket zweimal gebaut: einmal mit, einmal ohne Patch. Wenn man das erzeugte Shared Object vergleicht fällt nur auf, daß das eine gegen libodbc.so.2 gelinkt ist, das Andere nicht.
hille@debian-amd64-sid:~/devel/proftp_debian/git$ ldd mod_sql_odbc.so linux-vdso.so.1 (0x00007ffd2f185000) libodbc.so.2 => /usr/lib/x86_64-linux-gnu/libodbc.so.2 (0x00007f6c7ec90000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6c7eacd000) libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f6c7eac2000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6c7eaa1000) /lib64/ld-linux-x86-64.so.2 (0x00007f6c7ed1f000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6c7ea9c000) hille@debian-amd64-sid:~/devel/proftp_debian/git$ ldd mod_sql_odbc_wo.so linux-vdso.so.1 (0x00007ffe497b6000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f30a3bf9000) /lib64/ld-linux-x86-64.so.2 (0x00007f30a3dd9000)
Wenn man sich nm -D anschaut gibt es keine Unterschiede. Das einzige Symbol, was auf odbc hinweist ist "sql_odbc_module". Ich wäre schon mal schwer davon ausgegangen, daß der Link fehlschlägt, wenn ein Symbol nicht aufgelöst werden kann. Weiterhin läßt sich der proftp auch mit der "reduzierten" Variante des Moduls laden.
H.