aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-08-02 12:06:23 +0100
committerSam James <sam@gentoo.org>2023-08-02 12:06:23 +0100
commitb5c37946cce4b41af0436529b139fa3d23e61f73 (patch)
tree02129ebadb74e7d3f2430cf8221799ce186600e3 /bfd
parent675b9d612cc59446e84e2c6d89b45500cb603a8d (diff)
downloadgdb-b5c37946cce4b41af0436529b139fa3d23e61f73.zip
gdb-b5c37946cce4b41af0436529b139fa3d23e61f73.tar.gz
gdb-b5c37946cce4b41af0436529b139fa3d23e61f73.tar.bz2
Revert "2.41 Release sources"
This reverts commit 675b9d612cc59446e84e2c6d89b45500cb603a8d. See https://sourceware.org/pipermail/binutils/2023-August/128761.html.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog32
-rw-r--r--bfd/bfd-in2.h5
-rw-r--r--bfd/bpf-reloc.def15
-rw-r--r--bfd/coffcode.h12
-rw-r--r--bfd/config.bfd22
-rwxr-xr-xbfd/configure20
-rw-r--r--bfd/development.sh4
-rw-r--r--bfd/elf64-bpf.c3
-rw-r--r--bfd/elf64-x86-64.c39
-rw-r--r--bfd/elfnn-loongarch.c67
-rw-r--r--bfd/elfxx-loongarch.c4
-rw-r--r--bfd/elfxx-riscv.c84
-rw-r--r--bfd/libbfd.h2
-rw-r--r--bfd/peXXigen.c15
-rw-r--r--bfd/po/bfd.pot277
-rw-r--r--bfd/reloc.c4
-rw-r--r--bfd/section.c3
-rw-r--r--bfd/version.h2
-rw-r--r--bfd/version.m42
19 files changed, 368 insertions, 244 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3e5d841..56c858e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,26 +1,26 @@
-2023-07-30 Nick Clifton <nickc@redhat.com>
+2023-07-24 Johannes Schauer Marin Rodrigues <josch@debian.org>
- This is the 2.41 release.
- * configure: Regenerate.
- * development.sh: Set variables to false.
- * po/bfd.pot: Regenerate.
- * version.m4: Set version number to 2.41.
+ * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): If inserting a
+ timestamp, use the value held in the SOURCE_DATE_EPOCH environment
+ variable, if it is defined.
-2023-07-24 Nick Clifton <nickc@redhat.com>
+2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
- Import from mainline:
- * elfnn-loongarch.c (RELOCATE_CALC_PC32_HI20): Redefined.
- (RELOCATE_CALC_PC64_HI32): Redefined.
+ * reloc.c: New reloc BFD_RELOC_BPF_DISPCALL32.
+ * elf64-bpf.c (bpf_reloc_type_lookup): Handle the new reloc.
+ * libbfd.h (bfd_reloc_code_real_names): Regenerate.
- * elfxx-loongarch.c (reloc_bits_pcrel20_s2): Delete.
- (reloc_bits_b16): Delete.
- (reloc_bits_b21): Delete.
- (reloc_bits_b26): Delete.
- (reloc_sign_bits): New.
+2023-07-09 Fangrui Song <maskray@google.com>
+
+ PR 30592
+ * section.c: Define SEC_ELF_LARGE.
+ * bfd-in2.h: Regenerate.
+ * elf64-x86-64.c (elf_x86_64_section_flags, elf_x86_64_fake_sections,
+ elf_x86_64_copy_private_section_data): New.
2023-07-03 Nick Clifton <nickc@redhat.com>
- * version.m4: Update version number to 2.40.90.
+ * version.m4: Update version number to 2.41.50.
* configure: Regenerate.
* bfd/po/bfd.pot: Regenerate.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index b34c8ef..5f49807 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -625,6 +625,9 @@ typedef struct bfd_section
TMS320C54X only. */
#define SEC_TIC54X_BLOCK 0x10000000
+ /* This section has the SHF_X86_64_LARGE flag. This is ELF x86-64 only. */
+#define SEC_ELF_LARGE 0x10000000
+
/* Conditionally link this section; do not link if there are no
references found to any symbol in the section. This is for TI
TMS320C54X only. */
@@ -7145,6 +7148,8 @@ assembler and not (currently) written to any object files. */
/* Linux eBPF relocations. */
BFD_RELOC_BPF_64,
BFD_RELOC_BPF_DISP32,
+ BFD_RELOC_BPF_DISPCALL32,
+ BFD_RELOC_BPF_DISP16,
/* Adapteva EPIPHANY - 8 bit signed pc-relative displacement */
BFD_RELOC_EPIPHANY_SIMM8,
diff --git a/bfd/bpf-reloc.def b/bfd/bpf-reloc.def
index b1be2eb..31f761d 100644
--- a/bfd/bpf-reloc.def
+++ b/bfd/bpf-reloc.def
@@ -72,3 +72,18 @@
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
true) /* pcrel_offset */
+
+ /* 16-bit PC-relative address in load instructions. */
+ BPF_HOWTO (R_BPF_GNU_64_16, /* type */
+ 0, /* rightshift */
+ 2, /* size */
+ 16, /* bitsize */
+ true, /* pc_relative */
+ 16, /* bitpos */
+ complain_overflow_signed, /* complain_on_overflow */
+ bpf_elf_generic_reloc, /* special_function */
+ "R_BPF_GNU_64_16", /* name */
+ true, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ true) /* pcrel_offset */
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 6272025..6c8080c 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -3176,8 +3176,9 @@ coff_compute_section_file_positions (bfd * abfd)
created and not just improve performances with gdb.
*/
- if ((!strcmp (current->name, _TEXT)
- || !strcmp (current->name, _DATA))
+ if ((current->flags & SEC_LOAD) != 0
+ && (!strcmp (current->name, _TEXT)
+ || !strcmp (current->name, _DATA))
&& (previous == NULL || strcmp(previous->name, _TDATA)))
{
bfd_vma align = 4096;
@@ -3190,7 +3191,8 @@ coff_compute_section_file_positions (bfd * abfd)
sofar += align + vma_off - sofar_off;
}
#endif
- if (previous != NULL)
+ if (previous != NULL
+ && (previous->flags & SEC_LOAD) != 0)
previous->size += sofar - old_sofar;
}
@@ -4695,7 +4697,7 @@ coff_slurp_symbol_table (bfd * abfd)
#endif
#ifdef RS6000COFF_C
case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
case C_AIX_WEAKEXT:
#endif
#endif
@@ -5021,7 +5023,7 @@ coff_classify_symbol (bfd *abfd,
#endif
#ifdef RS6000COFF_C
case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
case C_AIX_WEAKEXT:
#endif
#endif
diff --git a/bfd/config.bfd b/bfd/config.bfd
index bdee539..3b39ff3 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1098,18 +1098,6 @@ case "${targ}" in
targ_selvecs="rs6000_xcoff64_aix_vec"
want64=true
;;
- powerpc-*-haiku*)
- targ_defvec=powerpc_elf32_vec
- targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
- targ_cflags=-D__HAIKU_TARGET__
- ;;
-#ifdef BFD64
- powerpc64-*-aix5.[01])
- targ_defvec=rs6000_xcoff64_aix_vec
- targ_selvecs="rs6000_xcoff_vec"
- want64=true
- ;;
-#endif
powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
targ_cflags=-DAIX_WEAK_SUPPORT
targ_defvec=rs6000_xcoff_vec
@@ -1117,6 +1105,11 @@ case "${targ}" in
want64=true
;;
#ifdef BFD64
+ powerpc64-*-aix5.[01])
+ targ_defvec=rs6000_xcoff64_aix_vec
+ targ_selvecs="rs6000_xcoff_vec"
+ want64=true
+ ;;
powerpc64-*-aix[5-9]*)
targ_cflags=-DAIX_WEAK_SUPPORT
targ_defvec=rs6000_xcoff64_aix_vec
@@ -1176,6 +1169,11 @@ case "${targ}" in
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
;;
+ powerpc-*-haiku*)
+ targ_defvec=powerpc_elf32_vec
+ targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
+ targ_cflags=-D__HAIKU_TARGET__
+ ;;
powerpc-*-kaos*)
targ_defvec=powerpc_elf32_vec
targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
diff --git a/bfd/configure b/bfd/configure
index 910af3c..3d6ec57 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.41.
+# Generated by GNU Autoconf 2.69 for bfd 2.41.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='bfd 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='bfd 2.41.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1400,7 +1400,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures bfd 2.41 to adapt to many kinds of systems.
+\`configure' configures bfd 2.41.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1471,7 +1471,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.41:";;
+ short | recursive ) echo "Configuration of bfd 2.41.50:";;
esac
cat <<\_ACEOF
@@ -1608,7 +1608,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.41
+bfd configure 2.41.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2202,7 +2202,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by bfd $as_me 2.41, which was
+It was created by bfd $as_me 2.41.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3184,7 +3184,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.41'
+ VERSION='2.41.50'
cat >>confdefs.h <<_ACEOF
@@ -16103,7 +16103,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by bfd $as_me 2.41, which was
+This file was extended by bfd $as_me 2.41.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16169,7 +16169,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-bfd config.status 2.41
+bfd config.status 2.41.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/bfd/development.sh b/bfd/development.sh
index c0da031..f638a57 100644
--- a/bfd/development.sh
+++ b/bfd/development.sh
@@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Controls whether to enable development-mode features by default.
-development=false
+development=true
# Indicate whether this is a release branch.
-experimental=false
+experimental=true
diff --git a/bfd/elf64-bpf.c b/bfd/elf64-bpf.c
index 65418d1..aefad7d 100644
--- a/bfd/elf64-bpf.c
+++ b/bfd/elf64-bpf.c
@@ -88,7 +88,10 @@ bpf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
case BFD_RELOC_BPF_64:
return &bpf_elf_howto_table[ (int) R_BPF_64_64_IDX];
case BFD_RELOC_BPF_DISP32:
+ case BFD_RELOC_BPF_DISPCALL32:
return &bpf_elf_howto_table[ (int) R_BPF_64_32_IDX];
+ case BFD_RELOC_BPF_DISP16:
+ return &bpf_elf_howto_table[ (int) R_BPF_GNU_64_16_IDX];
default:
/* Pacify gcc -Wall. */
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index f926464..e7a0a91 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -5281,6 +5281,39 @@ elf_x86_64_merge_symbol (struct elf_link_hash_entry *h,
return true;
}
+static bool
+elf_x86_64_section_flags (const Elf_Internal_Shdr *hdr)
+{
+ if ((hdr->sh_flags & SHF_X86_64_LARGE) != 0)
+ hdr->bfd_section->flags |= SEC_ELF_LARGE;
+
+ return true;
+}
+
+static bool
+elf_x86_64_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Shdr *hdr, asection *sec)
+{
+ if (sec->flags & SEC_ELF_LARGE)
+ hdr->sh_flags |= SHF_X86_64_LARGE;
+
+ return true;
+}
+
+static bool
+elf_x86_64_copy_private_section_data (bfd *ibfd, asection *isec,
+ bfd *obfd, asection *osec)
+{
+ if (!_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec))
+ return false;
+
+ /* objcopy --set-section-flags without "large" drops SHF_X86_64_LARGE. */
+ if (ibfd != obfd)
+ elf_section_flags (osec) &= ~SHF_X86_64_LARGE;
+
+ return true;
+}
+
static int
elf_x86_64_additional_program_headers (bfd *abfd,
struct bfd_link_info *info ATTRIBUTE_UNUSED)
@@ -5408,6 +5441,8 @@ elf_x86_64_special_sections[]=
#define elf_info_to_howto elf_x86_64_info_to_howto
+#define bfd_elf64_bfd_copy_private_section_data \
+ elf_x86_64_copy_private_section_data
#define bfd_elf64_bfd_reloc_type_lookup elf_x86_64_reloc_type_lookup
#define bfd_elf64_bfd_reloc_name_lookup \
elf_x86_64_reloc_name_lookup
@@ -5448,6 +5483,8 @@ elf_x86_64_special_sections[]=
elf_x86_64_merge_symbol
#define elf_backend_special_sections \
elf_x86_64_special_sections
+#define elf_backend_section_flags elf_x86_64_section_flags
+#define elf_backend_fake_sections elf_x86_64_fake_sections
#define elf_backend_additional_program_headers \
elf_x86_64_additional_program_headers
#define elf_backend_setup_gnu_properties \
@@ -5564,6 +5601,8 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
#undef ELF_TARGET_OS
#undef ELF_OSABI
+#define bfd_elf32_bfd_copy_private_section_data \
+ elf_x86_64_copy_private_section_data
#define bfd_elf32_bfd_reloc_type_lookup \
elf_x86_64_reloc_type_lookup
#define bfd_elf32_bfd_reloc_name_lookup \
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index e9c408b..70a6662 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -1538,7 +1538,7 @@ elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
/* Allocate space in .plt, .got and associated reloc sections for
ifunc dynamic relocs. */
-static bool
+static int
elfNN_allocate_local_ifunc_dynrelocs (void **slot, void *inf)
{
struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
@@ -1700,7 +1700,7 @@ loongarch_elf_size_dynamic_sections (bfd *output_bfd,
/* Allocate .plt and .got entries, and space for local ifunc symbols. */
htab_traverse (htab->loc_hash_table,
- (void *) elfNN_allocate_local_ifunc_dynrelocs, info);
+ elfNN_allocate_local_ifunc_dynrelocs, info);
/* Don't allocate .got.plt section if there are no PLT. */
if (htab->elf.sgotplt && htab->elf.sgotplt->size == GOTPLT_HEADER_SIZE
@@ -4040,12 +4040,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
{
struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
- asection *rela_dyn = bfd_get_section_by_name (output_bfd, ".rela.dyn");
- struct bfd_link_order *lo = NULL;
- Elf_Internal_Rela *slot = NULL, *last_slot = NULL;
-
- if (rela_dyn)
- lo = rela_dyn->map_head.link_order;
if (h->plt.offset != MINUS_ONE)
{
@@ -4055,7 +4049,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
uint32_t plt_entry[PLT_ENTRY_INSNS];
bfd_byte *loc;
Elf_Internal_Rela rela;
- asection *rela_sec = NULL;
if (htab->elf.splt)
{
@@ -4113,26 +4106,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
+ h->root.u.def.section->output_section->vma
+ h->root.u.def.section->output_offset);
- /* Find the space after dyn sort. */
- while (slot == last_slot || slot->r_offset != 0)
- {
- if (slot != last_slot)
- {
- slot++;
- continue;
- }
-
- BFD_ASSERT (lo != NULL);
- rela_sec = lo->u.indirect.section;
- lo = lo->next;
-
- slot = (Elf_Internal_Rela *)rela_sec->contents;
- last_slot = (Elf_Internal_Rela *)(rela_sec->contents +
- rela_sec->size);
- }
-
- bed->s->swap_reloca_out (output_bfd, &rela, (bfd_byte *)slot);
- rela_sec->reloc_count++;
+ loongarch_elf_append_rela (output_bfd, relplt, &rela);
}
else
{
@@ -4299,7 +4273,7 @@ loongarch_finish_dyn (bfd *output_bfd, struct bfd_link_info *info, bfd *dynobj,
/* Finish up local dynamic symbol handling. We set the contents of
various dynamic sections here. */
-static bool
+static int
elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
{
struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
@@ -4308,6 +4282,33 @@ elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
return loongarch_elf_finish_dynamic_symbol (info->output_bfd, info, h, NULL);
}
+/* Value of struct elf_backend_data->elf_backend_output_arch_local_syms,
+ this function is called before elf_link_sort_relocs.
+ So relocation R_LARCH_IRELATIVE for local ifunc can be append to
+ .rela.dyn (.rela.got) by loongarch_elf_append_rela. */
+
+static bool
+elf_loongarch_output_arch_local_syms
+ (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info,
+ void *flaginfo ATTRIBUTE_UNUSED,
+ int (*func) (void *, const char *,
+ Elf_Internal_Sym *,
+ asection *,
+ struct elf_link_hash_entry *) ATTRIBUTE_UNUSED)
+{
+ struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
+ if (htab == NULL)
+ return false;
+
+ /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
+ htab_traverse (htab->loc_hash_table,
+ elfNN_loongarch_finish_local_dynamic_symbol,
+ info);
+
+ return true;
+}
+
static bool
loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
struct bfd_link_info *info)
@@ -4386,10 +4387,6 @@ loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
elf_section_data (output_section)->this_hdr.sh_entsize = GOT_ENTRY_SIZE;
}
- /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
- htab_traverse (htab->loc_hash_table,
- (void *) elfNN_loongarch_finish_local_dynamic_symbol, info);
-
return true;
}
@@ -4654,6 +4651,8 @@ elf_loongarch64_hash_symbol (struct elf_link_hash_entry *h)
#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections
#define elf_backend_relocate_section loongarch_elf_relocate_section
#define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol
+#define elf_backend_output_arch_local_syms \
+ elf_loongarch_output_arch_local_syms
#define elf_backend_finish_dynamic_sections \
loongarch_elf_finish_dynamic_sections
#define elf_backend_object_p loongarch_elf_object_p
diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index 2d29905..f27c9fd 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1711,10 +1711,12 @@ reloc_sign_bits (bfd *abfd, reloc_howto_type *howto, bfd_vma *fix_val)
{
case R_LARCH_SOP_POP_32_S_0_10_10_16_S2:
case R_LARCH_B26:
- /* Perform insn bits field. 25:16>>16, 15:0<<10. */
+ /* Perform insn bits field. 15:0<<10, 25:16>>16. */
val = ((val & 0xffff) << 10) | ((val >> 16) & 0x3ff);
break;
+ case R_LARCH_SOP_POP_32_S_0_5_10_16_S2:
case R_LARCH_B21:
+ /* Perform insn bits field. 15:0<<10, 20:16>>16. */
val = ((val & 0xffff) << 10) | ((val >> 16) & 0x1f);
break;
default:
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index b34898a..ba51657 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1132,6 +1132,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvl256b", "zvl128b", check_implicit_always},
{"zvl128b", "zvl64b", check_implicit_always},
{"zvl64b", "zvl32b", check_implicit_always},
+ {"zcd", "d", check_implicit_always},
+ {"zcf", "f", check_implicit_always},
{"zfa", "f", check_implicit_always},
{"d", "f", check_implicit_always},
{"zfh", "zfhmin", check_implicit_always},
@@ -1173,6 +1175,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvksg", "zvkg", check_implicit_always},
{"zvksc", "zvks", check_implicit_always},
{"zvksc", "zvbc", check_implicit_always},
+ {"zcf", "zca", check_implicit_always},
+ {"zcd", "zca", check_implicit_always},
+ {"zcb", "zca", check_implicit_always},
{"smaia", "ssaia", check_implicit_always},
{"smstateen", "ssstateen", check_implicit_always},
{"smepmp", "zicsr", check_implicit_always},
@@ -1307,6 +1312,10 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"zvl32768b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zvl65536b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ztso", ISA_SPEC_CLASS_DRAFT, 0, 1, 0 },
+ {"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
@@ -1942,6 +1951,13 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps)
rps->error_handler (_("rv%d does not support the `q' extension"), xlen);
no_conflict = false;
}
+ if (riscv_lookup_subset (rps->subset_list, "zcf", &subset)
+ && xlen > 32)
+ {
+ rps->error_handler
+ (_("rv%d does not support the `zcf' extension"), xlen);
+ no_conflict = false;
+ }
if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset)
&& riscv_lookup_subset (rps->subset_list, "f", &subset))
{
@@ -2387,13 +2403,16 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
case INSN_CLASS_Q:
return riscv_subset_supports (rps, "q");
case INSN_CLASS_C:
- return riscv_subset_supports (rps, "c");
+ return (riscv_subset_supports (rps, "c")
+ || riscv_subset_supports (rps, "zca"));
case INSN_CLASS_F_AND_C:
return (riscv_subset_supports (rps, "f")
- && riscv_subset_supports (rps, "c"));
+ && (riscv_subset_supports (rps, "c")
+ || riscv_subset_supports (rps, "zcf")));
case INSN_CLASS_D_AND_C:
return (riscv_subset_supports (rps, "d")
- && riscv_subset_supports (rps, "c"));
+ && (riscv_subset_supports (rps, "c")
+ || riscv_subset_supports (rps, "zcd")));
case INSN_CLASS_F_INX:
return (riscv_subset_supports (rps, "f")
|| riscv_subset_supports (rps, "zfinx"));
@@ -2482,10 +2501,6 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "zvkg");
case INSN_CLASS_ZVKNED:
return riscv_subset_supports (rps, "zvkned");
- case INSN_CLASS_ZVKNHA:
- return riscv_subset_supports (rps, "zvknha");
- case INSN_CLASS_ZVKNHB:
- return riscv_subset_supports (rps, "zvknhb");
case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
return (riscv_subset_supports (rps, "zvknha")
|| riscv_subset_supports (rps, "zvknhb"));
@@ -2493,6 +2508,17 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "zvksed");
case INSN_CLASS_ZVKSH:
return riscv_subset_supports (rps, "zvksh");
+ case INSN_CLASS_ZCB:
+ return riscv_subset_supports (rps, "zcb");
+ case INSN_CLASS_ZCB_AND_ZBB:
+ return (riscv_subset_supports (rps, "zcb")
+ && riscv_subset_supports (rps, "zbb"));
+ case INSN_CLASS_ZCB_AND_ZBA:
+ return (riscv_subset_supports (rps, "zcb")
+ && riscv_subset_supports (rps, "zba"));
+ case INSN_CLASS_ZCB_AND_ZMMUL:
+ return (riscv_subset_supports (rps, "zcb")
+ && riscv_subset_supports (rps, "zmmul"));
case INSN_CLASS_SVINVAL:
return riscv_subset_supports (rps, "svinval");
case INSN_CLASS_H:
@@ -2572,21 +2598,27 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
case INSN_CLASS_C:
return "c";
case INSN_CLASS_F_AND_C:
- if (!riscv_subset_supports (rps, "f")
- && !riscv_subset_supports (rps, "c"))
- return _("f' and `c");
- else if (!riscv_subset_supports (rps, "f"))
- return "f";
+ if (!riscv_subset_supports (rps, "f"))
+ {
+ if (!riscv_subset_supports (rps, "c")
+ && !riscv_subset_supports (rps, "zcf"))
+ return _("f' and `c', or `f' and `zcf");
+ else
+ return "f";
+ }
else
- return "c";
+ return _("c' or `zcf");
case INSN_CLASS_D_AND_C:
- if (!riscv_subset_supports (rps, "d")
- && !riscv_subset_supports (rps, "c"))
- return _("d' and `c");
- else if (!riscv_subset_supports (rps, "d"))
- return "d";
+ if (!riscv_subset_supports (rps, "d"))
+ {
+ if (!riscv_subset_supports (rps, "c")
+ && !riscv_subset_supports (rps, "zcd"))
+ return _("d' and `c', or `d' and `zcd");
+ else
+ return "d";
+ }
else
- return "c";
+ return _("c' or `zcd");
case INSN_CLASS_F_INX:
return _("f' or `zfinx");
case INSN_CLASS_D_INX:
@@ -2689,14 +2721,20 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
return _("zvkg");
case INSN_CLASS_ZVKNED:
return _("zvkned");
- case INSN_CLASS_ZVKNHA:
- return _("zvknha");
- case INSN_CLASS_ZVKNHB:
- return _("zvknhb");
+ case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
+ return _("zvknha' or `zvknhb");
case INSN_CLASS_ZVKSED:
return _("zvksed");
case INSN_CLASS_ZVKSH:
return _("zvksh");
+ case INSN_CLASS_ZCB:
+ return "zcb";
+ case INSN_CLASS_ZCB_AND_ZBA:
+ return _("zcb' and `zba");
+ case INSN_CLASS_ZCB_AND_ZBB:
+ return _("zcb' and `zbb");
+ case INSN_CLASS_ZCB_AND_ZMMUL:
+ return _("zcb' and `zmmul', or `zcb' and `m");
case INSN_CLASS_SVINVAL:
return "svinval";
case INSN_CLASS_H:
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index d4fb310..1fc88a8 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -3346,6 +3346,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
"BFD_RELOC_BPF_64",
"BFD_RELOC_BPF_DISP32",
+ "BFD_RELOC_BPF_DISPCALL32",
+ "BFD_RELOC_BPF_DISP16",
"BFD_RELOC_EPIPHANY_SIMM8",
"BFD_RELOC_EPIPHANY_SIMM24",
"BFD_RELOC_EPIPHANY_HIGH",
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index da53f34..cdd89f8 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -838,7 +838,20 @@ _bfd_XXi_only_swap_filehdr_out (bfd * abfd, void * in, void * out)
/* Use a real timestamp by default, unless the no-insert-timestamp
option was chosen. */
if ((pe_data (abfd)->timestamp) == -1)
- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+ {
+ time_t now;
+ char *source_date_epoch;
+
+ /* If the SOURCE_DATE_EPOCH environment variable is
+ defined then use that as the time, otherwise use
+ the current time. */
+ source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
+ if (source_date_epoch)
+ now = (time_t) strtoll (source_date_epoch, NULL, 10);
+ else
+ now = time (NULL);
+ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
+ }
else
H_PUT_32 (abfd, pe_data (abfd)->timestamp, filehdr_out->f_timdat);
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index 7c09d65..d324c06 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: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:35+0100\n"
+"POT-Creation-Date: 2023-07-03 11:38+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"
@@ -69,7 +69,7 @@ msgstr ""
#. Unknown relocation.
#: aoutx.h:4400 coff-alpha.c:601 coff-alpha.c:1521 coff-mips.c:356
-#: coff-rs6000.c:3048 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
+#: coff-rs6000.c:3029 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
#: elf-hppa.h:798 elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813
#: elf32-arc.c:532 elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063
#: elf32-bfin.c:4686 elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467
@@ -95,7 +95,7 @@ msgstr ""
#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1264
#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:269 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1568 elfxx-riscv.c:980 elfxx-sparc.c:589
+#: elfxx-ia64.c:324 elfxx-loongarch.c:1574 elfxx-riscv.c:980 elfxx-sparc.c:589
#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947
#: elfnn-aarch64.c:2215 elfnn-aarch64.c:2313 elfnn-ia64.c:214
#: elfnn-ia64.c:3821
@@ -307,32 +307,32 @@ msgstr ""
msgid "%pB: unsupported swap_aux_out for storage class %#x"
msgstr ""
-#: coff-rs6000.c:3138
+#: coff-rs6000.c:3119
#, c-format
msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr ""
-#: coff-rs6000.c:3262 coff64-rs6000.c:848
+#: coff-rs6000.c:3243 coff64-rs6000.c:848
#, c-format
msgid "Unable to find the stub entry targeting %s"
msgstr ""
-#: coff-rs6000.c:3377
+#: coff-rs6000.c:3358
#, c-format
msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:3390
+#: coff-rs6000.c:3371
#, c-format
msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
msgstr ""
-#: coff-rs6000.c:3796
+#: coff-rs6000.c:3777
#, c-format
msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:4058 coff64-rs6000.c:2031
+#: coff-rs6000.c:4039 coff64-rs6000.c:2031
#, c-format
msgid "%pB: symbol `%s' has unrecognized smclas %d"
msgstr ""
@@ -397,13 +397,13 @@ msgstr ""
msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
msgstr ""
-#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13515
+#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13513
#: reloc.c:8495 reloc16.c:314
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr ""
-#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13525 reloc.c:8505
+#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13523 reloc.c:8505
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr ""
@@ -938,7 +938,7 @@ msgstr ""
#: elf32-moxie.c:292 elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1901
#: elf32-score.c:2738 elf32-score7.c:2549 elf32-spu.c:5089
#: elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684
-#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10653
+#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10651
#: elfxx-tilegx.c:3746
msgid "internal error: unsupported relocation error"
msgstr ""
@@ -1111,7 +1111,7 @@ msgstr ""
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr ""
-#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4430
+#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4391
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
@@ -1558,7 +1558,7 @@ msgid ""
msgstr ""
#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
-#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15687
+#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15685
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -2356,7 +2356,7 @@ msgstr ""
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
#: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
#: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
-#: elfxx-mips.c:16373
+#: elfxx-mips.c:16371
#, c-format
msgid "private flags = %lx:"
msgstr ""
@@ -3774,12 +3774,12 @@ msgstr ""
#: elf32-sh.c:5013
#, c-format
-msgid "%X%H: relocation to \"%s\" references a different segment\n"
+msgid "%X%C: relocation to \"%s\" references a different segment\n"
msgstr ""
#: elf32-sh.c:5020
#, c-format
-msgid "%H: warning: relocation to \"%s\" references a different segment\n"
+msgid "%C: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
#: elf32-sh.c:5488 elf32-sh.c:5570
@@ -4036,7 +4036,7 @@ msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr ""
#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2710
-#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4356 elfnn-riscv.c:3458
+#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4317 elfnn-riscv.c:3458
#, c-format
msgid "discarded output section: `%pA'"
msgstr ""
@@ -4893,7 +4893,7 @@ msgid ""
"%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
msgstr ""
-#: elf64-sparc.c:134 elfcode.h:1593
+#: elf64-sparc.c:134 elfcode.h:1582
#, c-format
msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
msgstr ""
@@ -5041,17 +5041,17 @@ msgstr ""
msgid "warning: %pB has a corrupt string table index"
msgstr ""
-#: elfcode.h:838
+#: elfcode.h:837
#, c-format
msgid "warning: %pB has a program header with invalid alignment"
msgstr ""
-#: elfcode.h:1050
+#: elfcode.h:1039
#, c-format
msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
msgstr ""
-#: elfcode.h:1313
+#: elfcode.h:1302
#, c-format
msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
msgstr ""
@@ -5418,27 +5418,28 @@ msgstr ""
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr ""
-#: elfxx-loongarch.c:1584
+#: elfxx-loongarch.c:1590
#, c-format
msgid "%pB: unsupported relocation type %s"
msgstr ""
-#: elfxx-loongarch.c:1613
+#: elfxx-loongarch.c:1619
#, c-format
msgid "%pB: unsupported bfd relocation type %#x"
msgstr ""
-#: elfxx-loongarch.c:1632
+#: elfxx-loongarch.c:1638
#, c-format
msgid "%pB: unsupported relocation type name %s"
msgstr ""
-#: elfxx-loongarch.c:1685
+#: elfxx-loongarch.c:1689
#, c-format
msgid "%pB: relocation %s right shift %d error 0x%lx"
msgstr ""
-#: elfxx-loongarch.c:1699
+#: elfxx-loongarch.c:1699 elfxx-loongarch.c:1735 elfxx-loongarch.c:1770
+#: elfxx-loongarch.c:1807
#, c-format
msgid "%pB: relocation %s overflow 0x%lx"
msgstr ""
@@ -5471,533 +5472,533 @@ msgstr ""
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr ""
-#: elfxx-mips.c:7345
+#: elfxx-mips.c:7344
#, c-format
msgid ""
"%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr ""
-#: elfxx-mips.c:7389
+#: elfxx-mips.c:7388
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:7624
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
-#: elfxx-mips.c:8449 elfxx-mips.c:8575
+#: elfxx-mips.c:8447 elfxx-mips.c:8573
#, c-format
msgid ""
"%pB: warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8707
+#: elfxx-mips.c:8705
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8807
+#: elfxx-mips.c:8805
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr ""
-#: elfxx-mips.c:8947
+#: elfxx-mips.c:8945
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elfxx-mips.c:9250
+#: elfxx-mips.c:9248
#, c-format
msgid ""
"%X%H: relocation %s against `%s' cannot be used when making a shared object; "
"recompile with -fPIC\n"
msgstr ""
-#: elfxx-mips.c:9376
+#: elfxx-mips.c:9374
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
-#: elfxx-mips.c:9379
+#: elfxx-mips.c:9377
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr ""
-#: elfxx-mips.c:9599
+#: elfxx-mips.c:9597
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr ""
-#: elfxx-mips.c:10534
+#: elfxx-mips.c:10532
#, c-format
msgid ""
"%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
"section `%pA'"
msgstr ""
-#: elfxx-mips.c:10674
+#: elfxx-mips.c:10672
msgid ""
"small-data section exceeds 64KB; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10693
+#: elfxx-mips.c:10691
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10696
+#: elfxx-mips.c:10694
msgid "jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10697
+#: elfxx-mips.c:10695
msgid "jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10700
+#: elfxx-mips.c:10698
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10702
+#: elfxx-mips.c:10700
msgid "branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10704
+#: elfxx-mips.c:10702
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:11004
+#: elfxx-mips.c:11002
#, c-format
msgid ""
"%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:11119 elfxx-mips.c:11706
+#: elfxx-mips.c:11117 elfxx-mips.c:11704
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:11678
+#: elfxx-mips.c:11676
#, c-format
msgid ""
"%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:13424 reloc.c:8417
+#: elfxx-mips.c:13422 reloc.c:8417
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: elfxx-mips.c:13534 reloc.c:8514
+#: elfxx-mips.c:13532 reloc.c:8514
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
-#: elfxx-mips.c:14736
+#: elfxx-mips.c:14734
#, c-format
msgid "%pB: unknown architecture %s"
msgstr ""
-#: elfxx-mips.c:15264
+#: elfxx-mips.c:15262
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr ""
-#: elfxx-mips.c:15541
+#: elfxx-mips.c:15539
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15558
+#: elfxx-mips.c:15556
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15590 elfxx-mips.c:15656 elfxx-mips.c:15671
+#: elfxx-mips.c:15588 elfxx-mips.c:15654 elfxx-mips.c:15669
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15614
+#: elfxx-mips.c:15612
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15639
+#: elfxx-mips.c:15637
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15773
+#: elfxx-mips.c:15771
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
"unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15779
+#: elfxx-mips.c:15777
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15785
+#: elfxx-mips.c:15783
#, c-format
msgid ""
"warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15799
+#: elfxx-mips.c:15797
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15818
+#: elfxx-mips.c:15816
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15830
+#: elfxx-mips.c:15828
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15839
+#: elfxx-mips.c:15837
#, c-format
msgid ""
"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %"
"d"
msgstr ""
-#: elfxx-mips.c:15901
+#: elfxx-mips.c:15899
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15915
+#: elfxx-mips.c:15913
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15968
+#: elfxx-mips.c:15966
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15973
+#: elfxx-mips.c:15971
#, c-format
msgid ""
"%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15977
+#: elfxx-mips.c:15975
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15984
+#: elfxx-mips.c:15982
#, c-format
msgid ""
"%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15988
+#: elfxx-mips.c:15986
#, c-format
msgid ""
"%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:16179
+#: elfxx-mips.c:16177
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:16241 elfxx-mips.c:16252
+#: elfxx-mips.c:16239 elfxx-mips.c:16250
msgid "None"
msgstr ""
-#: elfxx-mips.c:16243 elfxx-mips.c:16312
+#: elfxx-mips.c:16241 elfxx-mips.c:16310
msgid "Unknown"
msgstr ""
-#: elfxx-mips.c:16323
+#: elfxx-mips.c:16321
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: elfxx-mips.c:16326
+#: elfxx-mips.c:16324
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: elfxx-mips.c:16329
+#: elfxx-mips.c:16327
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: elfxx-mips.c:16332
+#: elfxx-mips.c:16330
#, c-format
msgid "Soft float\n"
msgstr ""
-#: elfxx-mips.c:16335
+#: elfxx-mips.c:16333
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:16338
+#: elfxx-mips.c:16336
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:16341
+#: elfxx-mips.c:16339
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16344
+#: elfxx-mips.c:16342
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16376
+#: elfxx-mips.c:16374
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:16378
+#: elfxx-mips.c:16376
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:16380
+#: elfxx-mips.c:16378
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:16382
+#: elfxx-mips.c:16380
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:16384
+#: elfxx-mips.c:16382
#, c-format
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:16386
+#: elfxx-mips.c:16384
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:16388
+#: elfxx-mips.c:16386
#, c-format
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:16390
+#: elfxx-mips.c:16388
#, c-format
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:16415
+#: elfxx-mips.c:16413
#, c-format
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:16435
+#: elfxx-mips.c:16433
#, c-format
msgid " [not 32bitmode]"
msgstr ""
-#: elfxx-riscv.c:1660
+#: elfxx-riscv.c:1657
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr ""
-#: elfxx-riscv.c:1666
+#: elfxx-riscv.c:1663
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1772
+#: elfxx-riscv.c:1769
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr ""
-#: elfxx-riscv.c:1796
+#: elfxx-riscv.c:1793
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr ""
-#: elfxx-riscv.c:1832
+#: elfxx-riscv.c:1829
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
-#: elfxx-riscv.c:1856
+#: elfxx-riscv.c:1853
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1880
+#: elfxx-riscv.c:1877
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
-#: elfxx-riscv.c:1934
+#: elfxx-riscv.c:1931
#, c-format
msgid "rv%d does not support the `e' extension"
msgstr ""
-#: elfxx-riscv.c:1942
+#: elfxx-riscv.c:1939
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr ""
-#: elfxx-riscv.c:1949
+#: elfxx-riscv.c:1946
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
-#: elfxx-riscv.c:1970
+#: elfxx-riscv.c:1967
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr ""
-#: elfxx-riscv.c:2032
+#: elfxx-riscv.c:2029
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr ""
-#: elfxx-riscv.c:2060
+#: elfxx-riscv.c:2057
#, c-format
msgid "%s: ISA string must begin with rv32 or rv64"
msgstr ""
-#: elfxx-riscv.c:2286
+#: elfxx-riscv.c:2283
#, c-format
msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2309
+#: elfxx-riscv.c:2306
#, c-format
msgid "unknown ISA extension `%s' in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2320
+#: elfxx-riscv.c:2317
#, c-format
msgid "cannot + or - base extension `%s' in .option arch `%s'"
msgstr ""
-#: elfxx-riscv.c:2528 elfxx-riscv.c:2730
+#: elfxx-riscv.c:2525 elfxx-riscv.c:2727
msgid "internal: unreachable INSN_CLASS_*"
msgstr ""
-#: elfxx-riscv.c:2561
+#: elfxx-riscv.c:2558
msgid "m' or `zmmul"
msgstr ""
-#: elfxx-riscv.c:2577
+#: elfxx-riscv.c:2574
msgid "f' and `c"
msgstr ""
-#: elfxx-riscv.c:2585
+#: elfxx-riscv.c:2582
msgid "d' and `c"
msgstr ""
-#: elfxx-riscv.c:2591
+#: elfxx-riscv.c:2588
msgid "f' or `zfinx"
msgstr ""
-#: elfxx-riscv.c:2593
+#: elfxx-riscv.c:2590
msgid "d' or `zdinx"
msgstr ""
-#: elfxx-riscv.c:2595
+#: elfxx-riscv.c:2592
msgid "q' or `zqinx"
msgstr ""
-#: elfxx-riscv.c:2597
+#: elfxx-riscv.c:2594
msgid "zfh' or `zhinx"
msgstr ""
-#: elfxx-riscv.c:2601
+#: elfxx-riscv.c:2598
msgid "zfhmin' or `zhinxmin"
msgstr ""
-#: elfxx-riscv.c:2612
+#: elfxx-riscv.c:2609
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr ""
-#: elfxx-riscv.c:2623
+#: elfxx-riscv.c:2620
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr ""
-#: elfxx-riscv.c:2629
+#: elfxx-riscv.c:2626
msgid "d' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2637
+#: elfxx-riscv.c:2634
msgid "q' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2645
+#: elfxx-riscv.c:2642
msgid "zfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2665
+#: elfxx-riscv.c:2662
msgid "zbb' or `zbkb"
msgstr ""
-#: elfxx-riscv.c:2667
+#: elfxx-riscv.c:2664
msgid "zbc' or `zbkc"
msgstr ""
-#: elfxx-riscv.c:2675
+#: elfxx-riscv.c:2672
msgid "zknd' or `zkne"
msgstr ""
-#: elfxx-riscv.c:2681
+#: elfxx-riscv.c:2678
msgid "v' or `zve64x' or `zve32x"
msgstr ""
-#: elfxx-riscv.c:2683
+#: elfxx-riscv.c:2680
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr ""
-#: elfxx-riscv.c:2685
+#: elfxx-riscv.c:2682
msgid "zvbb"
msgstr ""
-#: elfxx-riscv.c:2687
+#: elfxx-riscv.c:2684
msgid "zvbc"
msgstr ""
-#: elfxx-riscv.c:2689
+#: elfxx-riscv.c:2686
msgid "zvkg"
msgstr ""
-#: elfxx-riscv.c:2691
+#: elfxx-riscv.c:2688
msgid "zvkned"
msgstr ""
-#: elfxx-riscv.c:2693
+#: elfxx-riscv.c:2690
msgid "zvknha"
msgstr ""
-#: elfxx-riscv.c:2695
+#: elfxx-riscv.c:2692
msgid "zvknhb"
msgstr ""
-#: elfxx-riscv.c:2697
+#: elfxx-riscv.c:2694
msgid "zvksed"
msgstr ""
-#: elfxx-riscv.c:2699
+#: elfxx-riscv.c:2696
msgid "zvksh"
msgstr ""
-#: elfxx-riscv.c:2703
+#: elfxx-riscv.c:2700
msgid "h"
msgstr ""
@@ -9100,7 +9101,7 @@ msgstr ""
msgid "Internal error: unreachable."
msgstr ""
-#: elfnn-loongarch.c:3848 elfnn-riscv.c:4766
+#: elfnn-loongarch.c:3809 elfnn-riscv.c:4766
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
diff --git a/bfd/reloc.c b/bfd/reloc.c
index fbc67ac..07d35e4 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -7753,6 +7753,10 @@ ENUM
BFD_RELOC_BPF_64
ENUMX
BFD_RELOC_BPF_DISP32
+ENUMX
+ BFD_RELOC_BPF_DISPCALL32
+ENUMX
+ BFD_RELOC_BPF_DISP16
ENUMDOC
Linux eBPF relocations.
diff --git a/bfd/section.c b/bfd/section.c
index 7377029..e9af59d 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -359,6 +359,9 @@ CODE_FRAGMENT
. TMS320C54X only. *}
.#define SEC_TIC54X_BLOCK 0x10000000
.
+. {* This section has the SHF_X86_64_LARGE flag. This is ELF x86-64 only. *}
+.#define SEC_ELF_LARGE 0x10000000
+.
. {* Conditionally link this section; do not link if there are no
. references found to any symbol in the section. This is for TI
. TMS320C54X only. *}
diff --git a/bfd/version.h b/bfd/version.h
index 352e681..bf956a9 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -16,7 +16,7 @@
In releases, the date is not included in either version strings or
sonames. */
-#define BFD_VERSION_DATE 20230730
+#define BFD_VERSION_DATE 20230802
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/bfd/version.m4 b/bfd/version.m4
index d8dfc1c..435efec 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.41])
+m4_define([BFD_VERSION], [2.41.50])