reassign 548842 libstdc++6 found 548842 4.4.1-4 thanks On 11/23/2009 07:04 PM, Aurelien Jarno wrote: > The problem is most probably a non word aligned relocation in the > program you are trying to run or one of its library. You can list them > with objdump -R file.
Since armel is a 32-bit machine, i assume i find the non-aligned relocations by looking for addresses that aren't equal to 0 mod 4, like this: 0 d...@igor:~$ objdump -R $(which alsaplayer) | egrep '^[0-9a-f]{7}[1235679abdef]' 1 d...@igor:~$ looking in all of the loaded libraries, it looks like the problem is in libstdc++.so.6: 0 d...@igor:~$ for foo in $(ldd $(which alsaplayer) | sed -e 's/^.*=>//' -e 's/ (0x[0-9a-f]*)$//') ; do if objdump -R $foo | egrep '^[0-9a-f]{7}[1235679abdef]' ; then echo $foo ; fi; done 000cda6a R_ARM_ABS32 __gxx_personality_v0 000ce243 R_ARM_ABS32 __gxx_personality_v0 /usr/lib/libstdc++.so.6 0 d...@igor:~$ This is all using an up-to-date squeeze installation, with libstdc++6 4.4.1-4. when i upgrade libstdc++6 to 4.4.2-3 (from sid, dragging in gcc-4.4-base, libgcc1, and libgomp1), the problem goes away, and the above search is clean: 0 d...@igor:~$ for foo in $(ldd $(which alsaplayer) | sed -e 's/^.*=>//' -e 's/ (0x[0-9a-f]*)$//') ; do if objdump -R $foo | egrep '^[0-9a-f]{7}[1235679abdef]' ; then echo $foo ; fi; done 0 d...@igor:~$ Thanks for pointing that out, Aurelien. I'm going to go run this test on all my shared libraries now and file bugs appropriately. --dkg
signature.asc
Description: OpenPGP digital signature