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