diff options
author | Francois H. Theron <francois.theron@netronome.com> | 2018-04-30 17:02:59 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2018-04-30 17:02:59 +0100 |
commit | fe944acf8f858cfe6bcfd00670a88847a464717c (patch) | |
tree | 63cfbbb8631a3c6624f1263aa0608ea6c796c5c4 /bfd | |
parent | d33bc52e51fdb6c464c1c8e8fdf9b2007b522b57 (diff) | |
download | gdb-fe944acf8f858cfe6bcfd00670a88847a464717c.zip gdb-fe944acf8f858cfe6bcfd00670a88847a464717c.tar.gz gdb-fe944acf8f858cfe6bcfd00670a88847a464717c.tar.bz2 |
This patch adds support to objdump for disassembly of NFP (Netronome Flow Processor) ELF files (.nffw) as well as some basic readelf support.
bfd * Makefile.am: Added NFP files to build.
* archures.c: Added bfd_arch_nfp
* config.bfd: Added NFP support.
* configure.ac: Added NFP support.
* cpu-nfp.c: New, for NFP support.
* elf-bfd.h: Added elf_section_info()
* elf64-nfp.c: New, for NFP support.
* po/SRC-POTFILES.in: Added NFP source files.
* targets.c: Added nfp_elf64_vec
* bfd-in2.h: Regenerate.
* Makefile.in: Regenerate.
* configure: Regenerate.
binutils* readelf.c: Very basic support for EM_NFP and its section types.
* testsuite/binutils-all/nfp: New directory.
* testsuite/binutils-all/nfp/objdump.exp: New file. Run new
tests.
* testsuite/binutils-all/nfp/test2_ctx8.d: New file.
* testsuite/binutils-all/nfp/test2_no-pc_ctx4.d: New file.
* testsuite/binutils-all/nfp/test1.d: New file.
* testsuite/binutils-all/nfp/nfp6000.nffw: New file.
* testsuite/binutils-all/nfp/test2_nfp6000.nffw: New file.
* NEWS: Mention the new support.
include * dis-asm.h: Added print_nfp_disassembler_options prototype.
* elf/common.h: Added EM_NFP, officially assigned. See Google Group
Generic System V Application Binary Interface.
* elf/nfp.h: New, for NFP support.
* opcode/nfp.h: New, for NFP support.
opcodes Makefile.am: Added nfp-dis.c.
configure.ac: Added bfd_nfp_arch.
disassemble.h: Added print_insn_nfp prototype.
disassemble.c: Added ARCH_nfp and call to print_insn_nfp
nfp-dis.c: New, for NFP support.
po/POTFILES.in: Added nfp-dis.c to the list.
Makefile.in: Regenerate.
configure: Regenerate.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 15 | ||||
-rw-r--r-- | bfd/Makefile.am | 4 | ||||
-rw-r--r-- | bfd/Makefile.in | 6 | ||||
-rw-r--r-- | bfd/archures.c | 5 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 3 | ||||
-rw-r--r-- | bfd/config.bfd | 7 | ||||
-rwxr-xr-x | bfd/configure | 1 | ||||
-rw-r--r-- | bfd/configure.ac | 1 | ||||
-rw-r--r-- | bfd/cpu-nfp.c | 62 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 1 | ||||
-rwxr-xr-x | bfd/elf64-nfp.c | 276 | ||||
-rw-r--r-- | bfd/po/SRC-POTFILES.in | 2 | ||||
-rw-r--r-- | bfd/po/bfd.pot | 602 | ||||
-rw-r--r-- | bfd/targets.c | 3 |
14 files changed, 656 insertions, 332 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2b7dfb4..11baf5d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2018-04-30 Francois H. Theron <francois.theron@netronome.com> + + * Makefile.am: Added NFP files to build. + * archures.c: Added bfd_arch_nfp + * config.bfd: Added NFP support. + * configure.ac: Added NFP support. + * cpu-nfp.c: New, for NFP support. + * elf-bfd.h: Added elf_section_info() + * elf64-nfp.c: New, for NFP support. + * po/SRC-POTFILES.in: Added NFP source files. + * targets.c: Added nfp_elf64_vec + * bfd-in2.h: Regenerate. + * Makefile.in: Regenerate. + * configure: Regenerate. + 2018-04-27 Alan Modra <amodra@gmail.com> * bfd-in2.h: Regenerate. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 4f5610d..8500a4f 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -135,6 +135,7 @@ ALL_MACHINES = \ cpu-msp430.lo \ cpu-mt.lo \ cpu-nds32.lo \ + cpu-nfp.lo \ cpu-nios2.lo \ cpu-ns32k.lo \ cpu-or1k.lo \ @@ -218,6 +219,7 @@ ALL_MACHINES_CFILES = \ cpu-msp430.c \ cpu-mt.c \ cpu-nds32.c \ + cpu-nfp.c \ cpu-ns32k.c \ cpu-nios2.c \ cpu-or1k.c \ @@ -555,6 +557,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elfxx-mips.lo \ elf64-mmix.lo \ + elf64-nfp.lo \ elf64-ppc.lo \ elf32-riscv.lo \ elf64-riscv.lo \ @@ -590,6 +593,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ia64-vms.c \ elf64-mips.c \ elf64-mmix.c \ + elf64-nfp.c \ elf64-ppc.c \ elf64-s390.c \ elf64-sparc.c \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 3acbdaa..ccd9ce1 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -468,6 +468,7 @@ ALL_MACHINES = \ cpu-msp430.lo \ cpu-mt.lo \ cpu-nds32.lo \ + cpu-nfp.lo \ cpu-nios2.lo \ cpu-ns32k.lo \ cpu-or1k.lo \ @@ -551,6 +552,7 @@ ALL_MACHINES_CFILES = \ cpu-msp430.c \ cpu-mt.c \ cpu-nds32.c \ + cpu-nfp.c \ cpu-ns32k.c \ cpu-nios2.c \ cpu-or1k.c \ @@ -890,6 +892,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elfxx-mips.lo \ elf64-mmix.lo \ + elf64-nfp.lo \ elf64-ppc.lo \ elf32-riscv.lo \ elf64-riscv.lo \ @@ -925,6 +928,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ia64-vms.c \ elf64-mips.c \ elf64-mmix.c \ + elf64-nfp.c \ elf64-ppc.c \ elf64-s390.c \ elf64-sparc.c \ @@ -1259,6 +1263,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nds32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nfp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@ @@ -1382,6 +1387,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ia64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mips.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mmix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-nfp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ppc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-riscv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-s390.Plo@am__quote@ diff --git a/bfd/archures.c b/bfd/archures.c index 2536949..4c20664 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -511,6 +511,9 @@ DESCRIPTION .#define bfd_mach_wasm32 1 . bfd_arch_pru, {* PRU. *} .#define bfd_mach_pru 0 +. bfd_arch_nfp, {* Netronome Flow Processor *} +.#define bfd_mach_nfp3200 0x3200 +.#define bfd_mach_nfp6000 0x6000 . bfd_arch_last . }; */ @@ -601,6 +604,7 @@ extern const bfd_arch_info_type bfd_ft32_arch; extern const bfd_arch_info_type bfd_msp430_arch; extern const bfd_arch_info_type bfd_mt_arch; extern const bfd_arch_info_type bfd_nds32_arch; +extern const bfd_arch_info_type bfd_nfp_arch; extern const bfd_arch_info_type bfd_nios2_arch; extern const bfd_arch_info_type bfd_ns32k_arch; extern const bfd_arch_info_type bfd_or1k_arch; @@ -689,6 +693,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] = &bfd_msp430_arch, &bfd_mt_arch, &bfd_nds32_arch, + &bfd_nfp_arch, &bfd_nios2_arch, &bfd_ns32k_arch, &bfd_or1k_arch, diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 40d33ea..4822686 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2381,6 +2381,9 @@ enum bfd_architecture #define bfd_mach_wasm32 1 bfd_arch_pru, /* PRU. */ #define bfd_mach_pru 0 + bfd_arch_nfp, /* Netronome Flow Processor */ +#define bfd_mach_nfp3200 0x3200 +#define bfd_mach_nfp6000 0x6000 bfd_arch_last }; diff --git a/bfd/config.bfd b/bfd/config.bfd index 0b40636..bbd4194 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -182,6 +182,7 @@ m68*) targ_archs=bfd_m68k_arch ;; microblaze*) targ_archs=bfd_microblaze_arch ;; mips*) targ_archs=bfd_mips_arch ;; nds32*) targ_archs=bfd_nds32_arch ;; +nfp) targ_archs=bfd_nfp_arch ;; nios2*) targ_archs=bfd_nios2_arch ;; or1k*|or1knd*) targ_archs=bfd_or1k_arch ;; pdp11*) targ_archs=bfd_pdp11_arch ;; @@ -992,6 +993,12 @@ case "${targ}" in targ_selvecs=nds32_elf32_le_vec ;; +#ifdef BFD64 + nfp-*-*) + targ_defvec=nfp_elf64_vec + ;; +#endif + ns32k-pc532-mach* | ns32k-pc532-ux*) targ_defvec=ns32k_aout_pc532mach_vec targ_underscore=yes diff --git a/bfd/configure b/bfd/configure index ab9e8ee..5aca725 100755 --- a/bfd/configure +++ b/bfd/configure @@ -14482,6 +14482,7 @@ do nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; + nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;; nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;; diff --git a/bfd/configure.ac b/bfd/configure.ac index ae79461..3cef5f9 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -559,6 +559,7 @@ do nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; + nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;; nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;; diff --git a/bfd/cpu-nfp.c b/bfd/cpu-nfp.c new file mode 100644 index 0000000..ef97f86 --- /dev/null +++ b/bfd/cpu-nfp.c @@ -0,0 +1,62 @@ +/* BFD library support routines for the NFP. + Copyright (C) 2017 Free Software Foundation, Inc. + Contributed by Francois H. Theron <francois.theron@netronome.com> + + This file is part of BFD, the Binary File Descriptor library. + + This program 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. + + 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" + +static const bfd_arch_info_type * +bfd_nfp_compatible (const bfd_arch_info_type * a, + const bfd_arch_info_type * b) +{ + if (a->arch != b->arch) + return NULL; + + if (a->mach != b->mach) + return NULL; + + return a; +} + +#define N(machine, print, default, next) \ +{ \ + 32, \ + 64, \ + 8, \ + bfd_arch_nfp, \ + machine, \ + "nfp", \ + print, \ + 3, \ + default, \ + bfd_nfp_compatible, \ + bfd_default_scan, \ + bfd_arch_default_fill, \ + next \ +} + +static const bfd_arch_info_type arch_info_struct[] = +{ + N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL) +}; + +const bfd_arch_info_type bfd_nfp_arch = + N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]); diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 9c900b7..7b74690 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1671,6 +1671,7 @@ struct bfd_elf_section_data #define elf_linked_to_section(sec) (elf_section_data(sec)->linked_to) #define elf_section_type(sec) (elf_section_data(sec)->this_hdr.sh_type) #define elf_section_flags(sec) (elf_section_data(sec)->this_hdr.sh_flags) +#define elf_section_info(sec) (elf_section_data(sec)->this_hdr.sh_info) #define elf_group_name(sec) (elf_section_data(sec)->group.name) #define elf_group_id(sec) (elf_section_data(sec)->group.id) #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group) diff --git a/bfd/elf64-nfp.c b/bfd/elf64-nfp.c new file mode 100755 index 0000000..3cdda3d --- /dev/null +++ b/bfd/elf64-nfp.c @@ -0,0 +1,276 @@ +/* NFP-specific support for 64-bit ELF + Copyright (C) 2017-2018 Free Software Foundation, Inc. + Contributed by Francois H. Theron <francois.theron@netronome.com> + + This file is part of BFD, the Binary File Descriptor library. + + This program 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. + + 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" +#include "elf-bfd.h" +#include "elf/nfp.h" +#include "bfd_stdint.h" + + +static bfd_reloc_status_type +elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED, + arelent * reloc_entry, + asymbol * symbol, + void *data ATTRIBUTE_UNUSED, + asection * input_section, + bfd * output_bfd, + char **error_message ATTRIBUTE_UNUSED); + +/* We don't actually apply any relocations in this toolset + so we make them all do nothing, but at least display useful + names. + Most of these are mainly used by the NFP toolchain to resolve things + before the final ELF file is created. */ +static reloc_howto_type elf_nfp_howto_table[] = +{ + HOWTO (R_NFP_NOTYPE, /* Type. */ + 0, /* Rightshift. */ + 3, /* Size. */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont,/* Complain_on_overflow. */ + elf64_nfp_reloc, /* Special_function. */ + "R_NFP_NOTYPE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Src_mask. */ + 0, /* Dst_mask. */ + FALSE), /* PCrel_offset. */ + HOWTO (R_NFP_W32LE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED8_I, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED8_I", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SC, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SC", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_LO16_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_LO16_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_LO16_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_LO16_I_B", + TRUE, 0, 0, FALSE), + HOWTO (R_NFP_SRC7_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC7_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC7_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC7_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_I_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_HI16_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_HI16_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_HI16_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_HI16_I_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SH_INFO, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SH_INFO", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32_29_24, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32_29_24", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32LE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32LE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE_OR", + FALSE, 0, 0, FALSE) +}; + +static bfd_boolean +elf64_nfp_object_p (bfd * abfd) +{ + /* If the e_machine value is one of the unofficial ones, we convert + it first and set e_flags accordingly for later consistency. */ + if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_3200) + { + elf_elfheader (abfd)->e_machine = EM_NFP; + elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0); + elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_3200); + } + else if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_6000) + { + elf_elfheader (abfd)->e_machine = EM_NFP; + elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0); + elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_6000); + } + + if (elf_elfheader (abfd)->e_machine == EM_NFP) + { + int e_mach = EF_NFP_MACH (elf_elfheader (abfd)->e_flags); + + switch (e_mach) + { + case E_NFP_MACH_3200: + case E_NFP_MACH_6000: + if (!bfd_default_set_arch_mach (abfd, bfd_arch_nfp, e_mach)) + return FALSE; + default: + break; + } + } + + return TRUE; +} + +static bfd_boolean +elf64_nfp_section_from_shdr (bfd * abfd, + Elf_Internal_Shdr * hdr, + const char *name, int shindex) +{ + switch (hdr->sh_type) + { + case SHT_NFP_INITREG: + case SHT_NFP_MECONFIG: + case SHT_NFP_UDEBUG: + return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); + default: + return FALSE; + } +} + +bfd_reloc_status_type +elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED, + arelent * reloc_entry ATTRIBUTE_UNUSED, + asymbol * symbol ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, + asection * input_section ATTRIBUTE_UNUSED, + bfd * output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + return bfd_reloc_ok; +} + +static bfd_boolean +elf64_nfp_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, + arelent * cache_ptr, Elf_Internal_Rela * dst) +{ + unsigned int r_type; + + r_type = ELF64_R_TYPE (dst->r_info); + if (r_type >= R_NFP_MAX) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = &elf_nfp_howto_table[r_type]; + return TRUE; +} + +static reloc_howto_type * +elf64_nfp_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code ATTRIBUTE_UNUSED) +{ + return NULL; +} + +static reloc_howto_type * +elf64_nfp_reloc_name_lookup (bfd * abfd ATTRIBUTE_UNUSED, + const char *r_name ATTRIBUTE_UNUSED) +{ + return NULL; +} + +#define ELF_ARCH bfd_arch_nfp +#define ELF_MACHINE_CODE EM_NFP +#define ELF_MACHINE_ALT1 E_NFP_MACH_6000 +#define ELF_MACHINE_ALT2 E_NFP_MACH_3200 +#define ELF_MAXPAGESIZE 1 +#define TARGET_LITTLE_NAME "elf64-nfp" +#define TARGET_LITTLE_SYM nfp_elf64_vec + +#define elf_backend_object_p elf64_nfp_object_p +#define elf_backend_section_from_shdr elf64_nfp_section_from_shdr +#define elf_info_to_howto elf64_nfp_info_to_howto +#define bfd_elf64_bfd_reloc_type_lookup elf64_nfp_reloc_type_lookup +#define bfd_elf64_bfd_reloc_name_lookup elf64_nfp_reloc_name_lookup + +#include "elf64-target.h" diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in index 27139e5..7e82a33 100644 --- a/bfd/po/SRC-POTFILES.in +++ b/bfd/po/SRC-POTFILES.in @@ -85,6 +85,7 @@ cpu-moxie.c cpu-msp430.c cpu-mt.c cpu-nds32.c +cpu-nfp.c cpu-nios2.c cpu-ns32k.c cpu-or1k.c @@ -209,6 +210,7 @@ elf64-hppa.h elf64-ia64-vms.c elf64-mips.c elf64-mmix.c +elf64-nfp.c elf64-ppc.c elf64-s390.c elf64-sparc.c diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot index a6b2adb..36e0e67 100644 --- a/bfd/po/bfd.pot +++ b/bfd/po/bfd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2018-04-24 11:57+0100\n" +"POT-Creation-Date: 2018-04-30 11:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -67,7 +67,7 @@ msgstr "" #: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2773 #: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:1040 #: elf-hppa.h:1068 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:519 -#: elf32-arm.c:1852 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698 +#: elf32-arm.c:1944 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698 #: elf32-cr16.c:653 elf32-cr16.c:683 elf32-cr16c.c:186 elf32-cris.c:467 #: elf32-crx.c:429 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544 #: elf32-dlx.c:548 elf32-epiphany.c:376 elf32-fr30.c:381 elf32-frv.c:2558 @@ -88,11 +88,11 @@ msgstr "" #: elf32-xstormy16.c:395 elf32-xtensa.c:454 elf32-xtensa.c:488 #: elf64-alpha.c:1112 elf64-alpha.c:4101 elf64-alpha.c:4249 #: elf64-ia64-vms.c:254 elf64-ia64-vms.c:3440 elf64-mips.c:3623 -#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-ppc.c:2281 elf64-ppc.c:2555 -#: elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:285 -#: elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 elfxx-sparc.c:589 -#: elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 elfxx-tilegx.c:952 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126 +#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-nfp.c:239 elf64-ppc.c:2281 +#: elf64-ppc.c:2555 elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 +#: elf64-x86-64.c:285 elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 +#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 +#: elfxx-tilegx.c:952 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2224 elf32-ia64.c:211 #: elf32-ia64.c:3863 elf64-ia64.c:211 elf64-ia64.c:3863 #, c-format @@ -264,148 +264,12 @@ msgstr "" msgid "using multiple gp values" msgstr "" -#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8972 elf32-mcore.c:100 -#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14922 +#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8979 elf32-mcore.c:100 +#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14932 #, c-format msgid "%pB: %s unsupported" msgstr "" -#: coff-arm.c:1037 -#, c-format -msgid "%pB: unable to find THUMB glue '%s' for `%s'" -msgstr "" - -#: coff-arm.c:1066 -#, c-format -msgid "%pB: unable to find ARM glue '%s' for `%s'" -msgstr "" - -#: coff-arm.c:1367 -#, c-format -msgid "" -"%pB(%s): warning: interworking not enabled; first occurrence: %pB: arm call " -"to thumb" -msgstr "" - -#: coff-arm.c:1457 -#, c-format -msgid "" -"%pB(%s): warning: interworking not enabled; first occurrence: %pB: thumb " -"call to arm; consider relinking with --support-old-code enabled" -msgstr "" - -#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127 -#, c-format -msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'" -msgstr "" - -#: coff-arm.c:2076 -#, c-format -msgid "%pB: illegal symbol index in reloc: %ld" -msgstr "" - -#: coff-arm.c:2208 -#, c-format -msgid "error: %pB is compiled for APCS-%d, whereas %pB is compiled for APCS-%d" -msgstr "" - -#: coff-arm.c:2221 elf32-arm.c:19614 -#, c-format -msgid "" -"error: %pB passes floats in float registers, whereas %pB passes them in " -"integer registers" -msgstr "" - -#: coff-arm.c:2226 elf32-arm.c:19618 -#, c-format -msgid "" -"error: %pB passes floats in integer registers, whereas %pB passes them in " -"float registers" -msgstr "" - -#: coff-arm.c:2238 -#, c-format -msgid "" -"error: %pB is compiled as position independent code, whereas target %pB is " -"absolute position" -msgstr "" - -#: coff-arm.c:2243 -#, c-format -msgid "" -"error: %pB is compiled as absolute position code, whereas target %pB is " -"position independent" -msgstr "" - -#: coff-arm.c:2270 elf32-arm.c:19683 -#, c-format -msgid "warning: %pB supports interworking, whereas %pB does not" -msgstr "" - -#: coff-arm.c:2275 elf32-arm.c:19689 -#, c-format -msgid "warning: %pB does not support interworking, whereas %pB does" -msgstr "" - -#: coff-arm.c:2298 -#, c-format -msgid "private flags = %x:" -msgstr "" - -#: coff-arm.c:2306 elf32-arm.c:14191 -#, c-format -msgid " [floats passed in float registers]" -msgstr "" - -#: coff-arm.c:2308 -#, c-format -msgid " [floats passed in integer registers]" -msgstr "" - -#: coff-arm.c:2311 elf32-arm.c:14194 -#, c-format -msgid " [position independent]" -msgstr "" - -#: coff-arm.c:2313 -#, c-format -msgid " [absolute position]" -msgstr "" - -#: coff-arm.c:2317 -#, c-format -msgid " [interworking flag not initialised]" -msgstr "" - -#: coff-arm.c:2319 -#, c-format -msgid " [interworking supported]" -msgstr "" - -#: coff-arm.c:2321 -#, c-format -msgid " [interworking not supported]" -msgstr "" - -#: coff-arm.c:2366 elf32-arm.c:13052 -#, c-format -msgid "" -"warning: not setting interworking flag of %pB since it has already been " -"specified as non-interworking" -msgstr "" - -#: coff-arm.c:2369 elf32-arm.c:13056 -#, c-format -msgid "warning: clearing the interworking flag of %pB due to outside request" -msgstr "" - -#: coff-arm.c:2426 elf32-arm.c:13101 -#, c-format -msgid "" -"warning: clearing the interworking flag of %pB because non-interworking code " -"in %pB has been linked with it" -msgstr "" - #: coff-mips.c:640 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330 #: elf64-mips.c:3131 elfn32-mips.c:2956 msgid "GP relative relocation when _gp not defined" @@ -481,6 +345,11 @@ msgstr "" msgid "unsupported relocation type %#x" msgstr "" +#: coff-tic80.c:672 cofflink.c:3127 +#, c-format +msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'" +msgstr "" + #: coffcode.h:954 #, c-format msgid "%pB: unable to load COMDAT section name" @@ -1018,7 +887,7 @@ msgstr "" msgid "%pB: %s' accessed both as normal and thread local symbol" msgstr "" -#: elf-m10300.c:2094 elf32-arm.c:12566 elf32-i386.c:3457 elf32-m32r.c:2539 +#: elf-m10300.c:2094 elf32-arm.c:13225 elf32-i386.c:3457 elf32-m32r.c:2539 #: elf32-m68k.c:3899 elf32-s390.c:3208 elf32-sh.c:3796 elf32-tilepro.c:3409 #: elf32-xtensa.c:2947 elf64-s390.c:3125 elf64-x86-64.c:3804 elfxx-sparc.c:3908 #: elfxx-tilegx.c:3793 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5258 @@ -1046,7 +915,7 @@ msgid "internal error: suspicious relocation type used in shared library" msgstr "" #: elf-m10300.c:2649 elf32-avr.c:2487 elf32-frv.c:5641 elf64-ia64-vms.c:364 -#: elfxx-sparc.c:2797 reloc.c:8078 reloc16.c:155 elf32-ia64.c:362 +#: elfxx-sparc.c:2797 reloc.c:8095 reloc16.c:155 elf32-ia64.c:362 #: elf64-ia64.c:362 msgid "%P%F: --relax and -r may not be used together\n" msgstr "" @@ -1256,53 +1125,53 @@ msgstr "" msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'" msgstr "" -#: elf.c:4394 +#: elf.c:4401 #, c-format msgid "%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d" msgstr "" -#: elf.c:4940 +#: elf.c:4947 #, c-format msgid "%pB: TLS sections are not adjacent:" msgstr "" -#: elf.c:4947 +#: elf.c:4954 #, c-format msgid "\t TLS: %pA" msgstr "" -#: elf.c:4951 +#: elf.c:4958 #, c-format msgid "\tnon-TLS: %pA" msgstr "" -#: elf.c:5447 +#: elf.c:5454 #, c-format msgid "" "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "" -#: elf.c:5475 +#: elf.c:5482 #, c-format msgid "%pB: not enough room for program headers, try linking with -N" msgstr "" -#: elf.c:5563 +#: elf.c:5570 #, c-format msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>" msgstr "" -#: elf.c:5700 +#: elf.c:5707 #, c-format msgid "%pB: section `%pA' can't be allocated in segment %d" msgstr "" -#: elf.c:5748 +#: elf.c:5755 #, c-format msgid "%pB: warning: allocated section `%s' not in segment" msgstr "" -#: elf.c:5981 +#: elf.c:5988 #, c-format msgid "" "%pB: error: non-load segment %d includes file header and/or program header" @@ -1311,47 +1180,47 @@ msgstr "" #. The fix for this error is usually to edit the linker script being #. used and set up the program headers manually. Either that or #. leave room for the headers at the start of the SECTIONS. -#: elf.c:6158 +#: elf.c:6165 #, c-format msgid "%pB: error: PHDR segment not covered by LOAD segment" msgstr "" -#: elf.c:6503 +#: elf.c:6510 #, c-format msgid "%pB: symbol `%s' required but not present" msgstr "" -#: elf.c:6847 +#: elf.c:6854 #, c-format msgid "" "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this " "intentional?" msgstr "" -#: elf.c:7461 +#: elf.c:7468 #, c-format msgid "%pB: warning: segment alignment of %#<PRIx64> is too large" msgstr "" -#: elf.c:7960 +#: elf.c:7967 #, c-format msgid "" "unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "" -#: elf.c:8293 +#: elf.c:8300 #, c-format msgid "%pB: .gnu.version_r invalid entry" msgstr "" -#: elf.c:8420 +#: elf.c:8427 #, c-format msgid "%pB: .gnu.version_d invalid entry" msgstr "" #: elf32-arc.c:442 elf32-frv.c:6630 elf32-iq2000.c:870 elf32-m32c.c:914 #: elf32-mt.c:562 elf32-rl78.c:1261 elf32-rx.c:3200 elf32-visium.c:841 -#: elf64-ppc.c:6184 +#: elf64-ppc.c:6194 #, c-format msgid "private flags = 0x%lx:" msgstr "" @@ -1455,7 +1324,7 @@ msgstr "" msgid "%pB(%pA): internal error: unknown error" msgstr "" -#: elf32-arc.c:1985 elf32-arm.c:14552 elf32-metag.c:2257 elfxx-mips.c:8905 +#: elf32-arc.c:1985 elf32-arm.c:15270 elf32-metag.c:2257 elfxx-mips.c:8905 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7394 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:474 #, c-format @@ -1474,7 +1343,7 @@ msgstr "" msgid "warning: %pB: unknown ARC object attribute %d" msgstr "" -#: elf32-arm.c:4030 elf32-arm.c:4064 elf32-arm.c:4083 elf32-arm.c:4135 +#: elf32-arm.c:4294 elf32-arm.c:4328 elf32-arm.c:4347 elf32-arm.c:4399 #, c-format msgid "" "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE " @@ -1482,141 +1351,141 @@ msgid "" "movw instruction" msgstr "" -#: elf32-arm.c:4095 elf32-arm.c:4149 elf32-arm.c:8813 elf32-arm.c:8903 +#: elf32-arm.c:4359 elf32-arm.c:4413 elf32-arm.c:9082 elf32-arm.c:9172 #, c-format msgid "" "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call " "to %s" msgstr "" -#: elf32-arm.c:4423 +#: elf32-arm.c:4687 #, c-format msgid "no address assigned to the veneers output section %s" msgstr "" -#: elf32-arm.c:4498 elf32-arm.c:6634 elf32-hppa.c:577 elf32-m68hc1x.c:165 -#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4737 +#: elf32-arm.c:4762 elf32-arm.c:6898 elf32-hppa.c:577 elf32-m68hc1x.c:165 +#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4747 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:3099 #, c-format msgid "%pB: cannot create stub entry %s" msgstr "" -#: elf32-arm.c:5683 +#: elf32-arm.c:5947 #, c-format msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later" msgstr "" -#: elf32-arm.c:5692 +#: elf32-arm.c:5956 #, c-format msgid "" "%pB: invalid special symbol `%s'; it must be a global or weak function symbol" msgstr "" -#: elf32-arm.c:5731 +#: elf32-arm.c:5995 #, c-format msgid "" "%pB: invalid standard symbol `%s'; it must be a global or weak function " "symbol" msgstr "" -#: elf32-arm.c:5737 +#: elf32-arm.c:6001 #, c-format msgid "%pB: absent standard symbol `%s'" msgstr "" -#: elf32-arm.c:5749 +#: elf32-arm.c:6013 #, c-format msgid "%pB: `%s' and its special symbol are in different sections" msgstr "" -#: elf32-arm.c:5761 +#: elf32-arm.c:6025 #, c-format msgid "%pB: entry function `%s' not output" msgstr "" -#: elf32-arm.c:5768 +#: elf32-arm.c:6032 #, c-format msgid "%pB: entry function `%s' is empty" msgstr "" -#: elf32-arm.c:5897 +#: elf32-arm.c:6161 #, c-format msgid "%pB: --in-implib only supported for Secure Gateway import libraries" msgstr "" -#: elf32-arm.c:5943 +#: elf32-arm.c:6207 #, c-format msgid "" "%pB: invalid import library entry: `%s'; symbol should be absolute, global " "and refer to Thumb functions" msgstr "" -#: elf32-arm.c:5965 +#: elf32-arm.c:6229 #, c-format msgid "entry function `%s' disappeared from secure code" msgstr "" -#: elf32-arm.c:5989 +#: elf32-arm.c:6253 #, c-format msgid "`%s' refers to a non entry function" msgstr "" -#: elf32-arm.c:6004 +#: elf32-arm.c:6268 #, c-format msgid "%pB: visibility of symbol `%s' has changed" msgstr "" -#: elf32-arm.c:6013 +#: elf32-arm.c:6277 #, c-format msgid "%pB: incorrect size for symbol `%s'" msgstr "" -#: elf32-arm.c:6032 +#: elf32-arm.c:6296 #, c-format msgid "offset of veneer for entry function `%s' not a multiple of its size" msgstr "" -#: elf32-arm.c:6052 +#: elf32-arm.c:6316 msgid "" "new entry function(s) introduced but no output import library specified:" msgstr "" -#: elf32-arm.c:6060 +#: elf32-arm.c:6324 #, c-format msgid "start address of `%s' is different from previous link" msgstr "" -#: elf32-arm.c:6767 elf32-arm.c:6803 +#: elf32-arm.c:7031 elf32-arm.c:7067 #, c-format msgid "unable to find %s glue '%s' for '%s'" msgstr "" -#: elf32-arm.c:7518 +#: elf32-arm.c:7782 #, c-format msgid "%pB: BE8 images only valid in big-endian mode" msgstr "" #. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:7749 +#: elf32-arm.c:8013 #, c-format msgid "" "%pB: warning: selected VFP11 erratum workaround is not necessary for target " "architecture" msgstr "" -#: elf32-arm.c:7776 +#: elf32-arm.c:8040 #, c-format msgid "" "%pB: warning: selected STM32L4XX erratum workaround is not necessary for " "target architecture" msgstr "" -#: elf32-arm.c:8313 elf32-arm.c:8333 elf32-arm.c:8399 elf32-arm.c:8418 +#: elf32-arm.c:8577 elf32-arm.c:8597 elf32-arm.c:8663 elf32-arm.c:8682 #, c-format msgid "%pB: unable to find %s veneer `%s'" msgstr "" -#: elf32-arm.c:8625 +#: elf32-arm.c:8889 #, c-format msgid "" "%pB(%pA+%#x): error: multiple load detected in non-last IT block " @@ -1624,182 +1493,201 @@ msgid "" "it to generate only one instruction per IT block" msgstr "" -#: elf32-arm.c:8723 +#: elf32-arm.c:8989 #, c-format msgid "invalid TARGET2 relocation type '%s'" msgstr "" #. FIXME: We ought to be able to generate thumb-1 PLT #. instructions... -#: elf32-arm.c:9465 +#: elf32-arm.c:9791 #, c-format msgid "%pB: warning: thumb-1 mode PLT generation not currently supported" msgstr "" -#: elf32-arm.c:9730 elf32-arm.c:9772 +#: elf32-arm.c:10095 elf32-arm.c:10137 #, c-format msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline" msgstr "" -#: elf32-arm.c:10114 +#: elf32-arm.c:10481 msgid "shared object" msgstr "" -#: elf32-arm.c:10117 +#: elf32-arm.c:10484 msgid "PIE executable" msgstr "" -#: elf32-arm.c:10120 +#: elf32-arm.c:10487 #, c-format msgid "" "%pB: relocation %s against external or undefined symbol `%s' can not be used " "when making a %s; recompile with -fPIC" msgstr "" -#: elf32-arm.c:10251 elf32-arm.c:10678 +#: elf32-arm.c:10624 elf32-arm.c:11051 #, c-format msgid "%pB: warning: %s BLX instruction targets %s function '%s'" msgstr "" -#: elf32-arm.c:11547 elf32-arm.c:11573 +#: elf32-arm.c:11954 elf32-arm.c:11980 #, c-format msgid "" "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by " "TLS_GOTDESC" msgstr "" -#: elf32-arm.c:11605 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366 +#: elf32-arm.c:12026 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366 #, c-format msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object" msgstr "" -#: elf32-arm.c:11819 +#: elf32-arm.c:12240 #, c-format msgid "" "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group " "relocations" msgstr "" -#: elf32-arm.c:11860 elf32-arm.c:11952 elf32-arm.c:12040 elf32-arm.c:12130 +#: elf32-arm.c:12281 elf32-arm.c:12373 elf32-arm.c:12461 elf32-arm.c:12551 #, c-format msgid "" "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group " "relocation %s" msgstr "" -#: elf32-arm.c:12398 elf32-sh.c:3685 +#: elf32-arm.c:13057 elf32-sh.c:3685 #, c-format msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section" msgstr "" -#: elf32-arm.c:12511 elf32-m68k.c:3936 elf32-xtensa.c:2689 +#: elf32-arm.c:13170 elf32-m68k.c:3936 elf32-xtensa.c:2689 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466 #, c-format msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s" msgstr "" -#: elf32-arm.c:12513 elf32-m68k.c:3938 elf32-xtensa.c:2691 +#: elf32-arm.c:13172 elf32-m68k.c:3938 elf32-xtensa.c:2691 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6468 #, c-format msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s" msgstr "" -#: elf32-arm.c:12596 elf32-tic6x.c:2708 +#: elf32-arm.c:13255 elf32-tic6x.c:2708 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6802 msgid "out of range" msgstr "" -#: elf32-arm.c:12600 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712 +#: elf32-arm.c:13259 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6806 msgid "unsupported relocation" msgstr "" -#: elf32-arm.c:12608 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720 +#: elf32-arm.c:13267 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6814 msgid "unknown error" msgstr "" -#: elf32-arm.c:13188 +#: elf32-arm.c:13711 +#, c-format +msgid "" +"warning: not setting interworking flag of %pB since it has already been " +"specified as non-interworking" +msgstr "" + +#: elf32-arm.c:13715 +#, c-format +msgid "warning: clearing the interworking flag of %pB due to outside request" +msgstr "" + +#: elf32-arm.c:13760 +#, c-format +msgid "" +"warning: clearing the interworking flag of %pB because non-interworking code " +"in %pB has been linked with it" +msgstr "" + +#: elf32-arm.c:13847 #, c-format msgid "%pB: unknown mandatory EABI object attribute %d" msgstr "" -#: elf32-arm.c:13196 +#: elf32-arm.c:13855 #, c-format msgid "warning: %pB: unknown EABI object attribute %d" msgstr "" -#: elf32-arm.c:13463 +#: elf32-arm.c:14122 #, c-format msgid "error: %pB: unknown CPU architecture" msgstr "" -#: elf32-arm.c:13501 elf32-nios2.c:2946 +#: elf32-arm.c:14160 elf32-nios2.c:2946 #, c-format msgid "error: %pB: conflicting CPU architectures %d/%d" msgstr "" -#: elf32-arm.c:13598 +#: elf32-arm.c:14257 #, c-format msgid "" "Error: %pB has both the current and legacy Tag_MPextension_use attributes" msgstr "" -#: elf32-arm.c:13627 +#: elf32-arm.c:14286 #, c-format msgid "error: %pB uses VFP register arguments, %pB does not" msgstr "" -#: elf32-arm.c:13785 +#: elf32-arm.c:14444 #, c-format msgid "error: %pB: unable to merge virtualization attributes with %pB" msgstr "" -#: elf32-arm.c:13811 +#: elf32-arm.c:14470 #, c-format msgid "error: %pB: conflicting architecture profiles %c/%c" msgstr "" -#: elf32-arm.c:13950 +#: elf32-arm.c:14609 #, c-format msgid "warning: %pB: conflicting platform configuration" msgstr "" -#: elf32-arm.c:13959 +#: elf32-arm.c:14618 #, c-format msgid "error: %pB: conflicting use of R9" msgstr "" -#: elf32-arm.c:13971 +#: elf32-arm.c:14630 #, c-format msgid "error: %pB: SB relative addressing conflicts with use of R9" msgstr "" -#: elf32-arm.c:13984 +#: elf32-arm.c:14643 #, c-format msgid "" "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; " "use of wchar_t values across objects may fail" msgstr "" -#: elf32-arm.c:14015 +#: elf32-arm.c:14674 #, c-format msgid "" "warning: %pB uses %s enums yet the output is to use %s enums; use of enum " "values across objects may fail" msgstr "" -#: elf32-arm.c:14027 +#: elf32-arm.c:14686 #, c-format msgid "error: %pB uses iWMMXt register arguments, %pB does not" msgstr "" -#: elf32-arm.c:14044 +#: elf32-arm.c:14703 #, c-format msgid "error: fp16 format mismatch between %pB and %pB" msgstr "" -#: elf32-arm.c:14080 +#: elf32-arm.c:14739 #, c-format msgid "%pB has both the current and legacy Tag_MPextension_use attributes" msgstr "" @@ -1809,7 +1697,7 @@ msgstr "" #. Ignore init flag - it may not be set, despite the flags field containing valid data. #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.c:14167 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410 +#: elf32-arm.c:14826 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410 #: elf32-m68k.c:1201 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537 #: elf32-xgate.c:672 elfxx-mips.c:15792 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6968 @@ -1817,122 +1705,137 @@ msgstr "" msgid "private flags = %lx:" msgstr "" -#: elf32-arm.c:14176 +#: elf32-arm.c:14835 #, c-format msgid " [interworking enabled]" msgstr "" -#: elf32-arm.c:14184 +#: elf32-arm.c:14843 #, c-format msgid " [VFP float format]" msgstr "" -#: elf32-arm.c:14186 +#: elf32-arm.c:14845 #, c-format msgid " [Maverick float format]" msgstr "" -#: elf32-arm.c:14188 +#: elf32-arm.c:14847 #, c-format msgid " [FPA float format]" msgstr "" -#: elf32-arm.c:14197 +#: elf32-arm.c:14850 +#, c-format +msgid " [floats passed in float registers]" +msgstr "" + +#: elf32-arm.c:14853 elf32-arm.c:14939 +#, c-format +msgid " [position independent]" +msgstr "" + +#: elf32-arm.c:14856 #, c-format msgid " [new ABI]" msgstr "" -#: elf32-arm.c:14200 +#: elf32-arm.c:14859 #, c-format msgid " [old ABI]" msgstr "" -#: elf32-arm.c:14203 +#: elf32-arm.c:14862 #, c-format msgid " [software FP]" msgstr "" -#: elf32-arm.c:14212 +#: elf32-arm.c:14871 #, c-format msgid " [Version1 EABI]" msgstr "" -#: elf32-arm.c:14215 elf32-arm.c:14226 +#: elf32-arm.c:14874 elf32-arm.c:14885 #, c-format msgid " [sorted symbol table]" msgstr "" -#: elf32-arm.c:14217 elf32-arm.c:14228 +#: elf32-arm.c:14876 elf32-arm.c:14887 #, c-format msgid " [unsorted symbol table]" msgstr "" -#: elf32-arm.c:14223 +#: elf32-arm.c:14882 #, c-format msgid " [Version2 EABI]" msgstr "" -#: elf32-arm.c:14231 +#: elf32-arm.c:14890 #, c-format msgid " [dynamic symbols use segment index]" msgstr "" -#: elf32-arm.c:14234 +#: elf32-arm.c:14893 #, c-format msgid " [mapping symbols precede others]" msgstr "" -#: elf32-arm.c:14241 +#: elf32-arm.c:14900 #, c-format msgid " [Version3 EABI]" msgstr "" -#: elf32-arm.c:14245 +#: elf32-arm.c:14904 #, c-format msgid " [Version4 EABI]" msgstr "" -#: elf32-arm.c:14249 +#: elf32-arm.c:14908 #, c-format msgid " [Version5 EABI]" msgstr "" -#: elf32-arm.c:14252 +#: elf32-arm.c:14911 #, c-format msgid " [soft-float ABI]" msgstr "" -#: elf32-arm.c:14255 +#: elf32-arm.c:14914 #, c-format msgid " [hard-float ABI]" msgstr "" -#: elf32-arm.c:14261 +#: elf32-arm.c:14920 #, c-format msgid " [BE8]" msgstr "" -#: elf32-arm.c:14264 +#: elf32-arm.c:14923 #, c-format msgid " [LE8]" msgstr "" -#: elf32-arm.c:14270 +#: elf32-arm.c:14929 #, c-format msgid " <EABI version unrecognised>" msgstr "" -#: elf32-arm.c:14277 +#: elf32-arm.c:14936 #, c-format msgid " [relocatable executable]" msgstr "" -#: elf32-arm.c:14282 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971 +#: elf32-arm.c:14942 +#, c-format +msgid " [FDPIC ABI supplement]" +msgstr "" + +#: elf32-arm.c:14947 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971 #, c-format msgid "<Unrecognised flag bits set>" msgstr "" -#: elf32-arm.c:14399 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783 +#: elf32-arm.c:15064 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783 #: elf32-tilepro.c:1479 elf32-xtensa.c:1024 elf64-s390.c:882 #: elf64-x86-64.c:1826 elfxx-sparc.c:1424 elfxx-tilegx.c:1700 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7260 @@ -1941,92 +1844,122 @@ msgstr "" msgid "%pB: bad symbol index: %d" msgstr "" -#: elf32-arm.c:15667 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110 +#: elf32-arm.c:15455 +#, c-format +msgid "" +"FDPIC does not yet support %s relocation to become dynamic for executable" +msgstr "" + +#: elf32-arm.c:16505 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110 #: elf32-metag.c:2797 elf32-nds32.c:3840 elf32-or1k.c:2285 elf32-ppc.c:6550 #: elf32-s390.c:1855 elf32-sh.c:2975 elf32-tic6x.c:3239 elf32-tilepro.c:2245 -#: elf64-ppc.c:10249 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491 +#: elf64-ppc.c:10259 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491 #: elfxx-x86.c:571 /work/sources/binutils/current/bfd/elfnn-aarch64.c:8610 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:1117 #, c-format msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n" msgstr "" -#: elf32-arm.c:15912 +#: elf32-arm.c:16801 #, c-format msgid "errors encountered processing file %pB" msgstr "" -#: elf32-arm.c:16349 elflink.c:12416 elflink.c:12463 +#: elf32-arm.c:17248 elflink.c:12416 elflink.c:12463 #, c-format msgid "could not find section %s" msgstr "" -#: elf32-arm.c:17525 +#: elf32-arm.c:18459 #, c-format msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:17552 +#: elf32-arm.c:18486 #, c-format msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "" -#: elf32-arm.c:18379 elf32-arm.c:18401 +#: elf32-arm.c:19313 elf32-arm.c:19335 #, c-format msgid "%pB: error: VFP11 veneer out of range" msgstr "" -#: elf32-arm.c:18452 +#: elf32-arm.c:19386 #, c-format msgid "" "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by " "%<PRId64> bytes; cannot encode branch instruction" msgstr "" -#: elf32-arm.c:18491 +#: elf32-arm.c:19425 #, c-format msgid "%pB: error: cannot create STM32L4XX veneer" msgstr "" -#: elf32-arm.c:19513 +#: elf32-arm.c:20519 #, c-format msgid "error: %pB is already in final BE8 format" msgstr "" -#: elf32-arm.c:19589 +#: elf32-arm.c:20595 #, c-format msgid "" "error: source object %pB has EABI version %d, but target %pB has EABI " "version %d" msgstr "" -#: elf32-arm.c:19604 +#: elf32-arm.c:20610 #, c-format msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d" msgstr "" -#: elf32-arm.c:19628 elf32-arm.c:19632 elf32-arm.c:19642 +#: elf32-arm.c:20620 +#, c-format +msgid "" +"error: %pB passes floats in float registers, whereas %pB passes them in " +"integer registers" +msgstr "" + +#: elf32-arm.c:20624 +#, c-format +msgid "" +"error: %pB passes floats in integer registers, whereas %pB passes them in " +"float registers" +msgstr "" + +#: elf32-arm.c:20634 elf32-arm.c:20638 elf32-arm.c:20648 #, c-format msgid "error: %pB uses %s instructions, whereas %pB does not" msgstr "" -#: elf32-arm.c:19646 +#: elf32-arm.c:20652 #, c-format msgid "error: %pB does not use %s instructions, whereas %pB does" msgstr "" -#: elf32-arm.c:19665 +#: elf32-arm.c:20671 #, c-format msgid "error: %pB uses software FP, whereas %pB uses hardware FP" msgstr "" -#: elf32-arm.c:19669 +#: elf32-arm.c:20675 #, c-format msgid "error: %pB uses hardware FP, whereas %pB uses software FP" msgstr "" +#: elf32-arm.c:20689 +#, c-format +msgid "warning: %pB supports interworking, whereas %pB does not" +msgstr "" + +#: elf32-arm.c:20695 +#, c-format +msgid "warning: %pB does not support interworking, whereas %pB does" +msgstr "" + #: elf32-avr.c:1513 elf32-bfin.c:3135 elf32-cris.c:2041 elf32-epiphany.c:577 #: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:502 elf32-ip2k.c:1493 #: elf32-iq2000.c:701 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998 @@ -2873,7 +2806,7 @@ msgstr "" msgid "%pB: unmatched OMIT_FP in %pA" msgstr "" -#: elf32-nds32.c:12642 reloc.c:8292 +#: elf32-nds32.c:12642 reloc.c:8309 #, c-format msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n" msgstr "" @@ -3033,7 +2966,7 @@ msgstr "" #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:5687 elf64-ppc.c:8949 +#: elf32-ppc.c:5687 elf64-ppc.c:8959 #, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "" @@ -3062,7 +2995,7 @@ msgstr "" msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" msgstr "" -#: elf32-ppc.c:8727 elf64-ppc.c:15724 +#: elf32-ppc.c:8727 elf64-ppc.c:15734 msgid "%H: warning: %s unexpected insn %#x.\n" msgstr "" @@ -3114,13 +3047,13 @@ msgstr "" msgid "%H: %s reloc against `%s': error %d\n" msgstr "" -#: elf32-ppc.c:11013 elf64-ppc.c:16216 +#: elf32-ppc.c:11013 elf64-ppc.c:16226 msgid "" "%X%P: text relocations and GNU indirect functions will result in a segfault " "at runtime\n" msgstr "" -#: elf32-ppc.c:11017 elf64-ppc.c:16220 +#: elf32-ppc.c:11017 elf64-ppc.c:16230 msgid "" "%P: warning: text relocations and GNU indirect functions may result in a " "segfault at runtime\n" @@ -3415,7 +3348,7 @@ msgstr "" msgid "overlay stub relocation overflow" msgstr "" -#: elf32-spu.c:1984 elf64-ppc.c:13805 +#: elf32-spu.c:1984 elf64-ppc.c:13815 msgid "stubs don't match calculated size" msgstr "" @@ -4164,134 +4097,134 @@ msgid "" "internal inconsistency: remaining %lu != max %lu; please report this bug" msgstr "" -#: elf64-ppc.c:5068 +#: elf64-ppc.c:5078 #, c-format msgid "symbol '%s' has invalid st_other for ABI version 1" msgstr "" -#: elf64-ppc.c:5243 +#: elf64-ppc.c:5253 #, c-format msgid "%pB .opd not allowed in ABI version %d" msgstr "" -#: elf64-ppc.c:5757 +#: elf64-ppc.c:5767 #, c-format msgid "%H: %s reloc unsupported in shared libraries and PIEs\n" msgstr "" -#: elf64-ppc.c:6152 +#: elf64-ppc.c:6162 #, c-format msgid "%pB uses unknown e_flags 0x%lx" msgstr "" -#: elf64-ppc.c:6160 +#: elf64-ppc.c:6170 #, c-format msgid "%pB: ABI version %ld is not compatible with ABI version %ld output" msgstr "" -#: elf64-ppc.c:6188 +#: elf64-ppc.c:6198 #, c-format msgid " [abiv%ld]" msgstr "" -#: elf64-ppc.c:7376 +#: elf64-ppc.c:7386 msgid "" "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting " "LD_BIND_NOW=1 or upgrade gcc\n" msgstr "" -#: elf64-ppc.c:7645 +#: elf64-ppc.c:7655 #, c-format msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "" -#: elf64-ppc.c:7872 +#: elf64-ppc.c:7882 #, c-format msgid "dynreloc miscount for %pB, section %pA" msgstr "" -#: elf64-ppc.c:7961 +#: elf64-ppc.c:7971 #, c-format msgid "%pB: .opd is not a regular array of opd entries" msgstr "" -#: elf64-ppc.c:7971 +#: elf64-ppc.c:7981 #, c-format msgid "%pB: unexpected reloc type %u in .opd section" msgstr "" -#: elf64-ppc.c:7993 +#: elf64-ppc.c:8003 #, c-format msgid "%pB: undefined sym `%s' in .opd section" msgstr "" -#: elf64-ppc.c:8477 +#: elf64-ppc.c:8487 msgid "" "warning: --plt-localentry is especially dangerous without ld.so support to " "detect ABI violations" msgstr "" -#: elf64-ppc.c:8726 +#: elf64-ppc.c:8736 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "" -#: elf64-ppc.c:9101 elf64-ppc.c:9738 +#: elf64-ppc.c:9111 elf64-ppc.c:9748 #, c-format msgid "%s defined on removed toc entry" msgstr "" -#: elf64-ppc.c:9466 +#: elf64-ppc.c:9476 #, c-format msgid "%H: toc optimization is not supported for %s instruction\n" msgstr "" -#: elf64-ppc.c:9695 +#: elf64-ppc.c:9705 #, c-format msgid "%H: %s references optimized away TOC entry\n" msgstr "" -#: elf64-ppc.c:10526 +#: elf64-ppc.c:10536 #, c-format msgid "warning: discarding dynamic section %s" msgstr "" -#: elf64-ppc.c:11113 +#: elf64-ppc.c:11123 msgid "%P: cannot find opd entry toc for `%pT'\n" msgstr "" -#: elf64-ppc.c:11201 +#: elf64-ppc.c:11211 #, c-format msgid "long branch stub `%s' offset overflow" msgstr "" -#: elf64-ppc.c:11260 +#: elf64-ppc.c:11270 #, c-format msgid "can't find branch stub `%s'" msgstr "" -#: elf64-ppc.c:11324 elf64-ppc.c:11452 elf64-ppc.c:13421 +#: elf64-ppc.c:11334 elf64-ppc.c:11462 elf64-ppc.c:13431 #, c-format msgid "%P: linkage table error against `%pT'\n" msgstr "" -#: elf64-ppc.c:11675 +#: elf64-ppc.c:11685 #, c-format msgid "can't build branch stub `%s'" msgstr "" -#: elf64-ppc.c:12451 +#: elf64-ppc.c:12461 #, c-format msgid "%pB section %pA exceeds stub group size" msgstr "" -#: elf64-ppc.c:13819 +#: elf64-ppc.c:13829 #, c-format msgid "linker stubs in %u group\n" msgid_plural "linker stubs in %u groups\n" msgstr[0] "" msgstr[1] "" -#: elf64-ppc.c:13823 +#: elf64-ppc.c:13833 #, c-format msgid "" " branch %lu\n" @@ -4303,54 +4236,54 @@ msgid "" " global entry %lu" msgstr "" -#: elf64-ppc.c:14142 +#: elf64-ppc.c:14152 #, c-format msgid "%H: %s used with TLS symbol `%pT'\n" msgstr "" -#: elf64-ppc.c:14144 +#: elf64-ppc.c:14154 #, c-format msgid "%H: %s used with non-TLS symbol `%pT'\n" msgstr "" -#: elf64-ppc.c:14788 +#: elf64-ppc.c:14798 #, c-format msgid "%H: call to `%pT' lacks nop, can't restore toc; recompile with -fPIC\n" msgstr "" -#: elf64-ppc.c:14794 +#: elf64-ppc.c:14804 #, c-format msgid "" "%H: call to `%pT' lacks nop, can't restore toc; (-mcmodel=small toc adjust " "stub)\n" msgstr "" -#: elf64-ppc.c:15489 +#: elf64-ppc.c:15499 #, c-format msgid "%H: %s for indirect function `%pT' unsupported\n" msgstr "" -#: elf64-ppc.c:15601 +#: elf64-ppc.c:15611 #, c-format msgid "%P: %pB: %s is not supported for `%pT'\n" msgstr "" -#: elf64-ppc.c:15827 +#: elf64-ppc.c:15837 #, c-format msgid "%H: error: %s not a multiple of %u\n" msgstr "" -#: elf64-ppc.c:15850 +#: elf64-ppc.c:15860 #, c-format msgid "%H: unresolvable %s against `%pT'\n" msgstr "" -#: elf64-ppc.c:15947 +#: elf64-ppc.c:15957 #, c-format msgid "%H: %s against `%pT': error %d\n" msgstr "" -#: elf64-ppc.c:16293 elf64-ppc.c:16312 +#: elf64-ppc.c:16303 elf64-ppc.c:16322 #, c-format msgid "%s offset too large for .eh_frame sdata4 encoding" msgstr "" @@ -5679,32 +5612,32 @@ msgstr "" msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "" -#: reloc.c:8125 +#: reloc.c:8142 msgid "INPUT_SECTION_FLAGS are not supported" msgstr "" -#: reloc.c:8226 +#: reloc.c:8243 #, c-format msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n" msgstr "" -#: reloc.c:8302 +#: reloc.c:8319 #, c-format msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n" msgstr "" -#: reloc.c:8311 +#: reloc.c:8328 #, c-format msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n" msgstr "" -#: reloc.c:8373 +#: reloc.c:8390 #, c-format msgid "%pB: unrecognized relocation type %#x in section `%pA'" msgstr "" #. PR 21803: Suggest the most likely cause of this error. -#: reloc.c:8377 +#: reloc.c:8394 #, c-format msgid "is this version of the linker - %s - out of date ?" msgstr "" @@ -8449,86 +8382,91 @@ msgid "" "%pB: Data Directory size (%lx) exceeds space left in section (%<PRIx64>)" msgstr "" -#: peigen.c:3021 pepigen.c:3021 pex64igen.c:3021 +#: peigen.c:3001 pepigen.c:3001 pex64igen.c:3001 +#, c-format +msgid "%pB: Data Directory size (%#lx) is negative" +msgstr "" + +#: peigen.c:3030 pepigen.c:3030 pex64igen.c:3030 msgid "failed to update file offsets in debug directory" msgstr "" -#: peigen.c:3027 pepigen.c:3027 pex64igen.c:3027 +#: peigen.c:3036 pepigen.c:3036 pex64igen.c:3036 #, c-format msgid "%pB: failed to read debug data section" msgstr "" -#: peigen.c:3843 pepigen.c:3843 pex64igen.c:3843 +#: peigen.c:3852 pepigen.c:3852 pex64igen.c:3852 #, c-format msgid ".rsrc merge failure: duplicate string resource: %d" msgstr "" -#: peigen.c:3978 pepigen.c:3978 pex64igen.c:3978 +#: peigen.c:3987 pepigen.c:3987 pex64igen.c:3987 msgid ".rsrc merge failure: multiple non-default manifests" msgstr "" -#: peigen.c:3996 pepigen.c:3996 pex64igen.c:3996 +#: peigen.c:4005 pepigen.c:4005 pex64igen.c:4005 msgid ".rsrc merge failure: a directory matches a leaf" msgstr "" -#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038 +#: peigen.c:4047 pepigen.c:4047 pex64igen.c:4047 msgid ".rsrc merge failure: duplicate leaf" msgstr "" -#: peigen.c:4040 pepigen.c:4040 pex64igen.c:4040 +#: peigen.c:4049 pepigen.c:4049 pex64igen.c:4049 #, c-format msgid ".rsrc merge failure: duplicate leaf: %s" msgstr "" -#: peigen.c:4106 pepigen.c:4106 pex64igen.c:4106 +#: peigen.c:4115 pepigen.c:4115 pex64igen.c:4115 msgid ".rsrc merge failure: dirs with differing characteristics" msgstr "" -#: peigen.c:4113 pepigen.c:4113 pex64igen.c:4113 +#: peigen.c:4122 pepigen.c:4122 pex64igen.c:4122 msgid ".rsrc merge failure: differing directory versions" msgstr "" #. Corrupted .rsrc section - cannot merge. -#: peigen.c:4230 pepigen.c:4230 pex64igen.c:4230 +#: peigen.c:4239 pepigen.c:4239 pex64igen.c:4239 #, c-format msgid "%pB: .rsrc merge failure: corrupt .rsrc section" msgstr "" -#: peigen.c:4238 pepigen.c:4238 pex64igen.c:4238 +#: peigen.c:4247 pepigen.c:4247 pex64igen.c:4247 #, c-format msgid "%pB: .rsrc merge failure: unexpected .rsrc size" msgstr "" -#: peigen.c:4377 pepigen.c:4377 pex64igen.c:4377 +#: peigen.c:4386 pepigen.c:4386 pex64igen.c:4386 #, c-format msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "" -#: peigen.c:4397 pepigen.c:4397 pex64igen.c:4397 +#: peigen.c:4406 pepigen.c:4406 pex64igen.c:4406 #, c-format msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "" -#: peigen.c:4418 pepigen.c:4418 pex64igen.c:4418 +#: peigen.c:4427 pepigen.c:4427 pex64igen.c:4427 #, c-format msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "" -#: peigen.c:4438 pepigen.c:4438 pex64igen.c:4438 +#: peigen.c:4447 pepigen.c:4447 pex64igen.c:4447 #, c-format msgid "" "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ." "idata$6 is missing" msgstr "" -#: peigen.c:4480 pepigen.c:4480 pex64igen.c:4480 +#: peigen.c:4489 pepigen.c:4489 pex64igen.c:4489 #, c-format msgid "" "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ." "idata$6 is missing" msgstr "" -#: peigen.c:4505 pepigen.c:4505 pex64igen.c:4505 +#: peigen.c:4514 pepigen.c:4514 pex64igen.c:4514 #, c-format msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "" diff --git a/bfd/targets.c b/bfd/targets.c index e490f5f..230048a 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -734,6 +734,7 @@ extern const bfd_target nds32_elf32_be_vec; extern const bfd_target nds32_elf32_le_vec; extern const bfd_target nds32_elf32_linux_be_vec; extern const bfd_target nds32_elf32_linux_le_vec; +extern const bfd_target nfp_elf64_vec; extern const bfd_target nios2_elf32_be_vec; extern const bfd_target nios2_elf32_le_vec; extern const bfd_target ns32k_aout_pc532mach_vec; @@ -1107,6 +1108,8 @@ static const bfd_target * const _bfd_target_vector[] = &nds32_elf32_linux_be_vec, &nds32_elf32_linux_le_vec, + &nfp_elf64_vec, + &nios2_elf32_be_vec, &nios2_elf32_le_vec, |