On 10/13/2011 06:42 PM, William Cohen wrote:
Hi all,
I was revisiting a bug on ARM where systemtap cannot probe kernel modules
(
http://sourceware.org/bugzilla/show_bug.cgi?id=13022). The linker is setting the sh_addr
field for some of the sections. The values for the sh_addr fields look rather odd. I saw
this both with fedora ARM fc13 and fc14 binutils ( binutils-2.20.51.0.2-23.fc13.armv5tel
and binutils-2.20.51.0.7-8.fc14.armv5tel). I was wondering if there was a reason that ld
was setting the sh_addr field for the sections. I looked at the x86_64 and i386 files
modules and didn't see the sh_addr set on those. Is ld on ARM doing the right thing
here? It seems sh_addr seems to mess up the binary search systemtap uses to find out which
section an address is in.
-Will
I built binutils-2.21.53.0.1-5 from
http://koji.fedoraproject.org/koji/buildinfo?buildID=266218 locally on the machine and see
if this newer version of binutils eliminated the bogus addr fields. This version of
binutils appears to avoid generating the odd addr fields. However, I get an error from the
new ld when building the kernel:
DIV usage mismatch between arch/arm/boot/compressed/misc.o and
arch/arm/boot/compressed/vmlinux
Is there a specific change in binutils that eliminates the addr fields for the arm kernel
modules?
-Will