Module Name:    src
Committed By:   christos
Date:           Sun Dec 25 20:06:01 UTC 2022

Modified Files:
        src/external/gpl3/binutils/lib/libbfd/arch/i386: bfd.h bfdver.h
            config.h defs.mk
        src/external/gpl3/binutils/lib/libgnuctf/arch/i386: config.h defs.mk
        src/external/gpl3/binutils/lib/libiberty/arch/i386: defs.mk
        src/external/gpl3/binutils/lib/libopcodes/arch/i386: config.h
        src/external/gpl3/binutils/usr.bin/common/arch/i386: config.h defs.mk
        src/external/gpl3/binutils/usr.bin/gas/arch/i386: config.h defs.mk
        src/external/gpl3/binutils/usr.bin/gprof/arch/i386: gconfig.h
        src/external/gpl3/binutils/usr.bin/ld/arch/i386: config.h

Log Message:
regen for i386


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h
cvs rdiff -u -r1.9 -r1.10 \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h
cvs rdiff -u -r1.1 -r1.2 \
    src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h \
    src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk
cvs rdiff -u -r1.6 -r1.7 \
    src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk
cvs rdiff -u -r1.9 -r1.10 \
    src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h
cvs rdiff -u -r1.10 -r1.11 \
    src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h
cvs rdiff -u -r1.11 -r1.12 \
    src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk
cvs rdiff -u -r1.9 -r1.10 \
    src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h
cvs rdiff -u -r1.2 -r1.3 \
    src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk
cvs rdiff -u -r1.9 -r1.10 \
    src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h
cvs rdiff -u -r1.10 -r1.11 \
    src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h:1.10 src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h:1.11
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h:1.10	Fri Apr  3 20:46:53 2020
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/bfd.h	Sun Dec 25 15:06:00 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically
@@ -11,7 +11,7 @@
 
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright (C) 1990-2020 Free Software Foundation, Inc.
+   Copyright (C) 1990-2022 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -45,9 +45,11 @@ extern "C" {
 
 #include "ansidecl.h"
 #include "symcat.h"
-#include "bfd_stdint.h"
+#include <stdint.h>
+#include <stdbool.h>
 #include "diagnostics.h"
 #include <stdarg.h>
+#include <string.h>
 #include <sys/stat.h>
 
 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
@@ -67,23 +69,6 @@ extern "C" {
    comma and then the length of the string.  Doing this by hand
    is error prone, so using this macro is safer.  */
 #define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
-/* Unfortunately it is not possible to use the STRING_COMMA_LEN macro
-   to create the arguments to another macro, since the preprocessor
-   will mis-count the number of arguments to the outer macro (by not
-   evaluating STRING_COMMA_LEN and so missing the comma).  This is a
-   problem for example when trying to use STRING_COMMA_LEN to build
-   the arguments to the strncmp() macro.  Hence this alternative
-   definition of strncmp is provided here.
-
-   Note - these macros do NOT work if STR2 is not a constant string.  */
-#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
-  /* strcpy() can have a similar problem, but since we know we are
-     copying a constant string, we can use memcpy which will be faster
-     since there is no need to check for a NUL byte inside STR.  We
-     can also save time if we do not need to copy the terminating NUL.  */
-#define LITMEMCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2) - 1)
-#define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
-
 
 #define BFD_SUPPORTS_PLUGINS 1
 
@@ -95,109 +80,64 @@ extern "C" {
 /* The word size of the default bfd target.  */
 #define BFD_DEFAULT_TARGET_SIZE 32
 
-#define BFD_HOST_64BIT_LONG 0
-#define BFD_HOST_64BIT_LONG_LONG 1
-#if 1
-#define BFD_HOST_64_BIT long long
-#define BFD_HOST_U_64_BIT unsigned long long
-typedef BFD_HOST_64_BIT bfd_int64_t;
-typedef BFD_HOST_U_64_BIT bfd_uint64_t;
-#endif
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if BFD_HOST_64BIT_LONG
-#  define BFD_PRI64 "l"
-# elif defined (__MSVCRT__)
-#  define BFD_PRI64 "I64"
-# else
-#  define BFD_PRI64 "ll"
-# endif
-# undef PRId64
-# define PRId64 BFD_PRI64 "d"
-# undef PRIu64
-# define PRIu64 BFD_PRI64 "u"
-# undef PRIx64
-# define PRIx64 BFD_PRI64 "x"
-#endif
+#include <inttypes.h>
 
 #if BFD_ARCH_SIZE >= 64
 #define BFD64
 #endif
 
-#ifndef INLINE
-#if __GNUC__ >= 2
-#define INLINE __inline__
-#else
-#define INLINE
-#endif
-#endif
-
-/* Declaring a type wide enough to hold a host long and a host pointer.  */
-#define BFD_HOSTPTR_T unsigned long
-typedef BFD_HOSTPTR_T bfd_hostptr_t;
-
 /* Forward declaration.  */
 typedef struct bfd bfd;
 
-/* Boolean type used in bfd.  Too many systems define their own
-   versions of "boolean" for us to safely typedef a "boolean" of
-   our own.  Using an enum for "bfd_boolean" has its own set of
-   problems, with strange looking casts required to avoid warnings
-   on some older compilers.  Thus we just use an int.
-
+/* Boolean type used in bfd.
    General rule: Functions which are bfd_boolean return TRUE on
    success and FALSE on failure (unless they're a predicate).  */
 
-typedef int bfd_boolean;
-#undef FALSE
-#undef TRUE
-#define FALSE 0
-#define TRUE 1
-
-#ifdef BFD64
-
-#ifndef BFD_HOST_64_BIT
- #error No 64 bit integer type available
-#endif /* ! defined (BFD_HOST_64_BIT) */
-
-typedef BFD_HOST_U_64_BIT bfd_vma;
-typedef BFD_HOST_64_BIT bfd_signed_vma;
-typedef BFD_HOST_U_64_BIT bfd_size_type;
-typedef BFD_HOST_U_64_BIT symvalue;
-
-#if BFD_HOST_64BIT_LONG
-#define BFD_VMA_FMT "l"
-#elif defined (__MSVCRT__)
-#define BFD_VMA_FMT "I64"
+#ifdef POISON_BFD_BOOLEAN
+# pragma GCC poison bfd_boolean
 #else
-#define BFD_VMA_FMT "ll"
+# define bfd_boolean bool
+# undef FALSE
+# undef TRUE
+# define FALSE 0
+# define TRUE 1
 #endif
 
-#ifndef fprintf_vma
-#define sprintf_vma(s,x) sprintf (s, "%016" BFD_VMA_FMT "x", x)
-#define fprintf_vma(f,x) fprintf (f, "%016" BFD_VMA_FMT "x", x)
-#endif
+/* Silence "applying zero offset to null pointer" UBSAN warnings.  */
+#define PTR_ADD(P,A) ((A) != 0 ? (P) + (A) : (P))
+/* Also prevent non-zero offsets from being applied to a null pointer.  */
+#define NPTR_ADD(P,A) ((P) != NULL ? (P) + (A) : (P))
 
-#else /* not BFD64  */
+#ifdef BFD64
 
 /* Represent a target address.  Also used as a generic unsigned type
    which is guaranteed to be big enough to hold any arithmetic types
    we need to deal with.  */
-typedef unsigned long bfd_vma;
+typedef uint64_t bfd_vma;
 
 /* A generic signed type which is guaranteed to be big enough to hold any
    arithmetic types we need to deal with.  Can be assumed to be compatible
    with bfd_vma in the same way that signed and unsigned ints are compatible
    (as parameters, in assignment, etc).  */
-typedef long bfd_signed_vma;
+typedef int64_t bfd_signed_vma;
+
+typedef uint64_t bfd_size_type;
+typedef uint64_t symvalue;
+
+#define BFD_VMA_FMT "ll"
+
+#define fprintf_vma(f,x) fprintf (f, "%016" BFD_VMA_FMT "x", x)
+#define sprintf_vma(s,x) sprintf (s, "%016" BFD_VMA_FMT "x", x)
+
+#else /* not BFD64  */
 
+typedef unsigned long bfd_vma;
+typedef long bfd_signed_vma;
 typedef unsigned long symvalue;
 typedef unsigned long bfd_size_type;
 
-/* Print a bfd_vma x on stream s.  */
 #define BFD_VMA_FMT "l"
+
 #define fprintf_vma(s,x) fprintf (s, "%08" BFD_VMA_FMT "x", x)
 #define sprintf_vma(s,x) sprintf (s, "%08" BFD_VMA_FMT "x", x)
 
@@ -206,19 +146,10 @@ typedef unsigned long bfd_size_type;
 #define HALF_BFD_SIZE_TYPE \
   (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
 
-#ifndef BFD_HOST_64_BIT
-/* Fall back on a 32 bit type.  The idea is to make these types always
-   available for function return types, but in the case that
-   BFD_HOST_64_BIT is undefined such a function should abort or
-   otherwise signal an error.  */
-typedef bfd_signed_vma bfd_int64_t;
-typedef bfd_vma bfd_uint64_t;
-#endif
-
 /* An offset into a file.  BFD always uses the largest possible offset
    based on the build time availability of fseek, fseeko, or fseeko64.  */
-typedef BFD_HOST_64_BIT file_ptr;
-typedef unsigned BFD_HOST_64_BIT ufile_ptr;
+typedef int64_t file_ptr;
+typedef uint64_t ufile_ptr;
 
 extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
 extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
@@ -366,7 +297,7 @@ struct bfd_hash_table
 };
 
 /* Initialize a hash table.  */
-extern bfd_boolean bfd_hash_table_init
+extern bool bfd_hash_table_init
   (struct bfd_hash_table *,
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 			       struct bfd_hash_table *,
@@ -374,7 +305,7 @@ extern bfd_boolean bfd_hash_table_init
    unsigned int);
 
 /* Initialize a hash table specifying a size.  */
-extern bfd_boolean bfd_hash_table_init_n
+extern bool bfd_hash_table_init_n
   (struct bfd_hash_table *,
    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
 			       struct bfd_hash_table *,
@@ -390,8 +321,7 @@ extern void bfd_hash_table_free
    COPY argument must be TRUE if this routine should copy the string
    into newly allocated memory when adding an entry.  */
 extern struct bfd_hash_entry *bfd_hash_lookup
-  (struct bfd_hash_table *, const char *, bfd_boolean create,
-   bfd_boolean copy);
+  (struct bfd_hash_table *, const char *, bool create, bool copy);
 
 /* Insert an entry in a hash table.  */
 extern struct bfd_hash_entry *bfd_hash_insert
@@ -419,7 +349,7 @@ extern void *bfd_hash_allocate
    INFO argument is passed to the function.  */
 extern void bfd_hash_traverse
   (struct bfd_hash_table *,
-   bfd_boolean (*) (struct bfd_hash_entry *, void *),
+   bool (*) (struct bfd_hash_entry *, void *),
    void *info);
 
 /* Allows the default size of a hash table to be configured. New hash
@@ -482,22 +412,22 @@ extern int bfd_stat (bfd *, struct stat 
 #endif
 extern void _bfd_warn_deprecated (const char *, const char *, int, const char *);
 
-extern bfd_boolean bfd_cache_close
+extern bool bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
 
-extern bfd_boolean bfd_cache_close_all (void);
+extern bool bfd_cache_close_all (void);
 
-extern bfd_boolean bfd_record_phdr
-  (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
-   bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
+extern bool bfd_record_phdr
+  (bfd *, unsigned long, bool, flagword, bool, bfd_vma,
+   bool, bool, unsigned int, struct bfd_section **);
 
 /* Byte swapping routines.  */
 
-bfd_uint64_t bfd_getb64 (const void *);
-bfd_uint64_t bfd_getl64 (const void *);
-bfd_int64_t bfd_getb_signed_64 (const void *);
-bfd_int64_t bfd_getl_signed_64 (const void *);
+uint64_t bfd_getb64 (const void *);
+uint64_t bfd_getl64 (const void *);
+int64_t bfd_getb_signed_64 (const void *);
+int64_t bfd_getl_signed_64 (const void *);
 bfd_vma bfd_getb32 (const void *);
 bfd_vma bfd_getl32 (const void *);
 bfd_signed_vma bfd_getb_signed_32 (const void *);
@@ -506,8 +436,8 @@ bfd_vma bfd_getb16 (const void *);
 bfd_vma bfd_getl16 (const void *);
 bfd_signed_vma bfd_getb_signed_16 (const void *);
 bfd_signed_vma bfd_getl_signed_16 (const void *);
-void bfd_putb64 (bfd_uint64_t, void *);
-void bfd_putl64 (bfd_uint64_t, void *);
+void bfd_putb64 (uint64_t, void *);
+void bfd_putl64 (uint64_t, void *);
 void bfd_putb32 (bfd_vma, void *);
 void bfd_putl32 (bfd_vma, void *);
 void bfd_putb24 (bfd_vma, void *);
@@ -517,8 +447,8 @@ void bfd_putl16 (bfd_vma, void *);
 
 /* Byte swapping routines which take size and endiannes as arguments.  */
 
-bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
-void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
+uint64_t bfd_get_bits (const void *, int, bool);
+void bfd_put_bits (uint64_t, void *, int, bool);
 
 
 /* mmap hacks */
@@ -545,8 +475,8 @@ extern void bfd_init_window
   (bfd_window *);
 extern void bfd_free_window
   (bfd_window *);
-extern bfd_boolean bfd_get_file_window
-  (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
+extern bool bfd_get_file_window
+  (bfd *, file_ptr, bfd_size_type, bfd_window *, bool);
 
 /* Externally visible ELF routines.  */
 
@@ -575,6 +505,14 @@ struct ecoff_debug_swap;
 struct ecoff_extr;
 struct bfd_link_info;
 struct bfd_link_hash_entry;
+
+/* Return TRUE if the start of STR matches PREFIX, FALSE otherwise.  */
+
+static inline bool
+startswith (const char *str, const char *prefix)
+{
+  return strncmp (str, prefix, strlen (prefix)) == 0;
+}
 /* Extracted from init.c.  */
 unsigned int bfd_init (void);
 
@@ -592,6 +530,8 @@ bfd *bfd_openr (const char *filename, co
 
 bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
 
+bfd *bfd_fdopenw (const char *filename, const char *target, int fd);
+
 bfd *bfd_openstreamr (const char * filename, const char * target,
     void * stream);
 
@@ -612,15 +552,15 @@ bfd *bfd_openr_iovec (const char *filena
 
 bfd *bfd_openw (const char *filename, const char *target);
 
-bfd_boolean bfd_close (bfd *abfd);
+bool bfd_close (bfd *abfd);
 
-bfd_boolean bfd_close_all_done (bfd *);
+bool bfd_close_all_done (bfd *);
 
 bfd *bfd_create (const char *filename, bfd *templ);
 
-bfd_boolean bfd_make_writable (bfd *abfd);
+bool bfd_make_writable (bfd *abfd);
 
-bfd_boolean bfd_make_readable (bfd *abfd);
+bool bfd_make_readable (bfd *abfd);
 
 void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
 
@@ -642,12 +582,12 @@ char *bfd_follow_gnu_debugaltlink (bfd *
 struct bfd_section *bfd_create_gnu_debuglink_section
    (bfd *abfd, const char *filename);
 
-bfd_boolean bfd_fill_in_gnu_debuglink_section
+bool bfd_fill_in_gnu_debuglink_section
    (bfd *abfd, struct bfd_section *sect, const char *filename);
 
 char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
 
-void bfd_set_filename (bfd *abfd, char *filename);
+const char *bfd_set_filename (bfd *abfd, const char *filename);
 
 /* Extracted from libbfd.c.  */
 
@@ -796,18 +736,22 @@ typedef struct bfd_section
      the same as that passed to bfd_make_section.  */
   const char *name;
 
-  /* A unique sequence number.  */
-  unsigned int id;
-
-  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
-  unsigned int index;
-
   /* The next section in the list belonging to the BFD, or NULL.  */
   struct bfd_section *next;
 
   /* The previous section in the list belonging to the BFD, or NULL.  */
   struct bfd_section *prev;
 
+  /* A unique sequence number.  */
+  unsigned int id;
+
+  /* A unique section number which can be used by assembler to
+     distinguish different sections with the same section name.  */
+  unsigned int section_id;
+
+  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
+  unsigned int index;
+
   /* The field flags contains attributes of the section. Some
      flags are read in from the object file, and some are
      synthesized from other information.  */
@@ -932,6 +876,10 @@ typedef struct bfd_section
      else up the line will take care of it later.  */
 #define SEC_LINKER_CREATED           0x100000
 
+  /* This section contains a section ID to distinguish different
+     sections with the same section name.  */
+#define SEC_ASSEMBLER_SECTION_ID     0x100000
+
   /* This section should not be subject to garbage collection.
      Also set to inform the linker that this section should not be
      listed in the link map as discarded.  */
@@ -1092,13 +1040,6 @@ typedef struct bfd_section
   /* The compressed size of the section in octets.  */
   bfd_size_type compressed_size;
 
-  /* Relaxation table. */
-  struct relax_table *relax;
-
-  /* Count of used relaxation table entries. */
-  int relax_count;
-
-
   /* If this section is going to be output, then this value is the
      offset in *bytes* into the output section of the first byte in the
      input section (byte ==> smallest addressable unit on the
@@ -1111,10 +1052,6 @@ typedef struct bfd_section
   /* The output section through which to map on output.  */
   struct bfd_section *output_section;
 
-  /* The alignment requirement of the section, as an exponent of 2 -
-     e.g., 3 aligns to 2^3 (or 8).  */
-  unsigned int alignment_power;
-
   /* If an input section, a pointer to a vector of relocation
      records for the data in this section.  */
   struct reloc_cache_entry *relocation;
@@ -1126,6 +1063,10 @@ typedef struct bfd_section
   /* The number of relocation records in one of the above.  */
   unsigned reloc_count;
 
+  /* The alignment requirement of the section, as an exponent of 2 -
+     e.g., 3 aligns to 2^3 (or 8).  */
+  unsigned int alignment_power;
+
   /* Information below is back end specific - and not always used
      or updated.  */
 
@@ -1181,23 +1122,23 @@ typedef struct bfd_section
   /* Early in the link process, map_head and map_tail are used to build
      a list of input sections attached to an output section.  Later,
      output sections use these fields for a list of bfd_link_order
-     structs.  */
+     structs.  The linked_to_symbol_name field is for ELF assembler
+     internal use.  */
   union {
     struct bfd_link_order *link_order;
     struct bfd_section *s;
+    const char *linked_to_symbol_name;
   } map_head, map_tail;
-} asection;
 
-/* Relax table contains information about instructions which can
-   be removed by relaxation -- replacing a long address with a
-   short address.  */
-struct relax_table {
-  /* Address where bytes may be deleted. */
-  bfd_vma addr;
+  /* Points to the output section this section is already assigned to,
+     if any.  This is used when support for non-contiguous memory
+     regions is enabled.  */
+  struct bfd_section *already_assigned;
 
-  /* Number of bytes to be deleted.  */
-  int size;
-};
+  /* Explicitly specified section type, if non-zero.  */
+  unsigned int type;
+
+} asection;
 
 static inline const char *
 bfd_section_name (const asection *sec)
@@ -1240,7 +1181,7 @@ bfd_section_userdata (const asection *se
 {
   return sec->userdata;
 }
-static inline bfd_boolean
+static inline bool
 bfd_is_com_section (const asection *sec)
 {
   return (sec->flags & SEC_IS_COMMON) != 0;
@@ -1250,33 +1191,33 @@ bfd_is_com_section (const asection *sec)
    because not all callers use the return value.  A macro implementation
    would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
    compilers will complain about comma expressions that have no effect.  */
-static inline bfd_boolean
+static inline bool
 bfd_set_section_userdata (asection *sec, void *val)
 {
   sec->userdata = val;
-  return TRUE;
+  return true;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_set_section_vma (asection *sec, bfd_vma val)
 {
   sec->vma = sec->lma = val;
-  sec->user_set_vma = TRUE;
-  return TRUE;
+  sec->user_set_vma = true;
+  return true;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_set_section_lma (asection *sec, bfd_vma val)
 {
   sec->lma = val;
-  return TRUE;
+  return true;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_set_section_alignment (asection *sec, unsigned int val)
 {
   sec->alignment_power = val;
-  return TRUE;
+  return true;
 }
 
 /* These sections are global, and are managed by BFD.  The application
@@ -1298,32 +1239,34 @@ extern asection _bfd_std_section[4];
 /* Pointer to the indirect section.  */
 #define bfd_ind_section_ptr (&_bfd_std_section[3])
 
-static inline bfd_boolean
+static inline bool
 bfd_is_und_section (const asection *sec)
 {
   return sec == bfd_und_section_ptr;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_is_abs_section (const asection *sec)
 {
   return sec == bfd_abs_section_ptr;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_is_ind_section (const asection *sec)
 {
   return sec == bfd_ind_section_ptr;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_is_const_section (const asection *sec)
 {
-  return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
+  return (sec >= _bfd_std_section
+          && sec < _bfd_std_section + (sizeof (_bfd_std_section)
+                                       / sizeof (_bfd_std_section[0])));
 }
 
 /* Return TRUE if input section SEC has been discarded.  */
-static inline bfd_boolean
+static inline bool
 discarded_section (const asection *sec)
 {
   return (!bfd_is_abs_section (sec)
@@ -1333,41 +1276,42 @@ discarded_section (const asection *sec)
 }
 
 #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS)                   \
-  /* name, id,  index, next, prev, flags, user_set_vma,            */  \
-  {  NAME, IDX, 0,     NULL, NULL, FLAGS, 0,                           \
+  /* name, next, prev, id,  section_id, index, flags, user_set_vma, */ \
+  {  NAME, NULL, NULL, IDX, 0,          0,     FLAGS, 0,               \
                                                                        \
-  /* linker_mark, linker_has_input, gc_mark, decompress_status,    */  \
+  /* linker_mark, linker_has_input, gc_mark, decompress_status,     */ \
      0,           0,                1,       0,                        \
                                                                        \
-  /* segment_mark, sec_info_type, use_rela_p,                      */  \
+  /* segment_mark, sec_info_type, use_rela_p,                       */ \
      0,            0,             0,                                   \
                                                                        \
-  /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,   */  \
+  /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,    */ \
      0,        0,        0,        0,        0,        0,              \
                                                                        \
-  /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */  \
-     0,   0,   0,    0,       0,               0,     0,               \
+  /* vma, lma, size, rawsize, compressed_size,                      */ \
+     0,   0,   0,    0,       0,                                       \
                                                                        \
-  /* output_offset, output_section, alignment_power,               */  \
-     0,             &SEC,           0,                                 \
+  /* output_offset, output_section, relocation, orelocation,        */ \
+     0,             &SEC,           NULL,       NULL,                  \
                                                                        \
-  /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
-     NULL,       NULL,        0,           0,       0,                 \
+  /* reloc_count, alignment_power, filepos, rel_filepos,            */ \
+     0,           0,               0,       0,                         \
                                                                        \
-  /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
+  /* line_filepos, userdata, contents, lineno, lineno_count,        */ \
      0,            NULL,     NULL,     NULL,   0,                      \
                                                                        \
   /* entsize, kept_section, moving_line_filepos,                    */ \
-     0,       NULL,          0,                                        \
+     0,       NULL,         0,                                         \
                                                                        \
-  /* target_index, used_by_bfd, constructor_chain, owner,          */  \
+  /* target_index, used_by_bfd, constructor_chain, owner,           */ \
      0,            NULL,        NULL,              NULL,               \
                                                                        \
-  /* symbol,                    symbol_ptr_ptr,                    */  \
+  /* symbol,                    symbol_ptr_ptr,                     */ \
      (struct bfd_symbol *) SYM, &SEC.symbol,                           \
                                                                        \
-  /* map_head, map_tail                                            */  \
-     { NULL }, { NULL }                                                \
+  /* map_head, map_tail, already_assigned, type                     */ \
+     { NULL }, { NULL }, NULL,             0                           \
+                                                                       \
     }
 
 /* We use a macro to initialize the static asymbol structures because
@@ -1393,7 +1337,7 @@ asection *bfd_get_linker_section (bfd *a
 asection *bfd_get_section_by_name_if
    (bfd *abfd,
     const char *name,
-    bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
+    bool (*func) (bfd *abfd, asection *sect, void *obj),
     void *obj);
 
 char *bfd_get_unique_section_name
@@ -1411,7 +1355,7 @@ asection *bfd_make_section_with_flags
 
 asection *bfd_make_section (bfd *, const char *name);
 
-bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
+bool bfd_set_section_flags (asection *sec, flagword flags);
 
 void bfd_rename_section
    (asection *sec, const char *newname);
@@ -1423,33 +1367,33 @@ void bfd_map_over_sections
 
 asection *bfd_sections_find_if
    (bfd *abfd,
-    bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
+    bool (*operation) (bfd *abfd, asection *sect, void *obj),
     void *obj);
 
-bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
+bool bfd_set_section_size (asection *sec, bfd_size_type val);
 
-bfd_boolean bfd_set_section_contents
+bool bfd_set_section_contents
    (bfd *abfd, asection *section, const void *data,
     file_ptr offset, bfd_size_type count);
 
-bfd_boolean bfd_get_section_contents
+bool bfd_get_section_contents
    (bfd *abfd, asection *section, void *location, file_ptr offset,
     bfd_size_type count);
 
-bfd_boolean bfd_malloc_and_get_section
+bool bfd_malloc_and_get_section
    (bfd *abfd, asection *section, bfd_byte **buf);
 
-bfd_boolean bfd_copy_private_section_data
+bool bfd_copy_private_section_data
    (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 
 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
        BFD_SEND (obfd, _bfd_copy_private_section_data, \
                  (ibfd, isection, obfd, osection))
-bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+bool bfd_generic_is_group_section (bfd *, const asection *sec);
 
 const char *bfd_generic_group_name (bfd *, const asection *sec);
 
-bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
+bool bfd_generic_discard_group (bfd *abfd, asection *group);
 
 /* Extracted from archures.c.  */
 enum bfd_architecture
@@ -1592,16 +1536,6 @@ enum bfd_architecture
 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
-  bfd_arch_l1om,      /* Intel L1OM.  */
-#define bfd_mach_l1om                  (1 << 5)
-#define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
-  bfd_arch_k1om,      /* Intel K1OM.  */
-#define bfd_mach_k1om                  (1 << 6)
-#define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
-#define bfd_mach_i386_nacl             (1 << 7)
-#define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
-#define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
-#define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
   bfd_arch_iamcu,     /* Intel MCU.  */
 #define bfd_mach_iamcu                 (1 << 8)
 #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
@@ -1619,7 +1553,6 @@ enum bfd_architecture
 #define bfd_mach_h8300sx       6
 #define bfd_mach_h8300sxn      7
   bfd_arch_pdp11,     /* DEC PDP-11.  */
-  bfd_arch_plugin,
   bfd_arch_powerpc,   /* PowerPC.  */
 #define bfd_mach_ppc           32
 #define bfd_mach_ppc64         64
@@ -1729,6 +1662,7 @@ enum bfd_architecture
 #define bfd_mach_arm_8M_BASE   25
 #define bfd_mach_arm_8M_MAIN   26
 #define bfd_mach_arm_8_1M_MAIN 27
+#define bfd_mach_arm_9         28
   bfd_arch_nds32,     /* Andes NDS32.  */
 #define bfd_mach_n1            1
 #define bfd_mach_n1h           2
@@ -1803,6 +1737,7 @@ enum bfd_architecture
 #define bfd_mach_iq10          2
   bfd_arch_bpf,       /* Linux eBPF.  */
 #define bfd_mach_bpf           1
+#define bfd_mach_xbpf          2
   bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
 #define bfd_mach_epiphany16    1
 #define bfd_mach_epiphany32    2
@@ -1883,23 +1818,30 @@ enum bfd_architecture
 #define bfd_mach_msp46         46
 #define bfd_mach_msp47         47
 #define bfd_mach_msp54         54
-  bfd_arch_xc16x,     /* Infineon's XC16X Series.  */
-#define bfd_mach_xc16x         1
-#define bfd_mach_xc16xl        2
-#define bfd_mach_xc16xs        3
   bfd_arch_xgate,     /* Freescale XGATE.  */
 #define bfd_mach_xgate         1
   bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 #define bfd_mach_xtensa        1
   bfd_arch_z80,
-#define bfd_mach_gbz80         0 /* GameBoy Z80 (reduced instruction set) */
-#define bfd_mach_z80strict     1 /* Z80 without undocumented opcodes.  */
-#define bfd_mach_z180          2 /* Z180: successor with additional instructions, but without halves of ix and iy */
-#define bfd_mach_z80           3 /* Z80 with ixl, ixh, iyl, and iyh.  */
-#define bfd_mach_ez80_z80      4 /* eZ80 (successor of Z80 & Z180) in Z80 (16-bit address) mode */
-#define bfd_mach_ez80_adl      5 /* eZ80 (successor of Z80 & Z180) in ADL (24-bit address) mode */
-#define bfd_mach_z80full       7 /* Z80 with all undocumented instructions.  */
-#define bfd_mach_r800          11 /* R800: successor with multiplication.  */
+/* Zilog Z80 without undocumented opcodes.  */
+#define bfd_mach_z80strict     1
+/* Zilog Z180: successor with additional instructions, but without
+ halves of ix and iy.  */
+#define bfd_mach_z180          2
+/* Zilog Z80 with ixl, ixh, iyl, and iyh.  */
+#define bfd_mach_z80           3
+/* Zilog eZ80 (successor of Z80 & Z180) in Z80 (16-bit address) mode.  */
+#define bfd_mach_ez80_z80      4
+/* Zilog eZ80 (successor of Z80 & Z180) in ADL (24-bit address) mode.  */
+#define bfd_mach_ez80_adl      5
+/* Z80N */
+#define bfd_mach_z80n          6
+/* Zilog Z80 with all undocumented instructions.  */
+#define bfd_mach_z80full       7
+/* GameBoy Z80 (reduced instruction set).  */
+#define bfd_mach_gbz80         8
+/* ASCII R800: successor with multiplication.  */
+#define bfd_mach_r800          11
   bfd_arch_lm32,      /* Lattice Mico32.  */
 #define bfd_mach_lm32          1
   bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
@@ -1910,6 +1852,7 @@ enum bfd_architecture
 #define bfd_mach_tilegx32      2
   bfd_arch_aarch64,   /* AArch64.  */
 #define bfd_mach_aarch64 0
+#define bfd_mach_aarch64_8R    1
 #define bfd_mach_aarch64_ilp32 32
   bfd_arch_nios2,     /* Nios II.  */
 #define bfd_mach_nios2         0
@@ -1933,6 +1876,23 @@ enum bfd_architecture
 #define bfd_mach_ck803         5
 #define bfd_mach_ck807         6
 #define bfd_mach_ck810         7
+#define bfd_mach_ck860         8
+  bfd_arch_loongarch,       /* LoongArch */
+#define bfd_mach_loongarch32   1
+#define bfd_mach_loongarch64   2
+  bfd_arch_amdgcn,     /* AMDGCN */
+#define bfd_mach_amdgcn_unknown 0x000
+#define bfd_mach_amdgcn_gfx900  0x02c
+#define bfd_mach_amdgcn_gfx904  0x02e
+#define bfd_mach_amdgcn_gfx906  0x02f
+#define bfd_mach_amdgcn_gfx908  0x030
+#define bfd_mach_amdgcn_gfx90a  0x03f
+#define bfd_mach_amdgcn_gfx1010 0x033
+#define bfd_mach_amdgcn_gfx1011 0x034
+#define bfd_mach_amdgcn_gfx1012 0x035
+#define bfd_mach_amdgcn_gfx1030 0x036
+#define bfd_mach_amdgcn_gfx1031 0x037
+#define bfd_mach_amdgcn_gfx1032 0x038
   bfd_arch_last
   };
 
@@ -1949,17 +1909,16 @@ typedef struct bfd_arch_info
   /* TRUE if this is the default machine for the architecture.
      The default arch should be the first entry for an arch so that
      all the entries for that arch can be accessed via <<next>>.  */
-  bfd_boolean the_default;
+  bool the_default;
   const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
                                               const struct bfd_arch_info *);
 
-  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
+  bool (*scan) (const struct bfd_arch_info *, const char *);
 
   /* Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
      IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
      TRUE, the buffer contains code.  */
-  void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian,
-                 bfd_boolean code);
+  void *(*fill) (bfd_size_type count, bool is_bigendian, bool code);
 
   const struct bfd_arch_info *next;
 
@@ -1982,11 +1941,11 @@ const bfd_arch_info_type *bfd_scan_arch 
 const char **bfd_arch_list (void);
 
 const bfd_arch_info_type *bfd_arch_get_compatible
-   (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
+   (const bfd *abfd, const bfd *bbfd, bool accept_unknowns);
 
 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 
-bfd_boolean bfd_default_set_arch_mach
+bool bfd_default_set_arch_mach
    (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
 
 enum bfd_architecture bfd_get_arch (const bfd *abfd);
@@ -2089,10 +2048,8 @@ struct reloc_howto_struct
      an external reloc number is stored in this field.  */
   unsigned int type;
 
-  /* The encoded size of the item to be relocated.  This is *not* a
-     power-of-two measure.  Use bfd_get_reloc_size to find the size
-     of the item in bytes.  */
-  unsigned int size:3;
+  /* The size of the item to be relocated in bytes.  */
+  unsigned int size:4;
 
   /* The number of bits in the field to be relocated.  This is used
      when doing overflow checking.  */
@@ -2166,15 +2123,20 @@ struct reloc_howto_struct
   const char *name;
 };
 
+#define HOWTO_RSIZE(sz) ((sz) < 0 ? -(sz) : (sz))
 #define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name,   \
               inplace, src_mask, dst_mask, pcrel_off)                  \
-  { (unsigned) type, size < 0 ? -size : size, bits, right, left, ovf,  \
+  { (unsigned) type, HOWTO_RSIZE (size), bits, right, left, ovf,       \
     size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
 #define EMPTY_HOWTO(C) \
-  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
-         NULL, FALSE, 0, 0, FALSE)
+  HOWTO ((C), 0, 1, 0, false, 0, complain_overflow_dont, NULL, \
+         NULL, false, 0, 0, false)
 
-unsigned int bfd_get_reloc_size (reloc_howto_type *);
+static inline unsigned int
+bfd_get_reloc_size (reloc_howto_type *howto)
+{
+  return howto->size;
+}
 
 typedef struct relent_chain
 {
@@ -2190,7 +2152,7 @@ bfd_reloc_status_type bfd_check_overflow
     unsigned int addrsize,
     bfd_vma relocation);
 
-bfd_boolean bfd_reloc_offset_in_range
+bool bfd_reloc_offset_in_range
    (reloc_howto_type *howto,
     bfd *abfd,
     asection *section,
@@ -2236,6 +2198,7 @@ the section containing the relocation.  
 
 /* Section relative relocations.  Some targets need this for DWARF2.  */
   BFD_RELOC_32_SECREL,
+  BFD_RELOC_16_SECIDX,
 
 /* For ELF.  */
   BFD_RELOC_32_GOT_PCREL,
@@ -2638,7 +2601,7 @@ to compensate for the borrow when the lo
   BFD_RELOC_MICROMIPS_HIGHER,
   BFD_RELOC_MIPS_SCN_DISP,
   BFD_RELOC_MICROMIPS_SCN_DISP,
-  BFD_RELOC_MIPS_REL16,
+  BFD_RELOC_MIPS_16,
   BFD_RELOC_MIPS_RELGOT,
   BFD_RELOC_MIPS_JALR,
   BFD_RELOC_MICROMIPS_JALR,
@@ -2875,6 +2838,8 @@ instruction.  */
   BFD_RELOC_PPC_B26,
   BFD_RELOC_PPC_BA26,
   BFD_RELOC_PPC_TOC16,
+  BFD_RELOC_PPC_TOC16_LO,
+  BFD_RELOC_PPC_TOC16_HI,
   BFD_RELOC_PPC_B16,
   BFD_RELOC_PPC_B16_BRTAKEN,
   BFD_RELOC_PPC_B16_BRNTAKEN,
@@ -2921,6 +2886,7 @@ instruction.  */
   BFD_RELOC_PPC_VLE_SDAREL_HA16D,
   BFD_RELOC_PPC_16DX_HA,
   BFD_RELOC_PPC_REL16DX_HA,
+  BFD_RELOC_PPC_NEG,
   BFD_RELOC_PPC64_HIGHER,
   BFD_RELOC_PPC64_HIGHER_S,
   BFD_RELOC_PPC64_HIGHEST,
@@ -2955,6 +2921,7 @@ instruction.  */
   BFD_RELOC_PPC64_ADDR64_LOCAL,
   BFD_RELOC_PPC64_ENTRY,
   BFD_RELOC_PPC64_REL24_NOTOC,
+  BFD_RELOC_PPC64_REL24_P9NOTOC,
   BFD_RELOC_PPC64_D34,
   BFD_RELOC_PPC64_D34_LO,
   BFD_RELOC_PPC64_D34_HI30,
@@ -2977,6 +2944,10 @@ instruction.  */
   BFD_RELOC_PPC_TLS,
   BFD_RELOC_PPC_TLSGD,
   BFD_RELOC_PPC_TLSLD,
+  BFD_RELOC_PPC_TLSLE,
+  BFD_RELOC_PPC_TLSIE,
+  BFD_RELOC_PPC_TLSM,
+  BFD_RELOC_PPC_TLSML,
   BFD_RELOC_PPC_DTPMOD,
   BFD_RELOC_PPC_TPREL16,
   BFD_RELOC_PPC_TPREL16_LO,
@@ -3004,6 +2975,12 @@ instruction.  */
   BFD_RELOC_PPC_GOT_DTPREL16_LO,
   BFD_RELOC_PPC_GOT_DTPREL16_HI,
   BFD_RELOC_PPC_GOT_DTPREL16_HA,
+  BFD_RELOC_PPC64_TLSGD,
+  BFD_RELOC_PPC64_TLSLD,
+  BFD_RELOC_PPC64_TLSLE,
+  BFD_RELOC_PPC64_TLSIE,
+  BFD_RELOC_PPC64_TLSM,
+  BFD_RELOC_PPC64_TLSML,
   BFD_RELOC_PPC64_TPREL16_DS,
   BFD_RELOC_PPC64_TPREL16_LO_DS,
   BFD_RELOC_PPC64_TPREL16_HIGH,
@@ -3022,10 +2999,10 @@ instruction.  */
   BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
   BFD_RELOC_PPC64_TPREL34,
   BFD_RELOC_PPC64_DTPREL34,
-  BFD_RELOC_PPC64_GOT_TLSGD34,
-  BFD_RELOC_PPC64_GOT_TLSLD34,
-  BFD_RELOC_PPC64_GOT_TPREL34,
-  BFD_RELOC_PPC64_GOT_DTPREL34,
+  BFD_RELOC_PPC64_GOT_TLSGD_PCREL34,
+  BFD_RELOC_PPC64_GOT_TLSLD_PCREL34,
+  BFD_RELOC_PPC64_GOT_TPREL_PCREL34,
+  BFD_RELOC_PPC64_GOT_DTPREL_PCREL34,
   BFD_RELOC_PPC64_TLS_PCREL,
 
 /* IBM 370/390 relocations  */
@@ -4989,6 +4966,7 @@ then it may be truncated to 8 bits.  */
   BFD_RELOC_OR1K_SLO13,
   BFD_RELOC_OR1K_GOTPC_HI16,
   BFD_RELOC_OR1K_GOTPC_LO16,
+  BFD_RELOC_OR1K_GOT_AHI16,
   BFD_RELOC_OR1K_GOT16,
   BFD_RELOC_OR1K_GOT_PG21,
   BFD_RELOC_OR1K_GOT_LO13,
@@ -5040,12 +5018,6 @@ then it may be truncated to 8 bits.  */
   BFD_RELOC_RELC,
 
 
-/* Infineon Relocations.  */
-  BFD_RELOC_XC16X_PAG,
-  BFD_RELOC_XC16X_POF,
-  BFD_RELOC_XC16X_SEG,
-  BFD_RELOC_XC16X_SOF,
-
 /* Relocations used by VAX ELF.  */
   BFD_RELOC_VAX_GLOB_DAT,
   BFD_RELOC_VAX_JMP_SLOT,
@@ -5092,6 +5064,8 @@ then it may be truncated to 8 bits.  */
   BFD_RELOC_MSP430_ABS_HI16,
   BFD_RELOC_MSP430_PREL31,
   BFD_RELOC_MSP430_SYM_DIFF,
+  BFD_RELOC_MSP430_SET_ULEB128,
+  BFD_RELOC_MSP430_SUB_ULEB128,
 
 /* Relocations used by the Altera Nios II core.  */
   BFD_RELOC_NIOS2_S16,
@@ -5201,7 +5175,9 @@ to one of its own internal functions or 
 PLT entries.  Otherwise, this is just a generic 32-bit relocation.  */
   BFD_RELOC_XTENSA_PLT,
 
-/* Xtensa relocations to mark the difference of two local symbols.
+/* Xtensa relocations for backward compatibility.  These have been replaced
+by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF.
+Xtensa relocations to mark the difference of two local symbols.
 These are only needed to support linker relaxation and can be ignored
 when not relaxing.  The field is set to the value of the difference
 assuming no relaxation.  The relocation encodes the position of the
@@ -5275,6 +5251,22 @@ BFD_RELOC_XTENSA_ASM_EXPAND.  */
   BFD_RELOC_XTENSA_TLS_ARG,
   BFD_RELOC_XTENSA_TLS_CALL,
 
+/* Xtensa relocations to mark the difference of two local symbols.
+These are only needed to support linker relaxation and can be ignored
+when not relaxing.  The field is set to the value of the difference
+assuming no relaxation.  The relocation encodes the position of the
+subtracted symbol so the linker can determine whether to adjust the field
+value.  PDIFF relocations are used for positive differences, NDIFF
+relocations are used for negative differences.  The difference value
+is treated as unsigned with these relocation types, giving full
+8/16 value ranges.  */
+  BFD_RELOC_XTENSA_PDIFF8,
+  BFD_RELOC_XTENSA_PDIFF16,
+  BFD_RELOC_XTENSA_PDIFF32,
+  BFD_RELOC_XTENSA_NDIFF8,
+  BFD_RELOC_XTENSA_NDIFF16,
+  BFD_RELOC_XTENSA_NDIFF32,
+
 /* 8 bit signed offset in (ix+d) or (iy+d).  */
   BFD_RELOC_Z80_DISP8,
 
@@ -5296,6 +5288,9 @@ BFD_RELOC_XTENSA_ASM_EXPAND.  */
 /* Highest 16 bits of multibyte (32 or 24 bit) value.  */
   BFD_RELOC_Z80_WORD1,
 
+/* Like BFD_RELOC_16 but big-endian.  */
+  BFD_RELOC_Z80_16_BE,
+
 /* DJNZ offset.  */
   BFD_RELOC_Z8K_DISP7,
 
@@ -6228,6 +6223,51 @@ assembler and not (currently) written to
 
 /* S12Z relocations.  */
   BFD_RELOC_S12Z_OPR,
+
+/* LARCH relocations.  */
+  BFD_RELOC_LARCH_TLS_DTPMOD32,
+  BFD_RELOC_LARCH_TLS_DTPREL32,
+  BFD_RELOC_LARCH_TLS_DTPMOD64,
+  BFD_RELOC_LARCH_TLS_DTPREL64,
+  BFD_RELOC_LARCH_TLS_TPREL32,
+  BFD_RELOC_LARCH_TLS_TPREL64,
+  BFD_RELOC_LARCH_MARK_LA,
+  BFD_RELOC_LARCH_MARK_PCREL,
+  BFD_RELOC_LARCH_SOP_PUSH_PCREL,
+  BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE,
+  BFD_RELOC_LARCH_SOP_PUSH_DUP,
+  BFD_RELOC_LARCH_SOP_PUSH_GPREL,
+  BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL,
+  BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT,
+  BFD_RELOC_LARCH_SOP_PUSH_TLS_GD,
+  BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL,
+  BFD_RELOC_LARCH_SOP_ASSERT,
+  BFD_RELOC_LARCH_SOP_NOT,
+  BFD_RELOC_LARCH_SOP_SUB,
+  BFD_RELOC_LARCH_SOP_SL,
+  BFD_RELOC_LARCH_SOP_SR,
+  BFD_RELOC_LARCH_SOP_ADD,
+  BFD_RELOC_LARCH_SOP_AND,
+  BFD_RELOC_LARCH_SOP_IF_ELSE,
+  BFD_RELOC_LARCH_SOP_POP_32_S_10_5,
+  BFD_RELOC_LARCH_SOP_POP_32_U_10_12,
+  BFD_RELOC_LARCH_SOP_POP_32_S_10_12,
+  BFD_RELOC_LARCH_SOP_POP_32_S_10_16,
+  BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2,
+  BFD_RELOC_LARCH_SOP_POP_32_S_5_20,
+  BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2,
+  BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2,
+  BFD_RELOC_LARCH_SOP_POP_32_U,
+  BFD_RELOC_LARCH_ADD8,
+  BFD_RELOC_LARCH_ADD16,
+  BFD_RELOC_LARCH_ADD24,
+  BFD_RELOC_LARCH_ADD32,
+  BFD_RELOC_LARCH_ADD64,
+  BFD_RELOC_LARCH_SUB8,
+  BFD_RELOC_LARCH_SUB16,
+  BFD_RELOC_LARCH_SUB24,
+  BFD_RELOC_LARCH_SUB32,
+  BFD_RELOC_LARCH_SUB64,
   BFD_RELOC_UNUSED };
 
 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
@@ -6366,6 +6406,9 @@ typedef struct bfd_symbol
      with this name and type in use.  BSF_OBJECT must also be set.  */
 #define BSF_GNU_UNIQUE          (1 << 23)
 
+  /* This section symbol should be included in the symbol table.  */
+#define BSF_SECTION_SYM_USED    (1 << 24)
+
   flagword flags;
 
   /* A pointer to the section to which this symbol is
@@ -6386,14 +6429,14 @@ asymbol;
 #define bfd_get_symtab_upper_bound(abfd) \
        BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
-bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
+bool bfd_is_local_label (bfd *abfd, asymbol *sym);
 
-bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
+bool bfd_is_local_label_name (bfd *abfd, const char *name);
 
 #define bfd_is_local_label_name(abfd, name) \
        BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 
-bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
+bool bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 
 #define bfd_is_target_special_symbol(abfd, sym) \
        BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
@@ -6401,7 +6444,7 @@ bfd_boolean bfd_is_target_special_symbol
 #define bfd_canonicalize_symtab(abfd, location) \
        BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 
-bfd_boolean bfd_set_symtab
+bool bfd_set_symtab
    (bfd *abfd, asymbol **location, unsigned int count);
 
 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
@@ -6416,11 +6459,11 @@ asymbol *_bfd_generic_make_empty_symbol 
 
 int bfd_decode_symclass (asymbol *symbol);
 
-bfd_boolean bfd_is_undefined_symclass (int symclass);
+bool bfd_is_undefined_symclass (int symclass);
 
 void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 
-bfd_boolean bfd_copy_private_symbol_data
+bool bfd_copy_private_symbol_data
    (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 
 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
@@ -6478,12 +6521,6 @@ struct bfd
   /* A unique identifier of the BFD  */
   unsigned int id;
 
-  /* The format which belongs to the BFD. (object, core, etc.)  */
-  ENUM_BITFIELD (bfd_format) format : 3;
-
-  /* The direction with which the BFD was opened.  */
-  ENUM_BITFIELD (bfd_direction) direction : 2;
-
   /* Format_specific flags.  */
   flagword flags;
 
@@ -6587,6 +6624,12 @@ struct bfd
    | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
    | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
 
+  /* The format which belongs to the BFD. (object, core, etc.)  */
+  ENUM_BITFIELD (bfd_format) format : 3;
+
+  /* The direction with which the BFD was opened.  */
+  ENUM_BITFIELD (bfd_direction) direction : 2;
+
   /* Is the file descriptor being cached?  That is, can it be closed as
      needed, and re-opened when accessed later?  */
   unsigned int cacheable : 1;
@@ -6638,13 +6681,16 @@ struct bfd
   /* Set if this is a slim LTO object not loaded with a compiler plugin.  */
   unsigned int lto_slim_object : 1;
 
+  /* Do not attempt to modify this file.  Set when detecting errors
+     that BFD is not prepared to handle for objcopy/strip.  */
+  unsigned int read_only : 1;
+
   /* Set to dummy BFD created when claimed by a compiler plug-in
      library.  */
   bfd *plugin_dummy_bfd;
 
-  /* Currently my_archive is tested before adding origin to
-     anything. I believe that this can become always an add of
-     origin, with origin set to 0 for non archive files.  */
+  /* The offset of this bfd in the file, typically 0 if it is not
+     contained in an archive.  */
   ufile_ptr origin;
 
   /* The origin in the archive of the proxy entry.  This will
@@ -6666,17 +6712,26 @@ struct bfd
   /* The number of sections.  */
   unsigned int section_count;
 
+  /* The archive plugin file descriptor.  */
+  int archive_plugin_fd;
+
+  /* The number of opens on the archive plugin file descriptor.  */
+  unsigned int archive_plugin_fd_open_count;
+
   /* A field used by _bfd_generic_link_add_archive_symbols.  This will
      be used only for archive elements.  */
   int archive_pass;
 
+  /* The total size of memory from bfd_alloc.  */
+  bfd_size_type alloc_size;
+
   /* Stuff only useful for object files:
      The start address.  */
   bfd_vma start_address;
 
   /* Symbol table for output BFD (with symcount entries).
      Also used by the linker to cache input BFD symbols.  */
-  struct bfd_symbol  **outsymbols;
+  struct bfd_symbol **outsymbols;
 
   /* Used for input and output.  */
   unsigned int symcount;
@@ -6687,6 +6742,11 @@ struct bfd
   /* Pointer to structure which contains architecture information.  */
   const struct bfd_arch_info *arch_info;
 
+  /* Cached length of file for bfd_get_size.  0 until bfd_get_size is
+     called, 1 if stat returns an error or the file size is too large to
+     return in ufile_ptr.  Both 0 and 1 should be treated as "unknown".  */
+  ufile_ptr size;
+
   /* Stuff only useful for archives.  */
   void *arelt_data;
   struct bfd *my_archive;      /* The containing archive BFD.  */
@@ -6757,7 +6817,7 @@ bfd_get_filename (const bfd *abfd)
   return abfd->filename;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_get_cacheable (const bfd *abfd)
 {
   return abfd->cacheable;
@@ -6805,13 +6865,13 @@ bfd_count_sections (const bfd *abfd)
   return abfd->section_count;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_has_map (const bfd *abfd)
 {
   return abfd->has_armap;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_is_thin_archive (const bfd *abfd)
 {
   return abfd->is_thin_archive;
@@ -6824,15 +6884,15 @@ bfd_usrdata (const bfd *abfd)
 }
 
 /* See note beside bfd_set_section_userdata.  */
-static inline bfd_boolean
-bfd_set_cacheable (bfd * abfd, bfd_boolean val)
+static inline bool
+bfd_set_cacheable (bfd * abfd, bool val)
 {
   abfd->cacheable = val;
-  return TRUE;
+  return true;
 }
 
 static inline void
-bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
+bfd_set_thin_archive (bfd *abfd, bool val)
 {
   abfd->is_thin_archive = val;
 }
@@ -6967,7 +7027,7 @@ bfd_section_list_insert_before (bfd *abf
     abfd->sections = s;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_section_removed_from_list (const bfd *abfd, const asection *s)
 {
   return s->next ? s->next->prev != s : abfd->section_last != s;
@@ -7039,31 +7099,33 @@ void bfd_set_reloc
 
 #define bfd_set_reloc(abfd, asect, location, count) \
        BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
-bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
+bool bfd_set_file_flags (bfd *abfd, flagword flags);
 
 int bfd_get_arch_size (bfd *abfd);
 
 int bfd_get_sign_extend_vma (bfd *abfd);
 
-bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
+bool bfd_set_start_address (bfd *abfd, bfd_vma vma);
 
 unsigned int bfd_get_gp_size (bfd *abfd);
 
 void bfd_set_gp_size (bfd *abfd, unsigned int i);
 
+void bfd_set_gp_value (bfd *abfd, bfd_vma v);
+
 bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
 
-bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
+bool bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 
 #define bfd_copy_private_header_data(ibfd, obfd) \
        BFD_SEND (obfd, _bfd_copy_private_header_data, \
                  (ibfd, obfd))
-bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
+bool bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 
 #define bfd_copy_private_bfd_data(ibfd, obfd) \
        BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
                  (ibfd, obfd))
-bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
+bool bfd_set_private_flags (bfd *abfd, flagword flags);
 
 #define bfd_set_private_flags(abfd, flags) \
        BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
@@ -7097,7 +7159,8 @@ bfd_boolean bfd_set_private_flags (bfd *
        BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 
 #define bfd_stat_arch_elt(abfd, stat) \
-       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
+       BFD_SEND (abfd->my_archive ? abfd->my_archive : abfd, \
+                 _bfd_stat_arch_elt, (abfd, stat))
 
 #define bfd_update_armap_timestamp(abfd) \
        BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
@@ -7162,24 +7225,20 @@ bfd_boolean bfd_set_private_flags (bfd *
 
 extern bfd_byte *bfd_get_relocated_section_contents
   (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
-   bfd_boolean, asymbol **);
+   bool, asymbol **);
 
-bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
+bool bfd_alt_mach_code (bfd *abfd, int alternative);
 
 bfd_vma bfd_emul_get_maxpagesize (const char *);
 
-void bfd_emul_set_maxpagesize (const char *, bfd_vma);
-
-bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean);
-
-void bfd_emul_set_commonpagesize (const char *, bfd_vma);
+bfd_vma bfd_emul_get_commonpagesize (const char *);
 
 char *bfd_demangle (bfd *, const char *, int);
 
 void bfd_update_compression_header
    (bfd *abfd, bfd_byte *contents, asection *sec);
 
-bfd_boolean bfd_check_compression_header
+bool bfd_check_compression_header
    (bfd *abfd, bfd_byte *contents, asection *sec,
     bfd_size_type *uncompressed_size,
     unsigned int *uncompressed_alignment_power);
@@ -7189,7 +7248,7 @@ int bfd_get_compression_header_size (bfd
 bfd_size_type bfd_convert_section_size
    (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
 
-bfd_boolean bfd_convert_section_contents
+bool bfd_convert_section_contents
    (bfd *ibfd, asection *isec, bfd *obfd,
     bfd_byte **ptr, bfd_size_type *ptr_size);
 
@@ -7197,7 +7256,7 @@ bfd_boolean bfd_convert_section_contents
 symindex bfd_get_next_mapent
    (bfd *abfd, symindex previous, carsym **sym);
 
-bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
+bool bfd_set_archive_head (bfd *output, bfd *new_head);
 
 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
 
@@ -7208,10 +7267,10 @@ int bfd_core_file_failing_signal (bfd *a
 
 int bfd_core_file_pid (bfd *abfd);
 
-bfd_boolean core_file_matches_executable_p
+bool core_file_matches_executable_p
    (bfd *core_bfd, bfd *exec_bfd);
 
-bfd_boolean generic_core_file_matches_executable_p
+bool generic_core_file_matches_executable_p
    (bfd *core_bfd, bfd *exec_bfd);
 
 /* Extracted from targets.c.  */
@@ -7236,6 +7295,11 @@ bfd_boolean generic_core_file_matches_ex
    (bfd_assert (__FILE__,__LINE__), NULL))
 #endif
 
+/* Defined to TRUE if unused section symbol should be kept.  */
+#ifndef TARGET_KEEP_UNUSED_SECTION_SYMBOLS
+#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS true
+#endif
+
 enum bfd_flavour
 {
   /* N.B. Update bfd_flavour_name if you change this.  */
@@ -7270,6 +7334,8 @@ typedef struct bfd_link_info _bfd_link_i
 /* Forward declaration.  */
 typedef struct flag_info flag_info;
 
+typedef void (*bfd_cleanup) (bfd *);
+
 typedef struct bfd_target
 {
   /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
@@ -7307,12 +7373,15 @@ typedef struct bfd_target
      possible targets when more than one target matches.  */
   unsigned char match_priority;
 
+ /* TRUE if unused section symbols should be kept.  */
+  bool keep_unused_section_symbols;
+
   /* Entries for byte swapping for data. These are different from the
      other entry points, since they don't take a BFD as the first argument.
      Certain other handlers could do the same.  */
-  bfd_uint64_t   (*bfd_getx64) (const void *);
-  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
-  void           (*bfd_putx64) (bfd_uint64_t, void *);
+  uint64_t       (*bfd_getx64) (const void *);
+  int64_t        (*bfd_getx_signed_64) (const void *);
+  void           (*bfd_putx64) (uint64_t, void *);
   bfd_vma        (*bfd_getx32) (const void *);
   bfd_signed_vma (*bfd_getx_signed_32) (const void *);
   void           (*bfd_putx32) (bfd_vma, void *);
@@ -7321,9 +7390,9 @@ typedef struct bfd_target
   void           (*bfd_putx16) (bfd_vma, void *);
 
   /* Byte swapping for the headers.  */
-  bfd_uint64_t   (*bfd_h_getx64) (const void *);
-  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
-  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
+  uint64_t       (*bfd_h_getx64) (const void *);
+  int64_t        (*bfd_h_getx_signed_64) (const void *);
+  void           (*bfd_h_putx64) (uint64_t, void *);
   bfd_vma        (*bfd_h_getx32) (const void *);
   bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
   void           (*bfd_h_putx32) (bfd_vma, void *);
@@ -7334,15 +7403,15 @@ typedef struct bfd_target
   /* Format dependent routines: these are vectors of entry points
      within the target vector structure, one for each format to check.  */
 
-  /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
-  const struct bfd_target *
-              (*_bfd_check_format[bfd_type_end]) (bfd *);
+  /* Check the format of a file being read.  Return a <<bfd_cleanup>> on
+     success or zero on failure.  */
+  bfd_cleanup (*_bfd_check_format[bfd_type_end]) (bfd *);
 
   /* Set the format of a file being written.  */
-  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
+  bool (*_bfd_set_format[bfd_type_end]) (bfd *);
 
   /* Write cached information into a file being written, at <<bfd_close>>.  */
-  bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
+  bool (*_bfd_write_contents[bfd_type_end]) (bfd *);
 
 
   /* Generic entry points.  */
@@ -7354,17 +7423,16 @@ typedef struct bfd_target
   NAME##_get_section_contents_in_window
 
   /* Called when the BFD is being closed to do any necessary cleanup.  */
-  bfd_boolean (*_close_and_cleanup) (bfd *);
+  bool (*_close_and_cleanup) (bfd *);
   /* Ask the BFD to free all cached information.  */
-  bfd_boolean (*_bfd_free_cached_info) (bfd *);
+  bool (*_bfd_free_cached_info) (bfd *);
   /* Called when a new section is created.  */
-  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
+  bool (*_new_section_hook) (bfd *, sec_ptr);
   /* Read the contents of a section.  */
-  bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
-                                            bfd_size_type);
-  bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
-                                                      bfd_window *, file_ptr,
-                                                      bfd_size_type);
+  bool (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
+                                     bfd_size_type);
+  bool (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr, bfd_window *,
+                                               file_ptr, bfd_size_type);
 
   /* Entry points to copy private data.  */
 #define BFD_JUMP_TABLE_COPY(NAME) \
@@ -7379,34 +7447,32 @@ typedef struct bfd_target
 
   /* Called to copy BFD general private data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
+  bool (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
   /* Called to merge BFD general private data from one object file
      to a common output file when linking.  */
-  bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *);
+  bool (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *);
   /* Called to initialize BFD private section data from one object file
      to another.  */
 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
        BFD_SEND (obfd, _bfd_init_private_section_data, \
                  (ibfd, isec, obfd, osec, link_info))
-  bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
-                                                 sec_ptr,
-                                                 struct bfd_link_info *);
+  bool (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr,
+                                          struct bfd_link_info *);
   /* Called to copy BFD private section data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
-                                                 sec_ptr);
+  bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr);
   /* Called to copy BFD private symbol data from one symbol
      to another.  */
-  bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
-                                                asymbol *);
+  bool (*_bfd_copy_private_symbol_data) (bfd *, asymbol *,
+                                         bfd *, asymbol *);
   /* Called to copy BFD private header data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
+  bool (*_bfd_copy_private_header_data) (bfd *, bfd *);
   /* Called to set private backend flags.  */
-  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
+  bool (*_bfd_set_private_flags) (bfd *, flagword);
 
   /* Called to print private BFD data.  */
-  bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
+  bool (*_bfd_print_private_bfd_data) (bfd *, void *);
 
   /* Core file entry points.  */
 #define BFD_JUMP_TABLE_CORE(NAME) \
@@ -7415,10 +7481,10 @@ typedef struct bfd_target
   NAME##_core_file_matches_executable_p, \
   NAME##_core_file_pid
 
-  char *      (*_core_file_failing_command) (bfd *);
-  int         (*_core_file_failing_signal) (bfd *);
-  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
-  int         (*_core_file_pid) (bfd *);
+  char *(*_core_file_failing_command) (bfd *);
+  int   (*_core_file_failing_signal) (bfd *);
+  bool  (*_core_file_matches_executable_p) (bfd *, bfd *);
+  int   (*_core_file_pid) (bfd *);
 
   /* Archive entry points.  */
 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
@@ -7434,22 +7500,21 @@ typedef struct bfd_target
   NAME##_generic_stat_arch_elt, \
   NAME##_update_armap_timestamp
 
-  bfd_boolean (*_bfd_slurp_armap) (bfd *);
-  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-  bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
-                                                     bfd_size_type *,
-                                                     const char **);
-  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-  bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
-                              unsigned int, int);
-  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
-  bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
-  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
+  bool (*_bfd_slurp_armap) (bfd *);
+  bool (*_bfd_slurp_extended_name_table) (bfd *);
+  bool (*_bfd_construct_extended_name_table) (bfd *, char **,
+                                              bfd_size_type *,
+                                              const char **);
+  void (*_bfd_truncate_arname) (bfd *, const char *, char *);
+  bool (*write_armap) (bfd *, unsigned, struct orl *, unsigned, int);
+  void *(*_bfd_read_ar_hdr_fn) (bfd *);
+  bool (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
+  bfd *(*openr_next_archived_file) (bfd *, bfd *);
 #define bfd_get_elt_at_index(b,i) \
        BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
-  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
-  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
-  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
+  bfd *(*_bfd_get_elt_at_index) (bfd *, symindex);
+  int  (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+  bool (*_bfd_update_armap_timestamp) (bfd *);
 
   /* Entry points used for symbols.  */
 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
@@ -7469,46 +7534,47 @@ typedef struct bfd_target
   NAME##_read_minisymbols, \
   NAME##_minisymbol_to_symbol
 
-  long        (*_bfd_get_symtab_upper_bound) (bfd *);
-  long        (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
+  long (*_bfd_get_symtab_upper_bound) (bfd *);
+  long (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
   struct bfd_symbol *
-              (*_bfd_make_empty_symbol) (bfd *);
-  void        (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
-                                    bfd_print_symbol_type);
+       (*_bfd_make_empty_symbol) (bfd *);
+  void (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
+                             bfd_print_symbol_type);
 #define bfd_print_symbol(b,p,s,e) \
        BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-  void        (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
-                                       symbol_info *);
+  void  (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *, symbol_info *);
 #define bfd_get_symbol_info(b,p,e) \
        BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-  const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
-                                                 bfd_boolean *);
-#define bfd_get_symbol_version_string(b,s,h) \
-       BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
-  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
-  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
-  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-  bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
-                                         struct bfd_section *, bfd_vma,
-                                         const char **, const char **,
-                                         unsigned int *, unsigned int *);
-  bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
-                                 struct bfd_symbol *, const char **,
-                                 unsigned int *);
-  bfd_boolean (*_bfd_find_inliner_info)
+  const char *
+       (*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
+                                          bool, bool *);
+#define bfd_get_symbol_version_string(b,s,p,h) \
+       BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,p,h))
+  bool (*_bfd_is_local_label_name) (bfd *, const char *);
+  bool (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
+  alent *
+       (*_get_lineno) (bfd *, struct bfd_symbol *);
+  bool (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
+                                  struct bfd_section *, bfd_vma,
+                                  const char **, const char **,
+                                  unsigned int *, unsigned int *);
+  bool (*_bfd_find_line) (bfd *, struct bfd_symbol **,
+                          struct bfd_symbol *, const char **,
+                          unsigned int *);
+  bool (*_bfd_find_inliner_info)
     (bfd *, const char **, const char **, unsigned int *);
  /* Back-door to allow format-aware applications to create debug symbols
     while using BFD for everything else.  Currently used by the assembler
     when creating COFF files.  */
-  asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
+  asymbol *
+       (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
 #define bfd_read_minisymbols(b, d, m, s) \
        BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-  long        (*_read_minisymbols) (bfd *, bfd_boolean, void **,
-                                    unsigned int *);
+  long (*_read_minisymbols) (bfd *, bool, void **, unsigned int *);
 #define bfd_minisymbol_to_symbol(b, d, m, f) \
        BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-  asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
-                                        asymbol *);
+  asymbol *
+       (*_minisymbol_to_symbol) (bfd *, bool, const void *, asymbol *);
 
   /* Routines for relocs.  */
 #define BFD_JUMP_TABLE_RELOCS(NAME) \
@@ -7518,25 +7584,25 @@ typedef struct bfd_target
   NAME##_bfd_reloc_type_lookup, \
   NAME##_bfd_reloc_name_lookup
 
-  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-  long        (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
-                                          struct bfd_symbol **);
-  void        (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
+  long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
+  long (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
+                                   struct bfd_symbol **);
+  void (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
   /* See documentation on reloc types.  */
   reloc_howto_type *
-              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
+       (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
   reloc_howto_type *
-              (*reloc_name_lookup) (bfd *, const char *);
+       (*reloc_name_lookup) (bfd *, const char *);
 
   /* Routines used when writing an object file.  */
 #define BFD_JUMP_TABLE_WRITE(NAME) \
   NAME##_set_arch_mach, \
   NAME##_set_section_contents
 
-  bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
+  bool (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
                                      unsigned long);
-  bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
-                                            file_ptr, bfd_size_type);
+  bool (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
+                                     file_ptr, bfd_size_type);
 
   /* Routines used by the linker.  */
 #define BFD_JUMP_TABLE_LINK(NAME) \
@@ -7561,72 +7627,73 @@ typedef struct bfd_target
   NAME##_bfd_link_hide_symbol, \
   NAME##_bfd_define_start_stop
 
-  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
-  bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
-                                                      struct bfd_link_info *,
-                                                      struct bfd_link_order *,
-                                                      bfd_byte *, bfd_boolean,
-                                                      struct bfd_symbol **);
+  int  (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
+  bfd_byte *
+       (*_bfd_get_relocated_section_contents) (bfd *,
+                                               struct bfd_link_info *,
+                                               struct bfd_link_order *,
+                                               bfd_byte *, bool,
+                                               struct bfd_symbol **);
 
-  bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
-                                     struct bfd_link_info *, bfd_boolean *);
+  bool (*_bfd_relax_section) (bfd *, struct bfd_section *,
+                              struct bfd_link_info *, bool *);
 
   /* Create a hash table for the linker.  Different backends store
      different information in this table.  */
   struct bfd_link_hash_table *
-              (*_bfd_link_hash_table_create) (bfd *);
+       (*_bfd_link_hash_table_create) (bfd *);
 
   /* Add symbols from this object file into the hash table.  */
-  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
+  bool (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 
   /* Indicate that we are only retrieving symbol values from this section.  */
-  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
+  void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 
   /* Copy the symbol type and other attributes for a linker script
      assignment of one symbol to another.  */
 #define bfd_copy_link_hash_symbol_type(b, t, f) \
        BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
-  void        (*_bfd_copy_link_hash_symbol_type) (bfd *,
-                                                  struct bfd_link_hash_entry *,
-                                                  struct bfd_link_hash_entry *);
+  void (*_bfd_copy_link_hash_symbol_type) (bfd *,
+                                           struct bfd_link_hash_entry *,
+                                           struct bfd_link_hash_entry *);
 
   /* Do a link based on the link_order structures attached to each
      section of the BFD.  */
-  bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
+  bool (*_bfd_final_link) (bfd *, struct bfd_link_info *);
 
   /* Should this section be split up into smaller pieces during linking.  */
-  bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
+  bool (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 
   /* Check the relocations in the bfd for validity.  */
-  bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
+  bool (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
 
   /* Remove sections that are not referenced from the output.  */
-  bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
+  bool (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 
   /* Sets the bitmask of allowed and disallowed section flags.  */
-  bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
-                                            struct flag_info *, asection *);
+  bool (*_bfd_lookup_section_flags) (struct bfd_link_info *,
+                                     struct flag_info *, asection *);
 
   /* Attempt to merge SEC_MERGE sections.  */
-  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
+  bool (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
 
   /* Is this section a member of a group?  */
-  bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+  bool (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
 
   /* The group name, if section is a member of a group.  */
   const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
 
   /* Discard members of a group.  */
-  bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
+  bool (*_bfd_discard_group) (bfd *, struct bfd_section *);
 
   /* Check if SEC has been already linked during a reloceatable or
      final link.  */
-  bfd_boolean (*_section_already_linked) (bfd *, asection *,
-                                          struct bfd_link_info *);
+  bool (*_section_already_linked) (bfd *, asection *,
+                                   struct bfd_link_info *);
 
   /* Define a common symbol.  */
-  bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
-                                            struct bfd_link_hash_entry *);
+  bool (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
+                                     struct bfd_link_hash_entry *);
 
   /* Hide a symbol.  */
   void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *,
@@ -7634,8 +7701,8 @@ typedef struct bfd_target
 
   /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
   struct bfd_link_hash_entry *
-              (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
-                                         asection *);
+       (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
+                                  asection *);
 
   /* Routines to handle dynamic symbols and relocs.  */
 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
@@ -7646,18 +7713,18 @@ typedef struct bfd_target
   NAME##_canonicalize_dynamic_reloc
 
   /* Get the amount of memory required to hold the dynamic symbols.  */
-  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
+  long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
   /* Read in the dynamic symbols.  */
-  long        (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
+  long (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
   /* Create synthetized symbols.  */
-  long        (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
-                                            long, struct bfd_symbol **,
-                                            struct bfd_symbol **);
+  long (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
+                                     long, struct bfd_symbol **,
+                                     struct bfd_symbol **);
   /* Get the amount of memory required to hold the dynamic relocs.  */
-  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
+  long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
   /* Read in the dynamic relocs.  */
-  long        (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
-                                                  struct bfd_symbol **);
+  long (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
+                                           struct bfd_symbol **);
 
   /* Opposite endian version of this target.  */
   const struct bfd_target *alternative_target;
@@ -7686,31 +7753,31 @@ bfd_applicable_file_flags (const bfd *ab
   return abfd->xvec->object_flags;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_family_coff (const bfd *abfd)
 {
   return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
           || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_big_endian (const bfd *abfd)
 {
   return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
 }
-static inline bfd_boolean
+static inline bool
 bfd_little_endian (const bfd *abfd)
 {
   return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_header_big_endian (const bfd *abfd)
 {
   return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
 }
 
-static inline bfd_boolean
+static inline bool
 bfd_header_little_endian (const bfd *abfd)
 {
   return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
@@ -7736,13 +7803,19 @@ bfd_asymbol_flavour (const asymbol *sy)
   return sy->the_bfd->xvec->flavour;
 }
 
-bfd_boolean bfd_set_default_target (const char *name);
+static inline bool
+bfd_keep_unused_section_symbols (const bfd *abfd)
+{
+  return abfd->xvec->keep_unused_section_symbols;
+}
+
+bool bfd_set_default_target (const char *name);
 
 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
 
 const bfd_target *bfd_get_target_info (const char *target_name,
     bfd *abfd,
-    bfd_boolean *is_bigendian,
+    bool *is_bigendian,
     int *underscoring,
     const char **def_target_arch);
 const char ** bfd_target_list (void);
@@ -7754,12 +7827,12 @@ const bfd_target *bfd_iterate_over_targe
 const char *bfd_flavour_name (enum bfd_flavour flavour);
 
 /* Extracted from format.c.  */
-bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
+bool bfd_check_format (bfd *abfd, bfd_format format);
 
-bfd_boolean bfd_check_format_matches
+bool bfd_check_format_matches
    (bfd *abfd, bfd_format format, char ***matching);
 
-bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
+bool bfd_set_format (bfd *abfd, bfd_format format);
 
 const char *bfd_format_string (bfd_format format);
 
@@ -7775,19 +7848,19 @@ const char *bfd_format_string (bfd_forma
    && bfd_is_abs_section ((H)->u.def.section) \
    && !(H)->rel_from_abs)
 
-bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
+bool bfd_link_split_section (bfd *abfd, asection *sec);
 
 #define bfd_link_split_section(abfd, sec) \
        BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 
-bfd_boolean bfd_section_already_linked (bfd *abfd,
+bool bfd_section_already_linked (bfd *abfd,
     asection *sec,
     struct bfd_link_info *info);
 
 #define bfd_section_already_linked(abfd, sec, info) \
        BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 
-bfd_boolean bfd_generic_define_common_symbol
+bool bfd_generic_define_common_symbol
    (bfd *output_bfd, struct bfd_link_info *info,
     struct bfd_link_hash_entry *h);
 
@@ -7810,18 +7883,18 @@ struct bfd_link_hash_entry *bfd_generic_
 
 struct bfd_elf_version_tree * bfd_find_version_for_sym
    (struct bfd_elf_version_tree *verdefs,
-    const char *sym_name, bfd_boolean *hide);
+    const char *sym_name, bool *hide);
 
-bfd_boolean bfd_hide_sym_by_version
+bool bfd_hide_sym_by_version
    (struct bfd_elf_version_tree *verdefs, const char *sym_name);
 
-bfd_boolean bfd_link_check_relocs
+bool bfd_link_check_relocs
    (bfd *abfd, struct bfd_link_info *info);
 
-bfd_boolean _bfd_generic_link_check_relocs
+bool _bfd_generic_link_check_relocs
    (bfd *abfd, struct bfd_link_info *info);
 
-bfd_boolean bfd_merge_private_bfd_data
+bool bfd_merge_private_bfd_data
    (bfd *ibfd, struct bfd_link_info *info);
 
 #define bfd_merge_private_bfd_data(ibfd, info) \
@@ -7832,28 +7905,28 @@ bfd_byte *bfd_simple_get_relocated_secti
    (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
 
 /* Extracted from compress.c.  */
-bfd_boolean bfd_get_full_section_contents
+bool bfd_get_full_section_contents
    (bfd *abfd, asection *section, bfd_byte **ptr);
 
 void bfd_cache_section_contents
    (asection *sec, void *contents);
 
-bfd_boolean bfd_is_section_compressed_with_header
+bool bfd_is_section_compressed_with_header
    (bfd *abfd, asection *section,
     int *compression_header_size_p,
     bfd_size_type *uncompressed_size_p,
     unsigned int *uncompressed_alignment_power_p);
 
-bfd_boolean bfd_is_section_compressed
+bool bfd_is_section_compressed
    (bfd *abfd, asection *section);
 
-bfd_boolean bfd_init_section_decompress_status
+bool bfd_init_section_decompress_status
    (bfd *abfd, asection *section);
 
-bfd_boolean bfd_init_section_compress_status
+bool bfd_init_section_compress_status
    (bfd *abfd, asection *section);
 
-bfd_boolean bfd_compress_section
+bool bfd_compress_section
    (bfd *abfd, asection *section, bfd_byte *uncompressed_buffer);
 
 #ifdef __cplusplus
Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.10 src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.11
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.10	Sat Aug  8 15:30:21 2020
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk	Sun Dec 25 15:06:00 2022
@@ -1,10 +1,10 @@
 # This file is automatically generated.  DO NOT EDIT!
-# Generated from: NetBSD: mknative-binutils,v 1.13 2020/04/04 01:34:53 christos Exp 
+# Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
-G_libbfd_la_DEPENDENCIES=elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo coff-i386.lo cofflink.lo coffgen.lo pei-i386.lo peigen.lo i386bsd.lo aout32.lo i386netbsd.lo elf32-gen.lo plugin.lo cpu-i386.lo cpu-iamcu.lo netbsd-core.lo ofiles
+G_libbfd_la_DEPENDENCIES=elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-vxworks.lo elf32.lo elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo elf32-gen.lo plugin.lo cpu-i386.lo cpu-iamcu.lo netbsd-core.lo ofiles
 G_libbfd_la_OBJECTS=archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo  cache.lo coff-bfd.lo compress.lo corefile.lo elf-properties.lo  format.lo hash.lo init.lo libbfd.lo linker.lo merge.lo  opncls.lo reloc.lo section.lo simple.lo stab-syms.lo stabs.lo  syms.lo targets.lo binary.lo ihex.lo srec.lo tekhex.lo  verilog.lo
 G_DEFS=-DHAVE_CONFIG_H
 G_INCLUDES=
-G_TDEFAULTS=-DDEFAULT_VECTOR=i386_elf32_vec -DSELECT_VECS='&i386_elf32_vec,&iamcu_elf32_vec,&i386_coff_vec,&i386_pei_vec,&i386_aout_bsd_vec,&i386_aout_nbsd_vec,&elf32_le_vec,&elf32_be_vec' -DSELECT_ARCHITECTURES='&bfd_i386_arch,&bfd_iamcu_arch'
-G_HAVEVECS=-DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_i386_coff_vec -DHAVE_i386_pei_vec -DHAVE_i386_aout_bsd_vec -DHAVE_i386_aout_nbsd_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec
+G_TDEFAULTS=-DDEFAULT_VECTOR=i386_elf32_vec -DSELECT_VECS='&i386_elf32_vec,&iamcu_elf32_vec,&elf32_le_vec,&elf32_be_vec' -DSELECT_ARCHITECTURES='&bfd_i386_arch,&bfd_iamcu_arch'
+G_HAVEVECS=-DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec

Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h:1.13 src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h:1.14
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h:1.13	Fri Apr  3 20:46:53 2020
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/bfdver.h	Sun Dec 25 15:06:00 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* The date below is automatically updated every day by a bot.  During
@@ -20,7 +20,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20200201
-#define BFD_VERSION 234000000
-#define BFD_VERSION_STRING  "(NetBSD Binutils nb1) " "2.34"
+#define BFD_VERSION_DATE 20220805
+#define BFD_VERSION 239000000
+#define BFD_VERSION_STRING  "(NetBSD Binutils nb1)" " " "2.39"
 #define REPORT_BUGS_TO "<http://www.NetBSD.org/support/send-pr.html>"

Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.9 src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.10
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.9	Fri Apr  3 20:46:53 2020
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h	Sun Dec 25 15:06:00 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -19,13 +19,13 @@
    default. */
 #define DEFAULT_LD_Z_SEPARATE_CODE 0
 
+/* Define if you want run-time sanity checks. */
+/* #undef ENABLE_CHECKING */
+
 /* Define to 1 if translation of program messages to the user's native
    language is requested. */
 #define ENABLE_NLS 1
 
-/* Define to 1 if you have the <alloca.h> header file. */
-/* #undef HAVE_ALLOCA_H */
-
 /* Define to 1 if you have the declaration of `asprintf', and to 0 if you
    don't. */
 #define HAVE_DECL_ASPRINTF 1
@@ -37,9 +37,9 @@
 /* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
 #define HAVE_DECL_FFS 1
 
-/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
-   */
-#define HAVE_DECL_FREE 1
+/* Define to 1 if you have the declaration of `fopen64', and to 0 if you
+   don't. */
+#define HAVE_DECL_FOPEN64 0
 
 /* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't.
    */
@@ -57,22 +57,6 @@
    don't. */
 #define HAVE_DECL_FTELLO64 0
 
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#define HAVE_DECL_GETENV 1
-
-/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
-   */
-#define HAVE_DECL_MALLOC 1
-
-/* Define to 1 if you have the declaration of `realloc', and to 0 if you
-   don't. */
-#define HAVE_DECL_REALLOC 1
-
-/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_SNPRINTF 1
-
 /* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
    */
 #define HAVE_DECL_STPCPY 1
@@ -81,22 +65,10 @@
    don't. */
 #define HAVE_DECL_STRNLEN 1
 
-/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
-   */
-#define HAVE_DECL_STRSTR 1
-
 /* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
    don't. */
 #define HAVE_DECL_VASPRINTF 1
 
-/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_VSNPRINTF 1
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#define HAVE_DIRENT_H 1
-
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
@@ -148,12 +120,6 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
-/* Define to 1 if the system has the type `long double'. */
-#define HAVE_LONG_DOUBLE 1
-
-/* Define to 1 if the system has the type `long long'. */
-#define HAVE_LONG_LONG 1
-
 /* Define if <sys/procfs.h> has lwpstatus_t. */
 /* #undef HAVE_LWPSTATUS_T */
 
@@ -181,9 +147,6 @@
 /* Define to 1 if you have the `mprotect' function. */
 #define HAVE_MPROTECT 1
 
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
 /* Define if <sys/procfs.h> has prpsinfo32_t. */
 /* #undef HAVE_PRPSINFO32_T */
 
@@ -229,12 +192,6 @@
 /* Define if <sys/procfs.h> has pxstatus_t. */
 /* #undef HAVE_PXSTATUS_T */
 
-/* Define to 1 if you have the `setitimer' function. */
-#define HAVE_SETITIMER 1
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
@@ -247,26 +204,15 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strtoull' function. */
-#define HAVE_STRTOULL 1
-
 /* Define if struct core_dumpx has member c_impl */
 /* #undef HAVE_ST_C_IMPL */
 
 /* Define to 1 if you have the `sysconf' function. */
 #define HAVE_SYSCONF 1
 
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_DIR_H */
-
 /* Define to 1 if you have the <sys/file.h> header file. */
 #define HAVE_SYS_FILE_H 1
 
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_NDIR_H */
-
 /* Define to 1 if you have the <sys/param.h> header file. */
 #define HAVE_SYS_PARAM_H 1
 
@@ -279,24 +225,12 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #define HAVE_SYS_STAT_H 1
 
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
-/* Define to 1 if you have the <time.h> header file. */
-#define HAVE_TIME_H 1
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H 1
 
-/* Define to 1 if you have the <wchar.h> header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define to 1 if you have the <wctype.h> header file. */
-#define HAVE_WCTYPE_H 1
-
 /* Define if <sys/procfs.h> has win32_pstatus_t. */
 /* #undef HAVE_WIN32_PSTATUS_T */
 
@@ -317,7 +251,7 @@
 #define PACKAGE_NAME "bfd"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "bfd 2.34"
+#define PACKAGE_STRING "bfd 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "bfd"
@@ -326,10 +260,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
-
-/* The size of `char', as computed by sizeof. */
-/* #undef SIZEOF_CHAR */
+#define PACKAGE_VERSION "2.39"
 
 /* The size of `int', as computed by sizeof. */
 #define SIZEOF_INT 4
@@ -343,21 +274,12 @@
 /* The size of `off_t', as computed by sizeof. */
 #define SIZEOF_OFF_T 8
 
-/* The size of `short', as computed by sizeof. */
-/* #undef SIZEOF_SHORT */
-
 /* The size of `void *', as computed by sizeof. */
 #define SIZEOF_VOID_P 4
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
-/* Define if you can safely include both <string.h> and <strings.h>. */
-#define STRING_WITH_STRINGS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
 /* Name of host specific header file to include in trad-core.c. */
 /* #undef TRAD_HEADER */
 
@@ -374,7 +296,7 @@
 /* #undef USE_MMAP */
 
 /* Define if we should default to creating read-only plt entries */
-/* #undef USE_SECUREPLT */
+#define USE_SECUREPLT 1
 
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
@@ -399,7 +321,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Enable large inode numbers on Mac OS X 10.5.  */
 #ifndef _DARWIN_USE_64_BIT_INODE
@@ -421,3 +343,6 @@
 
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 /* #undef _POSIX_SOURCE */
+
+/* Use structured /proc on Solaris. */
+#define _STRUCTURED_PROC 1

Index: src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h
diff -u src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h:1.1 src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h:1.2
--- src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h:1.1	Fri Apr  3 21:34:30 2020
+++ src/external/gpl3/binutils/lib/libgnuctf/arch/i386/config.h	Sun Dec 25 15:06:00 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.12 2020/04/04 00:47:52 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.h.in by configure.  */
@@ -8,8 +8,15 @@
 /* Define if building universal (internal helper macro) */
 /* #undef AC_APPLE_UNIVERSAL_BUILD */
 
+/* Enable expensive debugging of CTF deduplication type hashing */
+/* #undef ENABLE_LIBCTF_HASH_DEBUGGING */
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#define ENABLE_NLS 1
+
 /* Whether libbfd was configured for an ELF target. */
-/* #undef HAVE_BFD_ELF */
+#define HAVE_BFD_ELF 1
 
 /* Define to 1 if you have the <byteswap.h> header file. */
 /* #undef HAVE_BYTESWAP_H */
@@ -18,6 +25,26 @@
    don't. */
 #define HAVE_DECL_ASPRINTF 1
 
+/* Define to 1 if you have the declaration of `bswap_16', and to 0 if you
+   don't. */
+#define HAVE_DECL_BSWAP_16 0
+
+/* Define to 1 if you have the declaration of `bswap_32', and to 0 if you
+   don't. */
+#define HAVE_DECL_BSWAP_32 0
+
+/* Define to 1 if you have the declaration of `bswap_64', and to 0 if you
+   don't. */
+#define HAVE_DECL_BSWAP_64 0
+
+/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
+   */
+#define HAVE_DECL_STPCPY 1
+
+/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VASPRINTF 1
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
@@ -80,25 +107,25 @@
 #define LT_OBJDIR ".libs/"
 
 /* Name of package */
-#define PACKAGE "libctf-library"
+#define PACKAGE "libctf"
 
 /* Define to the address where bug reports for this package should be sent. */
 #define PACKAGE_BUGREPORT ""
 
 /* Define to the full name of this package. */
-#define PACKAGE_NAME "libctf library"
+#define PACKAGE_NAME "libctf"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libctf library 1.2.0-pre"
+#define PACKAGE_STRING "libctf 1.2.0"
 
 /* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "libctf-library"
+#define PACKAGE_TARNAME "libctf"
 
 /* Define to the home page for this package. */
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.0-pre"
+#define PACKAGE_VERSION "1.2.0"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -126,7 +153,7 @@
 
 
 /* Version number of package */
-#define VERSION "1.2.0-pre"
+#define VERSION "1.2.0"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
Index: src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk:1.1 src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk:1.2
--- src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk:1.1	Fri Apr  3 21:34:30 2020
+++ src/external/gpl3/binutils/lib/libgnuctf/arch/i386/defs.mk	Sun Dec 25 15:06:00 2022
@@ -1,5 +1,5 @@
 # This file is automatically generated.  DO NOT EDIT!
-# Generated from: NetBSD: mknative-binutils,v 1.12 2020/04/04 00:47:52 christos Exp 
+# Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
-G_libctf_la_SOURCES=ctf-archive.c ctf-dump.c ctf-create.c  ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-link.c  ctf-lookup.c ctf-open.c ctf-string.c ctf-subr.c ctf-types.c  ctf-util.c ctf-qsort_r.c ctf-open-bfd.c
+G_libctf_la_SOURCES=ctf-archive.c ctf-dump.c ctf-create.c  ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-dedup.c  ctf-link.c ctf-lookup.c ctf-open.c ctf-serialize.c ctf-sha1.c  ctf-string.c ctf-subr.c ctf-types.c ctf-util.c ctf-qsort_r.c ctf-open-bfd.c

Index: src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk:1.6 src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk:1.7
--- src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk:1.6	Fri Apr  3 20:46:54 2020
+++ src/external/gpl3/binutils/lib/libiberty/arch/i386/defs.mk	Sun Dec 25 15:06:01 2022
@@ -1,8 +1,8 @@
 # This file is automatically generated.  DO NOT EDIT!
-# Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp 
+# Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
 G_ALLOCA=
 G_EXTRA_OFILES=
 G_LIBOBJS=mempcpy.o strverscmp.o
-G_REQUIRED_OFILES=regex.o cplus-dem.o cp-demangle.o  md5.o sha1.o alloca.o		 argv.o						 choose-temp.o concat.o			 cp-demint.o crc32.o d-demangle.o	 dwarfnames.o dyn-string.o			 fdmatch.o fibheap.o				 filedescriptor.o	 filename_cmp.o floatformat.o		 fnmatch.o fopen_unlocked.o			 getopt.o getopt1.o getpwd.o	 getruntime.o hashtab.o hex.o	 lbasename.o lrealpath.o			 make-relative-prefix.o make-temp-file.o	 objalloc.o						 obstack.o						 partition.o pexecute.o physmem.o	 pex-common.o pex-one.o			 pex-unix.o vprintf-support.o		 rust-demangle.o					 safe-ctype.o						 simple-object.o simple-object-coff.o	 simple-object-elf.o simple-object-mach-o.o	 simple-object-xcoff.o					 sort.o spaces.o				 splay-tree.o stack-limit.o			 strerror.o strsignal.o			 timeval-utils.o unlink-if-ordinary.o	 xasprintf.o xatexit.o xexit.o	 xmalloc.o xmemdup.o xstrdup.o	 xstrerror.o xstrndup.o			 xvasprintf.o
+G_REQUIRED_OFILES=regex.o cplus-dem.o cp-demangle.o  md5.o sha1.o alloca.o		 argv.o						 bsearch_r.o						 choose-temp.o concat.o			 cp-demint.o crc32.o d-demangle.o	 dwarfnames.o dyn-string.o			 fdmatch.o fibheap.o				 filedescriptor.o	 filename_cmp.o floatformat.o		 fnmatch.o fopen_unlocked.o			 getopt.o getopt1.o getpwd.o	 getruntime.o hashtab.o hex.o	 lbasename.o lrealpath.o			 make-relative-prefix.o make-temp-file.o	 objalloc.o						 obstack.o						 partition.o pexecute.o physmem.o	 pex-common.o pex-one.o			 pex-unix.o vprintf-support.o		 rust-demangle.o					 safe-ctype.o						 simple-object.o simple-object-coff.o	 simple-object-elf.o simple-object-mach-o.o	 simple-object-xcoff.o					 sort.o spaces.o				 splay-tree.o stack-limit.o			 strerror.o strsignal.o			 timeval-utils.o unlink-if-ordinary.o	 xasprintf.o xatexit.o xexit.o	 xmalloc.o xmemdup.o xstrdup.o	 xstrerror.o xstrndup.o			 xvasprintf.o

Index: src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h
diff -u src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h:1.9 src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h:1.10
--- src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h:1.9	Fri Apr  3 20:46:54 2020
+++ src/external/gpl3/binutils/lib/libopcodes/arch/i386/config.h	Sun Dec 25 15:06:01 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -12,6 +12,9 @@
 #endif
 #define __CONFIG_H__ 1
 
+/* Define if you want run-time sanity checks. */
+/* #undef ENABLE_CHECKING */
+
 /* Define to 1 if translation of program messages to the user's native
    language is requested. */
 #define ENABLE_NLS 1
@@ -30,9 +33,6 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
@@ -74,7 +74,7 @@
 #define PACKAGE_NAME "opcodes"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "opcodes 2.34"
+#define PACKAGE_STRING "opcodes 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "opcodes"
@@ -83,14 +83,14 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
+#define PACKAGE_VERSION "2.39"
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 4
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
-/* Define if you can safely include both <string.h> and <strings.h>. */
-#define STRING_WITH_STRINGS 1
-
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # define _ALL_SOURCE 1
@@ -114,7 +114,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Define to 1 if on MINIX. */
 /* #undef _MINIX */

Index: src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h
diff -u src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h:1.10 src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h:1.11
--- src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h:1.10	Fri Apr  3 20:46:54 2020
+++ src/external/gpl3/binutils/usr.bin/common/arch/i386/config.h	Sun Dec 25 15:06:01 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -12,20 +12,24 @@
 #endif
 #define __CONFIG_H__ 1
 
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
 /* Should ar and ranlib use -D behavior by default? */
 #define DEFAULT_AR_DETERMINISTIC 0
 
+/* Have readelf and objdump follow debug links by default */
+#define DEFAULT_FOR_FOLLOW_LINKS 1
+
+/* Have nm use F and f for global and local ifunc symbols */
+#define DEFAULT_F_FOR_IFUNC_SYMBOLS 0
+
 /* Should strings use -a behavior by default? */
 #define DEFAULT_STRINGS_ALL 1
 
+/* Define if you want run-time sanity checks. */
+/* #undef ENABLE_CHECKING */
+
+/* Handle .ctf type-info sections */
+#define ENABLE_LIBCTF 1
+
 /* Define to 1 if translation of program messages to the user's native
    language is requested. */
 #define ENABLE_NLS 1
@@ -33,13 +37,6 @@
 /* Suffix used for executables, if any. */
 #define EXECUTABLE_SUFFIX ""
 
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-/* #undef HAVE_ALLOCA_H */
-
 /* Define to 1 if you have the declaration of `asprintf', and to 0 if you
    don't. */
 #define HAVE_DECL_ASPRINTF 1
@@ -48,18 +45,10 @@
    don't. */
 #define HAVE_DECL_ENVIRON 0
 
-/* Define to 1 if you have the declaration of `fprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_FPRINTF 1
-
 /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
    don't. */
 #define HAVE_DECL_GETC_UNLOCKED 1
 
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#define HAVE_DECL_GETENV 1
-
 /* Is the prototype for getopt in <unistd.h> in the expected format? */
 #define HAVE_DECL_GETOPT 1
 
@@ -67,10 +56,6 @@
    */
 #define HAVE_DECL_SBRK 1
 
-/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_SNPRINTF 1
-
 /* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
    */
 #define HAVE_DECL_STPCPY 1
@@ -79,14 +64,6 @@
    don't. */
 #define HAVE_DECL_STRNLEN 1
 
-/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
-   */
-#define HAVE_DECL_STRSTR 1
-
-/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_VSNPRINTF 1
-
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
@@ -117,15 +94,6 @@
 /* Define to 1 if debuginfod is enabled. */
 /* #undef HAVE_LIBDEBUGINFOD */
 
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
-
-/* Define to 1 if the system has the type `long long'. */
-#define HAVE_LONG_LONG 1
-
 /* Define if mbstate_t exists in wchar.h. */
 #define HAVE_MBSTATE_T 1
 
@@ -141,30 +109,36 @@
 /* Define to 1 if you have a working `mmap' system call. */
 #define HAVE_MMAP 1
 
+/* Define to 1 if msgpack is available. */
+/* #undef HAVE_MSGPACK */
+
 /* Define to 1 if you have the `sbrk' function. */
 #define HAVE_SBRK 1
 
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
-/* Define to 1 if you have the `setmode' function. */
-#define HAVE_SETMODE 1
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
 
-/* Define to 1 if you have the `strcoll' function. */
-#define HAVE_STRCOLL 1
-
 /* Define to 1 if you have the <strings.h> header file. */
 #define HAVE_STRINGS_H 1
 
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */
+
+/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC */
+
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */
+
+/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+
 /* Define to 1 if you have the <sys/file.h> header file. */
 #define HAVE_SYS_FILE_H 1
 
@@ -174,27 +148,24 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #define HAVE_SYS_STAT_H 1
 
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
 /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
 #define HAVE_SYS_WAIT_H 1
 
-/* Is the type time_t defined in <time.h>? */
-#define HAVE_TIME_T_IN_TIME_H 1
-
-/* Is the type time_t defined in <sys/types.h>? */
-#define HAVE_TIME_T_IN_TYPES_H 1
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H 1
 
+/* Define to 1 if you have the `utimensat' function. */
+#define HAVE_UTIMENSAT 1
+
 /* Define to 1 if you have the `utimes' function. */
 #define HAVE_UTIMES 1
 
-/* Define to 1 if you have the <wchar.h> header file. */
-#define HAVE_WCHAR_H 1
-
 /* Define to 1 if you have the <windows.h> header file. */
 /* #undef HAVE_WINDOWS_H */
 
@@ -215,7 +186,7 @@
 #define PACKAGE_NAME "binutils"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "binutils 2.34"
+#define PACKAGE_STRING "binutils 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "binutils"
@@ -224,7 +195,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
+#define PACKAGE_VERSION "2.39"
 
 /* The size of `long', as computed by sizeof. */
 #define SIZEOF_LONG 4
@@ -232,26 +203,19 @@
 /* The size of `long long', as computed by sizeof. */
 #define SIZEOF_LONG_LONG 8
 
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at runtime.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
-
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
-/* Define if you can safely include both <string.h> and <strings.h>. */
-#define STRING_WITH_STRINGS 1
-
 /* Configured target name. */
 #define TARGET "i486--netbsdelf"
 
 /* Define to 1 if user symbol names have a leading underscore, 0 if not. */
 #define TARGET_PREPENDS_UNDERSCORE 0
 
+/* Define to 1 if the type of the st_atim member of a struct stat is struct
+   timespec. */
+#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1
+
 /* Use b modifier when opening binary files? */
 /* #undef USE_BINARY_FOPEN */
 
@@ -278,7 +242,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
@@ -304,6 +268,3 @@
 
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 /* #undef _POSIX_SOURCE */
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */

Index: src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk:1.11 src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk:1.12
--- src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk:1.11	Fri Apr  3 20:46:54 2020
+++ src/external/gpl3/binutils/usr.bin/common/arch/i386/defs.mk	Sun Dec 25 15:06:01 2022
@@ -1,18 +1,18 @@
 # This file is automatically generated.  DO NOT EDIT!
-# Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp 
+# Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
-G_VERSION=2.34
+G_VERSION=2.39
 G_DEFS=-DHAVE_CONFIG_H
 G_INCLUDES=
 G_PROGRAMS=size objdump ar  strings ranlib objcopy   addr2line readelf elfedit   nm-new strip-new cxxfilt bfdtest1 bfdtest2 
-G_man_MANS=addr2line.1  ar.1  dlltool.1  nm.1  objcopy.1  objdump.1  ranlib.1  readelf.1  size.1  strings.1  strip.1  elfedit.1  windres.1  windmc.1  c++filt.1
-G_TEXINFOS=binutils.texi
-G_PKGVERSION=(NetBSD Binutils nb1) 
+G_man_MANS=doc/addr2line.1  doc/ar.1  doc/dlltool.1  doc/nm.1  doc/objcopy.1  doc/objdump.1  doc/ranlib.1  doc/readelf.1  doc/size.1  doc/strings.1  doc/strip.1  doc/elfedit.1  doc/windres.1  doc/windmc.1  doc/c++filt.1
+G_TEXINFOS=doc/binutils.texi
+G_PKGVERSION=(NetBSD Binutils nb1)
 G_REPORT_BUGS_TEXI=@uref{http://www.NetBSD.org/support/send-pr.html}
 G_size_OBJECTS=size.o bucomm.o version.o filemode.o
 G_size_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la
-G_objdump_OBJECTS=objdump.o dwarf.o prdbg.o  rddbg.o debug.o stabs.o  rdcoff.o bucomm.o version.o filemode.o elfcomm.o
+G_objdump_OBJECTS=objdump.o dwarf.o prdbg.o  demanguse.o rddbg.o debug.o stabs.o  rdcoff.o bucomm.o version.o filemode.o  elfcomm.o
 G_objdump_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la ../opcodes/libopcodes.la ../libctf/libctf.la 
 G_ar_OBJECTS=arparse.o arlex.o ar.o  not-ranlib.o arsup.o rename.o  binemul.o emul_vanilla.o bucomm.o version.o filemode.o
 G_ar_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la
@@ -24,11 +24,11 @@ G_objcopy_OBJECTS=objcopy.o not-strip.o 
 G_objcopy_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la
 G_addr2line_OBJECTS=addr2line.o bucomm.o version.o filemode.o
 G_addr2line_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la
-G_readelf_OBJECTS=readelf.o version.o  unwind-ia64.o dwarf.o elfcomm.o
+G_readelf_OBJECTS=readelf.o version.o  unwind-ia64.o dwarf.o demanguse.o  elfcomm.o
 G_readelf_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../libctf/libctf-nobfd.la
 G_elfedit_OBJECTS=elfedit.o version.o  elfcomm.o
 G_elfedit_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a
-G_nm_new_OBJECTS=nm.o bucomm.o version.o filemode.o
+G_nm_new_OBJECTS=nm.o demanguse.o bucomm.o version.o filemode.o
 G_nm_new_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la
 G_strip_new_OBJECTS=objcopy.o is-strip.o  rename.o rddbg.o debug.o stabs.o  rdcoff.o wrstabs.o bucomm.o version.o filemode.o
 G_strip_new_DEPENDENCIES=./../intl/libintl.a ../libiberty/libiberty.a ../bfd/libbfd.la

Index: src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h
diff -u src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h:1.9 src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h:1.10
--- src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h:1.9	Fri Apr  3 20:46:54 2020
+++ src/external/gpl3/binutils/usr.bin/gas/arch/i386/config.h	Sun Dec 25 15:06:01 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -21,17 +21,9 @@
 /* assert broken? */
 /* #undef BROKEN_ASSERT */
 
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-/* #undef CRAY_STACKSEG_END */
-
 /* Compiling cross-assembler? */
 /* #undef CROSS_COMPILE */
 
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
 /* Default architecture. */
 #define DEFAULT_ARCH "i386"
 
@@ -58,8 +50,17 @@
 /* Define to 1 if you want to fix Loongson3 LLSC Errata by default. */
 #define DEFAULT_MIPS_FIX_LOONGSON3_LLSC 0
 
+/* Define default value for RISC-V -march. */
+/* #undef DEFAULT_RISCV_ARCH_WITH_EXT */
+
 /* Define to 1 if you want to generate RISC-V arch attribute by default. */
-#define DEFAULT_RISCV_ATTR 0
+#define DEFAULT_RISCV_ATTR 1
+
+/* Define default value for RISC-V -misa-spec. */
+/* #undef DEFAULT_RISCV_ISA_SPEC */
+
+/* Define default value for RISC-V -mpriv-spec */
+/* #undef DEFAULT_RISCV_PRIV_SPEC */
 
 /* Define to 1 if you want to generate GNU x86 used ISA and feature properties
    by default. */
@@ -75,82 +76,33 @@
    language is requested. */
 #define ENABLE_NLS 1
 
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-/* #undef HAVE_ALLOCA_H */
-
 /* Define to 1 if you have the declaration of `asprintf', and to 0 if you
    don't. */
 #define HAVE_DECL_ASPRINTF 1
 
-/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
-   */
-#define HAVE_DECL_FREE 1
-
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#define HAVE_DECL_GETENV 1
-
 /* Is the prototype for getopt in <unistd.h> in the expected format? */
 #define HAVE_DECL_GETOPT 1
 
-/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
-   */
-#define HAVE_DECL_MALLOC 1
-
 /* Define to 1 if you have the declaration of `mempcpy', and to 0 if you
    don't. */
 #define HAVE_DECL_MEMPCPY 0
 
-/* Define to 1 if you have the declaration of `realloc', and to 0 if you
-   don't. */
-#define HAVE_DECL_REALLOC 1
-
 /* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
    */
 #define HAVE_DECL_STPCPY 1
 
-/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
-   */
-#define HAVE_DECL_STRSTR 1
-
-/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
-   don't. */
-#define HAVE_DECL_VSNPRINTF 1
-
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
-/* Define to 1 if you have the <errno.h> header file. */
-#define HAVE_ERRNO_H 1
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #define HAVE_LC_MESSAGES 1
 
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
-
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
-/* Define to 1 if you have the `remove' function. */
-/* #undef HAVE_REMOVE */
-
-/* Define to 1 if you have the `sbrk' function. */
-#define HAVE_SBRK 1
-
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
@@ -178,18 +130,12 @@
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
-/* Define to 1 if you have the <time.h> header file. */
-#define HAVE_TIME_H 1
-
 /* Define if <time.h> has struct tm.tm_gmtoff. */
-#define HAVE_TM_GMTOFF 1
+/* #undef HAVE_TM_GMTOFF */
 
 /* Define to 1 if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H 1
 
-/* Define to 1 if you have the `unlink' function. */
-#define HAVE_UNLINK 1
-
 /* Define to 1 if you have the <windows.h> header file. */
 /* #undef HAVE_WINDOWS_H */
 
@@ -239,24 +185,9 @@
 /* Define if environ is not declared in system header files. */
 #define NEED_DECLARATION_ENVIRON 1
 
-/* Define if errno is not declared in system header files. */
-/* #undef NEED_DECLARATION_ERRNO */
-
 /* Define if ffs is not declared in system header files. */
 /* #undef NEED_DECLARATION_FFS */
 
-/* Define if free is not declared in system header files. */
-/* #undef NEED_DECLARATION_FREE */
-
-/* Define if malloc is not declared in system header files. */
-/* #undef NEED_DECLARATION_MALLOC */
-
-/* Define if sbrk is not declared in system header files. */
-/* #undef NEED_DECLARATION_SBRK */
-
-/* Define if strstr is not declared in system header files. */
-/* #undef NEED_DECLARATION_STRSTR */
-
 /* a.out support? */
 /* #undef OBJ_MAYBE_AOUT */
 
@@ -285,7 +216,7 @@
 #define PACKAGE_NAME "gas"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gas 2.34"
+#define PACKAGE_STRING "gas 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gas"
@@ -294,15 +225,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at runtime.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
+#define PACKAGE_VERSION "2.39"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -310,9 +233,6 @@
 /* Using strict COFF? */
 /* #undef STRICTCOFF */
 
-/* Define if you can safely include both <string.h> and <strings.h>. */
-#define STRING_WITH_STRINGS 1
-
 /* Target alias. */
 #define TARGET_ALIAS "i486--netbsdelf"
 
@@ -372,7 +292,7 @@
 /* #undef USING_CGEN */
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -410,12 +330,3 @@
 
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 /* #undef _POSIX_SOURCE */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */

Index: src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk:1.2 src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk:1.3
--- src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk:1.2	Sun Sep 25 02:48:54 2011
+++ src/external/gpl3/binutils/usr.bin/gas/arch/i386/defs.mk	Sun Dec 25 15:06:01 2022
@@ -1,8 +1,8 @@
 # This file is automatically generated.  DO NOT EDIT!
-# Generated from: 	NetBSD: mknative-binutils,v 1.8 2011/09/25 04:00:58 christos Exp 
-# Generated from: NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb Exp 
+# Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
+# Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
 G_DEFS=-DHAVE_CONFIG_H
 G_INCLUDES=
 G_OBJS=app.o as.o atof-generic.o  compress-debug.o cond.o depend.o  dwarf2dbg.o dw2gencfi.o ecoff.o  ehopt.o expr.o flonum-copy.o  flonum-konst.o flonum-mult.o frags.o  hash.o input-file.o input-scrub.o  listing.o literal.o macro.o  messages.o output-file.o read.o  remap.o sb.o stabs.o subsegs.o  symbols.o write.o
-G_OBJS+=tc-i386.o obj-elf.o atof-ieee.o    
+G_OBJS+=tc-i386.o obj-elf.o atof-ieee.o    -L./../intl -lintl  -L./../zlib -lz

Index: src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h
diff -u src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h:1.9 src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h:1.10
--- src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h:1.9	Fri Apr  3 20:46:55 2020
+++ src/external/gpl3/binutils/usr.bin/gprof/arch/i386/gconfig.h	Sun Dec 25 15:06:01 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.11 2018/11/08 02:08:35 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* gconfig.h.  Generated from gconfig.in by configure.  */
@@ -21,8 +21,8 @@
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
-/* Define to 1 if you have the `setmode' function. */
-#define HAVE_SETMODE 1
+/* Define to 1 if you have the `setitimer' function. */
+#define HAVE_SETITIMER 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
@@ -42,6 +42,9 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #define HAVE_SYS_STAT_H 1
 
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
@@ -65,7 +68,7 @@
 #define PACKAGE_NAME "gprof"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gprof 2.34"
+#define PACKAGE_STRING "gprof 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gprof"
@@ -74,7 +77,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
+#define PACKAGE_VERSION "2.39"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -102,7 +105,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Enable large inode numbers on Mac OS X 10.5.  */
 #ifndef _DARWIN_USE_64_BIT_INODE

Index: src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h
diff -u src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.10 src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.11
--- src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.10	Mon Dec  6 03:13:45 2021
+++ src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h	Sun Dec 25 15:06:01 2022
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.13 2020/04/04 01:34:53 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -21,6 +21,24 @@
 /* Define if you want compressed debug sections by default. */
 /* #undef DEFAULT_FLAG_COMPRESS_DEBUG */
 
+/* Define to 0 if you want to disable the generation of an executable stack
+   when a .note-GNU-stack section is missing. */
+#define DEFAULT_LD_EXECSTACK 1
+
+/* The default method for DT_TEXTREL check in ELF linker. */
+#define DEFAULT_LD_TEXTREL_CHECK textrel_check_none
+
+/* Define to 1 if DT_TEXTREL check is warning in ELF linker by default. */
+#define DEFAULT_LD_TEXTREL_CHECK_WARNING 0
+
+/* Define to 1 if you want to enable --warn-execstack in ELF linker by
+   default. */
+#define DEFAULT_LD_WARN_EXECSTACK 2
+
+/* Define to 0 if you want to disable --warn-rwx-segments in ELF linker by
+   default. */
+#define DEFAULT_LD_WARN_RWX_SEGMENTS 1
+
 /* Define to 1 if you want to enable -z relro in ELF linker by default. */
 #define DEFAULT_LD_Z_RELRO 0
 
@@ -32,6 +50,12 @@
    */
 #define DEFAULT_NEW_DTAGS 0
 
+/* Define if you want run-time sanity checks. */
+/* #undef ENABLE_CHECKING */
+
+/* Handle .ctf type-info sections */
+#define ENABLE_LIBCTF 1
+
 /* Define to 1 if translation of program messages to the user's native
    language is requested. */
 #define ENABLE_NLS 1
@@ -45,18 +69,14 @@
 /* Define to 1 if you have the `close' function. */
 #define HAVE_CLOSE 1
 
+/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_ASPRINTF 1
+
 /* Define to 1 if you have the declaration of `environ', and to 0 if you
    don't. */
 #define HAVE_DECL_ENVIRON 0
 
-/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
-   */
-#define HAVE_DECL_FREE 1
-
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#define HAVE_DECL_GETENV 1
-
 /* Is the prototype for getopt in <unistd.h> in the expected format? */
 #define HAVE_DECL_GETOPT 1
 
@@ -64,14 +84,6 @@
    */
 #define HAVE_DECL_SBRK 1
 
-/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
-   */
-#define HAVE_DECL_STRSTR 1
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#define HAVE_DIRENT_H 1
-
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
 
@@ -93,15 +105,15 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
+/* The jansson library is to be used */
+/* #undef HAVE_JANSSON */
+
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #define HAVE_LC_MESSAGES 1
 
 /* Define to 1 if you have the <limits.h> header file. */
 #define HAVE_LIMITS_H 1
 
-/* Define to 1 if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
-
 /* Define to 1 if you have the `lseek' function. */
 #define HAVE_LSEEK 1
 
@@ -114,9 +126,6 @@
 /* Define to 1 if you have a working `mmap' system call. */
 #define HAVE_MMAP 1
 
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
 /* Define to 1 if you have the `open' function. */
 #define HAVE_OPEN 1
 
@@ -126,9 +135,6 @@
 /* Define to 1 if you have the `sbrk' function. */
 #define HAVE_SBRK 1
 
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
@@ -141,16 +147,11 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_DIR_H */
-
 /* Define to 1 if you have the <sys/file.h> header file. */
 #define HAVE_SYS_FILE_H 1
 
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_NDIR_H */
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
 
 /* Define to 1 if you have the <sys/param.h> header file. */
 #define HAVE_SYS_PARAM_H 1
@@ -187,7 +188,7 @@
 #define PACKAGE_NAME "ld"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "ld 2.34"
+#define PACKAGE_STRING "ld 2.39"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "ld"
@@ -196,7 +197,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.34"
+#define PACKAGE_VERSION "2.39"
 
 /* The size of `void *', as computed by sizeof. */
 #define SIZEOF_VOID_P 4
@@ -204,8 +205,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
-/* Define if you can safely include both <string.h> and <strings.h>. */
-#define STRING_WITH_STRINGS 1
+/* Define to 1 if you want to support the --error-handling-script command line
+   option. */
+#define SUPPORT_ERROR_HANDLING_SCRIPT 1
 
 /* Use b modifier when opening binary files? */
 /* #undef USE_BINARY_FOPEN */
@@ -233,7 +235,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.34"
+#define VERSION "2.39"
 
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */

Reply via email to