pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/binutils binutils: update to 2.38.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/2830cb3dc9d0
branches:  trunk
changeset: 373271:2830cb3dc9d0
user:      fcambus <fcambus%pkgsrc.org@localhost>
date:      Thu Feb 10 14:03:07 2022 +0000

description:
binutils: update to 2.38.

This release contains numerous bug fixes and improvements, along with
the following new features:

Assembler:
  General:
    * Add support for the LoongArch architecture.

    * Add an option to control how multibyte characters are handled in
      the assembler.  Using the option warnings can be generated when
      such characters are encountered in symbol names, or anywhere in
      the input source file(s).

  AArch64 and ARM:
    * Add support for more system registers.
    * Add support for Scalable Matrix Extension.
    * Add support for Cortex-R52+, Cortex-A510, Cortex-A710,
      Cortex-X2, Cortex-A710 cores.
    * Add support for 'v8.7-a', 'v8.8-a', 'v9-a', 'v9.1-a',
      'armv9.2-a' and 'armv9.3-a' architecture extensions.

  X86:
    * Add a command-line option to encode aligned vector move as
      unaligned vector move.
    * Add support for Intel AVX512_FP16 instructions.
    * The outputs of .ds.x directive and .tfloat directive with hex
      input have been reduced from 12 bytes to 10 bytes to match the
      output of .tfloat directive.

Linker:
  * Add support for the LoongArch architecture.

  * Add -z pack-relative-relocs/-z no pack-relative-relocs to x86 ELF
   linker to pack relative relocations in the DT_RELR section.

  * Add -z indirect-extern-access/-z noindirect-extern-access to x86
    ELF linker to control canonical function pointers and copy
    relocation.

Other Binary Tools:

  * elfedit: Add --output-abiversion option to update ABIVERSION.

  * Tools which display symbols or strings (readelf, strings, nm,
    objdump) have a new command line option which controls how unicode
    characters are handled.  By default they are treated as normal for
    the tool.  Using --unicode=locale will display them according to
    the current locale.  Using --unicode=hex will display them as hex
    byte values, whilst --unicode=escape will display them as escape
    sequences.  In addition using --unicode=highlight will display
    them as unicode escape sequences highlighted in red (if supported
    by the output device).

  * readelf -r dumps RELR relative relocations now.

  * Support for efi-app-aarch64, efi-rtdrv-aarch64 and
    efi-bsdrv-aarch64 has been added to objcopy in order to enable
    UEFI development using binutils.

  * ar: Add --thin for creating thin archives. -T is a deprecated
    alias without diagnostics. In many ar implementations -T has a
    different meaning, as specified by X/Open System Interface.

diffstat:

 devel/binutils/Makefile                       |    5 +-
 devel/binutils/PLIST.common                   |    3 +-
 devel/binutils/distinfo                       |   15 +-
 devel/binutils/patches/patch-binutils_stabs.c |  243 --------------------------
 devel/binutils/patches/patch-ld_Makefile.am   |   18 +-
 devel/binutils/patches/patch-ld_Makefile.in   |   18 +-
 devel/binutils/patches/patch-ld_configure.tgt |   10 +-
 7 files changed, 34 insertions(+), 278 deletions(-)

diffs (truncated from 415 to 300 lines):

diff -r 7a5f1ed4145c -r 2830cb3dc9d0 devel/binutils/Makefile
--- a/devel/binutils/Makefile   Thu Feb 10 13:56:50 2022 +0000
+++ b/devel/binutils/Makefile   Thu Feb 10 14:03:07 2022 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.103 2022/02/10 12:47:12 fcambus Exp $
+# $NetBSD: Makefile,v 1.104 2022/02/10 14:03:07 fcambus Exp $
 
-DISTNAME=      binutils-2.37
-PKGREVISION=   2
+DISTNAME=      binutils-2.38
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GNU:=binutils/}
 EXTRACT_SUFX=  .tar.bz2
diff -r 7a5f1ed4145c -r 2830cb3dc9d0 devel/binutils/PLIST.common
--- a/devel/binutils/PLIST.common       Thu Feb 10 13:56:50 2022 +0000
+++ b/devel/binutils/PLIST.common       Thu Feb 10 14:03:07 2022 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST.common,v 1.37 2021/09/11 15:54:39 fcambus Exp $
+@comment $NetBSD: PLIST.common,v 1.38 2022/02/10 14:03:07 fcambus Exp $
 ${MACHINE_GNU_PLATFORM}/bin/ar
 ${PLIST.gas}${MACHINE_GNU_PLATFORM}/bin/as
 ${PLIST.gld}${MACHINE_GNU_PLATFORM}/bin/ld
@@ -76,6 +76,7 @@
 ${PLIST.gas}info/as.info
 info/bfd.info
 info/binutils.info
+${PLIST.ctf}info/ctf-spec.info
 ${PLIST.gprof}info/gprof.info
 ${PLIST.gld}info/ld.info
 ${PLIST.gld}lib/bfd-plugins/libdep.so
diff -r 7a5f1ed4145c -r 2830cb3dc9d0 devel/binutils/distinfo
--- a/devel/binutils/distinfo   Thu Feb 10 13:56:50 2022 +0000
+++ b/devel/binutils/distinfo   Thu Feb 10 14:03:07 2022 +0000
@@ -1,18 +1,17 @@
-$NetBSD: distinfo,v 1.46 2022/01/24 15:10:46 fcambus Exp $
+$NetBSD: distinfo,v 1.47 2022/02/10 14:03:07 fcambus Exp $
 
-BLAKE2s (binutils-2.37.tar.bz2) = cbcd25c08c84f0fca9c77936991cef9b3a2c6f8350ecb98a7877fc0107f34db9
-SHA512 (binutils-2.37.tar.bz2) = b3f5184697f77e94c95d48f6879de214eb5e17aa6ef8e96f65530d157e515b1ae2f290e98453e4ff126462520fa0f63852b6e1c8fbb397ed2e41984336bc78c6
-Size (binutils-2.37.tar.bz2) = 33888611 bytes
+BLAKE2s (binutils-2.38.tar.bz2) = 80609a31f2040a8418a2004cb9de8b3d409e954c7c1d17afef8e9237227d00ee
+SHA512 (binutils-2.38.tar.bz2) = 7690b4158bd6587a85c6b98903980b9ac6f16b47f7fd1e60986b0a70388bedcfdc05d75597aa49c81fec1609ce24bed6c26583f76fd2471a9d63394fd9798afc
+Size (binutils-2.38.tar.bz2) = 34866647 bytes
 SHA1 (patch-bfd_cache.c) = e2d96bad350552eacdffa83532f9dc9e15ee9be9
-SHA1 (patch-binutils_stabs.c) = 6e7f95d5c3e7fa32196b75876c95fdc2b6aeaee6
 SHA1 (patch-gold_Makefile.in) = e01d973f9625a1653851f796c123efec37102fbd
 SHA1 (patch-gold_options.h) = 03816bbf157d781820d96a4d3af0885dc2bbbaa9
 SHA1 (patch-gold_system.h) = 9b4130b5315763daa66e0a91a8be6d1df0d10344
 SHA1 (patch-gold_testsuite_Makefile.in) = 24ede750675829281436d728d77073638f58d6b9
 SHA1 (patch-include_safe-ctype.h) = 66e636f8200ff5e9b4bfa0a5aee13cd072a23887
-SHA1 (patch-ld_Makefile.am) = 2e0a3e6ffde0816a33630e506ef2a997a7946630
-SHA1 (patch-ld_Makefile.in) = 4c33becb63eb0953b15fc043f803ad01a9661cb9
-SHA1 (patch-ld_configure.tgt) = b3f9d3d57c320a88f611eff159dd5a38d75325ba
+SHA1 (patch-ld_Makefile.am) = 944ddf3d44b3a3f57ef2ec8ddd6b9ba653b7dbbb
+SHA1 (patch-ld_Makefile.in) = 3ddcb2fa4ebf336be547ec7bec918942668c99b0
+SHA1 (patch-ld_configure.tgt) = 99304d60f50078e2b97341fa8ccb63a6813e2309
 SHA1 (patch-ld_emulparams_aarch64nbsd.sh) = 6489e5996eefdb8ba66c73d7425443109d47e6a9
 SHA1 (patch-ld_emulparams_aarch64nbsdb.sh) = 9980f3ca8cb7cac1b56c71c482b691fa2f7659a1
 SHA1 (patch-ld_emulparams_armelf__nbsd__eabi.sh) = 464b0957f95a1a8ba6a92ee0091b929d9c980470
diff -r 7a5f1ed4145c -r 2830cb3dc9d0 devel/binutils/patches/patch-binutils_stabs.c
--- a/devel/binutils/patches/patch-binutils_stabs.c     Thu Feb 10 13:56:50 2022 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-$NetBSD: patch-binutils_stabs.c,v 1.1 2022/01/14 08:35:59 fcambus Exp $
-
-Upstream fix for CVE-2021-45078.
-
-PR28694, Out-of-bounds write in stab_xcoff_builtin_type
-
-PR 28694
-* stabs.c (stab_xcoff_builtin_type): Make typenum unsigned.
-Negate typenum earlier, simplifying bounds checking.  Correct
-off-by-one indexing.  Adjust switch cases.
-
-https://sourceware.org/bugzilla/show_bug.cgi?id=28694
-
---- binutils/stabs.c.orig      2021-07-08 11:37:19.000000000 +0000
-+++ binutils/stabs.c
-@@ -202,7 +202,7 @@ static debug_type stab_find_type (void *
- static bool stab_record_type
-   (void *, struct stab_handle *, const int *, debug_type);
- static debug_type stab_xcoff_builtin_type
--  (void *, struct stab_handle *, int);
-+  (void *, struct stab_handle *, unsigned int);
- static debug_type stab_find_tagged_type
-   (void *, struct stab_handle *, const char *, int, enum debug_type_kind);
- static debug_type *stab_demangle_argtypes
-@@ -3496,166 +3496,167 @@ stab_record_type (void *dhandle ATTRIBUT
- 
- static debug_type
- stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
--                       int typenum)
-+                       unsigned int typenum)
- {
-   debug_type rettype;
-   const char *name;
- 
--  if (typenum >= 0 || typenum < -XCOFF_TYPE_COUNT)
-+  typenum = -typenum - 1;
-+  if (typenum >= XCOFF_TYPE_COUNT)
-     {
--      fprintf (stderr, _("Unrecognized XCOFF type %d\n"), typenum);
-+      fprintf (stderr, _("Unrecognized XCOFF type %d\n"), -typenum - 1);
-       return DEBUG_TYPE_NULL;
-     }
--  if (info->xcoff_types[-typenum] != NULL)
--    return info->xcoff_types[-typenum];
-+  if (info->xcoff_types[typenum] != NULL)
-+    return info->xcoff_types[typenum];
- 
--  switch (-typenum)
-+  switch (typenum)
-     {
--    case 1:
-+    case 0:
-       /* The size of this and all the other types are fixed, defined
-        by the debugging format.  */
-       name = "int";
-       rettype = debug_make_int_type (dhandle, 4, false);
-       break;
--    case 2:
-+    case 1:
-       name = "char";
-       rettype = debug_make_int_type (dhandle, 1, false);
-       break;
--    case 3:
-+    case 2:
-       name = "short";
-       rettype = debug_make_int_type (dhandle, 2, false);
-       break;
--    case 4:
-+    case 3:
-       name = "long";
-       rettype = debug_make_int_type (dhandle, 4, false);
-       break;
--    case 5:
-+    case 4:
-       name = "unsigned char";
-       rettype = debug_make_int_type (dhandle, 1, true);
-       break;
--    case 6:
-+    case 5:
-       name = "signed char";
-       rettype = debug_make_int_type (dhandle, 1, false);
-       break;
--    case 7:
-+    case 6:
-       name = "unsigned short";
-       rettype = debug_make_int_type (dhandle, 2, true);
-       break;
--    case 8:
-+    case 7:
-       name = "unsigned int";
-       rettype = debug_make_int_type (dhandle, 4, true);
-       break;
--    case 9:
-+    case 8:
-       name = "unsigned";
-       rettype = debug_make_int_type (dhandle, 4, true);
-       break;
--    case 10:
-+    case 9:
-       name = "unsigned long";
-       rettype = debug_make_int_type (dhandle, 4, true);
-       break;
--    case 11:
-+    case 10:
-       name = "void";
-       rettype = debug_make_void_type (dhandle);
-       break;
--    case 12:
-+    case 11:
-       /* IEEE single precision (32 bit).  */
-       name = "float";
-       rettype = debug_make_float_type (dhandle, 4);
-       break;
--    case 13:
-+    case 12:
-       /* IEEE double precision (64 bit).  */
-       name = "double";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 14:
-+    case 13:
-       /* This is an IEEE double on the RS/6000, and different machines
-        with different sizes for "long double" should use different
-        negative type numbers.  See stabs.texinfo.  */
-       name = "long double";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 15:
-+    case 14:
-       name = "integer";
-       rettype = debug_make_int_type (dhandle, 4, false);
-       break;
--    case 16:
-+    case 15:
-       name = "boolean";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 17:
-+    case 16:
-       name = "short real";
-       rettype = debug_make_float_type (dhandle, 4);
-       break;
--    case 18:
-+    case 17:
-       name = "real";
-       rettype = debug_make_float_type (dhandle, 8);
-       break;
--    case 19:
-+    case 18:
-       /* FIXME */
-       name = "stringptr";
-       rettype = NULL;
-       break;
--    case 20:
-+    case 19:
-       /* FIXME */
-       name = "character";
-       rettype = debug_make_int_type (dhandle, 1, true);
-       break;
--    case 21:
-+    case 20:
-       name = "logical*1";
-       rettype = debug_make_bool_type (dhandle, 1);
-       break;
--    case 22:
-+    case 21:
-       name = "logical*2";
-       rettype = debug_make_bool_type (dhandle, 2);
-       break;
--    case 23:
-+    case 22:
-       name = "logical*4";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 24:
-+    case 23:
-       name = "logical";
-       rettype = debug_make_bool_type (dhandle, 4);
-       break;
--    case 25:
-+    case 24:
-       /* Complex type consisting of two IEEE single precision values.  */
-       name = "complex";
-       rettype = debug_make_complex_type (dhandle, 8);
-       break;
--    case 26:
-+    case 25:
-       /* Complex type consisting of two IEEE double precision values.  */
-       name = "double complex";
-       rettype = debug_make_complex_type (dhandle, 16);
-       break;
--    case 27:
-+    case 26:
-       name = "integer*1";
-       rettype = debug_make_int_type (dhandle, 1, false);
-       break;
--    case 28:
-+    case 27:
-       name = "integer*2";
-       rettype = debug_make_int_type (dhandle, 2, false);
-       break;
--    case 29:
-+    case 28:
-       name = "integer*4";
-       rettype = debug_make_int_type (dhandle, 4, false);
-       break;
--    case 30:
-+    case 29:
-       /* FIXME */
-       name = "wchar";
-       rettype = debug_make_int_type (dhandle, 2, false);
-       break;
--    case 31:
-+    case 30:
-       name = "long long";
-       rettype = debug_make_int_type (dhandle, 8, false);
-       break;
--    case 32:
-+    case 31:
-       name = "unsigned long long";
-       rettype = debug_make_int_type (dhandle, 8, true);
-       break;
--    case 33:
-+    case 32:
-       name = "logical*8";
-       rettype = debug_make_bool_type (dhandle, 8);
-       break;
--    case 34:
-+    case 33:
-       name = "integer*8";
-       rettype = debug_make_int_type (dhandle, 8, false);
-       break;
-@@ -3664,9 +3665,7 @@ stab_xcoff_builtin_type (void *dhandle, 
-     }
- 
-   rettype = debug_name_type (dhandle, name, rettype);
--



Home | Main Index | Thread Index | Old Index