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