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