diff options
Diffstat (limited to 'contrib/binutils/ld/emulparams/shelf.sh')
-rwxr-xr-x | contrib/binutils/ld/emulparams/shelf.sh | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/contrib/binutils/ld/emulparams/shelf.sh b/contrib/binutils/ld/emulparams/shelf.sh index 27b73b6..5c0c9d6 100755 --- a/contrib/binutils/ld/emulparams/shelf.sh +++ b/contrib/binutils/ld/emulparams/shelf.sh @@ -17,4 +17,16 @@ CTOR_START='___ctors = .;' CTOR_END='___ctors_end = .;' DTOR_START='___dtors = .;' DTOR_END='___dtors_end = .;' -STACK_ADDR=0x30000 +# This is like setting STACK_ADDR to 0x30000, except that the setting can +# be overridden, e.g. --defsym _stack=0x0f00, and that we put an extra +# sentinal value at the bottom. +# N.B. We can't use PROVIDE to set the default value in a symbol because +# the address is needed to place the .stack section, which in turn is needed +# to hold the sentinel value(s). +OTHER_SECTIONS=" .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : 0x30000)} : + { + ${RELOCATING+_stack = .;} + *(.stack) + LONG(0xdeaddead) + }" + |