| 1 | # If you change this file, please also look at files which source this one:
|
|---|
| 2 | # elf64bmip.sh elf64btsmip.sh elf32btsmipn32.sh elf32bmipn32.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 | case "$EMULATION_NAME" in
|
|---|
| 16 | elf32*n32*) ELFSIZE=32 ;;
|
|---|
| 17 | elf64*) ELFSIZE=64 ;;
|
|---|
| 18 | *) echo $0: unhandled emulation $EMULATION_NAME >&2; exit 1 ;;
|
|---|
| 19 | esac
|
|---|
| 20 |
|
|---|
| 21 | if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
|
|---|
| 22 | case " $EMULATION_LIBPATH " in
|
|---|
| 23 | *" ${EMULATION_NAME} "*)
|
|---|
| 24 | NATIVE=yes
|
|---|
| 25 | ;;
|
|---|
| 26 | esac
|
|---|
| 27 | fi
|
|---|
| 28 |
|
|---|
| 29 | # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
|
|---|
| 30 | LIBPATH_SUFFIX=$ELFSIZE
|
|---|
| 31 |
|
|---|
| 32 | GENERATE_SHLIB_SCRIPT=yes
|
|---|
| 33 |
|
|---|
| 34 | TEXT_START_ADDR=0x10000000
|
|---|
| 35 | MAXPAGESIZE=0x100000
|
|---|
| 36 | ENTRY=__start
|
|---|
| 37 |
|
|---|
| 38 | # GOT-related settings.
|
|---|
| 39 | OTHER_GOT_SYMBOLS='
|
|---|
| 40 | _gp = ALIGN(16) + 0x7ff0;
|
|---|
| 41 | '
|
|---|
| 42 | OTHER_SDATA_SECTIONS="
|
|---|
| 43 | .lit8 ${RELOCATING-0} : { *(.lit8) }
|
|---|
| 44 | .lit4 ${RELOCATING-0} : { *(.lit4) }
|
|---|
| 45 | .srdata ${RELOCATING-0} : { *(.srdata) }
|
|---|
| 46 | "
|
|---|
| 47 |
|
|---|
| 48 | # Magic symbols.
|
|---|
| 49 | TEXT_START_SYMBOLS='_ftext = . ;'
|
|---|
| 50 | DATA_START_SYMBOLS='_fdata = . ;'
|
|---|
| 51 | OTHER_BSS_SYMBOLS='_fbss = .;'
|
|---|
| 52 |
|
|---|
| 53 | OTHER_SECTIONS="
|
|---|
| 54 | .MIPS.events.text ${RELOCATING-0} :
|
|---|
| 55 | {
|
|---|
| 56 | *(.MIPS.events.text${RELOCATING+ .MIPS.events.gnu.linkonce.t*})
|
|---|
| 57 | }
|
|---|
| 58 | .MIPS.content.text ${RELOCATING-0} :
|
|---|
| 59 | {
|
|---|
| 60 | *(.MIPS.content.text${RELOCATING+ .MIPS.content.gnu.linkonce.t*})
|
|---|
| 61 | }
|
|---|
| 62 | .MIPS.events.data ${RELOCATING-0} :
|
|---|
| 63 | {
|
|---|
| 64 | *(.MIPS.events.data${RELOCATING+ .MIPS.events.gnu.linkonce.d*})
|
|---|
| 65 | }
|
|---|
| 66 | .MIPS.content.data ${RELOCATING-0} :
|
|---|
| 67 | {
|
|---|
| 68 | *(.MIPS.content.data${RELOCATING+ .MIPS.content.gnu.linkonce.d*})
|
|---|
| 69 | }
|
|---|
| 70 | .MIPS.events.rodata ${RELOCATING-0} :
|
|---|
| 71 | {
|
|---|
| 72 | *(.MIPS.events.rodata${RELOCATING+ .MIPS.events.gnu.linkonce.r*})
|
|---|
| 73 | }
|
|---|
| 74 | .MIPS.content.rodata ${RELOCATING-0} :
|
|---|
| 75 | {
|
|---|
| 76 | *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*})
|
|---|
| 77 | }"
|
|---|