From 74dc9032e79b7950095ee5f94f5517209ef4747e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 20 Feb 2017 13:25:13 +1030 Subject: Move .stack before debug sections PR 20199 * emulparams/elf32m32c.sh: Define STACK_ADDR and STACK_SENTINEL rather than using OTHER_SECTIONS. * emulparams/elf32mt.sh: Likewise. * emulparams/elf32rx.sh: Likewise. * emulparams/elf32rl78.sh: Likewise. Use OTHER_SYMBOLS to define __rl78_abs__. * emulparams/shelf.sh: Define STACK_ADDR and STACK_SENTINEL rather than using OTHER_SECTIONS. * emulparams/shelf32.sh: Likewise. Use OTHER_SECTIONS for .cranges. * emulparams/shelf64.sh: Unset OTHER_SECTIONS. * emulparams/shelf_nbsd.sh: Unset STACK_ADDR not OTHER_SECTIONS. * emulparams/shelf_uclinux.sh: Likewise. * emulparams/shlsymbian.sh: Unset STACK_ADDR. Use OTHER_SYMBOLS to define _stack, not OTHER_SECTIONS. * scripttempl/elf.sc: Move STACK, TINY_DATA_SECTION, and TINY_BSS_SECTION before debug sections. Add STACK_SENTINEL. * scripttempl/arclinux.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/nds32elf.sc: Likewise. * scripttempl/armbpabi.sc: Move STACK before debug sections. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfarc.sc: Delete STACK. * scripttempl/epiphany_4x4.sc: Delete STACK. Move TINY_DATA_SECTION, TINY_BSS_SECTION, and .stack before debug sections. --- ld/scripttempl/arclinux.sc | 11 +++++------ ld/scripttempl/armbpabi.sc | 2 +- ld/scripttempl/elf.sc | 13 ++++++------- ld/scripttempl/elf64hppa.sc | 12 ++++++------ ld/scripttempl/elf_chaos.sc | 2 +- ld/scripttempl/elfarc.sc | 1 - ld/scripttempl/elfxtensa.sc | 12 ++++++------ ld/scripttempl/epiphany_4x4.sc | 29 ++++++----------------------- ld/scripttempl/nds32elf.sc | 11 +++++------ 9 files changed, 36 insertions(+), 57 deletions(-) (limited to 'ld/scripttempl') diff --git a/ld/scripttempl/arclinux.sc b/ld/scripttempl/arclinux.sc index f3668d2..e692f13 100644 --- a/ld/scripttempl/arclinux.sc +++ b/ld/scripttempl/arclinux.sc @@ -303,10 +303,11 @@ DTOR=".dtors ${CONSTRUCTING-0} : KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} }" -STACK=" .stack ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} : +STACK=".stack ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} : { ${RELOCATING+${USER_LABEL_PREFIX}_stack = .;} *(.stack) + ${RELOCATING+${STACK_SENTINEL}} }" TEXT_START_ADDR="SEGMENT_START(\"text-segment\", ${TEXT_START_ADDR})" @@ -649,6 +650,9 @@ SHLIB_LARGE_DATA_ADDR=". = SEGMENT_START(\"ldata-segment\", ${SHLIB_LARGE_DATA_A ${RELOCATING+${OTHER_END_SYMBOLS}} ${RELOCATING+${END_SYMBOLS-${USER_LABEL_PREFIX}_end = .; PROVIDE (${USER_LABEL_PREFIX}end = .);}} ${RELOCATING+${DATA_SEGMENT_END}} + ${TINY_DATA_SECTION} + ${TINY_BSS_SECTION} + ${STACK_ADDR+${STACK}} EOF test -z "${NON_ALLOC_DYN}" || emit_dyn @@ -669,11 +673,6 @@ EOF . $srcdir/scripttempl/DWARF.sc cat <