This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
sh_link not set for section `.ARM.exidx'
- From: Richard Purdie <rpurdie at rpsys dot net>
- To: binutils at sourceware dot org
- Date: Tue, 07 Aug 2007 14:40:36 +0100
- Subject: sh_link not set for section `.ARM.exidx'
Hi,
I've been making ARM EABI builds with a toolchain with binutils
2.17.50.0.5. The build system splits debug symbols into separate
binaries by doing:
objcopy --only-keep-debug x .debug/x
strip x
objcopy --add-gnu-debuglink=.debug/x x
as per the objcopy manpage and which worked find under the previous ABI.
Under EABI each time it does this (and each time libbfd touches a debug
binary on device) I see:
BFD: x: warning: sh_link not set for section `.ARM.exidx'
The results from objdump look interesting:
objdump -x striped-binary:
12 .text 000358e0 0000a1b8 0000a1b8 000021b8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .fini 00000010 0003fa98 0003fa98 00037a98 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
14 .rodata 0000a328 0003faa8 0003faa8 00037aa8 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
15 .ARM.exidx 00000008 00049dd0 00049dd0 00041dd0 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
16 .eh_frame 00000004 00049dd8 00049dd8 00041dd8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
17 .init_array 00000004 00051f04 00051f04 00041f04 2**2
CONTENTS, ALLOC, LOAD, DATA
18 .fini_array 00000004 00051f08 00051f08 00041f08 2**2
CONTENTS, ALLOC, LOAD, DATA
objdump -x debug-binary:
12 .text 000358e0 0000a1b8 0000a1b8 00000134 2**2
ALLOC, READONLY, CODE
13 .fini 00000010 0003fa98 0003fa98 00000134 2**2
ALLOC, READONLY, CODE
14 .rodata 0000a328 0003faa8 0003faa8 00000134 2**3
ALLOC, READONLY
15 .ARM.exidx 00000008 00049dd0 00049dd0 00000134 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
16 .eh_frame 00000004 00049dd8 00049dd8 00000134 2**2
ALLOC, READONLY
17 .init_array 00000004 00051f04 00051f04 00001f04 2**2
ALLOC
18 .fini_array 00000004 00051f08 00051f08 00001f04 2**2
since .ARM.exidx still has CONTENTS/DARA/LOAD flags yet its file offset
has changed to 00000134 which I'm guessing means it was emptied. I'm
unable to remove those flags with objcopy.
Is there anything I can do to clear this error up? I wondered about just
removing that section from the debug libraries but I don't know what
implications that might have and whether there are any references that
could cause problems. I would prefer to solve this properly...
Does anyone have any ideas?
Cheers,
Richard