From: Andrzej O. <an...@ma...> - 2010-03-22 23:55:19
|
Dears, In last compilations I see strange dynamic linker behaviour. Ofcourse, I see this when Asterisk dynamically loads and links modules, especially codecs compiled out of DL build process, but some driver built DL have this same problem. Asterisk run on compilation from begin of February (2.6.32.7) loads modules correctly. Asking with ldd about this modules gives correct result for all modules: > root@VoIP:/etc/asterisk/modules/bin162 # for f in $(ls *.so); do echo $f; ldd $f; done > codec_g723-ast16-gcc4-glibc-core2.so > linux-gate.so.1 => (0xb775a000) > /lib/libsafe.so.2 (0xb7715000) > libc.so.6 => /lib/libc.so.6 (0xb75e8000) > libdl.so.2 => /lib/libdl.so.2 (0xb75e4000) > /lib/ld-linux.so.2 (0xb775b000) > codec_g723-ast16-gcc4-glibc-pentium4-sse3.so > linux-gate.so.1 => (0xb770c000) > /lib/libsafe.so.2 (0xb76cd000) > libc.so.6 => /lib/libc.so.6 (0xb75a0000) > libdl.so.2 => /lib/libdl.so.2 (0xb759c000) > /lib/ld-linux.so.2 (0xb770d000) > codec_g729-ast16-gcc4-glibc-core2.so > linux-gate.so.1 => (0xb76f1000) > /lib/libsafe.so.2 (0xb7684000) > libc.so.6 => /lib/libc.so.6 (0xb7557000) > libdl.so.2 => /lib/libdl.so.2 (0xb7553000) > /lib/ld-linux.so.2 (0xb76f2000) > codec_g729-ast16-gcc4-glibc-pentium4-sse3.so > linux-gate.so.1 => (0xb778a000) > /lib/libsafe.so.2 (0xb771e000) > libc.so.6 => /lib/libc.so.6 (0xb75f1000) > libdl.so.2 => /lib/libdl.so.2 (0xb75ed000) > /lib/ld-linux.so.2 (0xb778b000) > root@VoIP:/etc/asterisk/modules/bin162 # But Asterisk built after i.e. yesterday (2.6.32.9) can't load this same modules. This same ask answers: > root@VoIP:/etc/asterisk/modules/bin162 # for f in $(ls *.so); do echo $f; ldd $f; done > codec_g723-ast16-gcc4-glibc-core2.so > not a dynamic executable > codec_g723-ast16-gcc4-glibc-pentium4-sse3.so > not a dynamic executable > codec_g729-ast16-gcc4-glibc-core2.so > not a dynamic executable > codec_g729-ast16-gcc4-glibc-pentium4-sse3.so > not a dynamic executable > root@VoIP:/etc/asterisk/modules/bin162 # I tried above ldd test on DL with standard build (without Asterisk and my upgrades) too. Result of lld differentiates in this same manner. Ofcourse on standard builds I can't check loadability by Asterisk, but if behavior of ldd listing of this this same modules differs between this builds in this same manner, problem in loading modules by Asterisk is probably because ot this same reason. So probably behavior of dynamic linker changed between this two version. But dynamic linker belongs to glibc and I checked this especially without any upgrades to glibc. Maybe anyone of You know source of problems? Between versions from Feb and from Mar was upgraded many packages and patches to kernel. How do You think? What changed behavior ot dynamic linking? Can we repair this (i.e. by downgrading any package)? Or this will be repaired with next kernels? or This is not repairable and we must wait for compatible recompilation of this modules? Regards -- Andrzej Odyniec |