Merge from vendor branch OPENSSH:
[dragonfly.git] / contrib / binutils / ld / emulparams / elf32bmipn32.sh
1 # If you change this file, please also look at files which source this one:
2 # elf64bmip.sh elf64btsmip.sh
3
4 # This is an ELF platform.
5 SCRIPT_NAME=elf
6
7 # Handle both big- and little-ended 32-bit MIPS objects.
8 ARCH=mips
9 OUTPUT_FORMAT="elf32-bigmips"
10 BIG_OUTPUT_FORMAT="elf32-bigmips"
11 LITTLE_OUTPUT_FORMAT="elf32-littlemips"
12
13 TEMPLATE_NAME=elf32
14
15 TEXT_START_ADDR=0x10000000
16 MAXPAGESIZE=0x100000
17 ENTRY=__start
18
19 # GOT-related settings.  
20 OTHER_GOT_SYMBOLS='
21   _gp = ALIGN(16) + 0x7ff0;
22 '
23 OTHER_SDATA_SECTIONS="
24   .lit8         ${RELOCATING-0} : { *(.lit8) }
25   .lit4         ${RELOCATING-0} : { *(.lit4) }
26   .srdata       ${RELOCATING-0} : { *(.srdata) }
27 "
28
29 # Magic symbols.
30 TEXT_START_SYMBOLS='_ftext = . ;'
31 DATA_START_SYMBOLS='_fdata = . ;'
32 OTHER_BSS_SYMBOLS='_fbss = .;'
33 # IRIX6 defines these symbols.  0x34 is the size of the ELF header.
34 EXECUTABLE_SYMBOLS="
35   __dso_displacement = 0;
36   __elf_header = ${TEXT_START_ADDR};
37   __program_header_table = ${TEXT_START_ADDR} + 0x34;
38 "
39
40 # There are often dynamic relocations against the .rodata section.
41 # Setting DT_TEXTREL in the .dynamic section does not convince the
42 # IRIX6 linker to permit relocations against the text segment.
43 # Following the IRIX linker, we simply put .rodata in the data
44 # segment.
45 WRITABLE_RODATA=
46
47 OTHER_SECTIONS="
48   .MIPS.events.text ${RELOCATING-0} :
49     {
50        *(.MIPS.events.text${RELOCATING+ .MIPS.events.gnu.linkonce.t*})
51     }
52   .MIPS.content.text ${RELOCATING-0} : 
53     {
54        *(.MIPS.content.text${RELOCATING+ .MIPS.content.gnu.linkonce.t*})
55     }
56   .MIPS.events.data ${RELOCATING-0} :
57     {
58        *(.MIPS.events.data${RELOCATING+ .MIPS.events.gnu.linkonce.d*})
59     }
60   .MIPS.content.data ${RELOCATING-0} :
61     {
62        *(.MIPS.content.data${RELOCATING+ .MIPS.content.gnu.linkonce.d*})
63     }
64   .MIPS.events.rodata ${RELOCATING-0} :
65     {
66        *(.MIPS.events.rodata${RELOCATING+ .MIPS.events.gnu.linkonce.r*})
67     }
68   .MIPS.content.rodata ${RELOCATING-0} :
69     {
70        *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*})
71     }"