2004-12-22 23:29:25 +08:00
|
|
|
# gas target specific configuration file. This is a -*- sh -*- file.
|
2012-12-18 00:56:12 +08:00
|
|
|
#
|
2021-01-01 06:58:58 +08:00
|
|
|
# Copyright (C) 2012-2021 Free Software Foundation, Inc.
|
2012-12-18 00:56:12 +08:00
|
|
|
#
|
|
|
|
# This file is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
2015-10-07 21:20:19 +08:00
|
|
|
#
|
2012-12-18 00:56:12 +08:00
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
2015-10-07 21:20:19 +08:00
|
|
|
#
|
2012-12-18 00:56:12 +08:00
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; see the file COPYING3. If not see
|
|
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
#
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
# This is invoked by configure. Putting it in a separate shell file
|
|
|
|
# lets us skip running autoconf when modifying target specific
|
|
|
|
# information.
|
|
|
|
|
|
|
|
# Input shell variables:
|
|
|
|
# targ a configuration target name, such as i686-pc-linux-gnu.
|
|
|
|
|
|
|
|
# Output shell variables:
|
|
|
|
# cpu_type canonical gas cpu type; identifies the config/tc-* files
|
|
|
|
# fmt output format; identifies the config/obj-* files
|
|
|
|
# em emulation; identifies the config/te-* files
|
|
|
|
|
|
|
|
# Optional output shell variables; these are not always set:
|
2012-01-24 05:42:04 +08:00
|
|
|
# arch the default architecture; sets DEFAULT_ARCH on some systems
|
2004-12-22 23:29:25 +08:00
|
|
|
# endian "big" or "little"; used on bi-endian systems
|
|
|
|
|
|
|
|
cpu_type=
|
|
|
|
fmt=
|
2005-03-21 18:26:18 +08:00
|
|
|
em=generic
|
|
|
|
bfd_gas=no
|
2004-12-22 23:29:25 +08:00
|
|
|
arch=
|
|
|
|
endian=
|
|
|
|
|
|
|
|
eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
|
|
|
|
|
|
|
|
# Check for architecture variants. Set cpu_type and, optionally,
|
|
|
|
# endian and arch.
|
|
|
|
# Note: This table is alpha-sorted, please try to keep it that way.
|
|
|
|
case ${cpu} in
|
2017-05-22 16:50:19 +08:00
|
|
|
aarch64) cpu_type=aarch64 endian=little arch=aarch64;;
|
|
|
|
aarch64_be) cpu_type=aarch64 endian=big arch=aarch64;;
|
2004-12-22 23:29:25 +08:00
|
|
|
alpha*) cpu_type=alpha ;;
|
2005-07-18 22:13:36 +08:00
|
|
|
am33_2.0) cpu_type=mn10300 endian=little ;;
|
2015-10-07 21:20:19 +08:00
|
|
|
arc*eb) cpu_type=arc endian=big ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
arm*be|arm*b) cpu_type=arm endian=big ;;
|
|
|
|
arm*) cpu_type=arm endian=little ;;
|
2005-09-30 23:05:07 +08:00
|
|
|
bfin*) cpu_type=bfin endian=little ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
c4x*) cpu_type=tic4x ;;
|
2007-06-29 22:09:34 +08:00
|
|
|
cr16*) cpu_type=cr16 endian=little ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
crisv32) cpu_type=cris arch=crisv32 ;;
|
|
|
|
crx*) cpu_type=crx endian=little ;;
|
bfd:
* Makefile.am (ALL_MACHINES): Add cpu-epiphany.lo .
(ALL_MACHINES_CFILES): Add cpu-epiphany.c .
(BFD32_BACKENDS): Add elf32-epiphany.lo .
(BFD32_BACKENDS_CFILES): Add elf32-epiphany.c .
* Makefile.in, bfd-in2.h, configure, libbfd.h: Regenerate.
* archures.c (bfd_arch_epiphany): Add.
(bfd_mach_epiphany16, bfd_mach_epiphany32): Define.
(bfd_epiphany_arch): Declare.
(bfd_archures_list): Add &bfd_epiphany_arch.
* config.bfd (epiphany-*-elf): New target case.
* configure.in (bfd_elf32_epiphany_vec): New target vector case.
* reloc.c (BFD_RELOC_EPIPHANY_SIMM8): New relocation.
(BFD_RELOC_EPIPHANY_SIMM24, BFD_RELOC_EPIPHANY_HIGH): Likewise.
(BFD_RELOC_EPIPHANY_LOW, BFD_RELOC_EPIPHANY_SIMM11): Likewise.
(BFD_RELOC_EPIPHANY_IMM11, BFD_RELOC_EPIPHANY_IMM8): Likewise.
* targets.c (bfd_elf32_epiphany_vec): Declare.
(_bfd_target_vector): Add bfd_elf32_epiphany_vec.
* po/SRC-POTFILES.in, po/bfd.pot: Regenerate.
* cpu-epiphany.c, elf32-epiphany.c: New files.
binutils:
* readelf.c (include "elf/epiphany.h")
(guess_is_rela, dump_relocation): Handle EM_ADAPTEVA_EPIPHANY.
(get_machine_name, is_32bit_abs_reloc, is_32bit_pcrel_reloc): Likewise.
(is_16bit_abs_reloc, is_none_reloc): Likewise.
* po/binutils.pot: Regenerate.
cpu:
* cpu/epiphany.cpu, cpu/epiphany.opc: New files.
gas:
* NEWS: Mention addition of Adapteva Epiphany support.
* config/tc-epiphany.c, config/tc-epiphany.h: New files.
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-epiphany.c .
(TARGET_CPU_HFILES): Add config/tc-epiphany.h .
* Makefile.in, configure, doc/Makefile.in, po/POTFILES.in: Regenerate.
* configure.in: Also set using_cgen for epiphany.
* configure.tgt: Handle epiphany.
* doc/Makefile.am (CPU_DOCS): Add c-epiphany.texi .
* doc/all.texi: Set EPIPHANY.
* doc/as.texinfo: Add EPIPHANY-specific text.
* doc/c-epiphany.texi: New file.
* po/gas.pot: Regenerate.
gas/testsuite:
* gas/epiphany: New directory.
include:
* dis-asm.h (print_insn_epiphany): Declare.
* elf/epiphany.h: New file.
* elf/common.h (EM_ADAPTEVA_EPIPHANY): Define.
ld:
* NEWS: Mention addition of Adapteva Epiphany support.
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32epiphany.c .
(eelf32epiphany.c): New rule.
* Makefile.in: Regenerate.
* configure.tgt: Handle epiphany-*-elf.
* po/ld.pot: Regenerate.
* testsuite/ld-srec/srec.exp: xfail epiphany.
* emulparams/elf32epiphany.sh: New file.
opcodes:
* Makefile.am (HFILES): Add epiphany-desc.h and epiphany-opc.h .
(TARGET_LIBOPCODES_CFILES): Add epiphany-asm.c, epiphany-desc.c,
epiphany-dis.c, epiphany-ibld.c and epiphany-opc.c .
(CLEANFILES): Add stamp-epiphany.
(EPIPHANY_DEPS): Set. Make CGEN-generated Epiphany files depend on it.
(stamp-epiphany): New rule.
* Makefile.in, configure, po/POTFILES.in, po/opcodes.pot: Regenerate.
* configure.in: Handle bfd_epiphany_arch.
* disassemble.c (ARCH_epiphany): Define.
(disassembler): Handle bfd_arch_epiphany.
* epiphany-asm.c, epiphany-desc.c, epiphany-desc.h: New files.
* epiphany-dis.c, epiphany-ibld.c, epiphany-opc.c: Likewise.
* epiphany-opc.h: Likewise.
2011-10-25 19:18:16 +08:00
|
|
|
epiphany*) cpu_type=epiphany endian=little ;;
|
2006-12-24 10:48:59 +08:00
|
|
|
fido) cpu_type=m68k ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
hppa*) cpu_type=hppa ;;
|
|
|
|
i[3-7]86) cpu_type=i386 arch=i386;;
|
2017-04-04 00:13:19 +08:00
|
|
|
ia16) cpu_type=i386 arch=i386;;
|
2004-12-22 23:29:25 +08:00
|
|
|
ia64) cpu_type=ia64 ;;
|
2012-01-24 05:42:04 +08:00
|
|
|
ip2k) cpu_type=ip2k endian=big ;;
|
|
|
|
iq2000) cpu_type=iq2000 endian=big ;;
|
2010-02-19 11:36:06 +08:00
|
|
|
lm32) cpu_type=lm32 ;;
|
2010-08-04 12:21:06 +08:00
|
|
|
m32c) cpu_type=m32c endian=little ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
m32r) cpu_type=m32r endian=big ;;
|
|
|
|
m32rle) cpu_type=m32r endian=little ;;
|
2005-07-18 22:13:36 +08:00
|
|
|
m5200) cpu_type=m68k ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
m68008) cpu_type=m68k ;;
|
2005-07-18 22:13:36 +08:00
|
|
|
m680[012346]0) cpu_type=m68k ;;
|
|
|
|
m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
m683??) cpu_type=m68k ;;
|
2018-05-18 22:26:18 +08:00
|
|
|
s12z) cpu_type=s12z ;;
|
2010-02-27 01:27:00 +08:00
|
|
|
mep) cpu_type=mep endian=little ;;
|
2012-11-10 00:25:12 +08:00
|
|
|
microblazeel*) cpu_type=microblaze endian=little;;
|
|
|
|
microblaze*) cpu_type=microblaze endian=big;;
|
2004-12-22 23:29:25 +08:00
|
|
|
mips*el) cpu_type=mips endian=little ;;
|
|
|
|
mips*) cpu_type=mips endian=big ;;
|
2010-02-19 11:36:06 +08:00
|
|
|
mt) cpu_type=mt endian=big ;;
|
2013-12-13 19:52:32 +08:00
|
|
|
nds32be) cpu_type=nds32 endian=big ;;
|
|
|
|
nds32le) cpu_type=nds32 endian=little ;;
|
2014-04-22 22:57:47 +08:00
|
|
|
or1k* | or1knd*) cpu_type=or1k endian=big ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
pjl*) cpu_type=pj endian=little ;;
|
|
|
|
pj*) cpu_type=pj endian=big ;;
|
|
|
|
powerpc*le*) cpu_type=ppc endian=little ;;
|
|
|
|
powerpc*) cpu_type=ppc endian=big ;;
|
RISC-V: Implement support for big endian targets.
RISC-V instruction/code is always little endian, but data might be
big-endian. Therefore, we can not use the original bfd_get/bfd_put
to get/put the code for big endian targets. Add new riscv_get_insn
and riscv_put_insn to always get/put code as little endian can resolve
the problem. Just remember to update them once we have supported
the 48-bit/128-bit instructions in the future patches.
bfd/
* config.bfd: Added targets riscv64be*-*-*, riscv32be*-*-* and
riscvbe*-*-*. Also added riscv_elf[32|64]_be_vec.
* configure.ac: Handle riscv_elf[32|64]_be_vec.
* configure: Regenerate.
* elfnn-riscv.c: Include <limits.h> and define CHAR_BIT for
riscv_is_insn_reloc.
(riscv_get_insn): RISC-V instructions are always little endian, but
bfd_get may be used for big-endian, so add new riscv_get_insn to handle
the insturctions.
(riscv_put_insn): Likewsie.
(riscv_is_insn_reloc): Check if we are relocaing an instruction.
(perform_relocation): Call riscv_is_insn_reloc to decide if we should
use riscv_[get|put]_insn or bfd_[get|put].
(riscv_zero_pcrel_hi_reloc): Use riscv_[get|put]_insn, bfd_[get|put]l32
or bfd_[get|put]l16 for code.
(riscv_elf_relocate_section): Likewise.
(riscv_elf_finish_dynamic_symbol): Likewise.
(riscv_elf_finish_dynamic_sections): Likewise.
(_bfd_riscv_relax_call): Likewise.
(_bfd_riscv_relax_lui): Likewise.
(_bfd_riscv_relax_align): Likewise.
(_bfd_riscv_relax_pc): Likewise.
(riscv_elf_object_p): Handled for big endian.
(TARGET_BIG_SYM, TARGET_BIG_NAME): Defined.
* targets.c: Add riscv_elf[32|64]_be_vec.
(_bfd_target_vector): Likewise.
gas/
* config/tc-riscv.c (riscv_target_format): Add elf64-bigriscv and
elf32-bigriscv.
(install_insn): Always write instructions as little endian.
(riscv_make_nops): Likewise.
(md_convert_frag_branch): Likewise.
(md_number_to_chars): Write data in target endianness.
(options, md_longopts): Add -mbig-endian and -mlittle-endian options.
(md_parse_option): Handle the endian options.
* config/tc-riscv.h: Only define TARGET_BYTES_BIG_ENDIAN if not
already defined.
* configure.tgt: Added riscv64be*, riscv32be*, riscvbe*.
ld/
* configure.tgt: Added riscvbe-*-*, riscv32be*-*-*, riscv64be*-*-*,
riscv32be*-*-linux*, and riscv64be*-*-linux*.
* Makefile.am: Added eelf32briscv.c, eelf32briscv_ilp32f.c and
eelf32briscv_ilp32.c.
* Makefile.in: Regenerate.
* emulparams/elf32briscv.sh: Added.
* emulparams/elf32briscv_ilp32.sh: Likewise.
* emulparams/elf32briscv_ilp32f.sh: Likewise.
* emulparams/elf64briscv.sh: Likewise.
* emulparams/elf64briscv_lp64.sh: Likewise.
* emulparams/elf64briscv_lp64f.sh: Likewise.
2021-01-06 05:50:32 +08:00
|
|
|
riscv64be*) cpu_type=riscv endian=big arch=riscv64 ;;
|
2016-11-02 00:45:57 +08:00
|
|
|
riscv64*) cpu_type=riscv endian=little arch=riscv64 ;;
|
RISC-V: Implement support for big endian targets.
RISC-V instruction/code is always little endian, but data might be
big-endian. Therefore, we can not use the original bfd_get/bfd_put
to get/put the code for big endian targets. Add new riscv_get_insn
and riscv_put_insn to always get/put code as little endian can resolve
the problem. Just remember to update them once we have supported
the 48-bit/128-bit instructions in the future patches.
bfd/
* config.bfd: Added targets riscv64be*-*-*, riscv32be*-*-* and
riscvbe*-*-*. Also added riscv_elf[32|64]_be_vec.
* configure.ac: Handle riscv_elf[32|64]_be_vec.
* configure: Regenerate.
* elfnn-riscv.c: Include <limits.h> and define CHAR_BIT for
riscv_is_insn_reloc.
(riscv_get_insn): RISC-V instructions are always little endian, but
bfd_get may be used for big-endian, so add new riscv_get_insn to handle
the insturctions.
(riscv_put_insn): Likewsie.
(riscv_is_insn_reloc): Check if we are relocaing an instruction.
(perform_relocation): Call riscv_is_insn_reloc to decide if we should
use riscv_[get|put]_insn or bfd_[get|put].
(riscv_zero_pcrel_hi_reloc): Use riscv_[get|put]_insn, bfd_[get|put]l32
or bfd_[get|put]l16 for code.
(riscv_elf_relocate_section): Likewise.
(riscv_elf_finish_dynamic_symbol): Likewise.
(riscv_elf_finish_dynamic_sections): Likewise.
(_bfd_riscv_relax_call): Likewise.
(_bfd_riscv_relax_lui): Likewise.
(_bfd_riscv_relax_align): Likewise.
(_bfd_riscv_relax_pc): Likewise.
(riscv_elf_object_p): Handled for big endian.
(TARGET_BIG_SYM, TARGET_BIG_NAME): Defined.
* targets.c: Add riscv_elf[32|64]_be_vec.
(_bfd_target_vector): Likewise.
gas/
* config/tc-riscv.c (riscv_target_format): Add elf64-bigriscv and
elf32-bigriscv.
(install_insn): Always write instructions as little endian.
(riscv_make_nops): Likewise.
(md_convert_frag_branch): Likewise.
(md_number_to_chars): Write data in target endianness.
(options, md_longopts): Add -mbig-endian and -mlittle-endian options.
(md_parse_option): Handle the endian options.
* config/tc-riscv.h: Only define TARGET_BYTES_BIG_ENDIAN if not
already defined.
* configure.tgt: Added riscv64be*, riscv32be*, riscvbe*.
ld/
* configure.tgt: Added riscvbe-*-*, riscv32be*-*-*, riscv64be*-*-*,
riscv32be*-*-linux*, and riscv64be*-*-linux*.
* Makefile.am: Added eelf32briscv.c, eelf32briscv_ilp32f.c and
eelf32briscv_ilp32.c.
* Makefile.in: Regenerate.
* emulparams/elf32briscv.sh: Added.
* emulparams/elf32briscv_ilp32.sh: Likewise.
* emulparams/elf32briscv_ilp32f.sh: Likewise.
* emulparams/elf64briscv.sh: Likewise.
* emulparams/elf64briscv_lp64.sh: Likewise.
* emulparams/elf64briscv_lp64f.sh: Likewise.
2021-01-06 05:50:32 +08:00
|
|
|
riscv32be*|riscvbe*) cpu_type=riscv endian=big arch=riscv32 ;;
|
2018-07-28 05:35:29 +08:00
|
|
|
riscv32* | riscv*) cpu_type=riscv endian=little arch=riscv32 ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
rs6000*) cpu_type=ppc ;;
|
2011-11-02 11:09:11 +08:00
|
|
|
rl78*) cpu_type=rl78 ;;
|
2009-09-29 22:17:19 +08:00
|
|
|
rx) cpu_type=rx ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
s390x*) cpu_type=s390 arch=s390x ;;
|
|
|
|
s390*) cpu_type=s390 arch=s390 ;;
|
2010-02-19 11:36:06 +08:00
|
|
|
score*l) cpu_type=score endian=little ;;
|
|
|
|
score*) cpu_type=score endian=big ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
sh*le) cpu_type=sh endian=little ;;
|
|
|
|
sh*) cpu_type=sh endian=big ;;
|
2017-01-04 19:49:00 +08:00
|
|
|
sparc64* | sparcv9*) cpu_type=sparc arch=v9-64 ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
sparc86x*) cpu_type=sparc arch=sparc86x ;;
|
2005-07-18 22:13:36 +08:00
|
|
|
sparclet*) cpu_type=sparc arch=sparclet ;;
|
|
|
|
sparclite*) cpu_type=sparc arch=sparclite ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
|
2012-02-26 03:51:34 +08:00
|
|
|
tilegx*be) cpu_type=tilegx endian=big ;;
|
|
|
|
tilegx*) cpu_type=tilegx endian=little ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
v850*) cpu_type=v850 ;;
|
2014-12-06 23:42:26 +08:00
|
|
|
visium) cpu_type=visium endian=big ;;
|
2017-03-30 17:57:21 +08:00
|
|
|
wasm32) cpu_type=wasm32 endian=little ;;
|
2011-06-20 21:23:22 +08:00
|
|
|
x86_64*) cpu_type=i386 arch=x86_64;;
|
2012-05-03 21:12:08 +08:00
|
|
|
xgate) cpu_type=xgate ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
xtensa*) cpu_type=xtensa arch=xtensa ;;
|
|
|
|
*) cpu_type=${cpu} ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
# Assign object format. Set fmt, em, and bfd_gas.
|
|
|
|
generic_target=${cpu_type}-$vendor-$os
|
|
|
|
# Note: This table is alpha-sorted, please try to keep it that way.
|
|
|
|
case ${generic_target} in
|
2017-01-25 15:24:47 +08:00
|
|
|
aarch64*-*-elf*) fmt=elf;;
|
2016-12-02 18:44:29 +08:00
|
|
|
aarch64*-*-fuchsia*) fmt=elf;;
|
2021-02-02 01:31:47 +08:00
|
|
|
aarch64*-*-genode*) fmt=elf;;
|
2017-05-22 16:50:19 +08:00
|
|
|
aarch64*-*-linux*) fmt=elf em=linux
|
|
|
|
case ${cpu}-${os} in
|
|
|
|
aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;;
|
|
|
|
esac ;;
|
2020-10-05 21:54:00 +08:00
|
|
|
aarch64*-*-netbsd*) fmt=elf em=nbsd;;
|
2012-08-13 22:52:54 +08:00
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
alpha-*-*vms*) fmt=evax ;;
|
|
|
|
alpha-*-osf*) fmt=ecoff ;;
|
2013-05-02 01:27:46 +08:00
|
|
|
alpha-*-linux*ecoff*) fmt=ecoff ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
alpha-*-linux-*) fmt=elf em=linux ;;
|
2016-06-24 09:24:50 +08:00
|
|
|
alpha-*-netbsd* | alpha-*-openbsd*) fmt=elf em=nbsd ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
arc-*-elf*) fmt=elf ;;
|
2016-06-02 22:03:47 +08:00
|
|
|
arc*-*-linux*) fmt=elf bfd_gas=yes ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2016-05-23 20:53:07 +08:00
|
|
|
arm-*-phoenix*) fmt=elf ;;
|
bfd:
* config.bfd (thumb-*-oabi): Don't handle in list of obsolete
targets.
(strongarm*, thumb*, xscale*): Remove architectures.
(strongarm-*-kaos*, thumb-*-coff, thumb-*-elf, thumb-epoc-pe*,
thumb-*-pe*, strongarm-*-elf, strongarm-*-coff, xscale-*-elf,
xscale-*-coff): Remove targets.
binutils:
* configure.in (thumb-*-pe*): Remove.
* configure: Regenerate.
binutils/testsuite:
* binutils-all/objcopy.exp (*arm*-*-coff): Change to arm*-*-coff.
(xscale-*-coff, thumb*-*-coff, thumb*-*-pe): Don't handle.
gas:
* configure.tgt (strongarm*be, strongarm*b, strongarm*,
xscale*be|xscale*b, xscale*): Remove architectures.
(thumb-*-coff, thumb-*-rtems*, thumb-*-elf, thumb-epoc-pe,
thumb-*-pe, xscale-*-coff, xscale-*-elf): Remove targets.
gas/testsuite:
* gas/all/gas.exp (*arm*-*-coff): Change to arm*-*-coff.
(thumb*-*-coff, thumb*-*-pe*): Don;t handle.
* gas/arm/arm.exp (*arm*-*-*): Change to arm*-*-*.
(*xscale*-*-*): Don't handle.
* gas/cfi/cfi.exp (xscale*-*): Don't handle.
* gas/elf/elf.exp (*arm*-*-*): Change to arm*-*-*.
(xscale*-*-*): Don't handle.
ld:
* configure.tgt (thumb-*-linux-* | thumb-*-uclinux*,
strongarm-*-coff, strongarm-*-elf, strongarm-*-kaos*,
thumb-*-coff, thumb-*-elf, thumb-epoc-pe, thumb-*-pe,
xscale-*-coff, xscale-*-elf): Remove targets.
ld/testsuite:
* ld-selective/selective.exp (xscale-*-*): Don't handle.
* ld-srec/srec.exp (strongarm*-*-*, xscale*-*-*, thumb-*-*): Don't
handle.
(*arm*-*-*): Change to arm*-*-*.
(strongarm*-*-coff, xscale*-*-coff, thumb-*-coff*, thumb-*-pe*,
thumb-*-elf*, strongarm*-*-*, thumb-*-*): Remove xfails.
* ld-undefined/undefined.exp (thumb*-*-pe*, thumb*-*-pe*): Remove
commented-out xfails.
(thumb-elf): Remove reference in comment.
* lib/ld-lib.exp (strongarm*-*-*, xscale*-*-*, thumb-*-*): Don't
handle.
2011-04-07 01:09:56 +08:00
|
|
|
arm-*-elf) fmt=elf ;;
|
2021-02-02 01:31:47 +08:00
|
|
|
arm-*-eabi* | arm-*-rtems* | arm-*-genode*) fmt=elf em=armeabi ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
arm-*-kaos*) fmt=elf ;;
|
|
|
|
arm-*-conix*) fmt=elf ;;
|
2014-08-19 22:51:43 +08:00
|
|
|
arm-*-freebsd[89].* | armeb-*-freebsd[89].*)
|
|
|
|
fmt=elf em=freebsd ;;
|
|
|
|
arm-*-freebsd* | armeb-*-freebsd*) fmt=elf em=armfbsdeabi ;;
|
|
|
|
arm*-*-freebsd*) fmt=elf em=armfbsdvfp ;;
|
2006-02-13 23:08:43 +08:00
|
|
|
arm-*-linux-*eabi*) fmt=elf em=armlinuxeabi ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
arm-*-linux-*) fmt=elf em=linux ;;
|
2007-04-05 02:02:39 +08:00
|
|
|
arm-*-uclinux*eabi*) fmt=elf em=armlinuxeabi ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
arm-*-uclinux*) fmt=elf em=linux ;;
|
* elf32-arm.c (elf32_arm_nacl_plt0_entry, elf32_arm_nacl_plt_entry):
New variables.
(struct elf32_arm_link_hash_table): New member `nacl_p'.
(elf32_arm_link_hash_table_create): Initialize it.
(elf32_arm_nacl_link_hash_table_create): New function.
(arm_movw_immediate, arm_movt_immediate): New functions.
(elf32_arm_populate_plt_entry): Test HTAB->nacl_p.
(elf32_arm_finish_dynamic_sections): Likewise.
(elf32_arm_output_plt_map_1): Likewise.
(bfd_elf32_littlearm_nacl_vec, bfd_elf32_bigarm_nacl_vec):
New backend vector stanza.
(elf32_arm_nacl_modify_segment_map): New function.
* config.bfd: Handle arm-*-nacl*, armeb-*-nacl*.
* targets.c: Support bfd_elf32_{big,little}_nacl_vec.
* configure.in: Likewise.
(bfd_elf32_bigarm_nacl_vec): Add elf-nacl.lo here.
(bfd_elf32_littlearm_nacl_vec): Likewise.
(bfd_elf32_bigarm_vec, bfd_elf32_littlearm_vec): Likewise.
(bfd_elf32_bigarm_symbian_vec): Likewise.
(bfd_elf32_littlearm_symbian_vec): Likewise.
(bfd_elf32_bigarm_vxworks_vec): Likewise.
(bfd_elf32_littlearm_vxworks_vec): Likewise.
* configure: Regenerated.
* configure.tgt (arm-*-nacl*): Match it.
* config/te-nacl.h (FPU_DEFAULT, EABI_DEFAULT): Define.
(LOCAL_LABELS_DOLLAR): Define.
* config/tc-arm.c (elf32_arm_target_format) [TE_NACL]:
Use nacl format variants.
* gas/elf/elf.exp (run_elf_list_test): Treat arm-*-nacl* targets
as -armeabi.
* gas/arm/any-idiv.d: Match *-*-nacl* targets too.
* gas/arm/arch4t.d: Likewise.
* gas/arm/arch4t-eabi.d: Likewise.
* gas/arm/attr-any-armv4t.d: Likewise.
* gas/arm/attr-any-thumbv6.d: Likewise.
* gas/arm/attr-cpu-directive.d: Likewise.
* gas/arm/attr-default.d: Likewise.
* gas/arm/attr-march-all.d: Likewise.
* gas/arm/attr-march-armv1.d: Likewise.
* gas/arm/attr-march-armv2a.d: Likewise.
* gas/arm/attr-march-armv2.d: Likewise.
* gas/arm/attr-march-armv2s.d: Likewise.
* gas/arm/attr-march-armv3.d: Likewise.
* gas/arm/attr-march-armv3m.d: Likewise.
* gas/arm/attr-march-armv4.d: Likewise.
* gas/arm/attr-march-armv4t.d: Likewise.
* gas/arm/attr-march-armv4txm.d: Likewise.
* gas/arm/attr-march-armv4xm.d: Likewise.
* gas/arm/attr-march-armv5.d: Likewise.
* gas/arm/attr-march-armv5t.d: Likewise.
* gas/arm/attr-march-armv5te.d: Likewise.
* gas/arm/attr-march-armv5tej.d: Likewise.
* gas/arm/attr-march-armv5texp.d: Likewise.
* gas/arm/attr-march-armv5txm.d: Likewise.
* gas/arm/attr-march-armv6.d: Likewise.
* gas/arm/attr-march-armv6j.d: Likewise.
* gas/arm/attr-march-armv6k.d: Likewise.
* gas/arm/attr-march-armv6k+sec.d: Likewise.
* gas/arm/attr-march-armv6kt2.d: Likewise.
* gas/arm/attr-march-armv6-m.d: Likewise.
* gas/arm/attr-march-armv6-m+os.d: Likewise.
* gas/arm/attr-march-armv6s-m.d: Likewise.
* gas/arm/attr-march-armv6t2.d: Likewise.
* gas/arm/attr-march-armv6z.d: Likewise.
* gas/arm/attr-march-armv6zk.d: Likewise.
* gas/arm/attr-march-armv6zkt2.d: Likewise.
* gas/arm/attr-march-armv6zt2.d: Likewise.
* gas/arm/attr-march-armv7-a.d: Likewise.
* gas/arm/attr-march-armv7a.d: Likewise.
* gas/arm/attr-march-armv7-a+idiv.d: Likewise.
* gas/arm/attr-march-armv7-a+mp.d: Likewise.
* gas/arm/attr-march-armv7-a+sec.d: Likewise.
* gas/arm/attr-march-armv7-a+sec+virt.d: Likewise.
* gas/arm/attr-march-armv7-a+virt.d: Likewise.
* gas/arm/attr-march-armv7.d: Likewise.
* gas/arm/attr-march-armv7em.d: Likewise.
* gas/arm/attr-march-armv7-m.d: Likewise.
* gas/arm/attr-march-armv7m.d: Likewise.
* gas/arm/attr-march-armv7-r.d: Likewise.
* gas/arm/attr-march-armv7r.d: Likewise.
* gas/arm/attr-march-armv7-r+mp.d: Likewise.
* gas/arm/attr-march-iwmmxt2.d: Likewise.
* gas/arm/attr-march-iwmmxt.d: Likewise.
* gas/arm/attr-march-xscale.d: Likewise.
* gas/arm/attr-mcpu.d: Likewise.
* gas/arm/attr-mfpu-arm1020e.d: Likewise.
* gas/arm/attr-mfpu-arm1020t.d: Likewise.
* gas/arm/attr-mfpu-arm1136jf-s.d: Likewise.
* gas/arm/attr-mfpu-arm1136jfs.d: Likewise.
* gas/arm/attr-mfpu-arm7500fe.d: Likewise.
* gas/arm/attr-mfpu-fpa10.d: Likewise.
* gas/arm/attr-mfpu-fpa11.d: Likewise.
* gas/arm/attr-mfpu-fpa.d: Likewise.
* gas/arm/attr-mfpu-fpe2.d: Likewise.
* gas/arm/attr-mfpu-fpe3.d: Likewise.
* gas/arm/attr-mfpu-fpe.d: Likewise.
* gas/arm/attr-mfpu-maverick.d: Likewise.
* gas/arm/attr-mfpu-neon.d: Likewise.
* gas/arm/attr-mfpu-neon-fp16.d: Likewise.
* gas/arm/attr-mfpu-softfpa.d: Likewise.
* gas/arm/attr-mfpu-softvfp.d: Likewise.
* gas/arm/attr-mfpu-softvfp+vfp.d: Likewise.
* gas/arm/attr-mfpu-vfp10.d: Likewise.
* gas/arm/attr-mfpu-vfp10-r0.d: Likewise.
* gas/arm/attr-mfpu-vfp3.d: Likewise.
* gas/arm/attr-mfpu-vfp9.d: Likewise.
* gas/arm/attr-mfpu-vfp.d: Likewise.
* gas/arm/attr-mfpu-vfpv2.d: Likewise.
* gas/arm/attr-mfpu-vfpv3-d16.d: Likewise.
* gas/arm/attr-mfpu-vfpv3.d: Likewise.
* gas/arm/attr-mfpu-vfpv4-d16.d: Likewise.
* gas/arm/attr-mfpu-vfpv4.d: Likewise.
* gas/arm/attr-mfpu-vfpxd.d: Likewise.
* gas/arm/attr-names.d: Likewise.
* gas/arm/attr-order.d: Likewise.
* gas/arm/attr-override-cpu-directive.d: Likewise.
* gas/arm/attr-override-mcpu.d: Likewise.
* gas/arm/got_prel.d: Likewise.
* gas/arm/mapdir.d: Likewise.
* gas/arm/mapmisc.d: Likewise.
* gas/arm/mapsecs.d: Likewise.
* gas/arm/mapshort-eabi.d: Likewise.
* gas/arm/mapshort-elf.d: Likewise.
* gas/arm/mov-highregs-any.d: Likewise.
* gas/arm/mov-lowregs-any.d: Likewise.
* gas/arm/pr12198-1.d: Likewise.
* gas/arm/pr12198-2.d: Likewise.
* gas/arm/thumb.d: Likewise.
* gas/arm/thumb-eabi.d: Likewise.
* gas/arm/thumbrel.d: Likewise.
* configure.tgt (arm*-*-nacl*, arm*b-*-nacl*): Handle them.
* emulparams/armelf_nacl.sh: New file.
* emulparams/armelfb_nacl.sh: New file.
* Makefile.am (ALL_EMULATION_SOURCES): Add earmelf_nacl.c
and earmelfb_nacl.c here.
(earmelf_nacl.c, earmelfb_nacl.c): New targets.
* Makefile.in: Regenerated.
* ld-arm/arm-elf.exp (armelftests): Split out into ...
(armelftests_common, armelftests_nonacl): ... these two.
(armeabitests): Split out into ...
(armeabitests_common, armeabitests_nonacl): ... these two.
Omit _nonacl sets for arm*-*-nacl* targets.
* ld-arm/farcall-mix.d: Don't match exact addresses, only symbolic ones.
* ld-arm/farcall-mix2.d: Likewise.
* ld-arm/farcall-group.d: Likewise.
* ld-arm/tls-gdesc-got.d: Match variant file formats too.
Accept some variation in exact addresses.
* ld-arm/thumb2-b-interwork.d: Match variant file formats too.
Fix regexps not to care about exact addresses where not relevant.
* ld-arm/thumb2-bl-undefweak.d: Match any hex strings, not any
strings of particular exact lengths.
* ld-arm/thumb2-bl-undefweak1.d: Likewise.
* ld-arm/arm-app.r: Match variant file formats too.
* ld-arm/arm-app-abs32.r: Likewise.
* ld-arm/arm-lib.d: Likewise.
* ld-arm/arm-lib.r: Likewise.
* ld-arm/arm-static-app.r: Likewise.
* ld-arm/armv4-bx.d: Likewise.
* ld-arm/data-only-map.d: Likewise.
* ld-arm/group-relocs.d: Likewise.
* ld-arm/jump19.d: Likewise.
* ld-arm/reloc-boundaries.d: Likewise.
* ld-arm/thumb1-bl.d: Likewise.
* ld-arm/thumb2-bl.d: Likewise.
* ld-arm/tls-app.d: Likewise.
* ld-arm/tls-app.r: Likewise.
* ld-arm/tls-gdierelax.d: Likewise.
* ld-arm/tls-gdierelax2.d: Likewise.
* ld-arm/tls-gdlerelax.d: Likewise.
* ld-arm/tls-lib.d: Likewise.
* ld-arm/tls-lib.r: Likewise.
* ld-arm/tls-mixed.r: Likewise.
* ld-arm/vfp11-fix-none.d: Likewise.
* ld-arm/vfp11-fix-scalar.d: Likewise.
* ld-arm/vfp11-fix-vector.d: Likewise.
* ld-arm/arm-static-app.d: Likewise.
Fix regexps not to care about exact number of leading spaces.
* ld-arm/arm-app-abs32.d: Likewise.
* ld-arm/fix-arm1176-off.d: Likewise.
* ld-arm/fix-arm1176-on.d: Likewise.
* ld-arm/arm-elf.exp: Treat nacl targets like eabi targets.
2012-04-12 21:01:15 +08:00
|
|
|
arm-*-nacl*) fmt=elf em=nacl ;;
|
2010-02-19 11:36:06 +08:00
|
|
|
arm-*-netbsdelf*) fmt=elf em=nbsd ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
arm-*-nto*) fmt=elf ;;
|
2009-06-18 10:11:03 +08:00
|
|
|
arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
|
|
|
|
fmt=coff em=wince-pe ;;
|
bfd:
* config.bfd (thumb-*-oabi): Don't handle in list of obsolete
targets.
(strongarm*, thumb*, xscale*): Remove architectures.
(strongarm-*-kaos*, thumb-*-coff, thumb-*-elf, thumb-epoc-pe*,
thumb-*-pe*, strongarm-*-elf, strongarm-*-coff, xscale-*-elf,
xscale-*-coff): Remove targets.
binutils:
* configure.in (thumb-*-pe*): Remove.
* configure: Regenerate.
binutils/testsuite:
* binutils-all/objcopy.exp (*arm*-*-coff): Change to arm*-*-coff.
(xscale-*-coff, thumb*-*-coff, thumb*-*-pe): Don't handle.
gas:
* configure.tgt (strongarm*be, strongarm*b, strongarm*,
xscale*be|xscale*b, xscale*): Remove architectures.
(thumb-*-coff, thumb-*-rtems*, thumb-*-elf, thumb-epoc-pe,
thumb-*-pe, xscale-*-coff, xscale-*-elf): Remove targets.
gas/testsuite:
* gas/all/gas.exp (*arm*-*-coff): Change to arm*-*-coff.
(thumb*-*-coff, thumb*-*-pe*): Don;t handle.
* gas/arm/arm.exp (*arm*-*-*): Change to arm*-*-*.
(*xscale*-*-*): Don't handle.
* gas/cfi/cfi.exp (xscale*-*): Don't handle.
* gas/elf/elf.exp (*arm*-*-*): Change to arm*-*-*.
(xscale*-*-*): Don't handle.
ld:
* configure.tgt (thumb-*-linux-* | thumb-*-uclinux*,
strongarm-*-coff, strongarm-*-elf, strongarm-*-kaos*,
thumb-*-coff, thumb-*-elf, thumb-epoc-pe, thumb-*-pe,
xscale-*-coff, xscale-*-elf): Remove targets.
ld/testsuite:
* ld-selective/selective.exp (xscale-*-*): Don't handle.
* ld-srec/srec.exp (strongarm*-*-*, xscale*-*-*, thumb-*-*): Don't
handle.
(*arm*-*-*): Change to arm*-*-*.
(strongarm*-*-coff, xscale*-*-coff, thumb-*-coff*, thumb-*-pe*,
thumb-*-elf*, strongarm*-*-*, thumb-*-*): Remove xfails.
* ld-undefined/undefined.exp (thumb*-*-pe*, thumb*-*-pe*): Remove
commented-out xfails.
(thumb-elf): Remove reference in comment.
* lib/ld-lib.exp (strongarm*-*-*, xscale*-*-*, thumb-*-*): Don't
handle.
2011-04-07 01:09:56 +08:00
|
|
|
arm-*-pe) fmt=coff em=pe ;;
|
2016-12-02 18:44:29 +08:00
|
|
|
arm-*-fuchsia*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2005-09-30 23:05:07 +08:00
|
|
|
avr-*-*) fmt=elf bfd_gas=yes ;;
|
2008-04-24 02:40:34 +08:00
|
|
|
|
|
|
|
bfin-*-linux-uclibc) fmt=fdpicelf em=linux ;;
|
|
|
|
bfin-*-uclinux*) fmt=elf em=linux ;;
|
2005-09-30 23:05:07 +08:00
|
|
|
bfin-*elf) fmt=elf ;;
|
2008-04-24 02:40:34 +08:00
|
|
|
|
2010-02-19 11:36:06 +08:00
|
|
|
cr16-*-elf*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2005-03-23 23:35:50 +08:00
|
|
|
cris-*-linux-* | crisv32-*-linux-*)
|
2005-03-21 18:26:18 +08:00
|
|
|
fmt=multi em=linux ;;
|
|
|
|
cris-*-* | crisv32-*-*) fmt=multi ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2010-02-19 11:36:06 +08:00
|
|
|
crx-*-elf*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
Add support for the C_SKY series of processors.
This patch series is a new binutils port for C-SKY processors, including support for both the V1 and V2 processor variants. V1 is derived from the MCore architecture while V2 is substantially different, with mixed 16- and 32-bit instructions, a larger register set, a different (but overlapping) ABI, etc. There is support for bare-metal ELF targets and Linux with both glibc and uClibc.
This code is being contributed jointly by C-SKY Microsystems and Mentor Graphics. C-SKY is responsible for the technical content and has proposed Lifang Xia and Yunhai Shang as port maintainers. (Note that C-SKY does have a corporate copyright assignment on file with the FSF.) Mentor Graphics' role has been cleaning up the code, adding documentation and additional test cases, etc, to address issues we anticipated reviewers would complain about.
bfd * Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES): Add C-SKY.
(BFD32_BACKENDS, BFD_BACKENDS_CFILES): Likewise.
* Makefile.in: Regenerated.
* archures.c (enum bfd_architecture): Add bfd_arch_csky and
related bfd_mach defines.
(bfd_csky_arch): Declare.
(bfd_archures_list): Add C-SKY.
* bfd-in.h (elf32_csky_build_stubs): Declare.
(elf32_csky_size_stubs): Declare.
(elf32_csky_next_input_section: Declare.
(elf32_csky_setup_section_lists): Declare.
* bfd-in2.h: Regenerated.
* config.bfd: Add C-SKY.
* configure.ac: Likewise.
* configure: Regenerated.
* cpu-csky.c: New file.
* elf-bfd.h (enum elf_target_id): Add C-SKY.
* elf32-csky.c: New file.
* libbfd.h: Regenerated.
* reloc.c: Add C-SKY relocations.
* targets.c (csky_elf32_be_vec, csky_elf32_le_vec): Declare.
(_bfd_target_vector): Add C-SKY target vector entries.
binutils* readelf.c: Include elf/csky.h.
(guess_is_rela): Handle EM_CSKY.
(dump_relocations): Likewise.
(get_machine_name): Likewise.
(is_32bit_abs_reloc): Likewise.
include * dis-asm.h (csky_symbol_is_valid): Declare.
* opcode/csky.h: New file.
opcodes * Makefile.am (TARGET_LIBOPCODES_CFILES): Add csky-dis.c.
* Makefile.in: Regenerated.
* configure.ac: Add C-SKY.
* configure: Regenerated.
* csky-dis.c: New file.
* csky-opc.h: New file.
* disassemble.c (ARCH_csky): Define.
(disassembler, disassemble_init_for_target): Add case for ARCH_csky.
* disassemble.h (print_insn_csky, csky_get_disassembler): Declare.
gas * Makefile.am (TARGET_CPU_CFILES): Add entry for C-SKY.
(TARGET_CPU_HFILES, TARGET_ENV_HFILES): Likewise.
* Makefile.in: Regenerated.
* config/tc-csky.c: New file.
* config/tc-csky.h: New file.
* config/te-csky_abiv1.h: New file.
* config/te-csky_abiv1_linux.h: New file.
* config/te-csky_abiv2.h: New file.
* config/te-csky_abiv2_linux.h: New file.
* configure.tgt: Add C-SKY.
* doc/Makefile.am (CPU_DOCS): Add entry for C-SKY.
* doc/Makefile.in: Regenerated.
* doc/all.texi: Set CSKY feature.
* doc/as.texi (Overview): Add C-SKY options.
(Machine Dependencies): Likewise.
* doc/c-csky.texi: New file.
* testsuite/gas/csky/*: New test cases.
ld * Makefile.am (ALL_EMULATION_SOURCES): Add C-SKY emulations.
(ecskyelf.c, ecskyelf_linux.c): New rules.
* Makefile.in: Regenerated.
* configure.tgt: Add C-SKY.
* emulparams/cskyelf.sh: New file.
* emulparams/cskyelf_linux.sh: New file.
* emultempl/cskyelf.em: New file.
* gen-doc.texi: Add C-SKY.
* ld.texi: Likewise.
(Options specific to C-SKY targets): New section.
* testsuite/ld-csky/*: New tests.
2018-07-30 19:24:14 +08:00
|
|
|
csky-*-elf*abiv1) fmt=elf em=csky_abiv1 ;;
|
|
|
|
csky-*-elf*) fmt=elf em=csky_abiv2 ;;
|
|
|
|
csky-*-linux*abiv1) fmt=elf em=csky_abiv1_linux ;;
|
|
|
|
csky-*-linux*) fmt=elf em=csky_abiv2_linux ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
d10v-*-*) fmt=elf ;;
|
|
|
|
d30v-*-*) fmt=elf ;;
|
|
|
|
dlx-*-*) fmt=elf ;;
|
|
|
|
|
2019-05-24 01:05:12 +08:00
|
|
|
bpf-*-*) fmt=elf ;;
|
bfd:
* Makefile.am (ALL_MACHINES): Add cpu-epiphany.lo .
(ALL_MACHINES_CFILES): Add cpu-epiphany.c .
(BFD32_BACKENDS): Add elf32-epiphany.lo .
(BFD32_BACKENDS_CFILES): Add elf32-epiphany.c .
* Makefile.in, bfd-in2.h, configure, libbfd.h: Regenerate.
* archures.c (bfd_arch_epiphany): Add.
(bfd_mach_epiphany16, bfd_mach_epiphany32): Define.
(bfd_epiphany_arch): Declare.
(bfd_archures_list): Add &bfd_epiphany_arch.
* config.bfd (epiphany-*-elf): New target case.
* configure.in (bfd_elf32_epiphany_vec): New target vector case.
* reloc.c (BFD_RELOC_EPIPHANY_SIMM8): New relocation.
(BFD_RELOC_EPIPHANY_SIMM24, BFD_RELOC_EPIPHANY_HIGH): Likewise.
(BFD_RELOC_EPIPHANY_LOW, BFD_RELOC_EPIPHANY_SIMM11): Likewise.
(BFD_RELOC_EPIPHANY_IMM11, BFD_RELOC_EPIPHANY_IMM8): Likewise.
* targets.c (bfd_elf32_epiphany_vec): Declare.
(_bfd_target_vector): Add bfd_elf32_epiphany_vec.
* po/SRC-POTFILES.in, po/bfd.pot: Regenerate.
* cpu-epiphany.c, elf32-epiphany.c: New files.
binutils:
* readelf.c (include "elf/epiphany.h")
(guess_is_rela, dump_relocation): Handle EM_ADAPTEVA_EPIPHANY.
(get_machine_name, is_32bit_abs_reloc, is_32bit_pcrel_reloc): Likewise.
(is_16bit_abs_reloc, is_none_reloc): Likewise.
* po/binutils.pot: Regenerate.
cpu:
* cpu/epiphany.cpu, cpu/epiphany.opc: New files.
gas:
* NEWS: Mention addition of Adapteva Epiphany support.
* config/tc-epiphany.c, config/tc-epiphany.h: New files.
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-epiphany.c .
(TARGET_CPU_HFILES): Add config/tc-epiphany.h .
* Makefile.in, configure, doc/Makefile.in, po/POTFILES.in: Regenerate.
* configure.in: Also set using_cgen for epiphany.
* configure.tgt: Handle epiphany.
* doc/Makefile.am (CPU_DOCS): Add c-epiphany.texi .
* doc/all.texi: Set EPIPHANY.
* doc/as.texinfo: Add EPIPHANY-specific text.
* doc/c-epiphany.texi: New file.
* po/gas.pot: Regenerate.
gas/testsuite:
* gas/epiphany: New directory.
include:
* dis-asm.h (print_insn_epiphany): Declare.
* elf/epiphany.h: New file.
* elf/common.h (EM_ADAPTEVA_EPIPHANY): Define.
ld:
* NEWS: Mention addition of Adapteva Epiphany support.
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32epiphany.c .
(eelf32epiphany.c): New rule.
* Makefile.in: Regenerate.
* configure.tgt: Handle epiphany-*-elf.
* po/ld.pot: Regenerate.
* testsuite/ld-srec/srec.exp: xfail epiphany.
* emulparams/elf32epiphany.sh: New file.
opcodes:
* Makefile.am (HFILES): Add epiphany-desc.h and epiphany-opc.h .
(TARGET_LIBOPCODES_CFILES): Add epiphany-asm.c, epiphany-desc.c,
epiphany-dis.c, epiphany-ibld.c and epiphany-opc.c .
(CLEANFILES): Add stamp-epiphany.
(EPIPHANY_DEPS): Set. Make CGEN-generated Epiphany files depend on it.
(stamp-epiphany): New rule.
* Makefile.in, configure, po/POTFILES.in, po/opcodes.pot: Regenerate.
* configure.in: Handle bfd_epiphany_arch.
* disassemble.c (ARCH_epiphany): Define.
(disassembler): Handle bfd_arch_epiphany.
* epiphany-asm.c, epiphany-desc.c, epiphany-desc.h: New files.
* epiphany-dis.c, epiphany-ibld.c, epiphany-opc.c: Likewise.
* epiphany-opc.h: Likewise.
2011-10-25 19:18:16 +08:00
|
|
|
epiphany-*-*) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
fr30-*-*) fmt=elf ;;
|
|
|
|
frv-*-*linux*) fmt=elf em=linux;;
|
|
|
|
frv-*-*) fmt=elf ;;
|
|
|
|
|
2015-01-28 13:06:43 +08:00
|
|
|
ft32-*-*) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
hppa-*-linux*)
|
|
|
|
case ${cpu} in
|
|
|
|
hppa*64*) fmt=elf em=hppalinux64 ;;
|
|
|
|
hppa*) fmt=elf em=linux ;;
|
|
|
|
esac ;;
|
|
|
|
hppa-*-*elf*) fmt=elf em=hppa ;;
|
|
|
|
hppa-*-lites*) fmt=elf em=hppa ;;
|
|
|
|
hppa-*-netbsd*) fmt=elf em=nbsd ;;
|
|
|
|
hppa-*-openbsd*) fmt=elf em=hppa ;;
|
|
|
|
hppa-*-osf*) fmt=som em=hppa ;;
|
|
|
|
hppa-*-hpux11*)
|
|
|
|
case ${cpu} in
|
|
|
|
hppa*64*) fmt=elf em=hppa64 ;;
|
|
|
|
hppa*) fmt=som em=hppa ;;
|
|
|
|
esac ;;
|
|
|
|
hppa-*-hpux*) fmt=som em=hppa ;;
|
|
|
|
hppa-*-mpeix*) fmt=som em=hppa ;;
|
|
|
|
hppa-*-bsd*) fmt=som em=hppa ;;
|
|
|
|
hppa-*-hiux*) fmt=som em=hppa ;;
|
|
|
|
|
2017-01-25 15:24:47 +08:00
|
|
|
h8300-*-elf) fmt=elf ;;
|
2015-02-24 01:04:53 +08:00
|
|
|
h8300-*-linux*) fmt=elf em=linux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
i386-*-beospe*) fmt=coff em=pe ;;
|
|
|
|
i386-*-beos*) fmt=elf ;;
|
2015-05-12 03:01:57 +08:00
|
|
|
i386-*-elfiamcu) fmt=elf arch=iamcu ;;
|
2015-05-01 20:02:30 +08:00
|
|
|
i386-*-elf*) fmt=elf ;;
|
2016-12-02 18:44:29 +08:00
|
|
|
i386-*-fuchsia*) fmt=elf ;;
|
2021-02-02 01:31:47 +08:00
|
|
|
i386-*-genode*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
i386-*-bsd*) fmt=aout em=386bsd ;;
|
|
|
|
i386-*-netbsdpe*) fmt=coff em=pe ;;
|
|
|
|
i386-*-netbsd*-gnu* | \
|
|
|
|
i386-*-knetbsd*-gnu | \
|
2018-04-16 20:44:01 +08:00
|
|
|
i386-*-netbsd* | \
|
2005-04-12 06:31:37 +08:00
|
|
|
i386-*-openbsd*) fmt=elf em=nbsd ;;
|
2012-05-05 04:01:03 +08:00
|
|
|
i386-*-linux-*) fmt=elf em=linux
|
|
|
|
case ${cpu}-${os} in
|
|
|
|
x86_64*-linux-gnux32) arch=x86_64:32 ;;
|
|
|
|
esac ;;
|
2005-03-21 18:26:18 +08:00
|
|
|
i386-*-lynxos*) fmt=elf em=lynx ;;
|
2017-01-11 23:05:53 +08:00
|
|
|
i386-*-redox*) fmt=elf ;;
|
2008-09-26 15:02:44 +08:00
|
|
|
i386-*-solaris*) fmt=elf em=solaris ;;
|
2011-03-28 19:18:27 +08:00
|
|
|
i386-*-freebsd* \
|
|
|
|
| i386-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
i386-*-msdosdjgpp* \
|
2005-07-11 15:49:07 +08:00
|
|
|
| i386-*-go32*) fmt=coff em=go32 ;;
|
2005-11-16 11:44:10 +08:00
|
|
|
i386-*-gnu*) fmt=elf em=gnu ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
i386-*-msdos*) fmt=aout ;;
|
|
|
|
i386-*-moss*) fmt=elf ;;
|
|
|
|
i386-*-pe) fmt=coff em=pe ;;
|
2013-04-19 17:10:28 +08:00
|
|
|
i386-*-cygwin*)
|
|
|
|
case ${cpu} in
|
|
|
|
x86_64*) fmt=coff em=pep ;;
|
|
|
|
i*) fmt=coff em=pe ;;
|
|
|
|
esac ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
i386-*-interix*) fmt=coff em=interix ;;
|
2007-01-09 01:21:50 +08:00
|
|
|
i386-*-mingw*)
|
|
|
|
case ${cpu} in
|
|
|
|
x86_64*) fmt=coff em=pep ;;
|
|
|
|
i*) fmt=coff em=pe ;;
|
|
|
|
esac ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
i386-*-nto-qnx*) fmt=elf ;;
|
|
|
|
i386-*-*nt*) fmt=coff em=pe ;;
|
2005-12-28 01:42:45 +08:00
|
|
|
i386-*-rdos*) fmt=elf ;;
|
2009-07-02 16:09:35 +08:00
|
|
|
i386-*-darwin*) fmt=macho ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2017-04-04 00:13:19 +08:00
|
|
|
ia16-*-elf*) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
ia64-*-elf*) fmt=elf ;;
|
* include/elf/ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO,
EF_IA_64_ARCHVER_1): New macros. Minor reformatting.
* bfd/Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo
(BFD32_BACKENDS_CFILES): Add new file vmsutil.c
(vmsutil.lo): Add dependency rule
* bfd/Makefile.in: Regenerate
* bfd/config.bfd (ia64*-*-*vms*): Add case.
* bfd/configure.in (bfd_elf64_ia64_vms_vec): Add case.
* bfd/configure: Regenerate
* bfd/vmsutil.[ch]: New files
* bfd/elf-bfd.h (struct bfd_elf_special_section): Change type of
attr to bfd_vma.
* bfd/elfxx-ia64.c (elfNN_vms_post_process_headers,
elfNN_vms_section_processing, elfNN_vms_final_write_processing,
elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr,
elfNN_vms_object_p): New functions
* bfd/targets.c (bfd_elf64_ia64_vms_vec): New target.
* gas/configure.tgt(ia64-*-*vms*): New target.
* gas/dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern.
* gas/tc.h (md_number_to_chars): Declare iff undefined.
* gas/config/obj-elf.c (obj_elf_change_section): Change type of
arg attr to bfd_vma.
(obj_elf_parse_section_letters): Return a bfd_vma. Change type of
variables attr, md_attr to bfd_vma.
(obj_elf_section_word): Likewise.
(obj_elf_section): Change type of variable attr to bfd_vma
* gas/config/obj-elf.h (obj_elf_change_section): Change type of
arg attr to bfd_vma
* gas/config/tc-ia64.c (bfdver.h,time.h): Include.
(ia64_elf_section_letter): Now returns a bfd_vma.
Handle VMS specific attributes.
(ia64_elf_section_flags): Arg attr now a bfd_vma.
(ia64_init): Don't turn on dependency checking for VMS.
(ia64_target_format): Check for VMS flag bit.
(do_alias): Hande decc$ functions.
(get_vms_time): New function.
(ia64_vms_note): New function.
* gas/config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma.
(ia64_elf_section_flags): Arg attr now a bfd_vma.
(tc_init_after_args): Define for VMS.
* gas/config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma.
(alpha_elf_section_flags): Change type of arg attr to bfd_vma.
* gas/config/tc-alpha.h: Likewise.
* gas/config/tc-i386.c (x86_64_section_letter): Return a bfd_vma.
(x86_64_section_word): Return a bfd_vma.
* gas/config/tc-i386.h: Likewise.
* gas/config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg
attr to bfd_vma.
* gas/config/tc-ip2k.h: Likewise.
* gas/config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma.
(mep_elf_section_flags): Change type of arg attr to bfd_vma.
* gas/config/tc-mep.h: Likewise.
* gas/config/tc-ppc.c (ppc_section_letter): Return a bfd_vma.
(ppc_section_word): Return a bfd_vma.
(ppc_section_flags): Change type of arg attr to bfd_vma.
* gas/config/tc-ppc.h: Likewise.
* gas/config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR,
DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME):
New file with new macros
* gas/dwarf2dbg.c (get_filenum, out_file_list): Default and call new
macros.
2009-01-15 20:42:52 +08:00
|
|
|
ia64-*-*vms*) fmt=elf em=vms ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
ia64-*-aix*) fmt=elf em=ia64aix ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
ia64-*-linux-*) fmt=elf em=linux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
ia64-*-hpux*) fmt=elf em=hpux ;;
|
|
|
|
ia64-*-netbsd*) fmt=elf em=nbsd ;;
|
|
|
|
|
|
|
|
ip2k-*-*) fmt=elf ;;
|
|
|
|
|
2010-02-19 11:36:06 +08:00
|
|
|
iq2000-*-elf) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2008-12-24 03:10:25 +08:00
|
|
|
lm32-*-*) fmt=elf ;;
|
|
|
|
|
2017-01-25 15:24:47 +08:00
|
|
|
m32c-*-elf) fmt=elf ;;
|
2009-01-19 23:40:56 +08:00
|
|
|
|
2017-01-25 15:24:47 +08:00
|
|
|
m32r-*-elf*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
m32r-*-linux*) fmt=elf em=linux;;
|
|
|
|
|
|
|
|
m68hc11-*-* | m6811-*-*) fmt=elf ;;
|
|
|
|
m68hc12-*-* | m6812-*-*) fmt=elf ;;
|
|
|
|
|
|
|
|
m68k-*-elf*) fmt=elf ;;
|
|
|
|
m68k-*-sysv4*) fmt=elf em=svr4 ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
m68k-*-linux-*) fmt=elf em=linux ;;
|
2009-11-04 17:52:00 +08:00
|
|
|
m68k-*-uclinux*) fmt=elf em=uclinux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
m68k-*-gnu*) fmt=elf ;;
|
|
|
|
m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
|
|
|
|
|
2018-05-18 22:26:18 +08:00
|
|
|
s12z-*-*) fmt=elf ;;
|
|
|
|
|
2007-02-06 04:10:25 +08:00
|
|
|
mep-*-elf) fmt=elf ;;
|
|
|
|
|
2013-01-10 17:49:22 +08:00
|
|
|
metag-*-elf) fmt=elf ;;
|
|
|
|
metag-*-linux*) fmt=elf em=linux ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
mcore-*-elf) fmt=elf ;;
|
|
|
|
mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
|
|
|
|
|
Add support for Xilinx MicroBlaze processor.
* bfd/Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
* bfd/Makefile.in: Same.
* bfd/archures.c: Add bfd_arch_microblaze.
* bfd/bfd-in2.h: Regenerate.
* bfd/config.bfd: Add microblaze target.
* bfd/configure: Add bfd_elf32_microblaze_vec target.
* bfd/configure.in: Same.
* bfd/cpu-microblaze.c: New.
* bfd/elf32-microblaze.c: New.
* bfd/libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
* bfd/libbfd.h: Regenerate.
* bfd/reloc.c: Add MICROBLAZE relocations.
* bfd/section.c: Add struct relax_table and relax_count to section.
* bfd/targets.c: Add bfd_elf32_microblaze_vec.
* binutils/MAINTAINERS: Add self as maintainer.
* binutils/readelf.c: Include elf/microblaze.h, add EM_MICROBLAZE &
EM_MICROBLAZE_OLD to guess_is_rela(), dump_relocations(),
get_machine_name().
* config.sub: Add microblaze target.
* configure: Same.
* configure.ac: Same.
* gas/Makefile.am: add microblaze to CPU_TYPES, config/tc-microblaze.c to
TARGET_CPU_CFILES, config/tc-microblaze.h to TARGET_CPU_HFILES, add
DEP_microblaze_elf target.
* gas/Makefile.in: Same.
* gas/config/tc-microblaze.c: Add MicroBlaze assembler.
* gas/config/tc-microblaze.h: Add header for tc-microblaze.c.
* gas/configure: Add microblaze target.
* gas/configure.in: Same.
* gas/configure.tgt: Same.
* gas/doc/Makefile.am: Add c-microblaze.texi to CPU_DOCS.
* gas/doc/Makefile.in: Same.
* gas/doc/all.texi: Set MICROBLAZE.
* gas/doc/as.texinfo: Add MicroBlaze doc links.
* gas/doc/c-microblaze.texi: New MicroBlaze docs.
* include/dis-asm.h: Decl print_insn_microblaze().
* include/elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD.
* include/elf/microblaze.h: New reloc definitions.
* ld/Makefile.am: Add eelf32mb_linux.o, eelf32microblaze.o to
ALL_EMULATIONS, targets.
* ld/Makefile.in: Same.
* ld/configure.tgt: Add microblaze*-linux*, microblaze* targets.
* ld/emulparams/elf32mb_linux.sh: New.
* ld/emulparams/elf32microblaze.sh. New.
* ld/scripttempl/elfmicroblaze.sc: New.
* opcodes/Makefile.am: Add microblaze-opc.h to HFILES, microblaze-dis.c to
CFILES, microblaze-dis.lo to ALL_MACHINES, targets.
* opcodes/Makefile.in: Same.
* opcodes/configure: Add bfd_microblaze_arch target.
* opcodes/configure.in: Same.
* opcodes/disassemble.c: Define ARCH_microblaze, return
print_insn_microblaze().
* opcodes/microblaze-dis.c: New MicroBlaze disassembler.
* opcodes/microblaze-opc.h: New MicroBlaze opcode definitions.
* opcodes/microblaze-opcm.h: New MicroBlaze opcode types.
2009-08-07 01:38:04 +08:00
|
|
|
microblaze-*-*) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
mips-*-irix6*) fmt=elf em=irix ;;
|
|
|
|
mips-*-irix5*) fmt=elf em=irix ;;
|
|
|
|
mips*-*-linux*) fmt=elf em=tmips ;;
|
bfd/
2010-12-23 Robert Millan <rmh@gnu.org>
* config.bfd: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.host: Likewise.
* configure.in: Support for `bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
* configure: Regenerate.
* elf32-mips.c: New target for FreeBSD support
(same as traditional MIPS but overrides ELF_OSABI
with ELFOSABI_FREEBSD).
* elf64-mips.c: Likewise.
* elfn32-mips.c: Likewise.
* targets.c (_bfd_target_vector): Add
`bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
ld/
2010-12-14 Robert Millan <rmh@gnu.org>
* configure.tgt: Recognize mips-freebsd and mips-kfreebsd-gnu.
* emulparams/elf32btsmip_fbsd.sh: New file.
* emulparams/elf32btsmipn32_fbsd.sh: Likewise.
* emulparams/elf32ltsmip_fbsd.sh: Likewise.
* emulparams/elf32ltsmipn32_fbsd.sh: Likewise.
* emulparams/elf64btsmip_fbsd.sh: Likewise.
* emulparams/elf64ltsmip_fbsd.sh: Likewise.
* Makefile.am: Add build rules for `eelf32btsmip_fbsd.c',
`eelf32btsmipn32_fbsd.c', `eelf32ltsmip_fbsd.c',
`eelf32ltsmipn32_fbsd.c', `eelf64btsmip_fbsd.c' and
`eelf64ltsmip_fbsd.c'.
* Makefile.in: Regenerate.
gas/
2010-12-19 Robert Millan <rmh@gnu.org>
Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.c (ELF_TARGET): New macro. Generates target
names accordingly to whether TE_FreeBSD and whether TE_TMIPS
are defined.
(mips_target_format): Refactor code using ELF_TARGET().
(support_64bit_objects): Likewise.
* configure.in: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.tgt: Likewise.
* configure: Regenerate.
binutils/testsuite/
* binutils-all/readelf.exp: Handle MIPS FreeBSD targets.
gas/testsuite/
* gas/mips/e32el-rel2.d: Accept any file format.
* gas/mips/elf-rel.d: Likewise.
* gas/mips/elf-rel2.d: Likewise.
* gas/mips/elf-rel3.d: Likewise.
* gas/mips/elfel-rel.d: Likewise.
* gas/mips/elfel-rel2.d: Likewise.
* gas/mips/elfel-rel3.d: Likewise.
* gas/mips/ldstla-32-mips3-shared.d: Likewise.
* gas/mips/ldstla-32-mips3.d: Likewise.
* gas/mips/ldstla-32-shared.d: Likewise.
* gas/mips/ldstla-32.d: Likewise.
* gas/mips/ldstla-n64-shared.d: Likewise.
* gas/mips/ldstla-n64.d: Likewise.
* gas/mips/noat-1.d: Likewise.
* gas/mips/set-arch.d: Likewise.
* gas/mips/tls-o32.d: Likewise.
ld/testsuite/
* ld-mips-elf/mips-elf-flags.exp: Handle FreeBSD targets.
* ld-mips-elf/mips-elf.exp: Likewise.
* ld-mips-elf/mips16-call-global.d: Accept any file format.
* ld-mips-elf/mips16-intermix.d: Likewise.
2010-12-31 19:01:00 +08:00
|
|
|
mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
|
|
|
|
fmt=elf em=freebsd ;;
|
2018-01-27 07:05:05 +08:00
|
|
|
mips-*-sysv4* | mips-*-gnu*) fmt=elf em=tmips ;;
|
2014-09-10 19:41:28 +08:00
|
|
|
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
|
|
|
|
fmt=elf em=tmips ;;
|
2017-01-25 15:24:47 +08:00
|
|
|
mips-*-elf*) fmt=elf ;;
|
2006-02-16 16:05:02 +08:00
|
|
|
mips-*-netbsd*) fmt=elf em=tmips ;;
|
2005-04-15 00:55:49 +08:00
|
|
|
mips-*-openbsd*) fmt=elf em=tmips ;;
|
2018-01-27 07:05:05 +08:00
|
|
|
mips-*-windiss) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
mmix-*-*) fmt=elf ;;
|
|
|
|
|
|
|
|
mn10200-*-*) fmt=elf ;;
|
|
|
|
|
|
|
|
# cpu_type for am33_2.0 is set to mn10300
|
2005-03-21 18:26:18 +08:00
|
|
|
mn10300-*-linux*) fmt=elf em=linux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
mn10300-*-*) fmt=elf ;;
|
|
|
|
|
2014-07-27 20:51:20 +08:00
|
|
|
moxie-*-uclinux) fmt=elf em=linux ;;
|
|
|
|
moxie-*-moxiebox*) fmt=elf endian=little ;;
|
2010-02-19 11:36:06 +08:00
|
|
|
moxie-*-*) fmt=elf ;;
|
2015-10-07 21:20:19 +08:00
|
|
|
|
2005-12-12 19:25:08 +08:00
|
|
|
mt-*-elf) fmt=elf bfd_gas=yes ;;
|
2005-07-18 22:13:36 +08:00
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
msp430-*-*) fmt=elf ;;
|
|
|
|
|
2013-12-13 19:52:32 +08:00
|
|
|
nds32-*-elf*) fmt=elf ;;
|
|
|
|
nds32-*-linux*) fmt=elf em=linux ;;
|
|
|
|
|
2013-02-15 17:36:32 +08:00
|
|
|
nios2*-linux*) fmt=elf em=linux ;;
|
2013-02-07 07:22:26 +08:00
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
ns32k-pc532-mach*) fmt=aout em=pc532mach ;;
|
|
|
|
ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
|
|
|
|
ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
|
|
|
|
ns32k-*-*n*bsd*) fmt=aout em=nbsd532 ;;
|
|
|
|
|
2014-07-22 08:10:52 +08:00
|
|
|
or1k*-*-elf | or1k*-*-rtems*) fmt=elf endian=big ;;
|
|
|
|
or1k*-*-linux*) fmt=elf em=linux endian=big ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
pj*) fmt=elf ;;
|
|
|
|
|
|
|
|
ppc-*-aix5.[01]) fmt=coff em=aix5 ;;
|
2009-03-14 17:11:38 +08:00
|
|
|
ppc-*-aix[5-9].*) fmt=coff em=aix5 ;;
|
2014-12-12 13:32:34 +08:00
|
|
|
ppc-*-aix*) fmt=coff em=aix ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
ppc-*-beos*) fmt=coff ;;
|
|
|
|
ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
|
|
|
|
ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
ppc-*-linux-*) fmt=elf em=linux ;;
|
2008-09-26 15:02:44 +08:00
|
|
|
ppc-*-solaris*) fmt=elf em=solaris ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
ppc-*-macos*) fmt=coff em=macos ;;
|
|
|
|
ppc-*-nto*) fmt=elf ;;
|
|
|
|
ppc-*-kaos*) fmt=elf ;;
|
|
|
|
|
2016-12-28 04:43:38 +08:00
|
|
|
pru-*-*) fmt=elf ;;
|
|
|
|
|
RISC-V: Implement support for big endian targets.
RISC-V instruction/code is always little endian, but data might be
big-endian. Therefore, we can not use the original bfd_get/bfd_put
to get/put the code for big endian targets. Add new riscv_get_insn
and riscv_put_insn to always get/put code as little endian can resolve
the problem. Just remember to update them once we have supported
the 48-bit/128-bit instructions in the future patches.
bfd/
* config.bfd: Added targets riscv64be*-*-*, riscv32be*-*-* and
riscvbe*-*-*. Also added riscv_elf[32|64]_be_vec.
* configure.ac: Handle riscv_elf[32|64]_be_vec.
* configure: Regenerate.
* elfnn-riscv.c: Include <limits.h> and define CHAR_BIT for
riscv_is_insn_reloc.
(riscv_get_insn): RISC-V instructions are always little endian, but
bfd_get may be used for big-endian, so add new riscv_get_insn to handle
the insturctions.
(riscv_put_insn): Likewsie.
(riscv_is_insn_reloc): Check if we are relocaing an instruction.
(perform_relocation): Call riscv_is_insn_reloc to decide if we should
use riscv_[get|put]_insn or bfd_[get|put].
(riscv_zero_pcrel_hi_reloc): Use riscv_[get|put]_insn, bfd_[get|put]l32
or bfd_[get|put]l16 for code.
(riscv_elf_relocate_section): Likewise.
(riscv_elf_finish_dynamic_symbol): Likewise.
(riscv_elf_finish_dynamic_sections): Likewise.
(_bfd_riscv_relax_call): Likewise.
(_bfd_riscv_relax_lui): Likewise.
(_bfd_riscv_relax_align): Likewise.
(_bfd_riscv_relax_pc): Likewise.
(riscv_elf_object_p): Handled for big endian.
(TARGET_BIG_SYM, TARGET_BIG_NAME): Defined.
* targets.c: Add riscv_elf[32|64]_be_vec.
(_bfd_target_vector): Likewise.
gas/
* config/tc-riscv.c (riscv_target_format): Add elf64-bigriscv and
elf32-bigriscv.
(install_insn): Always write instructions as little endian.
(riscv_make_nops): Likewise.
(md_convert_frag_branch): Likewise.
(md_number_to_chars): Write data in target endianness.
(options, md_longopts): Add -mbig-endian and -mlittle-endian options.
(md_parse_option): Handle the endian options.
* config/tc-riscv.h: Only define TARGET_BYTES_BIG_ENDIAN if not
already defined.
* configure.tgt: Added riscv64be*, riscv32be*, riscvbe*.
ld/
* configure.tgt: Added riscvbe-*-*, riscv32be*-*-*, riscv64be*-*-*,
riscv32be*-*-linux*, and riscv64be*-*-linux*.
* Makefile.am: Added eelf32briscv.c, eelf32briscv_ilp32f.c and
eelf32briscv_ilp32.c.
* Makefile.in: Regenerate.
* emulparams/elf32briscv.sh: Added.
* emulparams/elf32briscv_ilp32.sh: Likewise.
* emulparams/elf32briscv_ilp32f.sh: Likewise.
* emulparams/elf64briscv.sh: Likewise.
* emulparams/elf64briscv_lp64.sh: Likewise.
* emulparams/elf64briscv_lp64f.sh: Likewise.
2021-01-06 05:50:32 +08:00
|
|
|
riscv*-*-*) fmt=elf ;;
|
2016-11-02 00:45:57 +08:00
|
|
|
|
2018-11-07 16:16:56 +08:00
|
|
|
rx-*-linux*) fmt=elf em=linux ;;
|
|
|
|
|
2005-03-23 23:35:50 +08:00
|
|
|
s390-*-linux-*) fmt=elf em=linux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
s390-*-tpf*) fmt=elf ;;
|
|
|
|
|
2010-02-19 11:36:06 +08:00
|
|
|
score-*-elf) fmt=elf ;;
|
2006-09-17 07:51:50 +08:00
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
sh*-*-linux*) fmt=elf em=linux
|
|
|
|
case ${cpu} in
|
|
|
|
sh*eb) endian=big ;;
|
|
|
|
*) endian=little ;;
|
|
|
|
esac ;;
|
2009-09-08 20:31:32 +08:00
|
|
|
sh*-*-netbsdelf*) fmt=elf em=nbsd
|
|
|
|
case ${cpu} in
|
|
|
|
sh*l*) endian=little ;;
|
|
|
|
*) endian=big ;;
|
|
|
|
esac ;;
|
2010-05-21 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
bfd/
* config.bfd (sh-*-uclinux* | sh[12]-*-uclinux*): Add
bfd_elf32_shl_vec, and FDPIC vectors to targ_selvecs.
* configure.in: Handle FDPIC vectors.
* elf32-sh-relocs.h: Add FDPIC and movi20 relocations.
* elf32-sh.c (DEFAULT_STACK_SIZE): Define.
(SYMBOL_FUNCDESC_LOCAL): Define. Use it instead of
SYMBOL_REFERENCES_LOCAL for function descriptors.
(fdpic_object_p): New.
(sh_reloc_map): Add FDPIC and movi20 relocations.
(sh_elf_info_to_howto, sh_elf_relocate_section): Handle new invalid
range.
(struct elf_sh_plt_info): Add got20 and short_plt. Update all
definitions.
(FDPIC_PLT_ENTRY_SIZE, FDPIC_PLT_LAZY_OFFSET): Define.
(fdpic_sh_plt_entry_be, fdpic_sh_plt_entry_le, fdpic_sh_plts): New.
(FDPIC_SH2A_PLT_ENTRY_SIZE, FDPIC_SH2A_PLT_LAZY_OFFSET): Define.
(fdpic_sh2a_plt_entry_be, fdpic_sh2a_plt_entry_le)
(fdpic_sh2a_short_plt_be, fdpic_sh2a_short_plt_le, fdpic_sh2a_plts):
New.
(get_plt_info): Handle FDPIC.
(MAX_SHORT_PLT): Define.
(get_plt_index, get_plt_offset): Handle short_plt.
(union gotref): New.
(struct elf_sh_link_hash_entry): Add funcdesc, rename tls_type to
got_type and adjust all uses. Add GOT_FUNCDESC.
(struct sh_elf_obj_tdata): Add local_funcdesc. Rename
local_got_tls_type to local_got_type.
(sh_elf_local_got_type): Renamed from sh_elf_local_got_tls_type. All
users changed.
(sh_elf_local_funcdesc): Define.
(struct elf_sh_link_hash_table): Add sfuncdesc, srelfuncdesc, fdpic_p,
and srofixup.
(sh_elf_link_hash_newfunc): Initialize new fields.
(sh_elf_link_hash_table_create): Set fdpic_p.
(sh_elf_omit_section_dynsym): New.
(create_got_section): Create .got.funcdesc, .rela.got.funcdesc
and .rofixup.
(allocate_dynrelocs): Allocate local function descriptors and space
for R_SH_FUNCDESC-related relocations, and for rofixups.
Handle GOT_FUNCDESC. Create fixups. Handle GOT entries which
require function descriptors.
(sh_elf_always_size_sections): Handle PT_GNU_STACK and __stacksize.
(sh_elf_modify_program_headers): New.
(sh_elf_size_dynamic_sections): Allocate function descriptors for
local symbols. Allocate .got.funcdesc contents. Allocate rofixups.
Handle local GOT entries of type GOT_FUNCDESC. Create fixups for
local GOT entries. Ensure that FDPIC libraries always have a PLTGOT
entry in the .dynamic section.
(sh_elf_add_dyn_reloc, sh_elf_got_offset, sh_elf_initialize_funcdesc)
(sh_elf_add_rofixup, sh_elf_osec_to_segment)
(sh_elf_osec_readonly_p, install_movi20_field): New functions.
(sh_elf_relocate_section): Handle new relocations, R_SH_FUNCDESC,
R_SH_GOTFUNCDESC and R_SH_GOTOFFFUNCDESC. Use sh_elf_got_offset
and .got.plt throughout to find _GLOBAL_OFFSET_TABLE_. Add rofixup
read-only section warnings. Handle undefined weak symbols. Generate
fixups for R_SH_DIR32 and GOT entries. Check for cross-segment
relocations and clear EF_SH_PIC. Handle 20-bit relocations.
Always generate R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_gc_sweep_hook): Handle R_SH_FUNCDESC, R_SH_GOTOFF20,
R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20, and R_SH_GOTOFFFUNCDESC.
Handle 20-bit relocations.
(sh_elf_copy_indirect_symbol): Copy function descriptor reference
counts.
(sh_elf_check_relocs): Handle new relocations. Make symbols
dynamic for FDPIC relocs. Account for rofixups. Error for FDPIC
symbol mismatches. Allocate a GOT for R_SH_DIR32. Allocate fixups
for R_SH_DIR32.
(sh_elf_copy_private_data): Copy PT_GNU_STACK size.
(sh_elf_merge_private_data): Copy initial flags. Do not clobber
non-mach flags. Set EF_SH_PIC for FDPIC. Reject FDPIC mismatches.
(sh_elf_finish_dynamic_symbol): Do not handle got_funcdesc entries
here. Rename sgot to sgotplt and srel to srelplt. Handle short_plt,
FDPIC descriptors, and got20. Create R_SH_FUNCDESC_VALUE for FDPIC.
Use install_movi20_field. Rename srel to srelgot. Always generate
R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_finish_dynamic_sections): Fill in the GOT pointer in rofixup.
Do not fill in reserved GOT entries for FDPIC. Correct DT_PLTGOT.
Rename sgot to sgotplt. Assert that the right number of rofixups
and dynamic relocations were allocated.
(sh_elf_use_relative_eh_frame, sh_elf_encode_eh_address): New.
(elf_backend_omit_section_dynsym): Use sh_elf_omit_section_dynsym.
(elf_backend_can_make_relative_eh_frame)
(elf_backend_can_make_lsda_relative_eh_frame)
(elf_backend_encode_eh_address): Define.
(TARGET_BIG_SYM, TARGET_BIG_NAME, TARGET_LITTLE_SYM)
(TARGET_LITTLE_NAME, elf_backend_modify_program_headers, elf32_bed):
Redefine for FDPIC vector.
* reloc.c: Add SH FDPIC and movi20 relocations.
* targets.c (_bfd_target_vector): Add FDPIC vectors.
* configure, bfd-in2.h, libbfd.h: Regenerated.
binutils/
* readelf.c (get_machine_flags): Handle EF_SH_PIC and EF_SH_FDPIC.
gas/
* config/tc-sh.c (sh_fdpic): New.
(sh_check_fixup): Handle relocations on movi20.
(parse_exp): Do not reject PIC operators here.
(build_Mytes): Check for unhandled PIC operators here. Use
sh_check_fixup for movi20.
(enum options): Add OPTION_FDPIC.
(md_longopts, md_parse_option, md_show_usage): Add --fdpic.
(sh_fix_adjustable, md_apply_fix): Handle FDPIC and movi20 relocations.
(sh_elf_final_processing): Handle --fdpic.
(sh_uclinux_target_format): New.
(sh_parse_name): Handle FDPIC relocation operators.
* config/tc-sh.h (TARGET_FORMAT): Define specially for TE_UCLINUX.
(sh_uclinux_target_format): Declare for TE_UCLINUX.
* configure.tgt (sh-*-uclinux* | sh[12]-*-uclinux*): Set
em=uclinux.
* doc/c-sh.texi (SH Options): Document --fdpic.
gas/testsuite/
* gas/sh/basic.exp: Run new tests. Handle uClinux like Linux.
* gas/sh/fdpic.d: New file.
* gas/sh/fdpic.s: New file.
* gas/sh/reg-prefix.d: Force big-endian.
* gas/sh/sh2a-pic.d: New file.
* gas/sh/sh2a-pic.s: New file.
* lib/gas-defs.exp (is_elf_format): Include sh*-*-uclinux*.
include/elf/
* sh.h (EF_SH_PIC, EF_SH_FDPIC): Define.
(R_SH_FIRST_INVALID_RELOC_6, R_SH_LAST_INVALID_RELOC_6): New. Adjust
other invalid ranges.
(R_SH_GOT20, R_SH_GOTOFF20, R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20)
(R_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC20, R_SH_FUNCDESC)
(R_SH_FUNCDESC_VALUE): New.
ld/
* Makefile.am (ALL_EMULATIONS): Add eshelf_fd.o and eshlelf_fd.o.
(eshelf_fd.c, eshlelf_fd.c): New rules.
* Makefile.in: Regenerate.
* configure.tgt (sh-*-uclinux*): Add shelf_fd and shlelf_fd
emulations.
* emulparams/shelf_fd.sh: New file.
* emulparams/shlelf_fd.sh: New file.
* emulparams/shlelf_linux.sh: Update comment.
ld/testsuite/
* ld-sh/sh.exp: Handle uClinux like Linux.
* lib/ld-lib.exp (is_elf_format): Include sh*-*-uclinux*.
* ld-sh/fdpic-funcdesc-shared.d: New file.
* ld-sh/fdpic-funcdesc-shared.s: New file.
* ld-sh/fdpic-funcdesc-static.d: New file.
* ld-sh/fdpic-funcdesc-static.s: New file.
* ld-sh/fdpic-gotfuncdesc-shared.d: New file.
* ld-sh/fdpic-gotfuncdesc-shared.s: New file.
* ld-sh/fdpic-gotfuncdesc-static.d: New file.
* ld-sh/fdpic-gotfuncdesc-static.s: New file.
* ld-sh/fdpic-gotfuncdesci20-shared.d: New file.
* ld-sh/fdpic-gotfuncdesci20-shared.s: New file.
* ld-sh/fdpic-gotfuncdesci20-static.d: New file.
* ld-sh/fdpic-gotfuncdesci20-static.s: New file.
* ld-sh/fdpic-goti20-shared.d: New file.
* ld-sh/fdpic-goti20-shared.s: New file.
* ld-sh/fdpic-goti20-static.d: New file.
* ld-sh/fdpic-goti20-static.s: New file.
* ld-sh/fdpic-gotofffuncdesc-shared.d: New file.
* ld-sh/fdpic-gotofffuncdesc-shared.s: New file.
* ld-sh/fdpic-gotofffuncdesc-static.d: New file.
* ld-sh/fdpic-gotofffuncdesc-static.s: New file.
* ld-sh/fdpic-gotofffuncdesci20-shared.d: New file.
* ld-sh/fdpic-gotofffuncdesci20-shared.s: New file.
* ld-sh/fdpic-gotofffuncdesci20-static.d: New file.
* ld-sh/fdpic-gotofffuncdesci20-static.s: New file.
* ld-sh/fdpic-gotoffi20-shared.d: New file.
* ld-sh/fdpic-gotoffi20-shared.s: New file.
* ld-sh/fdpic-gotoffi20-static.d: New file.
* ld-sh/fdpic-gotoffi20-static.s: New file.
* ld-sh/fdpic-plt-be.d: New file.
* ld-sh/fdpic-plt-le.d: New file.
* ld-sh/fdpic-plt.s: New file.
* ld-sh/fdpic-plti20-be.d: New file.
* ld-sh/fdpic-plti20-le.d: New file.
* ld-sh/fdpic-stack-default.d: New file.
* ld-sh/fdpic-stack-size.d: New file.
* ld-sh/fdpic-stack.s: New file.
2010-05-25 22:12:43 +08:00
|
|
|
sh-*-elf*) fmt=elf ;;
|
|
|
|
sh-*-uclinux* | sh[12]-*-uclinux*) fmt=elf em=uclinux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
sh-*-coff*) fmt=coff ;;
|
|
|
|
sh-*-nto*) fmt=elf ;;
|
2020-06-20 09:11:40 +08:00
|
|
|
sh-*-pe*) fmt=coff em=pe endian=little ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
sh-*-kaos*) fmt=elf ;;
|
|
|
|
shle*-*-kaos*) fmt=elf ;;
|
|
|
|
|
2005-03-23 23:35:50 +08:00
|
|
|
sparc-*-linux-*) fmt=elf em=linux ;;
|
2008-09-26 15:02:44 +08:00
|
|
|
sparc-*-solaris*) fmt=elf em=solaris ;;
|
2020-01-15 13:45:43 +08:00
|
|
|
sparc-*-freebsd*) fmt=elf em=freebsd ;;
|
2018-04-16 14:03:26 +08:00
|
|
|
sparc-*-*bsd*) fmt=elf em=nbsd ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2006-10-25 14:49:21 +08:00
|
|
|
spu-*-elf) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
|
|
|
|
tic4x-*-* | c4x-*-*) fmt=coff bfd_gas=yes ;;
|
|
|
|
tic54x-*-* | c54x*-*-*) fmt=coff bfd_gas=yes need_libm=yes;;
|
bfd:
* Makefile.am (ALL_MACHINES): Add cpu-tic6x.lo.
(ALL_MACHINES_CFILES): Add cpu-tic6x.c.
(BFD32_BACKENDS): Add elf32-tic6x.lo.
(BFD32_BACKENDS_CFILES): Add elf32-tic6x.c.
* Makefile.in: Regenerate.
* archures.c (bfd_arch_tic6x, bfd_tic6x_arch): New.
(bfd_archures_list): Update.
* config.bfd (tic6x-*-elf): New.
* configure.in (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec):
New.
* configure: Regenerate.
* cpu-tic6x.c, elf32-tic6x.c: New.
* reloc.c (BFD_RELOC_C6000_PCR_S21, BFD_RELOC_C6000_PCR_S12,
BFD_RELOC_C6000_PCR_S10, BFD_RELOC_C6000_PCR_S7,
BFD_RELOC_C6000_ABS_S16, BFD_RELOC_C6000_ABS_L16,
BFD_RELOC_C6000_ABS_H16, BFD_RELOC_C6000_SBR_U15_B,
BFD_RELOC_C6000_SBR_U15_H, BFD_RELOC_C6000_SBR_U15_W,
BFD_RELOC_C6000_SBR_S16, BFD_RELOC_C6000_SBR_L16_B,
BFD_RELOC_C6000_SBR_L16_H, BFD_RELOC_C6000_SBR_L16_W,
BFD_RELOC_C6000_SBR_H16_B, BFD_RELOC_C6000_SBR_H16_H,
BFD_RELOC_C6000_SBR_H16_W, BFD_RELOC_C6000_SBR_GOT_U15_W,
BFD_RELOC_C6000_SBR_GOT_L16_W, BFD_RELOC_C6000_SBR_GOT_H16_W,
BFD_RELOC_C6000_DSBT_INDEX, BFD_RELOC_C6000_PREL31,
BFD_RELOC_C6000_COPY, BFD_RELOC_C6000_ALIGN,
BFD_RELOC_C6000_FPHEAD, BFD_RELOC_C6000_NOCMP): New.
* targets.c (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec): New.
(_bfd_target_vector): Update.
* bfd-in2.h, libbfd.h: Regenerate.
binutils:
* MAINTAINERS: Add self as TI C6X maintainer.
* NEWS: Add news entry for TI C6X support.
* readelf.c: Include elf/tic6x.h.
(guess_is_rela): Handle EM_TI_C6000.
(dump_relocations): Likewise.
(get_tic6x_dynamic_type): New.
(get_dynamic_type): Call it.
(get_machine_flags): Handle EF_C6000_REL.
(get_osabi_name): Handle machine-specific values only for relevant
machines. Handle C6X values.
(get_tic6x_segment_type): New.
(get_segment_type): Call it.
(get_tic6x_section_type_name): New.
(get_section_type_name): Call it.
(is_32bit_abs_reloc, is_16bit_abs_reloc, is_none_reloc): Handle
EM_TI_C6000.
gas:
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-tic6x.c.
(TARGET_CPU_HFILES): Add config/tc-tic6x.h.
* Makefile.in: Regenerate.
* NEWS: Add news entry for TI C6X support.
* app.c (do_scrub_chars): Handle "||^" for TI C6X. Handle
TC_PREDICATE_START_CHAR and TC_PREDICATE_END_CHAR. Keep spaces in
operands if TC_KEEP_OPERAND_SPACES.
* configure.tgt (tic6x-*-*): New.
* config/tc-ia64.h (TC_PREDICATE_START_CHAR,
TC_PREDICATE_END_CHAR): Define.
* config/tc-tic6x.c, config/tc-tic6x.h: New.
* doc/Makefile.am (CPU_DOCS): Add c-tic6x.texi.
* doc/Makefile.in: Regenerate.
* doc/all.texi (TIC6X): Define.
* doc/as.texinfo: Add TI C6X documentation. Include c-tic6x.texi.
* doc/c-tic6x.texi: New.
gas/testsuite:
* gas/tic6x: New directory and testcases.
include:
* dis-asm.h (print_insn_tic6x): Declare.
include/elf:
* common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define.
* tic6x.h: New.
include/opcode:
* tic6x-control-registers.h, tic6x-insn-formats.h,
tic6x-opcode-table.h, tic6x.h: New.
ld:
* Makefile.am (ALL_EMULATIONS): Add eelf32_tic6x_be.o and
eelf32_tic6x_le.o.
(eelf32_tic6x_be.c, eelf32_tic6x_le.c): New.
* NEWS: Add news entry for TI C6X support.
* configure.tgt (tic6x-*-*): New.
* emulparams/elf32_tic6x_be.sh, emulparams/elf32_tic6x_le.sh: New.
ld/testsuite:
* ld-elf/flags1.d, ld-elf/merge.d: XFAIL for tic6x-*-*.
* ld-elf/sec-to-seg.exp: Set B_test_same_seg to 0 for tic6x-*-*.
* ld-tic6x: New directory and testcases.
opcodes:
* Makefile.am (TARGET_LIBOPCODES_CFILES): Add tic6x-dis.c.
* Makefile.in: Regenerate.
* configure.in (bfd_tic6x_arch): New.
* configure: Regenerate.
* disassemble.c (ARCH_tic6x): Define if ARCH_all.
(disassembler): Handle TI C6X.
* tic6x-dis.c: New.
2010-03-26 05:12:36 +08:00
|
|
|
tic6x-*-*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2012-02-26 03:51:34 +08:00
|
|
|
tilepro-*-* | tilegx*-*-*) fmt=elf ;;
|
* Makefile.am (ALL_MACHINES): Add cpu-tilegx.lo and cpu-tilepro.lo.
(ALL_MACHINE_CFILES): Add cpu-tilegx.c and cpu-tilepro.c.
(BFD32_BACKENDS): Add elf32-tilegx.lo, elf32-tilepro.lo,
and elfxx-tilegx.lo.
(BFD32_BACKENDS_CFILES): Add elf32-tilegx.c elf32-tilepro.c, and
elfxx-tilegx.c.
(BFD64_BACKENDS): Add elf64-tilegx.lo.
(BFD64_BACKENDS_CFILES): Add elf64-tilegx.c.
* Makefile.in: Regenerate.
* arctures.c (bfd_architecture): Define bfd_arch_tilepro,
bfd_arch_tilegx, bfd_mach_tilepro, bfd_mach_tilegx.
(bfd_arch_info): Add bfd_tilegx_arch, bfd_tilepro_arch.
(bfd_archures_list): Add bfd_tilegx_arch, bfd_tilepro_arch.
bfd-in2.h: Regenerate.
* config.bfd: Handle tilegx-*-* and tilepro-*-*.
* configure.in: Handle bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
and bfd_elf64_tilegx_vec.
* configure: Regenerate.
* elf-bfd.h (enum elf_target_id): Define TILEGX_ELF_DATA and
TILEPRO_ELF_DATA.
* libbfd.h: Regenerate.
* reloc.c: Add BFD_RELOC_TILEPRO_{COPY, GLOB_DAT, JMP_SLOT,
RELATIVE, BROFF_X1, JOFFLONG_X1, JOFFLONG_X1_PLT, IMM8_X0,
IMM8_Y0, IMM8_X1, IMM8_Y1, DEST_IMM8_X1, MT_IMM15_X1, MF_IMM15_X1,
IMM16_X0, IMM16_X1, IMM16_X0_LO, IMM16_X1_LO, IMM16_X0_HI,
IMM16_X1_HI, IMM16_X0_HA, IMM16_X1_HA, IMM16_X0_PCREL,
IMM16_X1_PCREL, IMM16_X0_LO_PCREL, IMM16_X1_LO_PCREL,
IMM16_X0_HI_PCREL, IMM16_X1_HI_PCREL, IMM16_X0_HA_PCREL,
IMM16_X1_HA_PCREL, IMM16_X0_GOT, IMM16_X1_GOT, IMM16_X0_GOT_LO,
IMM16_X1_GOT_LO, IMM16_X0_GOT_HI, IMM16_X1_GOT_HI,
IMM16_X0_GOT_HA, IMM16_X1_GOT_HA, MMSTART_X0, MMEND_X0,
MMSTART_X1, MMEND_X1, SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1,
IMM16_X0_TLS_GD, IMM16_X1_TLS_GD, IMM16_X0_TLS_GD_LO,
IMM16_X1_TLS_GD_LO, IMM16_X0_TLS_GD_HI, IMM16_X1_TLS_GD_HI,
IMM16_X0_TLS_GD_HA, IMM16_X1_TLS_GD_HA, IMM16_X0_TLS_IE,
IMM16_X1_TLS_IE, IMM16_X0_TLS_IE_LO, IMM16_X1_TLS_IE_LO,
IMM16_X0_TLS_IE_HI, IMM16_X1_TLS_IE_HI, IMM16_X0_TLS_IE_HA,
IMM16_X1_TLS_IE_HA, TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
Add BFD_RELOC_TILEGX_{HW0, HW1, HW2, HW3, HW0_LAST, HW1_LAST,
HW2_LAST, COPY, GLOB_DAT, JMP_SLOT, RELATIVE, BROFF_X1,
JUMPOFF_X1, JUMPOFF_X1_PLT, IMM8_X0, IMM8_Y0, IMM8_X1, IMM8_Y1,
DEST_IMM8_X1, MT_IMM14_X1, MF_IMM14_X1, MMSTART_X0, MMEND_X0,
SHAMT_X0, SHAMT_X1, SHAMT_Y0, SHAMT_Y1, IMM16_X0_HW0,
IMM16_X1_HW0, IMM16_X0_HW1, IMM16_X1_HW1, IMM16_X0_HW2,
IMM16_X1_HW2, IMM16_X0_HW3, IMM16_X1_HW3, IMM16_X0_HW0_LAST,
IMM16_X1_HW0_LAST, IMM16_X0_HW1_LAST, IMM16_X1_HW1_LAST,
IMM16_X0_HW2_LAST, IMM16_X1_HW2_LAST, IMM16_X0_HW0_PCREL,
IMM16_X1_HW0_PCREL, IMM16_X0_HW1_PCREL, IMM16_X1_HW1_PCREL,
IMM16_X0_HW2_PCREL, IMM16_X1_HW2_PCREL, IMM16_X0_HW3_PCREL,
IMM16_X1_HW3_PCREL, IMM16_X0_HW0_LAST_PCREL,
IMM16_X1_HW0_LAST_PCREL, IMM16_X0_HW1_LAST_PCREL,
IMM16_X1_HW1_LAST_PCREL, IMM16_X0_HW2_LAST_PCREL,
IMM16_X1_HW2_LAST_PCREL, IMM16_X0_HW0_GOT, IMM16_X1_HW0_GOT,
IMM16_X0_HW1_GOT, IMM16_X1_HW1_GOT, IMM16_X0_HW2_GOT,
IMM16_X1_HW2_GOT, IMM16_X0_HW3_GOT, IMM16_X1_HW3_GOT,
IMM16_X0_HW0_LAST_GOT, IMM16_X1_HW0_LAST_GOT,
IMM16_X0_HW1_LAST_GOT, IMM16_X1_HW1_LAST_GOT,
IMM16_X0_HW2_LAST_GOT, IMM16_X1_HW2_LAST_GOT, IMM16_X0_HW0_TLS_GD,
IMM16_X1_HW0_TLS_GD, IMM16_X0_HW1_TLS_GD, IMM16_X1_HW1_TLS_GD,
IMM16_X0_HW2_TLS_GD, IMM16_X1_HW2_TLS_GD, IMM16_X0_HW3_TLS_GD,
IMM16_X1_HW3_TLS_GD, IMM16_X0_HW0_LAST_TLS_GD,
IMM16_X1_HW0_LAST_TLS_GD, IMM16_X0_HW1_LAST_TLS_GD,
IMM16_X1_HW1_LAST_TLS_GD, IMM16_X0_HW2_LAST_TLS_GD,
IMM16_X1_HW2_LAST_TLS_GD, IMM16_X0_HW0_TLS_IE,
IMM16_X1_HW0_TLS_IE, IMM16_X0_HW1_TLS_IE, IMM16_X1_HW1_TLS_IE,
IMM16_X0_HW2_TLS_IE, IMM16_X1_HW2_TLS_IE, IMM16_X0_HW3_TLS_IE,
IMM16_X1_HW3_TLS_IE, IMM16_X0_HW0_LAST_TLS_IE,
IMM16_X1_HW0_LAST_TLS_IE, IMM16_X0_HW1_LAST_TLS_IE,
IMM16_X1_HW1_LAST_TLS_IE, IMM16_X0_HW2_LAST_TLS_IE,
IMM16_X1_HW2_LAST_TLS_IE, TLS_DTPMOD64, TLS_DTPOFF64, TLS_TPOFF64,
TLS_DTPMOD32, TLS_DTPOFF32, TLS_TPOFF32}
* targets.c (bfd_elf32_tilegx_vec): Declare.
(bfd_elf32_tilepro_vec): Declare.
(bfd_elf64_tilegx_vec): Declare.
(bfd_target_vector): Add bfd_elf32_tilegx_vec, bfd_elf32_tilepro_vec,
and bfd_elf64_tilegx_vec.
* cpu-tilegx.c: New file.
* cpu-tilepro.c: New file.
* elf32-tilepro.h: New file.
* elf32-tilepro.c: New file.
* elf32-tilegx.c: New file.
* elf32-tilegx.h: New file.
* elf64-tilegx.c: New file.
* elf64-tilegx.h: New file.
* elfxx-tilegx.c: New file.
* elfxx-tilegx.h: New file.
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-tilegx.c and
config/tc-tilepro.c.
(TARGET_CPU_HFILES): Add config/tc-tilegx.h and
config/tc-tilepro.h.
* Makefile.in: Regenerate.
* configure.tgt (tilepro-*-*): New.
(tilegx-*-*): Likewise.
* config/tc-tilegx.c: New file.
* config/tc-tilegx.h: Likewise.
* config/tc-tilepro.h: Likewise.
* config/tc-tilepro.c: Likewise.
* doc/Makefile.am (CPU_DOCS): Add c-tilegx.texi and
c-tilepro.texi.
* doc/Makefile.in: Regenerate.
* doc/all.texi (TILEGX): Define.
(TILEPRO): Define.
* doc/as.texinfo: Add Tile-Gx and TILEPro documentation. Include
c-tilegx.texi and c-tilepro.texi.
* doc/c-tilegx.texi: New.
* doc/c-tilepro.texi: New.
* gas/tilepro/t_constants.s: New file.
* gas/tilepro/t_constants.d: Likewise.
* gas/tilepro/t_insns.s: Likewise.
* gas/tilepro/tilepro.exp: Likewise.
* gas/tilepro/t_insns.d: Likewise.
* gas/tilegx/tilegx.exp: Likewise.
* gas/tilegx/t_insns.d: Likewise.
* gas/tilegx/t_insns.s: Likewise.
* dis-asm.h (print_insn_tilegx): Declare.
(print_insn_tilepro): Likewise.
* tilegx.h: New file.
* tilepro.h: New file.
* common.h: Add EM_TILEGX.
* tilegx.h: New file.
* tilepro.h: New file.
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx.c and
eelf32tilepro.c.
(ALL_64_EMULATION_SOURCES): Add eelf64tilegx.c.
(eelf32tilegx.c): New target.
(eelf32tilepro.c): Likewise.
(eelf64tilegx.c): Likewise.
* Makefile.in: Regenerate.
* configure.tgt: Handle tilegx-*-* and tilepro-*-*.
* emulparams/elf32tilegx.sh: New file.
* emulparams/elf64tilegx.sh: New file.
* emulparams/elf32tilepro.sh: New file.
* ld-elf/eh5.d: Don't run on tile*.
* ld-srec/srec.exp: xfail on tile*.
* ld-tilegx/external.s: New file.
* ld-tilegx/reloc.d: New file.
* ld-tilegx/reloc.s: New file.
* ld-tilegx/tilegx.exp: New file.
* ld-tilepro/external.s: New file.
* ld-tilepro/reloc.d: New file.
* ld-tilepro/reloc.s: New file.
* ld-tilepro/tilepro.exp: New file.
* Makefile.am (TARGET_LIBOPCODES_CFILES): Add tilegx-dis.c,
tilegx-opc.c, tilepro-dis.c, and tilepro-opc.c.
* Makefile.in: Regenerate.
* configure.in: Handle bfd_tilegx_arch and bfd_tilepro_arch.
* configure: Regenerate.
* disassemble.c (disassembler): Add ARCH_tilegx and ARCH_tilepro.
* po/POTFILES.in: Regenerate.
* tilegx-dis.c: New file.
* tilegx-opc.c: New file.
* tilepro-dis.c: New file.
* tilepro-opc.c: New file.
2011-06-13 23:18:54 +08:00
|
|
|
|
2010-07-23 22:52:54 +08:00
|
|
|
v850*-*-*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
|
|
|
vax-*-netbsdelf*) fmt=elf em=nbsd ;;
|
2005-03-23 23:35:50 +08:00
|
|
|
vax-*-linux-*) fmt=elf em=linux ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2014-12-06 23:42:26 +08:00
|
|
|
visium-*-elf) fmt=elf ;;
|
|
|
|
|
2017-03-30 17:57:21 +08:00
|
|
|
wasm32-*-*) fmt=elf ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
xstormy16-*-*) fmt=elf ;;
|
2015-10-07 21:20:19 +08:00
|
|
|
|
2012-05-03 21:12:08 +08:00
|
|
|
xgate-*-*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2008-02-02 01:58:48 +08:00
|
|
|
xtensa*-*-*) fmt=elf ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
|
2005-10-26 01:40:19 +08:00
|
|
|
z80-*-coff) fmt=coff ;;
|
|
|
|
|
2004-12-22 23:29:25 +08:00
|
|
|
z8k-*-coff | z8k-*-sim) fmt=coff ;;
|
|
|
|
|
|
|
|
*-*-aout | *-*-scout) fmt=aout ;;
|
2019-04-08 15:27:51 +08:00
|
|
|
*-*-cloudabi*) fmt=elf em=cloudabi ;;
|
2011-03-28 19:18:27 +08:00
|
|
|
*-*-dragonfly*) fmt=elf em=dragonfly ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
*-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
|
|
|
|
*-*-generic) fmt=generic ;;
|
|
|
|
*-*-xray | *-*-hms) fmt=coff ;;
|
|
|
|
*-*-sim) fmt=coff ;;
|
2017-01-25 15:24:47 +08:00
|
|
|
*-*-elf | *-*-rtems* | *-*-sysv4*) fmt=elf ;;
|
2008-09-26 15:02:44 +08:00
|
|
|
*-*-solaris*) fmt=elf em=solaris ;;
|
2005-03-21 18:26:18 +08:00
|
|
|
*-*-aros*) fmt=elf em=linux ;;
|
2005-08-23 11:23:12 +08:00
|
|
|
*-*-vxworks* | *-*-windiss) fmt=elf em=vxworks ;;
|
2004-12-22 23:29:25 +08:00
|
|
|
esac
|
|
|
|
|
|
|
|
case ${cpu_type} in
|
2020-06-20 09:11:40 +08:00
|
|
|
aarch64 | alpha | arm | csky | i386 | ia64 | microblaze | mips | ns32k | \
|
|
|
|
or1k | or1knd | pdp11 | ppc | riscv | sh | sparc | z80 | z8k)
|
2004-12-22 23:29:25 +08:00
|
|
|
bfd_gas=yes
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
case ${fmt} in
|
2008-04-24 02:40:34 +08:00
|
|
|
elf | ecoff | fdpicelf | multi | som)
|
2004-12-22 23:29:25 +08:00
|
|
|
bfd_gas=yes
|
|
|
|
;;
|
|
|
|
esac
|
* README-vms: Delete.
* config-gas.com: Delete.
* makefile.vms: Delete.
* vmsconf.sh: Delete.
* config/atof-tahoe.c: Delete.
* config/m88k-opcode.h: Delete.
* config/obj-bout.c: Delete.
* config/obj-bout.h: Delete.
* config/obj-hp300.c: Delete.
* config/obj-hp300.h: Delete.
* config/tc-a29k.c: Delete.
* config/tc-a29k.h: Delete.
* config/tc-h8500.c: Delete.
* config/tc-h8500.h: Delete.
* config/tc-m88k.c: Delete.
* config/tc-m88k.h: Delete.
* config/tc-tahoe.c: Delete.
* config/tc-tahoe.h: Delete.
* config/tc-tic80.c: Delete.
* config/tc-tic80.h: Delete.
* config/tc-w65.c: Delete.
* config/tc-w65.h: Delete.
* config/te-aux.h: Delete.
* config/te-delt88.h: Delete.
* config/te-delta.h: Delete.
* config/te-dpx2.h: Delete.
* config/te-hp300.h: Delete.
* config/te-ic960.h: Delete.
* config/vms-a-conf.h: Delete.
* doc/c-a29k.texi: Delete.
* doc/c-h8500.texi: Delete.
* doc/c-m88k.texi: Delete.
* README: Remove obsolete examples, and list of supported targets.
* Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65,
bout and hp300 support.
(DEP_FLAGS): Don't define BFD_ASSEMBLER.
* configure.in: Remove --enable-bfd-assembler, need_bfd,
primary_bfd_gas.
* configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf,
m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy.
* as.c: Remove all non-BFD_ASSEMBLER code, support for above targets.
* as.h: Likewise.
* dw2gencfi.c: Likewise.
* dwarf2dbg.c: Likewise.
* ehopt.c: Likewise.
* input-file.c: Likewise.
* listing.c: Likewise.
* literal.c: Likewise.
* messages.c: Likewise.
* obj.h: Likewise.
* output-file.c: Likewise.
* read.c: Likewise.
* stabs.c: Likewise.
* struc-symbol.h: Likewise.
* subsegs.c: Likewise.
* subsegs.h: Likewise.
* symbols.c: Likewise.
* symbols.h: Likewise.
* tc.h: Likewise.
* write.c: Likewise.
* write.h: Likewise.
* config/aout_gnu.h: Likewise.
* config/obj-aout.c: Likewise.
* config/obj-aout.h: Likewise.
* config/obj-coff.c: Likewise.
* config/obj-coff.h: Likewise.
* config/obj-evax.h: Likewise.
* config/obj-ieee.h: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-arm.h: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-avr.h: Likewise.
* config/tc-crx.h: Likewise.
* config/tc-d10v.h: Likewise.
* config/tc-d30v.h: Likewise.
* config/tc-dlx.h: Likewise.
* config/tc-fr30.h: Likewise.
* config/tc-frv.h: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-h8300.h: Likewise.
* config/tc-hppa.h: Likewise.
* config/tc-i370.h: Likewise.
* config/tc-i386.c: Likewise.
* config/tc-i386.h: Likewise.
* config/tc-i860.h: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-i960.h: Likewise.
* config/tc-ip2k.h: Likewise.
* config/tc-iq2000.h: Likewise.
* config/tc-m32c.h: Likewise.
* config/tc-m32r.h: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-m68k.c: Likewise.
* config/tc-m68k.h: Likewise.
* config/tc-maxq.c: Likewise.
* config/tc-maxq.h: Likewise.
* config/tc-mcore.c: Likewise.
* config/tc-mcore.h: Likewise.
* config/tc-mn10200.h: Likewise.
* config/tc-mn10300.c: Likewise.
* config/tc-mn10300.h: Likewise.
* config/tc-ms1.h: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-msp430.h: Likewise.
* config/tc-ns32k.c: Likewise.
* config/tc-ns32k.h: Likewise.
* config/tc-openrisc.h: Likewise.
* config/tc-or32.c: Likewise.
* config/tc-or32.h: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-s390.h: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sh.h: Likewise.
* config/tc-sparc.c: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-tic30.h: Likewise.
* config/tc-tic4x.c: Likewise.
* config/tc-tic4x.h: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-tic54x.h: Likewise.
* config/tc-v850.h: Likewise.
* config/tc-vax.c: Likewise.
* config/tc-vax.h: Likewise.
* config/tc-xstormy16.h: Likewise.
* config/tc-xtensa.h: Likewise.
* config/tc-z8k.c: Likewise.
* config/tc-z8k.h: Likewise.
* config/vms-a-conf.h
* doc/Makefile.am: Likewise.
* doc/all.texi: Likewise.
* doc/as.texinfo: Likewise.
* doc/Makefile.in: Regenerate.
* Makefile.in: Regenerate.
* configure: Regenerate.
* config.in: Regenerate.
* po/POTFILES.in: Regenerate.
2005-08-11 09:25:29 +08:00
|
|
|
|
|
|
|
if test $bfd_gas != yes; then
|
|
|
|
echo This target is no longer supported in gas
|
|
|
|
exit 1
|
|
|
|
fi
|
2016-06-30 00:29:39 +08:00
|
|
|
|
|
|
|
case ${cpu_type}-${fmt}-${os} in
|
|
|
|
i386-elf-linux*)
|
|
|
|
# Default to compress DWARF debug sections for Linux/x86.
|
|
|
|
if test ${ac_default_compressed_debug_sections} = unset; then
|
|
|
|
ac_default_compressed_debug_sections=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|