From 94bb04b3c611fb554c1013de0bb81fc5a13acb1c Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 16 Oct 2006 21:34:25 +0000 Subject: [PATCH] ld/ * Makefile.am (eelf64bmip.c): Depend on emulparams/elf64bmip-defs.sh. (eelf64btsmip.c, eelf64ltsmip.c): Likewise. * Makefile.in: Regenerate. * emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Include .reginfo rather than .MIPS.options. * emulparams/elf64bmip-defs.sh: New file. * emulparams/elf64bmip.sh: Include it. (COMMONPAGESIZE): Delete. * emulparams/elf64btsmip.sh: As for elf64bmip.sh. ld/testsuite/ * ld-mips-elf/branch-misc-1.d: Set the start address to 0x20000000. * ld-mips-elf/jalbal.d: Likewise 0x200000a0. * ld-mips-elf/jaloverflow-2.d: Likewise 0x20000000. * ld-mips-elf/reloc-3-n32.d: Likewise. * ld-mips-elf/reloc-3.d: Likewise. * ld-mips-elf/textrel-1.d: Don't require a specific file offset for .dynamic. --- ld/ChangeLog | 12 +++++++++++ ld/Makefile.am | 4 +++- ld/Makefile.in | 4 +++- ld/emulparams/elf32bmipn32-defs.sh | 2 +- ld/emulparams/elf64bmip-defs.sh | 3 +++ ld/emulparams/elf64bmip.sh | 3 +-- ld/emulparams/elf64btsmip.sh | 3 +-- ld/testsuite/ChangeLog | 10 +++++++++ ld/testsuite/ld-mips-elf/branch-misc-1.d | 26 ++++++++++++------------ ld/testsuite/ld-mips-elf/jalbal.d | 10 ++++----- ld/testsuite/ld-mips-elf/jaloverflow-2.d | 4 ++-- ld/testsuite/ld-mips-elf/reloc-3-n32.d | 12 +++++------ ld/testsuite/ld-mips-elf/reloc-3.d | 12 +++++------ ld/testsuite/ld-mips-elf/textrel-1.d | 2 +- 14 files changed, 67 insertions(+), 40 deletions(-) create mode 100644 ld/emulparams/elf64bmip-defs.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index 77d813c3cd0..258e92ffb2c 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,15 @@ +2006-10-16 Richard Sandiford + + * Makefile.am (eelf64bmip.c): Depend on emulparams/elf64bmip-defs.sh. + (eelf64btsmip.c, eelf64ltsmip.c): Likewise. + * Makefile.in: Regenerate. + * emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Include + .reginfo rather than .MIPS.options. + * emulparams/elf64bmip-defs.sh: New file. + * emulparams/elf64bmip.sh: Include it. + (COMMONPAGESIZE): Delete. + * emulparams/elf64btsmip.sh: As for elf64bmip.sh. + 2006-10-12 Bob Wilson * emultempl/xtensaelf.em (is_inconsistent_linkonce_section): Check diff --git a/ld/Makefile.am b/ld/Makefile.am index ee96f29eb87..b07a41c1d05 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -912,6 +912,7 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -926,11 +927,12 @@ emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} ${GENSCRIPTS} mmo "$(tdir_mmo)" eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ - $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" diff --git a/ld/Makefile.in b/ld/Makefile.in index 49337c2e2c7..daed6f8a3b7 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -1723,6 +1723,7 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1737,11 +1738,12 @@ emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} ${GENSCRIPTS} mmo "$(tdir_mmo)" eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ - $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index 4c9834057be..024aebead59 100644 --- a/ld/emulparams/elf32bmipn32-defs.sh +++ b/ld/emulparams/elf32bmipn32-defs.sh @@ -57,7 +57,7 @@ TEXT_START_SYMBOLS='_ftext = . ;' DATA_START_SYMBOLS='_fdata = . ;' OTHER_BSS_SYMBOLS='_fbss = .;' -INITIAL_READONLY_SECTIONS=".MIPS.options : { *(.MIPS.options) }" +INITIAL_READONLY_SECTIONS=".reginfo ${RELOCATING-0} : { *(.reginfo) }" # Discard any .MIPS.content* or .MIPS.events* sections. The linker # doesn't know how to adjust them. OTHER_SECTIONS="/DISCARD/ : { *(.MIPS.content*) *(.MIPS.events*) }" diff --git a/ld/emulparams/elf64bmip-defs.sh b/ld/emulparams/elf64bmip-defs.sh new file mode 100644 index 00000000000..110f8929de1 --- /dev/null +++ b/ld/emulparams/elf64bmip-defs.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/elf32bmipn32-defs.sh +COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" +INITIAL_READONLY_SECTIONS=".MIPS.options : { *(.MIPS.options) }" diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh index 3910beadc91..0df65285f5d 100755 --- a/ld/emulparams/elf64bmip.sh +++ b/ld/emulparams/elf64bmip.sh @@ -1,9 +1,8 @@ -. ${srcdir}/emulparams/elf32bmipn32-defs.sh +. ${srcdir}/emulparams/elf64bmip-defs.sh OUTPUT_FORMAT="elf64-bigmips" BIG_OUTPUT_FORMAT="elf64-bigmips" LITTLE_OUTPUT_FORMAT="elf64-littlemips" SHLIB_TEXT_START_ADDR=0x3ffffe0000 -COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" # IRIX6 defines these symbols. 0x40 is the size of the ELF header. EXECUTABLE_SYMBOLS=" diff --git a/ld/emulparams/elf64btsmip.sh b/ld/emulparams/elf64btsmip.sh index f6e8dcf1609..b9e80bb17b3 100644 --- a/ld/emulparams/elf64btsmip.sh +++ b/ld/emulparams/elf64btsmip.sh @@ -1,11 +1,10 @@ # If you change this file, please also look at files which source this one: # elf64ltsmip.sh -. ${srcdir}/emulparams/elf32bmipn32-defs.sh +. ${srcdir}/emulparams/elf64bmip-defs.sh OUTPUT_FORMAT="elf64-tradbigmips" BIG_OUTPUT_FORMAT="elf64-tradbigmips" LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips" -COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" # Magic sections. OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 63770f06404..72ac66ef581 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2006-10-16 Richard Sandiford + + * ld-mips-elf/branch-misc-1.d: Set the start address to 0x20000000. + * ld-mips-elf/jalbal.d: Likewise 0x200000a0. + * ld-mips-elf/jaloverflow-2.d: Likewise 0x20000000. + * ld-mips-elf/reloc-3-n32.d: Likewise. + * ld-mips-elf/reloc-3.d: Likewise. + * ld-mips-elf/textrel-1.d: Don't require a specific file offset for + .dynamic. + 2006-10-03 Jakub Jelinek * ld-elf/eh4.d: New test. diff --git a/ld/testsuite/ld-mips-elf/branch-misc-1.d b/ld/testsuite/ld-mips-elf/branch-misc-1.d index 36bceb79603..0cd370126af 100644 --- a/ld/testsuite/ld-mips-elf/branch-misc-1.d +++ b/ld/testsuite/ld-mips-elf/branch-misc-1.d @@ -1,7 +1,7 @@ #name: MIPS branch-misc-1 #source: ../../../gas/testsuite/gas/mips/branch-misc-1.s #objdump: --prefix-addresses -tdr --show-raw-insn -#ld: -Ttext 0x500000 -e 0x500000 -N +#ld: -Ttext 0x20000000 -e 0x20000000 -N .*: file format elf.*mips.* @@ -11,18 +11,18 @@ Disassembly of section \.text: \.\.\. \.\.\. \.\.\. -0+50003c <[^>]*> 0411fff0 bal 0+500000 <[^>]*> -0+500040 <[^>]*> 00000000 nop -0+500044 <[^>]*> 0411fff3 bal 0+500014 <[^>]*> -0+500048 <[^>]*> 00000000 nop -0+50004c <[^>]*> 0411fff6 bal 0+500028 <[^>]*> -0+500050 <[^>]*> 00000000 nop -0+500054 <[^>]*> 0411000a bal 0+500080 <[^>]*> -0+500058 <[^>]*> 00000000 nop -0+50005c <[^>]*> 0411000d bal 0+500094 <[^>]*> -0+500060 <[^>]*> 00000000 nop -0+500064 <[^>]*> 04110010 bal 0+5000a8 <[^>]*> -0+500068 <[^>]*> 00000000 nop +0*2000003c <[^>]*> 0411fff0 bal 0*20000000 <[^>]*> +0*20000040 <[^>]*> 00000000 nop +0*20000044 <[^>]*> 0411fff3 bal 0*20000014 <[^>]*> +0*20000048 <[^>]*> 00000000 nop +0*2000004c <[^>]*> 0411fff6 bal 0*20000028 <[^>]*> +0*20000050 <[^>]*> 00000000 nop +0*20000054 <[^>]*> 0411000a bal 0*20000080 <[^>]*> +0*20000058 <[^>]*> 00000000 nop +0*2000005c <[^>]*> 0411000d bal 0*20000094 <[^>]*> +0*20000060 <[^>]*> 00000000 nop +0*20000064 <[^>]*> 04110010 bal 0*200000a8 <[^>]*> +0*20000068 <[^>]*> 00000000 nop \.\.\. \.\.\. \.\.\. diff --git a/ld/testsuite/ld-mips-elf/jalbal.d b/ld/testsuite/ld-mips-elf/jalbal.d index bc9a5129ffe..49cda75c76b 100644 --- a/ld/testsuite/ld-mips-elf/jalbal.d +++ b/ld/testsuite/ld-mips-elf/jalbal.d @@ -1,7 +1,7 @@ #name: jal to bal #source: jalbal.s #as: -EB -n32 -march=rm9000 -#ld: -EB -e s1 -Ttext 0x100000a0 +#ld: -EB -e s1 -Ttext 0x200000a0 #objdump: -d .*file format elf.*mips.* @@ -9,16 +9,16 @@ Disassembly of section \.text: .* : -.* 0c00802a jal .*100200a8 +.* 0c00802a jal .*200200a8 .* 00000000 nop -.* 04117fff bal .*100200a8 +.* 04117fff bal .*200200a8 .* : .* \.\.\. .* : -.* 04118000 bal .*100000ac +.* 04118000 bal .*200000ac .* 00000000 nop -.* 0c00002b jal .*100000ac +.* 0c00002b jal .*200000ac .* 00000000 nop .* \.\.\. diff --git a/ld/testsuite/ld-mips-elf/jaloverflow-2.d b/ld/testsuite/ld-mips-elf/jaloverflow-2.d index b28b4edb2f4..b40f4281777 100644 --- a/ld/testsuite/ld-mips-elf/jaloverflow-2.d +++ b/ld/testsuite/ld-mips-elf/jaloverflow-2.d @@ -1,8 +1,8 @@ #name: JAL overflow 2 #source: jaloverflow-2.s #as: -#ld: -Ttext=0x10000000 -e start +#ld: -Ttext=0x20000000 -e start #objdump: -dr #... -0*10000000: 0c000000.* +0*20000000: 0c000000.* #pass diff --git a/ld/testsuite/ld-mips-elf/reloc-3-n32.d b/ld/testsuite/ld-mips-elf/reloc-3-n32.d index 61cb2760283..e90180bbd5c 100644 --- a/ld/testsuite/ld-mips-elf/reloc-3-n32.d +++ b/ld/testsuite/ld-mips-elf/reloc-3-n32.d @@ -2,7 +2,7 @@ #source: ../../../gas/testsuite/gas/mips/elf-rel6.s #as: -march=mips64 -mabi=n32 -EB #objdump: --prefix-addresses -tdr --show-raw-insn -#ld: -Ttext 0x500000 -e 0x500000 -N -melf32btsmipn32 +#ld: -Ttext 0x20000000 -e 0x20000000 -N -melf32btsmipn32 .*: file format elf.*mips.* @@ -10,9 +10,9 @@ #... Disassembly of section \.text: -0+500000 <[^>]*> f010 8352 lb v0,-32750\(v1\) -0+500004 <[^>]*> f010 8353 lb v0,-32749\(v1\) -0+500008 <[^>]*> f252 8346 lb v0,-28090\(v1\) -0+50000c <[^>]*> 6500 nop -0+50000e <[^>]*> 6500 nop +0*20000000 <[^>]*> f010 8352 lb v0,-32750\(v1\) +0*20000004 <[^>]*> f010 8353 lb v0,-32749\(v1\) +0*20000008 <[^>]*> f252 8346 lb v0,-28090\(v1\) +0*2000000c <[^>]*> 6500 nop +0*2000000e <[^>]*> 6500 nop #pass diff --git a/ld/testsuite/ld-mips-elf/reloc-3.d b/ld/testsuite/ld-mips-elf/reloc-3.d index 632d999b943..1ec51c5f8f3 100644 --- a/ld/testsuite/ld-mips-elf/reloc-3.d +++ b/ld/testsuite/ld-mips-elf/reloc-3.d @@ -1,16 +1,16 @@ #name: R_MIPS16_GPREL reloc #source: ../../../gas/testsuite/gas/mips/elf-rel6.s #objdump: --prefix-addresses -tdr --show-raw-insn -#ld: -Ttext 0x500000 -e 0x500000 -N +#ld: -Ttext 0x20000000 -e 0x20000000 -N .*: file format elf.*mips.* #... Disassembly of section \.text: -0+500000 <[^>]*> f010 8352 lb v0,-32750\(v1\) -0+500004 <[^>]*> f010 8353 lb v0,-32749\(v1\) -0+500008 <[^>]*> f252 8346 lb v0,-28090\(v1\) -0+50000c <[^>]*> 6500 nop -0+50000e <[^>]*> 6500 nop +0*20000000 <[^>]*> f010 8352 lb v0,-32750\(v1\) +0*20000004 <[^>]*> f010 8353 lb v0,-32749\(v1\) +0*20000008 <[^>]*> f252 8346 lb v0,-28090\(v1\) +0*2000000c <[^>]*> 6500 nop +0*2000000e <[^>]*> 6500 nop #pass diff --git a/ld/testsuite/ld-mips-elf/textrel-1.d b/ld/testsuite/ld-mips-elf/textrel-1.d index 7172bb7ea40..945c863f2ec 100644 --- a/ld/testsuite/ld-mips-elf/textrel-1.d +++ b/ld/testsuite/ld-mips-elf/textrel-1.d @@ -4,7 +4,7 @@ #ld: -shared -melf32btsmipn32 #readelf: -d -Dynamic section at offset 0xb4 contains 18 entries: +Dynamic section at offset .* contains 18 entries: Tag Type Name/Value 0x00000004 \(HASH\) 0x[0-9a-f]* 0x00000005 \(STRTAB\) 0x[0-9a-f]* -- 2.39.2