[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#548842: libc6: alignment error in /lib/ld-linux.so.3 on armel



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 dkg@igor:~$ objdump -R $(which alsaplayer) | egrep '^[0-9a-f]{7}[1235679abdef]'
1 dkg@igor:~$ 

looking in all of the loaded libraries, it looks like the problem is in
libstdc++.so.6:

0 dkg@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 dkg@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 dkg@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 dkg@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

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: