diff options
author | Alan Modra <amodra@gmail.com> | 2005-05-11 14:10:10 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-05-11 14:10:10 +0000 |
commit | 0cf7d72c50cd48896b66849604286cc73d838161 (patch) | |
tree | c09ffd5807fa80c56cfabc90e29b928e9a7b4032 /ld/emulparams | |
parent | d7128ce4b13e32a44861403299d9541ed9b8827d (diff) | |
download | gdb-0cf7d72c50cd48896b66849604286cc73d838161.zip gdb-0cf7d72c50cd48896b66849604286cc73d838161.tar.gz gdb-0cf7d72c50cd48896b66849604286cc73d838161.tar.bz2 |
* ldgram.y: Add SPECIAL token.
(sect_constraint): Handle SPECIAL.
* ldlang.c (lang_output_section_find_1): Don't match SPECIAL.
(map_input_to_output_sections): Likewise.
* ldlex.l (SPECIAL): Define.
* emulparams/elf32ppc.sh (DATA_GOT, SDATA_GOT, SEPARATE_GOTPLT,
GOT, PLT, GOTPLT): Define.
* emultempl/ppc32elf.em (old_plt, old_got): New static vars.
(ppc_after_open): New function.
(PARSE_AND_LIST_PROLOGUE): Define OPTION_OLD_LPT and OPTION_OLD_GOT.
(PARSE_AND_LIST_LONGOPTS): Add "bss-plt" and "sdata-got".
(PARSE_AND_LIST_OPTIONS): Document them.
(PARSE_AND_LIST_ARGS_CASES): Handle them.
(LDEMUL_AFTER_OPEN): Define.
* scripttempl/elf.sc (PLT): Don't override existing define.
(DATA_GOT, SDATA_GOT): Define and use to enable alternate got
placement rather than using NO_SMALL_DATA. Emit GOTPLT for RELRO_NOW.
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/elf32ppc.sh | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ld/emulparams/elf32ppc.sh b/ld/emulparams/elf32ppc.sh index 3e5224f..5a38aed 100644 --- a/ld/emulparams/elf32ppc.sh +++ b/ld/emulparams/elf32ppc.sh @@ -12,7 +12,16 @@ MAXPAGESIZE=0x10000 COMMONPAGESIZE=0x1000 ARCH=powerpc:common MACHINE= +# Yes, we want duplicate .got and .plt sections. The linker chooses the +# appropriate one magically in ppc_after_open +DATA_GOT= +SDATA_GOT= +SEPARATE_GOTPLT=0 BSS_PLT= +GOT=".got ${RELOCATING-0} : SPECIAL { *(.got) }" +PLT=".plt ${RELOCATING-0} : SPECIAL { *(.plt) }" +GOTPLT="${PLT}" +OTHER_TEXT_SECTIONS="*(.glink)" EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' OTHER_BSS_END_SYMBOLS='__end = .;' OTHER_RELRO_SECTIONS=" |