Support 8 and 16-bit relocs for i386coff. Enable i386 gas testsuite tests
previously disabled for lack of such support. For *-*-linux*libc1 targets, XFAIL a ld testsuite that fails due to a bug in the dynamic linker prior to glibc-2.1.
This commit is contained in:
parent
9f5b33d795
commit
b7be1db6b5
7 changed files with 132 additions and 107 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
1999-09-17 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||||
|
|
||||||
|
* coff-i386.c (coff_i386_reloc_type_lookup): Support BFD_RELOC_16,
|
||||||
|
BFD_RELOC_16_PCREL, BFD_RELOC_8, BFD_RELOC_8_PCREL relocs.
|
||||||
|
(reloc_howto_type howto_table): Tidy comments and whitespace.
|
||||||
|
|
||||||
1999-09-17 Nick Clifton <nickc@cygnus.com>
|
1999-09-17 Nick Clifton <nickc@cygnus.com>
|
||||||
|
|
||||||
* elf32-arm.h (bfd_elf32_arm_get_bfd_for_interworking): Undo
|
* elf32-arm.h (bfd_elf32_arm_get_bfd_for_interworking): Undo
|
||||||
|
|
|
@ -489,11 +489,19 @@ coff_i386_reloc_type_lookup (abfd, code)
|
||||||
switch (code)
|
switch (code)
|
||||||
{
|
{
|
||||||
case BFD_RELOC_RVA:
|
case BFD_RELOC_RVA:
|
||||||
return howto_table +R_IMAGEBASE;
|
return howto_table + R_IMAGEBASE;
|
||||||
case BFD_RELOC_32:
|
case BFD_RELOC_32:
|
||||||
return howto_table + R_DIR32;
|
return howto_table + R_DIR32;
|
||||||
case BFD_RELOC_32_PCREL:
|
case BFD_RELOC_32_PCREL:
|
||||||
return howto_table + R_PCRLONG;
|
return howto_table + R_PCRLONG;
|
||||||
|
case BFD_RELOC_16:
|
||||||
|
return howto_table + R_RELWORD;
|
||||||
|
case BFD_RELOC_16_PCREL:
|
||||||
|
return howto_table + R_PCRWORD;
|
||||||
|
case BFD_RELOC_8:
|
||||||
|
return howto_table + R_RELBYTE;
|
||||||
|
case BFD_RELOC_8_PCREL:
|
||||||
|
return howto_table + R_PCRBYTE;
|
||||||
default:
|
default:
|
||||||
BFD_FAIL ();
|
BFD_FAIL ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
1999-09-17 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||||
|
|
||||||
|
* gas/i386/i386.exp: Enable reloc and white tests for COFF.
|
||||||
|
* gas/i386/reloc.d: Accept dir32 relocs.
|
||||||
|
|
||||||
1999-09-12 Donn Terry <donn@interix.com>
|
1999-09-12 Donn Terry <donn@interix.com>
|
||||||
|
|
||||||
* gas/all/gas.exp: Run cofftag test for i*86-*-interix*.
|
* gas/all/gas.exp: Run cofftag test for i*86-*-interix*.
|
||||||
|
|
|
@ -28,8 +28,8 @@ if [istarget "i*86-*-*"] then {
|
||||||
run_dump_test "katmai"
|
run_dump_test "katmai"
|
||||||
|
|
||||||
# The reloc and white tests require support for 8 and 16 bit
|
# The reloc and white tests require support for 8 and 16 bit
|
||||||
# relocs, so we only run them for ELF targets.
|
# relocs, so we only run them for ELF and COFF targets.
|
||||||
if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"]} then {
|
if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"] || [istarget "*-*-coff*"]} then {
|
||||||
run_dump_test "reloc"
|
run_dump_test "reloc"
|
||||||
run_list_test "white" "-al --listing-lhs-width=3"
|
run_list_test "white" "-al --listing-lhs-width=3"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,11 @@ Disassembly of section .text:
|
||||||
|
|
||||||
0+000 <foo>:
|
0+000 <foo>:
|
||||||
0: b3 00 [ ]*mov \$0x0,%bl 1: (R_386_)?8 .text
|
0: b3 00 [ ]*mov \$0x0,%bl 1: (R_386_)?8 .text
|
||||||
2: 68 00 00 00 00 [ ]*push \$0x0 3: (R_386_)?32 .text
|
2: 68 00 00 00 00 [ ]*push \$0x0 3: (R_386_)?(dir)?32 .text
|
||||||
7: 05 00 00 00 00 [ ]*add \$0x0,%eax 8: (R_386_)?32 .text
|
7: 05 00 00 00 00 [ ]*add \$0x0,%eax 8: (R_386_)?(dir)?32 .text
|
||||||
c: 81 c3 00 00 00 00 [ ]*add \$0x0,%ebx e: (R_386_)?32 .text
|
c: 81 c3 00 00 00 00 [ ]*add \$0x0,%ebx e: (R_386_)?(dir)?32 .text
|
||||||
12: 69 d2 00 00 00 00 [ ]*imul \$0x0,%edx,%edx 14: (R_386_)?32 .text
|
12: 69 d2 00 00 00 00 [ ]*imul \$0x0,%edx,%edx 14: (R_386_)?(dir)?32 .text
|
||||||
18: 9a 00 00 00 00 00 00 [ ]*lcall \$0x0,\$0x0 19: (R_386_)?32 .text
|
18: 9a 00 00 00 00 00 00 [ ]*lcall \$0x0,\$0x0 19: (R_386_)?(dir)?32 .text
|
||||||
1f: 66 68 00 00 [ ]*pushw \$0x0 21: (R_386_)?16 .text
|
1f: 66 68 00 00 [ ]*pushw \$0x0 21: (R_386_)?16 .text
|
||||||
23: 90 [ ]*nop
|
23: 90 [ ]*nop
|
||||||
24: 90 [ ]*nop
|
24: 90 [ ]*nop
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
1999-09-17 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||||
|
|
||||||
|
* ld-shared/shared.exp: xfail linux*libc1 shared (non PIC, load
|
||||||
|
offset) test.
|
||||||
|
|
||||||
1999-09-12 Ian Lance Taylor <ian@zembu.com>
|
1999-09-12 Ian Lance Taylor <ian@zembu.com>
|
||||||
|
|
||||||
* ld-scripts/script.exp: Add --image-base 0 for PE targets.
|
* ld-scripts/script.exp: Add --image-base 0 for PE targets.
|
||||||
|
|
|
@ -203,6 +203,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
|
||||||
# relocations for various targets are broken in the case where
|
# relocations for various targets are broken in the case where
|
||||||
# the load address is not zero (which is the default).
|
# the load address is not zero (which is the default).
|
||||||
setup_xfail "*-*-sunos4*"
|
setup_xfail "*-*-sunos4*"
|
||||||
|
setup_xfail "*-*-linux*libc1"
|
||||||
shared_test shnp "shared (non PIC, load offset)" \
|
shared_test shnp "shared (non PIC, load offset)" \
|
||||||
mainnp.o sh1np.o sh2np.o shared \
|
mainnp.o sh1np.o sh2np.o shared \
|
||||||
"-T $srcdir/$subdir/elf-offset.ld"
|
"-T $srcdir/$subdir/elf-offset.ld"
|
||||||
|
|
Loading…
Reference in a new issue