forked from Imagelibrary/binutils-gdb
* 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.
This commit is contained in:
@@ -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="
|
||||
|
||||
Reference in New Issue
Block a user