aboutsummaryrefslogtreecommitdiff
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
commit904ecb2d787a2b9e501232d4e3852dc9659fca77 (patch)
tree05f5e7ec58a7d12d7c4c71cb0e3389d90aa1b947 /ld/emulparams
parentfc4cc5bb8ff13611dc99ec51ecd9d02b3c85c04b (diff)
downloadgdb-904ecb2d787a2b9e501232d4e3852dc9659fca77.zip
gdb-904ecb2d787a2b9e501232d4e3852dc9659fca77.tar.gz
gdb-904ecb2d787a2b9e501232d4e3852dc9659fca77.tar.bz2
* 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 8356fc3..06bbfc2 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 = .;'