This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Binutils branch 2.20 (done!)
Alan Modra <amodra@bigpond.net.au> writes:
> m68k-elf/log0:FAIL: ld-elf/eh5
Here is the difference of the output of readelf -wf tmpdir/dump between
m68k-elf and m68k-linux:
$ diff -u <(readelf -wf m68k-elf/ld/tmpdir/dump) <(readelf -wf m68k/ld/tmpdir/dump)
--- /dev/fd/63 2009-09-05 12:21:16.841388820 +0200
+++ /dev/fd/62 2009-09-05 12:21:16.837385194 +0200
@@ -129,43 +129,21 @@
DW_CFA_nop
DW_CFA_nop
-00000170 00000014 00000000 CIE
- Version: 1
- Augmentation: "zPR"
- Code alignment factor: 2
- Data alignment factor: -4
- Return address column: 24
- Augmentation data: 03 80 00 00 6c 1b
-
- DW_CFA_nop
-
-00000188 00000014 0000001c FDE cie=00000170 pc=8000008c..80000090
+00000170 00000014 00000148 FDE cie=0000002c pc=8000008c..80000090
DW_CFA_advance_loc: 4 to 80000090
DW_CFA_def_cfa: r0 ofs 16
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
-000001a0 00000014 000001a4 FDE cie=00000000 pc=80000090..80000098
+00000188 00000014 0000018c FDE cie=00000000 pc=80000090..80000098
DW_CFA_advance_loc: 4 to 80000094
DW_CFA_def_cfa: r0 ofs 16
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
-000001b8 00000018 00000000 CIE
- Version: 1
- Augmentation: "zPLR"
- Code alignment factor: 2
- Data alignment factor: -4
- Return address column: 24
- Augmentation data: 03 80 00 00 6c 0c 1b
-
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
-
-000001d4 0000001c 00000020 FDE cie=000001b8 pc=80000098..8000009c
+000001a0 0000001c 00000130 FDE cie=00000074 pc=80000098..8000009c
Augmentation data: 00 00 00 00 de ad be ef
DW_CFA_advance_loc: 4 to 8000009c
The difference comes from the fact that on m68k-linux, following proper
ELF semantics, relocations to external symbols are never relaxed by the
assembler, while for m68k-elf, assuming no shared libraries, such
relocations are relaxed anyway. See EXTERN_FORCE_RELOC in
gas/config/tc-m68k.h and relaxable_symbol in gas/config/tc-m68k.c.
$ diff -u <(objdump -r m68k-elf/ld/tmpdir/dump0.o) <(objdump -r m68k/ld/tmpdir/dump0.o)
--- /dev/fd/63 2009-09-05 12:26:49.924393553 +0200
+++ /dev/fd/62 2009-09-05 12:26:49.916386933 +0200
@@ -1,13 +1,13 @@
-m68k-elf/ld/tmpdir/dump0.o: file format elf32-m68k
+m68k/ld/tmpdir/dump0.o: file format elf32-m68k
RELOCATION RECORDS FOR [.eh_frame]:
OFFSET TYPE VALUE
0000001c R_68K_PC32 .text
-0000003e R_68K_32 .text+0x00000018
+0000003e R_68K_32 my_personality_v0
0000004c R_68K_PC32 .text+0x00000008
00000064 R_68K_PC32 .text+0x0000000c
-00000087 R_68K_32 .text+0x00000018
+00000087 R_68K_32 my_personality_v0
00000098 R_68K_PC32 .text+0x00000014
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."