PR 2995, PR 6473
[binutils.git] / ld / emulparams / elf32mcore.sh
blob31d65dc88389d93350f4ec0da245fcd3dfc2fc1d
1 SCRIPT_NAME=elf
2 OUTPUT_FORMAT="elf32-mcore-little"
3 BIG_OUTPUT_FORMAT="elf32-mcore-big"
4 LITTLE_OUTPUT_FORMAT="elf32-mcore-little"
5 PAGE_SIZE=0x1000
6 TARGET_PAGE_SIZE=0x400
7 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
8 TEXT_START_ADDR=0
9 ARCH=mcore
10 EMBEDDED=yes
12 # There is a problem with the NOP value - it must work for both
13 # big endian and little endian systems. Unfortunately there is
14 # no symmetrical mcore opcode that functions as a noop. The
15 # chosen solution is to use "tst r0, r14". This is a symetrical
16 # value, and apart from the corruption of the C bit, it has no other
17 # side effects. Since the carry bit is never tested without being
18 # explicitly set first, and since the NOP code is only used as a
19 # fill value between independantly viable peices of code, it should
20 # not matter.
21 NOP=0x0e0e0e0e
23 OTHER_BSS_SYMBOLS="__bss_start__ = . ;"
24 OTHER_BSS_END_SYMBOLS="__bss_end__ = . ;"
26 # This sets the stack to the top of the simulator memory (2^19 bytes).
27 STACK_ADDR=0x80000
29 TEMPLATE_NAME=elf32
30 GENERATE_SHLIB_SCRIPT=yes
32 # This code gets inserted into the generic elf32.sc linker script
33 # and allows us to define our own command line switches.
34 PARSE_AND_LIST_PROLOGUE='
35 #define OPTION_BASE_FILE 300
38 PARSE_AND_LIST_LONGOPTS='
39 {"base-file", required_argument, NULL, OPTION_BASE_FILE},
42 PARSE_AND_LIST_OPTIONS='
43 fprintf (file, _(" --base_file <basefile>\n"));
44 fprintf (file, _("\t\t\tGenerate a base file for relocatable DLLs\n"));
47 PARSE_AND_LIST_ARGS_CASES='
48 case OPTION_BASE_FILE:
49 link_info.base_file = fopen (optarg, FOPEN_WB);
50 if (link_info.base_file == NULL)
52 /* xgettext:c-format */
53 fprintf (stderr, _("%s: Cannot open base file %s\n"),
54 program_name, optarg);
55 xexit (1);
57 break;