Commit | Line | Data |
---|---|---|
09a3f5d4 | 1 | SCRIPT_NAME=elf |
829ce307 | 2 | OUTPUT_FORMAT="elf32-mcore-little" |
09a3f5d4 NC |
3 | BIG_OUTPUT_FORMAT="elf32-mcore-big" |
4 | LITTLE_OUTPUT_FORMAT="elf32-mcore-little" | |
485cf679 | 5 | NO_REL_RELOCS=yes |
09a3f5d4 | 6 | TARGET_PAGE_SIZE=0x400 |
24718e3b | 7 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" |
09a3f5d4 | 8 | TEXT_START_ADDR=0 |
09a3f5d4 NC |
9 | ARCH=mcore |
10 | EMBEDDED=yes | |
11 | ||
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. | |
563e308f | 21 | NOP=0x0e0e0e0e |
09a3f5d4 | 22 | |
fd161d86 AM |
23 | OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};" |
24 | OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};" | |
09a3f5d4 | 25 | |
465bc359 AM |
26 | # This sets the stack to the top of the simulator memory (2^19 bytes). |
27 | STACK_ADDR=0x80000 | |
06f2f02a | 28 | |
075a2b89 | 29 | TEMPLATE_NAME=elf |
093505ad NC |
30 | |
31 | # This code gets inserted into the generic elf32.sc linker script | |
32 | # and allows us to define our own command line switches. | |
e0ee487b | 33 | PARSE_AND_LIST_PROLOGUE=' |
093505ad | 34 | #define OPTION_BASE_FILE 300 |
e0ee487b | 35 | ' |
093505ad | 36 | |
e0ee487b | 37 | PARSE_AND_LIST_LONGOPTS=' |
093505ad | 38 | {"base-file", required_argument, NULL, OPTION_BASE_FILE}, |
e0ee487b | 39 | ' |
093505ad | 40 | |
e0ee487b | 41 | PARSE_AND_LIST_OPTIONS=' |
df5f2391 | 42 | fprintf (file, _(" --base_file <basefile> Generate a base file for relocatable DLLs\n")); |
e0ee487b | 43 | ' |
093505ad | 44 | |
e0ee487b | 45 | PARSE_AND_LIST_ARGS_CASES=' |
093505ad | 46 | case OPTION_BASE_FILE: |
1579bae1 | 47 | link_info.base_file = fopen (optarg, FOPEN_WB); |
093505ad | 48 | if (link_info.base_file == NULL) |
e922bcab | 49 | einfo (_("%F%P: cannot open base file %s\n"), optarg); |
093505ad | 50 | break; |
093505ad | 51 | ' |