summaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-09-10 06:30:37 +0000
committerJeff Law <law@redhat.com>1999-09-10 06:30:37 +0000
commitecdbda89895be4bc8bae2c8328ed62ec2c76a667 (patch)
treeb1a28471caa491fccddbd66a73b32b43fb7002a5 /ld/emulparams
parent75787e0327c6874dbc6f40ec114efe3abcc0d83c (diff)
downloadbinutils-redhat-ecdbda89895be4bc8bae2c8328ed62ec2c76a667.tar.gz
* emulparms/elf64hppa.sh (OTHER_READONLY_SECTIONS): Put stubs before
unwinders so that they are closer to the text section. (OTHER_BSS_SECTIONS): Define. (EXECUTABLE_SYMBOLS): Provide __SYSTEM_ID and _FPU_STATUS. (INIT_START, INIT_END): Define. (FINI_START, FINI_END): Define. * scripttempl/elf.sc: Add support for INIT_START, INIT_END, FINI_START, FINI_END and OTHER_BSS_SECTIONS.
Diffstat (limited to 'ld/emulparams')
-rwxr-xr-xld/emulparams/elf64hppa.sh23
1 files changed, 22 insertions, 1 deletions
diff --git a/ld/emulparams/elf64hppa.sh b/ld/emulparams/elf64hppa.sh
index 8356fc3e88..06bbfc23dc 100755
--- a/ld/emulparams/elf64hppa.sh
+++ b/ld/emulparams/elf64hppa.sh
@@ -10,6 +10,27 @@ MACHINE=hppa2.0w
ENTRY="main"
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
-OTHER_READONLY_SECTIONS='.stubs : { *(.stubs) } .PARISC.unwind : { *(.PARISC.unwind) }'
+# We really want multiple .stub sections, one for each input .text section,
+# but for now this is good enough.
+OTHER_READONLY_SECTIONS='.PARISC.unwind : { *(.PARISC.unwind) } .stubs : { *(.stubs) }'
+
+# The PA64 ELF port treats .plt sections differently than most. We also have
+# to create a .opd section. Combine the .opd, .plt and .dlt together into a
+# single .dlt section in the output file.
OTHER_READWRITE_SECTIONS='.dlt : { *(.opd) *(.plt) *(.dlt) }'
+
+# The PA64 ELF port has two additional bss sections. huge bss and thread bss.
+# Make sure they end up in the appropriate location. We also have to set
+# __TLS_SIZE to the size of the thread bss section.
+OTHER_BSS_SECTIONS='.hbss : { *(.hbss) } .tbss : { *(.tbss) } __TLS_SIZE = SIZEOF(.tbss);'
+
+# The linker is required to define these two symbols.
+EXECUTABLE_SYMBOLS='__SYSTEM_ID = 0x214; _FPU_STATUS = 0x0;'
DATA_PLT=
+
+# The PA64 ELF port needs two additional initializer sections and also wants
+# a start/end symbol pair for the .init and .fini sections.
+INIT_START='KEEP (*(.HP.init)); __preinit_start = .; KEEP (*(.preinit)); __preinit_end = .;__init_start = .;'
+INIT_END='__init_end = .;'
+FINI_START='__fini_start = .;'
+FINI_END='__fini_end = .;'