8ded5a0fc3
* elf-bfd.h: Formatting. (_bfd_elf_map_sections_to_segments): Declare. * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame_hdr): Don't clear program_header_size. * elf.c (get_program_header_size): Move. Don't use or set saved program_header_size here. (elf_modify_segment_map): New function. Split out from.. (assign_file_positions_for_load_sections): ..here. Assert header size is correct. Remove dead code. (_bfd_elf_map_sections_to_segments): Rename from map_sections_to_segments. Make global. Use get_program_header_size when we need estimate of header size. Call elf_modify_segment_map. Set program_header_size. (print_segment_map): Delete. (_bfd_elf_sizeof_headers): If segment_map available, get the actual size. * elf32-arm.c (elf32_arm_symbian_modify_segment_map): Make safe for calling more than once. * elf32-bfin.c (elf32_bfinfdpic_modify_segment_map): Likewise. * elf32-frv.c (elf32_frvfdpic_modify_segment_map): Likewise. * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise. * elf32-i370.c (elf_backend_add_symbol_hook): Delete. (elf_backend_additional_program_headers): Delete. (elf_backend_modify_segment_map): Delete. * elf64-hppa.c (elf64_hppa_modify_segment_map): Convert to ISO C. * elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise. * doc/bfdint.texi: Delete SIZEOF_HEADERS difficulties. ld/ * Makefile.am (ELF_DEPS): Define. Use in emul file deps. Fix many ELF emul file deps that incorrectly said they needed elf32.em instead of generic.em. Add genelf.em as required. * Makefile.in: Regenerate. * ldlang.c (lang_process): Call ldemul_finish before lang_check_section_addresses. * emulparams/arcelf.sh: Generic elf target needs genelf. * emulparams/d30v_e.sh: Likewise. * emulparams/d30v_o.sh: Likewise. * emulparams/d30velf.sh: Likewise. * emulparams/elf32_dlx.sh: Likewise. * emulparams/elf32_i860.sh: Likewise. * emulparams/elf32fr30.sh: Likewise. * emulparams/elf32frv.sh: Likewise. * emulparams/elf32iq10.sh: Likewise. * emulparams/elf32iq2000.sh: Likewise. * emulparams/elf32mt.sh: Likewise. * emulparams/mn10200.sh: Likewise. * emulparams/or32.sh: Likewise. * emulparams/or32elf.sh: Likewise. * emulparams/pjelf.sh: Likewise. * emulparams/msp430all.sh: Likewise. Extract common entries. * emulparams/pjlelf.sh: Include pjelf.sh. * emulparams/elf32frvfd.sh (EXTRA_EM_FILE): Unset. * emulparams/mn10300.sh (EXTRA_EM_FILE): Unset. * emultempl/elf-generic.em: New file. * emultempl/genelf.em: New file. * emultempl/elf32.em: Include elf-generic.em. (gld${EMULATION_NAME}_layout_sections_again): Delete. (gld${EMULATION_NAME}_finish): Call gld${EMULATION_NAME}_map_segments. * emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise. (gld${EMULATION_NAME}_finish): Rename from hppaelf_finish. Call gld${EMULATION_NAME}_map_segments. (LDEMUL_FINISH): Update. * emultempl/mmo.em: Correct comment. Include elf-bfd.h and source elf-generic.em. (mmo_finish): Call gld${EMULATION_NAME}_map_segments. * emultempl/ppc64elf.em (ppc_layout_sections_again): Likewise. (gld${EMULATION_NAME}_finish): Rename from ppc_finish. Call gld${EMULATION_NAME}_map_segments. (LDEMUL_FINISH): Update. ld/testsuite/ * ld-elf/eh1.d: Update for fewer program headers. * ld-elf/eh2.d: Likewise. * ld-elf/eh3.d: Likewise.
554 lines
8.4 KiB
Bash
554 lines
8.4 KiB
Bash
#!/bin/sh
|
|
|
|
# This called by genscripts_extra.sh
|
|
|
|
MSP430_NAME=${EMULATION_NAME}
|
|
|
|
SCRIPT_NAME=elf32msp430
|
|
TEMPLATE_NAME=generic
|
|
EXTRA_EM_FILE=genelf
|
|
OUTPUT_FORMAT="elf32-msp430"
|
|
MACHINE=
|
|
MAXPAGESIZE=1
|
|
EMBEDDED=yes
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x110" ] ; then
|
|
ARCH=msp:11
|
|
ROM_START=0xfc00
|
|
ROM_SIZE=0x3e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1101" ] ; then
|
|
ARCH=msp:110
|
|
ROM_START=0xfc00
|
|
ROM_SIZE=0x3e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1111" ] ; then
|
|
ARCH=msp:110
|
|
ROM_START=0xf800
|
|
ROM_SIZE=0x07e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x112" ] ; then
|
|
ARCH=msp:11
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0xfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1121" ] ; then
|
|
ARCH=msp:110
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0x0fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1122" ] ; then
|
|
ARCH=msp:110
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0x0fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1132" ] ; then
|
|
ARCH=msp:110
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x122" ] ; then
|
|
ARCH=msp:12
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0xfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1222" ] ; then
|
|
ARCH=msp:12
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0xfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x123" ] ; then
|
|
ARCH=msp:12
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1232" ] ; then
|
|
ARCH=msp:12
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x133" ] ; then
|
|
ARCH=msp:13
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1331" ] ; then
|
|
ARCH=msp:13
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x135" ] ; then
|
|
ARCH=msp:13
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1351" ] ; then
|
|
ARCH=msp:13
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x147" ] ; then
|
|
ARCH=msp:14
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1K
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x148" ] ; then
|
|
ARCH=msp:14
|
|
ROM_START=0x4000
|
|
ROM_SIZE=0xbfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x149" ] ; then
|
|
ARCH=msp:14
|
|
ROM_START=0x1100
|
|
ROM_SIZE=0xeee0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x155" ] ; then
|
|
ARCH=msp:15
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x156" ] ; then
|
|
ARCH=msp:15
|
|
ROM_START=0xa000
|
|
ROM_SIZE=0x5fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x157" ] ; then
|
|
ARCH=msp:15
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1K
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x167" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1K
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x168" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x4000
|
|
ROM_SIZE=0xbfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x169" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x1100
|
|
ROM_SIZE=0xeee0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1610" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x1100
|
|
RAM_SIZE=0x1400
|
|
STACK=0x2500
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1611" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x4000
|
|
ROM_SIZE=0xbfe0
|
|
RAM_START=0x1100
|
|
RAM_SIZE=0x2800
|
|
STACK=0x3900
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x1612" ] ; then
|
|
ARCH=msp:16
|
|
ROM_START=0x2500
|
|
ROM_SIZE=0xdae0
|
|
RAM_START=0x1100
|
|
RAM_SIZE=0x1400
|
|
STACK=0x2500
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x2101" ] ; then
|
|
ARCH=msp:21
|
|
ROM_START=0xFC00
|
|
ROM_SIZE=0x03e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x2111" ] ; then
|
|
ARCH=msp:21
|
|
ROM_START=0xF800
|
|
ROM_SIZE=0x07e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x2121" ] ; then
|
|
ARCH=msp:21
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0x0fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x2131" ] ; then
|
|
ARCH=msp:21
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x311" ] ; then
|
|
ARCH=msp:31
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xf800
|
|
ROM_SIZE=0x07e0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=128
|
|
STACK=0x280
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x312" ] ; then
|
|
ARCH=msp:31
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0x0fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x313" ] ; then
|
|
ARCH=msp:31
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x314" ] ; then
|
|
ARCH=msp:31
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xd000
|
|
ROM_SIZE=0x2fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x315" ] ; then
|
|
ARCH=msp:31
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x323" ] ; then
|
|
ARCH=msp:32
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x325" ] ; then
|
|
ARCH=msp:32
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x336" ] ; then
|
|
ARCH=msp:33
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0xa000
|
|
ROM_SIZE=0x5fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x337" ] ; then
|
|
ARCH=msp:33
|
|
SCRIPT_NAME=elf32msp430_3
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x412" ] ; then
|
|
ARCH=msp:41
|
|
ROM_START=0xf000
|
|
ROM_SIZE=0x0fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x413" ] ; then
|
|
ARCH=msp:41
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x415" ] ; then
|
|
ARCH=msp:41
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x417" ] ; then
|
|
ARCH=msp:41
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x435" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x436" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0xa000
|
|
ROM_SIZE=0x5fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x437" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x447" ] ; then
|
|
ARCH=msp:44
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x448" ] ; then
|
|
ARCH=msp:44
|
|
ROM_START=0x4000
|
|
ROM_SIZE=0xbfe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430x449" ] ; then
|
|
ARCH=msp:44
|
|
ROM_START=0x1100
|
|
ROM_SIZE=0xeee0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xE423" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xE425" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xE427" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xG437" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=1024
|
|
STACK=0x600
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xG438" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0x4000
|
|
ROM_SIZE=0xbef0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xG439" ] ; then
|
|
ARCH=msp:43
|
|
ROM_START=0x1100
|
|
ROM_SIZE=0xeee0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x0800
|
|
STACK=0xa00
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xW423" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0xe000
|
|
ROM_SIZE=0x1fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=256
|
|
STACK=0x300
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xW425" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0xc000
|
|
ROM_SIZE=0x3fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=512
|
|
STACK=0x400
|
|
fi
|
|
|
|
if [ "${MSP430_NAME}" = "msp430xW427" ] ; then
|
|
ARCH=msp:42
|
|
ROM_START=0x8000
|
|
ROM_SIZE=0x7fe0
|
|
RAM_START=0x0200
|
|
RAM_SIZE=0x400
|
|
STACK=0x600
|
|
fi
|