* Makefile.am: Add eshelf32_linux.o and
[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
14
15 DATA_START_SYMBOLS='PROVIDE (___data = .);'
16
17 # If data is located right after .text (not explicitly specified),
18 # then we need to align it to an 8-byte boundary.
19 OTHER_READONLY_SECTIONS='
20 PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0);
21 . = ALIGN (8);
22 '
23
24 # Make _edata and .bss aligned by smuggling in an alignment directive.
25 OTHER_GOT_SECTIONS='. = ALIGN (8);'
26
27 CTOR_START='___ctors = .;'
28 CTOR_END='___ctors_end = .;'
29 DTOR_START='___dtors = .;'
30 DTOR_END='___dtors_end = .;'
31
32 # Do not use the varname=${varname-'string'} construct here; there are
33 # problems with that on some shells (e.g. on Solaris) where there is a bug
34 # that trigs when $varname contains a "}".
35 test -z "$OTHER_RELOCATING_SECTIONS" && OTHER_RELOCATING_SECTIONS='
36  .cranges 0 : { *(.cranges) }
37 '
38
39 # We need to adjust sizes in the .cranges section after relaxation, so
40 # we need an after_allocation function, and it goes in this file.
41 EXTRA_EM_FILE=${EXTRA_EM_FILE-sh64elf}