From e316b3a0ed5ff6b7a38610eddba02583ed8e14ec Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Thu, 17 Oct 2002 21:54:44 +0000 Subject: [PATCH] * emulparams/elf32bmipn32-defs.sh (LIB_PATH): Set to /usr/lib32. (GENERATE_SHLIB_SCRIPT): Set to yes. (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Moved to... * emulparams/elf32bmipn32.sh: here. (GENERATE_SHLIB_SCRIPT): Deleted as redundant. * emulparams/elf32btsmipn32.sh: Delete redundant unsets. * emulparams/elf64bmip-defs.sh: New file. Extend elf32bmipn32-defs.sh by overiding ELFSIZE and LIB_PATH. * emulparams/elf64bmip.sh: Bring in definitions from elf64bmip-defs.sh. (ELFSIZE, GENERATE_SHLIB_SCRIPT, LIB_PATH): Delete redundant settings. (WRITABLE_RODATA): Moved from elf32bmipn32-defs.sh. * emulparams/elf64btsmip.sh: Bring in definitions from elf64bmip-defs.sh. (ELFSIZE, GENERATE_SHLIB_SCRIPT): Delete, redundant. (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Delete redundant unsets. --- ld/ChangeLog | 20 ++++++++++++++++++++ ld/emulparams/elf32bmipn32-defs.sh | 16 +++------------- ld/emulparams/elf32bmipn32.sh | 15 ++++++++++++++- ld/emulparams/elf32btsmipn32.sh | 4 ---- ld/emulparams/elf64bmip-defs.sh | 6 ++++++ ld/emulparams/elf64bmip.sh | 12 ++++++++---- ld/emulparams/elf64btsmip.sh | 7 +------ 7 files changed, 52 insertions(+), 28 deletions(-) create mode 100644 ld/emulparams/elf64bmip-defs.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index 44009b74c34..a5bd56c93db 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,23 @@ +2002-10-17 Alexandre Oliva + + * emulparams/elf32bmipn32-defs.sh (LIB_PATH): Set to /usr/lib32. + (GENERATE_SHLIB_SCRIPT): Set to yes. + (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Moved to... + * emulparams/elf32bmipn32.sh: here. + (GENERATE_SHLIB_SCRIPT): Deleted as redundant. + * emulparams/elf32btsmipn32.sh: Delete redundant unsets. + * emulparams/elf64bmip-defs.sh: New file. Extend + elf32bmipn32-defs.sh by overiding ELFSIZE and LIB_PATH. + * emulparams/elf64bmip.sh: Bring in definitions from + elf64bmip-defs.sh. + (ELFSIZE, GENERATE_SHLIB_SCRIPT, LIB_PATH): Delete redundant + settings. + (WRITABLE_RODATA): Moved from elf32bmipn32-defs.sh. + * emulparams/elf64btsmip.sh: Bring in definitions from + elf64bmip-defs.sh. + (ELFSIZE, GENERATE_SHLIB_SCRIPT): Delete, redundant. + (EXECUTABLE_SYMBOLS, WRITABLE_RODATA): Delete redundant unsets. + 2002-10-16 Jakub Jelinek * configure.tgt (s390x-*-linux*): Add elf_s390 emulation. diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index 6933dbfec89..7592d685592 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 a862530177b..75338379ee1 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 1f6931e6a83..6cfa48abb76 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 00000000000..510a85f154f --- /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 bed7d9359a4..bb332694877 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 c33fda44a5d..abd3da648a7 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.*)' -- 2.30.2