* emulparams/shlelf_linux.sh (GENERATE_PIE_SCRIPT): Set to yes.
[external/binutils.git] / ld / emulparams / shlelf32_linux.sh
1 # If you change this file, please also look at files which source this one:
2 # shelf32_linux.sh
3
4 SCRIPT_NAME=elf
5 OUTPUT_FORMAT="elf32-sh64-linux"
6 TEXT_START_ADDR=0x400000
7 MAXPAGESIZE=0x10000
8 ARCH=sh
9 MACHINE=sh5
10 ALIGNMENT=8
11 TEMPLATE_NAME=elf32
12 GENERATE_SHLIB_SCRIPT=yes
13 GENERATE_PIE_SCRIPT=yes
14
15
16 DATA_START_SYMBOLS='PROVIDE (___data = .);'
17
18 # If data is located right after .text (not explicitly specified),
19 # then we need to align it to an 8-byte boundary.
20 OTHER_READONLY_SECTIONS='
21 PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0);
22 . = ALIGN (8);
23 '
24
25 # Make _edata and .bss aligned by smuggling in an alignment directive.
26 OTHER_GOT_SECTIONS='. = ALIGN (8);'
27
28 CTOR_START='___ctors = .;'
29 CTOR_END='___ctors_end = .;'
30 DTOR_START='___dtors = .;'
31 DTOR_END='___dtors_end = .;'
32
33 # Do not use the varname=${varname-'string'} construct here; there are
34 # problems with that on some shells (e.g. on Solaris) where there is a bug
35 # that trigs when $varname contains a "}".
36 test -z "$OTHER_RELOCATING_SECTIONS" && OTHER_RELOCATING_SECTIONS='
37  .cranges 0 : { *(.cranges) }
38 '
39
40 # We need to adjust sizes in the .cranges section after relaxation, so
41 # we need an after_allocation function, and it goes in this file.
42 EXTRA_EM_FILE=${EXTRA_EM_FILE-sh64elf}