diff options
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/elf32bmipn32-defs.sh | 16 | ||||
-rwxr-xr-x | ld/emulparams/elf32bmipn32.sh | 15 | ||||
-rw-r--r-- | ld/emulparams/elf32btsmipn32.sh | 4 | ||||
-rw-r--r-- | ld/emulparams/elf64bmip-defs.sh | 6 | ||||
-rwxr-xr-x | ld/emulparams/elf64bmip.sh | 12 | ||||
-rw-r--r-- | ld/emulparams/elf64btsmip.sh | 7 |
6 files changed, 32 insertions, 28 deletions
diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index 6933dbf..7592d68 100644 --- a/ld/emulparams/elf32bmipn32-defs.sh +++ b/ld/emulparams/elf32bmipn32-defs.sh @@ -11,6 +11,9 @@ BIG_OUTPUT_FORMAT="elf32-bigmips" LITTLE_OUTPUT_FORMAT="elf32-littlemips" TEMPLATE_NAME=elf32 +LIB_PATH=/usr/lib32 + +GENERATE_SHLIB_SCRIPT=yes TEXT_START_ADDR=0x10000000 MAXPAGESIZE=0x100000 @@ -30,19 +33,6 @@ OTHER_SDATA_SECTIONS=" TEXT_START_SYMBOLS='_ftext = . ;' DATA_START_SYMBOLS='_fdata = . ;' OTHER_BSS_SYMBOLS='_fbss = .;' -# IRIX6 defines these symbols. 0x34 is the size of the ELF header. -EXECUTABLE_SYMBOLS=" - __dso_displacement = 0; - __elf_header = ${TEXT_START_ADDR}; - __program_header_table = ${TEXT_START_ADDR} + 0x34; -" - -# There are often dynamic relocations against the .rodata section. -# Setting DT_TEXTREL in the .dynamic section does not convince the -# IRIX6 linker to permit relocations against the text segment. -# Following the IRIX linker, we simply put .rodata in the data -# segment. -WRITABLE_RODATA= OTHER_SECTIONS=" .MIPS.events.text ${RELOCATING-0} : diff --git a/ld/emulparams/elf32bmipn32.sh b/ld/emulparams/elf32bmipn32.sh index a862530..7533837 100755 --- a/ld/emulparams/elf32bmipn32.sh +++ b/ld/emulparams/elf32bmipn32.sh @@ -2,5 +2,18 @@ OUTPUT_FORMAT="elf32-nbigmips" BIG_OUTPUT_FORMAT="elf32-nbigmips" LITTLE_OUTPUT_FORMAT="elf32-nlittlemips" -GENERATE_SHLIB_SCRIPT=yes SHLIB_TEXT_START_ADDR=0x5ffe0000 + +# IRIX6 defines these symbols. 0x34 is the size of the ELF header. +EXECUTABLE_SYMBOLS=" + __dso_displacement = 0; + __elf_header = ${TEXT_START_ADDR}; + __program_header_table = ${TEXT_START_ADDR} + 0x34; +" + +# There are often dynamic relocations against the .rodata section. +# Setting DT_TEXTREL in the .dynamic section does not convince the +# IRIX6 linker to permit relocations against the text segment. +# Following the IRIX linker, we simply put .rodata in the data +# segment. +WRITABLE_RODATA= diff --git a/ld/emulparams/elf32btsmipn32.sh b/ld/emulparams/elf32btsmipn32.sh index 1f6931e..6cfa48a 100644 --- a/ld/emulparams/elf32btsmipn32.sh +++ b/ld/emulparams/elf32btsmipn32.sh @@ -6,10 +6,6 @@ OUTPUT_FORMAT="elf32-ntradbigmips" BIG_OUTPUT_FORMAT="elf32-ntradbigmips" LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips" -unset EXECUTABLE_SYMBOLS -unset WRITABLE_RODATA -unset SHLIB_TEXT_START_ADDR - # Magic sections. OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_SECTIONS=' diff --git a/ld/emulparams/elf64bmip-defs.sh b/ld/emulparams/elf64bmip-defs.sh new file mode 100644 index 0000000..510a85f --- /dev/null +++ b/ld/emulparams/elf64bmip-defs.sh @@ -0,0 +1,6 @@ +# If you change this file, please also look at files which source this one: +# elf64bmip.sh and elf64btsmip.sh + +. ${srcdir}/emulparams/elf32bmipn32-defs.sh +ELFSIZE=64 +LIB_PATH=/usr/lib64 diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh index bed7d93..bb33269 100755 --- a/ld/emulparams/elf64bmip.sh +++ b/ld/emulparams/elf64bmip.sh @@ -1,10 +1,7 @@ -. ${srcdir}/emulparams/elf32bmipn32-defs.sh +. ${srcdir}/emulparams/elf64bmip-defs.sh OUTPUT_FORMAT="elf64-bigmips" BIG_OUTPUT_FORMAT="elf64-bigmips" LITTLE_OUTPUT_FORMAT="elf64-littlemips" -ELFSIZE=64 -GENERATE_SHLIB_SCRIPT=yes -LIB_PATH=/usr/lib64 # IRIX6 defines these symbols. 0x40 is the size of the ELF header. EXECUTABLE_SYMBOLS=" @@ -12,3 +9,10 @@ EXECUTABLE_SYMBOLS=" __elf_header = ${TEXT_START_ADDR}; __program_header_table = ${TEXT_START_ADDR} + 0x40; " + +# There are often dynamic relocations against the .rodata section. +# Setting DT_TEXTREL in the .dynamic section does not convince the +# IRIX6 linker to permit relocations against the text segment. +# Following the IRIX linker, we simply put .rodata in the data +# segment. +WRITABLE_RODATA= diff --git a/ld/emulparams/elf64btsmip.sh b/ld/emulparams/elf64btsmip.sh index c33fda4..abd3da6 100644 --- a/ld/emulparams/elf64btsmip.sh +++ b/ld/emulparams/elf64btsmip.sh @@ -1,21 +1,16 @@ # 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" -ELFSIZE=64 -GENERATE_SHLIB_SCRIPT=yes DATA_ADDR=0x0400000000 NONPAGED_TEXT_START_ADDR=0x10000000 SHLIB_TEXT_START_ADDR=0 TEXT_DYNAMIC= -unset EXECUTABLE_SYMBOLS -unset WRITABLE_RODATA - # Magic sections. INITIAL_READONLY_SECTIONS='.MIPS.options : { *(.MIPS.options) }' OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' |