diff options
Diffstat (limited to 'contrib/binutils/ld/emulparams')
23 files changed, 108 insertions, 141 deletions
diff --git a/contrib/binutils/ld/emulparams/armelf.sh b/contrib/binutils/ld/emulparams/armelf.sh index 338b9ce..0e8ebc5 100644 --- a/contrib/binutils/ld/emulparams/armelf.sh +++ b/contrib/binutils/ld/emulparams/armelf.sh @@ -10,6 +10,8 @@ OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)' OTHER_BSS_SYMBOLS='__bss_start__ = .;' OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' +DATA_START_SYMBOLS='__data_start = . ;'; + GENERATE_SHLIB_SCRIPT=yes ARCH=arm @@ -18,6 +20,5 @@ MAXPAGESIZE=256 ENTRY=_start EMBEDDED=yes -# Hmmm, there's got to be a better way. This sets the stack to the -# top of the simulator memory (2^19 bytes). -OTHER_RELOCATING_SECTIONS='.stack 0x80000 : { _stack = .; *(.stack) }' +# This sets the stack to the top of the simulator memory (2^19 bytes). +STACK_ADDR=0x80000 diff --git a/contrib/binutils/ld/emulparams/armelf_nbsd.sh b/contrib/binutils/ld/emulparams/armelf_nbsd.sh new file mode 100644 index 0000000..571483c --- /dev/null +++ b/contrib/binutils/ld/emulparams/armelf_nbsd.sh @@ -0,0 +1,6 @@ +. ${srcdir}/emulparams/armelf.sh +MAXPAGESIZE=0x8000 +TEXT_START_ADDR=0x00008000 + +unset STACK_ADDR +unset EMBEDDED diff --git a/contrib/binutils/ld/emulparams/armelf_oabi.sh b/contrib/binutils/ld/emulparams/armelf_oabi.sh index d568328..f1c967d 100644 --- a/contrib/binutils/ld/emulparams/armelf_oabi.sh +++ b/contrib/binutils/ld/emulparams/armelf_oabi.sh @@ -16,6 +16,5 @@ MAXPAGESIZE=256 ENTRY=_start EMBEDDED=yes -# Hmmm, there's got to be a better way. This sets the stack to the -# top of the simulator memory (2^19 bytes). -OTHER_RELOCATING_SECTIONS='.stack 0x80000 : { _stack = .; *(.stack) }' +# This sets the stack to the top of the simulator memory (2^19 bytes). +STACK_ADDR=0x80000 diff --git a/contrib/binutils/ld/emulparams/elf32_sparc.sh b/contrib/binutils/ld/emulparams/elf32_sparc.sh index 74e2326..d8b81e7 100644 --- a/contrib/binutils/ld/emulparams/elf32_sparc.sh +++ b/contrib/binutils/ld/emulparams/elf32_sparc.sh @@ -9,3 +9,4 @@ MACHINE= TEMPLATE_NAME=elf32 DATA_PLT= GENERATE_SHLIB_SCRIPT=yes +NO_SMALL_DATA=yes diff --git a/contrib/binutils/ld/emulparams/elf32b4300.sh b/contrib/binutils/ld/emulparams/elf32b4300.sh index 24f8d98..4bfdd6e 100644 --- a/contrib/binutils/ld/emulparams/elf32b4300.sh +++ b/contrib/binutils/ld/emulparams/elf32b4300.sh @@ -1,29 +1,10 @@ -SCRIPT_NAME=elf -OUTPUT_FORMAT="elf32-bigmips" -BIG_OUTPUT_FORMAT="elf32-bigmips" -LITTLE_OUTPUT_FORMAT="elf32-littlemips" +# If you change this file, please also look at files which source this one: +# elf32l4300.sh + +EMBEDDED=yes +. ${srcdir}/emulparams/elf32bmip.sh TEXT_START_ADDR=0xa0020000 -MAXPAGESIZE=0x40000 -INITIAL_READONLY_SECTIONS='.reginfo : { *(.reginfo) }' -OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' -OTHER_GOT_SYMBOLS=' - _gp = ALIGN(16) + 0x7ff0; -' -OTHER_GOT_SECTIONS=' - .lit8 : { *(.lit8) } - .lit4 : { *(.lit4) } -' -TEXT_START_SYMBOLS='_ftext = . ;' -DATA_START_SYMBOLS='_fdata = . ;' -OTHER_BSS_SYMBOLS='_fbss = .;' +unset NONPAGED_TEXT_START_ADDR +unset SHLIB_TEXT_START_ADDR EXECUTABLE_SYMBOLS='_DYNAMIC_LINK = 0;' -OTHER_SECTIONS=' - .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } - .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } -' -ARCH=mips -MACHINE= -TEMPLATE_NAME=elf32 -GENERATE_SHLIB_SCRIPT=yes DYNAMIC_LINK=false -EMBEDDED=yes diff --git a/contrib/binutils/ld/emulparams/elf32l4300.sh b/contrib/binutils/ld/emulparams/elf32l4300.sh index 690de88..865792a 100644 --- a/contrib/binutils/ld/emulparams/elf32l4300.sh +++ b/contrib/binutils/ld/emulparams/elf32l4300.sh @@ -1,29 +1,4 @@ -SCRIPT_NAME=elf +. ${srcdir}/emulparams/elf32b4300.sh OUTPUT_FORMAT="elf32-littlemips" BIG_OUTPUT_FORMAT="elf32-bigmips" LITTLE_OUTPUT_FORMAT="elf32-littlemips" -TEXT_START_ADDR=0xa0020000 -MAXPAGESIZE=0x40000 -INITIAL_READONLY_SECTIONS='.reginfo : { *(.reginfo) }' -OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' -OTHER_GOT_SYMBOLS=' - _gp = ALIGN(16) + 0x7ff0; -' -OTHER_GOT_SECTIONS=' - .lit8 : { *(.lit8) } - .lit4 : { *(.lit4) } -' -TEXT_START_SYMBOLS='_ftext = . ;' -DATA_START_SYMBOLS='_fdata = . ;' -OTHER_BSS_SYMBOLS='_fbss = .;' -EXECUTABLE_SYMBOLS='_DYNAMIC_LINK = 0;' -OTHER_SECTIONS=' - .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } - .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } -' -ARCH=mips -MACHINE= -TEMPLATE_NAME=elf32 -GENERATE_SHLIB_SCRIPT=yes -DYNAMIC_LINK=false -EMBEDDED=yes diff --git a/contrib/binutils/ld/emulparams/elf32lppc.sh b/contrib/binutils/ld/emulparams/elf32lppc.sh index bc9125d..18cce48 100644 --- a/contrib/binutils/ld/emulparams/elf32lppc.sh +++ b/contrib/binutils/ld/emulparams/elf32lppc.sh @@ -1,18 +1,5 @@ -TEMPLATE_NAME=elf32 -# If you change this, please also look at: -# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh -GENERATE_SHLIB_SCRIPT=yes -SCRIPT_NAME=elf +# If you change this file, please also look at files which source this one: +# elf32lppcsim.sh + +. ${srcdir}/emulparams/elf32ppc.sh OUTPUT_FORMAT="elf32-powerpcle" -TEXT_START_ADDR=0x01800000 -MAXPAGESIZE=0x10000 -ARCH=powerpc -MACHINE= -BSS_PLT= -EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' -OTHER_BSS_END_SYMBOLS='__end = .;' -OTHER_READWRITE_SECTIONS=' - .fixup : { *(.fixup) } - .got1 : { *(.got1) } - .got2 : { *(.got2) } -' diff --git a/contrib/binutils/ld/emulparams/elf32lppcsim.sh b/contrib/binutils/ld/emulparams/elf32lppcsim.sh index 74959f8..e743852 100644 --- a/contrib/binutils/ld/emulparams/elf32lppcsim.sh +++ b/contrib/binutils/ld/emulparams/elf32lppcsim.sh @@ -1,18 +1,2 @@ -TEMPLATE_NAME=elf32 -# If you change this, please also look at: -# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh -GENERATE_SHLIB_SCRIPT=yes -SCRIPT_NAME=elf -OUTPUT_FORMAT="elf32-powerpcle" +. ${srcdir}/emulparams/elf32lppc.sh TEXT_START_ADDR=0x10000000 -MAXPAGESIZE=0x10000 -ARCH=powerpc -MACHINE= -BSS_PLT= -EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' -OTHER_BSS_END_SYMBOLS='__end = .;' -OTHER_READWRITE_SECTIONS=' - .fixup : { *(.fixup) } - .got1 : { *(.got1) } - .got2 : { *(.got2) } -' diff --git a/contrib/binutils/ld/emulparams/elf32ppc.sh b/contrib/binutils/ld/emulparams/elf32ppc.sh index 2220810..261e4bf 100644 --- a/contrib/binutils/ld/emulparams/elf32ppc.sh +++ b/contrib/binutils/ld/emulparams/elf32ppc.sh @@ -1,6 +1,7 @@ +# If you change this file, please also look at files which source this one: +# elf32lppc.sh elf32ppclinux.sh elf32ppcsim.sh + TEMPLATE_NAME=elf32 -# If you change this, please also look at: -# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh GENERATE_SHLIB_SCRIPT=yes SCRIPT_NAME=elf OUTPUT_FORMAT="elf32-powerpc" @@ -11,8 +12,8 @@ MACHINE= BSS_PLT= EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' OTHER_BSS_END_SYMBOLS='__end = .;' -OTHER_READWRITE_SECTIONS=' - .fixup : { *(.fixup) } - .got1 : { *(.got1) } - .got2 : { *(.got2) } -' +OTHER_READWRITE_SECTIONS=" + .fixup ${RELOCATING-0} : { *(.fixup) } + .got1 ${RELOCATING-0} : { *(.got1) } + .got2 ${RELOCATING-0} : { *(.got2) } +" diff --git a/contrib/binutils/ld/emulparams/elf32ppclinux.sh b/contrib/binutils/ld/emulparams/elf32ppclinux.sh index 7c458a2..5ced00d 100644 --- a/contrib/binutils/ld/emulparams/elf32ppclinux.sh +++ b/contrib/binutils/ld/emulparams/elf32ppclinux.sh @@ -1,18 +1,8 @@ -TEMPLATE_NAME=elf32 -# If you change this, please also look at: -# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh -GENERATE_SHLIB_SCRIPT=yes -SCRIPT_NAME=elf -OUTPUT_FORMAT="elf32-powerpc" +. ${srcdir}/emulparams/elf32ppc.sh TEXT_START_ADDR=0x10000000 -MAXPAGESIZE=0x10000 -ARCH=powerpc -MACHINE= -BSS_PLT= -OTHER_RELOCATING_SECTIONS=' - /DISCARD/ : { *(.fixup) } -' -OTHER_READWRITE_SECTIONS=' - .got1 : { *(.got1) } - .got2 : { *(.got2) } -' +unset EXECUTABLE_SYMBOLS +unset OTHER_BSS_END_SYMBOLS +test -z "${RELOCATING}" || OTHER_SECTIONS="/DISCARD/ : { *(.fixup) }" +OTHER_READWRITE_SECTIONS=" + .got1 ${RELOCATING-0} : { *(.got1) } + .got2 ${RELOCATING-0} : { *(.got2) }" diff --git a/contrib/binutils/ld/emulparams/elf32ppcsim.sh b/contrib/binutils/ld/emulparams/elf32ppcsim.sh index e25a170..c3466cf 100644 --- a/contrib/binutils/ld/emulparams/elf32ppcsim.sh +++ b/contrib/binutils/ld/emulparams/elf32ppcsim.sh @@ -1,18 +1,2 @@ -TEMPLATE_NAME=elf32 -# If you change this, please also look at: -# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh -GENERATE_SHLIB_SCRIPT=yes -SCRIPT_NAME=elf -OUTPUT_FORMAT="elf32-powerpc" +. ${srcdir}/emulparams/elf32ppc.sh TEXT_START_ADDR=0x10000000 -MAXPAGESIZE=0x10000 -ARCH=powerpc -MACHINE= -BSS_PLT= -EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' -OTHER_BSS_END_SYMBOLS='__end = .;' -OTHER_READWRITE_SECTIONS=' - .fixup : { *(.fixup) } - .got1 : { *(.got1) } - .got2 : { *(.got2) } -' diff --git a/contrib/binutils/ld/emulparams/elf64_ia64.sh b/contrib/binutils/ld/emulparams/elf64_ia64.sh index 158db9c..0699d3d 100644 --- a/contrib/binutils/ld/emulparams/elf64_ia64.sh +++ b/contrib/binutils/ld/emulparams/elf64_ia64.sh @@ -11,6 +11,11 @@ TEXT_START_ADDR="0x4000000000000000" DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))" GENERATE_SHLIB_SCRIPT=yes NOP=0x00300000010070000002000001000400 # a bundle full of nops -OTHER_GOT_SECTIONS='.IA_64.pltoff : { *(.IA_64.pltoff) }' -OTHER_PLT_RELOC_SECTIONS='.rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) }' -OTHER_READONLY_SECTIONS='.opd : { *(.opd) } .IA_64.unwind_info : { *(.IA_64.unwind_info*) } .IA_64.unwind : { *(.IA_64.unwind*) }' +OTHER_GOT_SECTIONS=" + .IA_64.pltoff ${RELOCATING-0} : { *(.IA_64.pltoff) }" +OTHER_PLT_RELOC_SECTIONS=" + .rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }" +OTHER_READONLY_SECTIONS=" + .opd ${RELOCATING-0} : { *(.opd) } + .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info*${RELOCATING+ .gnu.linkonce.ia64unwi.*}) } + .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind*${RELOCATING+ .gnu.linkonce.ia64unw.*}) }" diff --git a/contrib/binutils/ld/emulparams/elf64_sparc.sh b/contrib/binutils/ld/emulparams/elf64_sparc.sh index b0a58ea..dae3f21 100644 --- a/contrib/binutils/ld/emulparams/elf64_sparc.sh +++ b/contrib/binutils/ld/emulparams/elf64_sparc.sh @@ -8,6 +8,7 @@ MACHINE= DATA_PLT= GENERATE_SHLIB_SCRIPT=yes NOP=0x01000000 +NO_SMALL_DATA=yes case "$target" in sparc*-solaris*) diff --git a/contrib/binutils/ld/emulparams/elf64alpha_nbsd.sh b/contrib/binutils/ld/emulparams/elf64alpha_nbsd.sh new file mode 100644 index 0000000..8116f48 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64alpha_nbsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64alpha.sh +ENTRY=__start diff --git a/contrib/binutils/ld/emulparams/elf64lppc.sh b/contrib/binutils/ld/emulparams/elf64lppc.sh new file mode 100644 index 0000000..1c47493 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64lppc.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/elf64ppc.sh +OUTPUT_FORMAT="elf64-powerpcle" +NOP=0x00000060 diff --git a/contrib/binutils/ld/emulparams/elf64ppc.sh b/contrib/binutils/ld/emulparams/elf64ppc.sh new file mode 100644 index 0000000..2169862 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf64ppc.sh @@ -0,0 +1,29 @@ +TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=ppc64elf +ELFSIZE=64 +GENERATE_SHLIB_SCRIPT=yes +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf64-powerpc" +TEXT_START_ADDR=0x10000000 +MAXPAGESIZE=0x40000 +ARCH=powerpc +MACHINE= +NOP=0x60000000 +EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' +OTHER_BSS_END_SYMBOLS='__end = .;' +CTOR_START='PROVIDE (__CTOR_LIST__ = .); PROVIDE (___CTOR_LIST__ = .);' +CTOR_END='PROVIDE (__CTOR_END__ = .); PROVIDE (___CTOR_END__ = .);' +DTOR_START='PROVIDE (__DTOR_LIST__ = .); PROVIDE (___DTOR_LIST__ = .);' +DTOR_END='PROVIDE (__DTOR_END__ = .); PROVIDE (___DTOR_END__ = .);' +BSS_PLT= +OTHER_BSS_SYMBOLS=" + .tocbss ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.tocbss)}" +OTHER_PLT_RELOC_SECTIONS=" + .rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }" +OTHER_GOT_SECTIONS=" + .toc ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc) }" +OTHER_GOT_RELOC_SECTIONS=" + .rela.toc ${RELOCATING-0} : { *(.rela.toc) }" +OTHER_READWRITE_SECTIONS=" + .toc1 ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc1) } + .opd ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.opd) }" diff --git a/contrib/binutils/ld/emulparams/elf_i386.sh b/contrib/binutils/ld/emulparams/elf_i386.sh index dff567b..53dd54b 100644 --- a/contrib/binutils/ld/emulparams/elf_i386.sh +++ b/contrib/binutils/ld/emulparams/elf_i386.sh @@ -5,6 +5,7 @@ MAXPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x08048000 ARCH=i386 MACHINE= -NOP=0x9090 +NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes +NO_SMALL_DATA=yes diff --git a/contrib/binutils/ld/emulparams/elf_i386_chaos.sh b/contrib/binutils/ld/emulparams/elf_i386_chaos.sh index 32e7719..f7ad3cf 100644 --- a/contrib/binutils/ld/emulparams/elf_i386_chaos.sh +++ b/contrib/binutils/ld/emulparams/elf_i386_chaos.sh @@ -5,6 +5,7 @@ MAXPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x40000000 ARCH=i386 MACHINE= -NOP=0x9090 +NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes +NO_SMALL_DATA=yes diff --git a/contrib/binutils/ld/emulparams/elf_i386_ldso.sh b/contrib/binutils/ld/emulparams/elf_i386_ldso.sh new file mode 100644 index 0000000..a477a69 --- /dev/null +++ b/contrib/binutils/ld/emulparams/elf_i386_ldso.sh @@ -0,0 +1,12 @@ +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-i386" +TEXT_START_ADDR=0x08048000 +MAXPAGESIZE=0x1000 +NONPAGED_TEXT_START_ADDR=0x08048000 +ARCH=i386 +MACHINE= +NOP=0x90909090 +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +ELF_INTERPRETER_NAME=\"/usr/lib/ld.so.1\" +NO_SMALL_DATA=yes diff --git a/contrib/binutils/ld/emulparams/elf_x86_64.sh b/contrib/binutils/ld/emulparams/elf_x86_64.sh index 635748f..27931c7 100644 --- a/contrib/binutils/ld/emulparams/elf_x86_64.sh +++ b/contrib/binutils/ld/emulparams/elf_x86_64.sh @@ -6,6 +6,7 @@ MAXPAGESIZE=0x100000 NONPAGED_TEXT_START_ADDR=0x400000 ARCH=i386 MACHINE= -NOP=0x9090 +NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes +NO_SMALL_DATA=yes diff --git a/contrib/binutils/ld/emulparams/i386moss.sh b/contrib/binutils/ld/emulparams/i386moss.sh index a5e0e05..eece447 100644 --- a/contrib/binutils/ld/emulparams/i386moss.sh +++ b/contrib/binutils/ld/emulparams/i386moss.sh @@ -5,6 +5,6 @@ MAXPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x00002000 ARCH=i386 MACHINE= -NOP=0x9090 +NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes diff --git a/contrib/binutils/ld/emulparams/i386nw.sh b/contrib/binutils/ld/emulparams/i386nw.sh index e70ed67..621b475 100644 --- a/contrib/binutils/ld/emulparams/i386nw.sh +++ b/contrib/binutils/ld/emulparams/i386nw.sh @@ -4,6 +4,6 @@ TEXT_START_ADDR=0x08000000 MAXPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x08000000 ARCH=i386 -NOP=0x9090 +NOP=0x90909090 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes diff --git a/contrib/binutils/ld/emulparams/sh.sh b/contrib/binutils/ld/emulparams/sh.sh index 38844fb..52d1443 100644 --- a/contrib/binutils/ld/emulparams/sh.sh +++ b/contrib/binutils/ld/emulparams/sh.sh @@ -1,3 +1,6 @@ +# If you change this file, please also look at files which source this one: +# shl.sh + SCRIPT_NAME=sh OUTPUT_FORMAT="coff-sh" TEXT_START_ADDR=0x8000 |