Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package binutils for openSUSE:Factory 
checked in at 2023-11-10 12:28:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/binutils (Old)
 and      /work/SRC/openSUSE:Factory/.binutils.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "binutils"

Fri Nov 10 12:28:45 2023 rev:167 rq:1124735 version:2.41

Changes:
--------
--- /work/SRC/openSUSE:Factory/binutils/binutils.changes        2023-06-03 
00:05:10.605263741 +0200
+++ /work/SRC/openSUSE:Factory/.binutils.new.17445/binutils.changes     
2023-11-10 12:28:47.602474633 +0100
@@ -1,0 +2,94 @@
+Thu Nov  9 16:51:13 UTC 2023 - Michael Matz <m...@suse.com>
+
+- Add binutils-use-less-memory.diff to be a little nicer to 32bit
+  userspace and huge links.  [bsc#1216908]
+
+-------------------------------------------------------------------
+Mon Sep 25 11:12:43 UTC 2023 - Andreas Schwab <sch...@suse.de>
+
+- riscv-relro.patch: RISC-V: Protect .got with relro
+
+-------------------------------------------------------------------
+Thu Sep 14 12:27:48 UTC 2023 - Michael Matz <m...@suse.com>
+
+- Add libzstd-devel to Requires of binutils-devel. (bsc#1215341)
+
+-------------------------------------------------------------------
+Wed Aug 16 14:36:57 UTC 2023 - Michael Matz <m...@suse.com>
+
+- Update to version 2.41 [PED-5778]:
+* The MIPS port now supports the Sony Interactive Entertainment Allegrex
+  processor, used with the PlayStation Portable, which implements the MIPS
+  II ISA along with a single-precision FPU and a few implementation-specific
+  integer instructions.
+* Objdump's --private option can now be used on PE format files to display the
+  fields in the file header and section headers.
+* New versioned release of libsframe: libsframe.so.1.  This release introduces
+  versioned symbols with version node name LIBSFRAME_1.0.  This release also
+  updates the ABI in an incompatible way: this includes removal of
+  sframe_get_funcdesc_with_addr API, change in the behavior of
+  sframe_fre_get_ra_offset and sframe_fre_get_fp_offset APIs.
+* SFrame Version 2 is now the default (and only) format version supported by
+  gas, ld, readelf and objdump.
+* Add command-line option, --strip-section-headers, to objcopy and strip to
+  remove ELF section header from ELF file.
+* The RISC-V port now supports the following new standard extensions:
+  - Zicond (conditional zero instructions)
+  - Zfa (additional floating-point instructions)
+  - Zvbb, Zvbc, Zvkg, Zvkned, Zvknh[ab], Zvksed, Zvksh, Zvkn, Zvknc, Zvkng,
+    Zvks, Zvksc, Zvkg, Zvkt (vector crypto instructions)
+* The RISC-V port now supports the following vendor-defined extensions:
+  - XVentanaCondOps
+* Add support for Intel FRED, LKGS and AMX-COMPLEX instructions.
+* A new .insn directive is recognized by x86 gas.
+* Add SME2 support to the AArch64 port.
+* The linker now accepts a command line option of --remap-inputs
+  <PATTERN>=<FILE> to relace any input file that matches <PATTERN> with
+  <FILE>.  In addition the option --remap-inputs-file=<FILE> can be used to
+  specify a file containing any number of these remapping directives.
+* The linker command line option --print-map-locals can be used to include
+  local symbols in a linker map.  (ELF targets only).
+* For most ELF based targets, if the --enable-linker-version option is used
+  then the version of the linker will be inserted as a string into the .comment
+  section.
+* The linker script syntax has a new command for output sections: ASCIZ 
"string"
+  This will insert a zero-terminated string at the current location.
+* Add command-line option, -z nosectionheader, to omit ELF section
+  header.
+- Removed obsolete patches: binutils-2.40-branch.diff.gz,
+  riscv-dynamic-tls-reloc-pie.patch, riscv-pr22263-1.patch,
+  extensa-gcc-4_3-fix.diff .
+- Add binutils-2.41-branch.diff.gz .
+- Add binutils-old-makeinfo.diff for SLE-12 and older.
+- Rebased aarch64-common-pagesize.patch and binutils-revert-rela.diff .
+- Contains fixes for these non-CVEs (not security bugs per upstreams
+  SECURITY.md):
+  * bsc#1209642 aka CVE-2023-1579 aka PR29988
+  * bsc#1210297 aka CVE-2023-1972 aka PR30285
+  * bsc#1210733 aka CVE-2023-2222 aka PR29936
+  * bsc#1213458 aka CVE-2021-32256 aka PR105039 (gcc)
+  * bsc#1214565 aka CVE-2020-19726 aka PR26240
+  * bsc#1214567 aka CVE-2022-35206 aka PR29290
+  * bsc#1214579 aka CVE-2022-35205 aka PR29289
+  * bsc#1214580 aka CVE-2022-44840 aka PR29732
+  * bsc#1214604 aka CVE-2022-45703 aka PR29799
+  * bsc#1214611 aka CVE-2022-48065 aka PR29925
+  * bsc#1214619 aka CVE-2022-48064 aka PR29922
+  * bsc#1214620 aka CVE-2022-48063 aka PR29924
+  * bsc#1214623 aka CVE-2022-47696 aka PR29677
+  * bsc#1214624 aka CVE-2022-47695 aka PR29846
+  * bsc#1214625 aka CVE-2022-47673 aka PR29876
+
+-------------------------------------------------------------------
+Thu Jul 13 14:31:57 UTC 2023 - Michael Matz <m...@suse.com>
+
+- Add binutils-disable-dt-relr.sh for an compatibility problem
+  caused by binutils-revert-rela.diff in SLE codestreams.
+  Needed for update of glibc as that would otherwise pick up
+  the broken relative relocs support.  [bsc#1213282, PED-1435]
+- This only existed only for a very short while in SLE-15, as the main
+  variant in devel:gcc subsumed this in binutils-revert-rela.diff.
+  Hence:
+- Remove binutils-disable-dt-relr.sh as subsumed.
+
+-------------------------------------------------------------------

Old:
----
  binutils-2.40-branch.diff.gz
  binutils-2.40.tar.bz2
  binutils-2.40.tar.bz2.sig
  extensa-gcc-4_3-fix.diff
  riscv-dynamic-tls-reloc-pie.patch
  riscv-pr22263-1.patch

New:
----
  binutils-2.41-branch.diff.gz
  binutils-2.41.tar.bz2
  binutils-2.41.tar.bz2.sig
  binutils-old-makeinfo.diff
  binutils-use-less-memory.diff
  riscv-relro.patch

BETA DEBUG BEGIN:
  Old:  riscv-dynamic-tls-reloc-pie.patch, riscv-pr22263-1.patch,
  extensa-gcc-4_3-fix.diff .
- Add binutils-2.41-branch.diff.gz .
  Old:- Removed obsolete patches: binutils-2.40-branch.diff.gz,
  riscv-dynamic-tls-reloc-pie.patch, riscv-pr22263-1.patch,
  extensa-gcc-4_3-fix.diff .
  Old:- Removed obsolete patches: binutils-2.40-branch.diff.gz,
  riscv-dynamic-tls-reloc-pie.patch, riscv-pr22263-1.patch,
  extensa-gcc-4_3-fix.diff .
BETA DEBUG END:

BETA DEBUG BEGIN:
  New:- Add binutils-2.41-branch.diff.gz .
- Add binutils-old-makeinfo.diff for SLE-12 and older.
- Rebased aarch64-common-pagesize.patch and binutils-revert-rela.diff .
  New:
- Add binutils-use-less-memory.diff to be a little nicer to 32bit
  userspace and huge links.  [bsc#1216908]
  New:
- riscv-relro.patch: RISC-V: Protect .got with relro
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ binutils.spec ++++++
--- /var/tmp/diff_new_pack.q7W3jn/_old  2023-11-10 12:28:48.826519530 +0100
+++ /var/tmp/diff_new_pack.q7W3jn/_new  2023-11-10 12:28:48.830519677 +0100
@@ -64,7 +64,7 @@
 %if %{suse_version} > 1500
 BuildRequires:  libzstd-devel
 %endif
-Version:        2.40
+Version:        2.41
 Release:        0
 
 # disable libalternatives for now until it's changed to not
@@ -131,7 +131,7 @@
 Source2:        binutils-%{version}.tar.bz2.sig
 Source3:        binutils.keyring
 Source4:        baselibs.conf
-Patch1:         binutils-2.40-branch.diff.gz
+Patch1:         binutils-2.41-branch.diff.gz
 Patch3:         binutils-skip-rpaths.patch
 Patch4:         s390-biarch.diff
 Patch5:         x86-64-biarch.patch
@@ -153,9 +153,9 @@
 Patch42:        binutils-compat-old-behaviour.diff
 Patch43:        binutils-revert-hlasm-insns.diff
 Patch44:        binutils-revert-rela.diff
-Patch45:        extensa-gcc-4_3-fix.diff
-Patch46:        riscv-dynamic-tls-reloc-pie.patch
-Patch47:        riscv-pr22263-1.patch
+Patch45:        binutils-old-makeinfo.diff
+Patch46:        riscv-relro.patch
+Patch47:        binutils-use-less-memory.diff
 Patch100:       add-ulp-section.diff
 Patch90:        cross-avr-nesc-as.patch
 Patch92:        cross-avr-omit_section_dynsym.patch
@@ -197,6 +197,9 @@
 Group:          Development/Libraries/C and C++
 Requires:       binutils = %{version}-%{release}
 Requires:       zlib-devel
+%if %{suse_version} > 1500
+Requires:       libzstd-devel
+%endif
 Provides:       binutils:/usr/include/bfd.h
 
 %description devel
@@ -278,6 +281,8 @@
 %patch42 -p1
 %patch43 -p1
 %patch44 -p1
+%endif
+%if %{suse_version} < 1500
 %patch45 -p1
 %endif
 %patch46 -p1

++++++ aarch64-common-pagesize.patch ++++++
--- /var/tmp/diff_new_pack.q7W3jn/_old  2023-11-10 12:28:48.882521584 +0100
+++ /var/tmp/diff_new_pack.q7W3jn/_new  2023-11-10 12:28:48.882521584 +0100
@@ -1,24 +1,24 @@
 Change default common-page-size to 64K on aarch64.  This enables the use
 of RELRO since we are using 64K pages.
 
-Index: binutils-2.25.0/bfd/elfnn-aarch64.c
+Index: binutils-2.41/bfd/elfnn-aarch64.c
 ===================================================================
---- binutils-2.25.0.orig/bfd/elfnn-aarch64.c
-+++ binutils-2.25.0/bfd/elfnn-aarch64.c
-@@ -9965,7 +9965,7 @@ const struct elf_size_info elfNN_aarch64_size_info =
+--- binutils-2.41.orig/bfd/elfnn-aarch64.c     2023-07-03 01:00:00.000000000 
+0200
++++ binutils-2.41/bfd/elfnn-aarch64.c  2023-08-16 16:31:51.238779641 +0200
+@@ -10251,7 +10251,7 @@ const struct elf_size_info elfNN_aarch64
  #define ELF_ARCH                      bfd_arch_aarch64
  #define ELF_MACHINE_CODE              EM_AARCH64
  #define ELF_MAXPAGESIZE                       0x10000
 -#define ELF_COMMONPAGESIZE            0x1000
 +#define ELF_COMMONPAGESIZE            0x10000
  
- #define bfd_elfNN_close_and_cleanup           \
-   elfNN_aarch64_close_and_cleanup
-Index: binutils-2.25.0/gold/aarch64.cc
+ #define bfd_elfNN_bfd_free_cached_info                \
+   elfNN_aarch64_bfd_free_cached_info
+Index: binutils-2.41/gold/aarch64.cc
 ===================================================================
---- binutils-2.25.0.orig/gold/aarch64.cc
-+++ binutils-2.25.0/gold/aarch64.cc
-@@ -791,7 +791,7 @@ const Target::Target_info Target_aarch64
+--- binutils-2.41.orig/gold/aarch64.cc 2023-07-03 01:00:00.000000000 +0200
++++ binutils-2.41/gold/aarch64.cc      2023-08-16 16:28:35.959450565 +0200
+@@ -3555,7 +3555,7 @@ const Target::Target_info Target_aarch64
    "/lib/ld.so.1",     // program interpreter
    0x400000,           // default_text_segment_address
    0x10000,            // abi_pagesize (overridable by -z max-page-size)
@@ -27,7 +27,7 @@
    false,                // isolate_execinstr
    0,                    // rosegment_gap
    elfcpp::SHN_UNDEF,  // small_common_shndx
-@@ -818,7 +818,7 @@ const Target::Target_info Target_aarch64
+@@ -3584,7 +3584,7 @@ const Target::Target_info Target_aarch64
    "/lib/ld.so.1",     // program interpreter
    0x400000,           // default_text_segment_address
    0x10000,            // abi_pagesize (overridable by -z max-page-size)
@@ -36,7 +36,7 @@
    false,                // isolate_execinstr
    0,                    // rosegment_gap
    elfcpp::SHN_UNDEF,  // small_common_shndx
-@@ -845,7 +845,7 @@ const Target::Target_info Target_aarch64
+@@ -3613,7 +3613,7 @@ const Target::Target_info Target_aarch64
    "/lib/ld.so.1",     // program interpreter
    0x400000,           // default_text_segment_address
    0x10000,            // abi_pagesize (overridable by -z max-page-size)
@@ -45,7 +45,7 @@
    false,                // isolate_execinstr
    0,                    // rosegment_gap
    elfcpp::SHN_UNDEF,  // small_common_shndx
-@@ -872,7 +872,7 @@ const Target::Target_info Target_aarch64
+@@ -3642,7 +3642,7 @@ const Target::Target_info Target_aarch64
    "/lib/ld.so.1",     // program interpreter
    0x400000,           // default_text_segment_address
    0x10000,            // abi_pagesize (overridable by -z max-page-size)

++++++ binutils-2.40-branch.diff.gz -> binutils-2.41-branch.diff.gz ++++++
Binary files /work/SRC/openSUSE:Factory/binutils/binutils-2.40-branch.diff.gz 
and /work/SRC/openSUSE:Factory/.binutils.new.17445/binutils-2.41-branch.diff.gz 
differ

++++++ binutils-2.40.tar.bz2 -> binutils-2.41.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/binutils/binutils-2.40.tar.bz2 
/work/SRC/openSUSE:Factory/.binutils.new.17445/binutils-2.41.tar.bz2 differ: 
char 11, line 1

++++++ binutils-old-makeinfo.diff ++++++
This reverts 8bb23cdbb498ff645bb0937bc8c0cb89e9e5ebd8 which
requires newer makeinfo that we don't have in SLE12.

diff --git a/bfd/doc/bfd.texi b/bfd/doc/bfd.texi
index d8cc1ecca48..f348710845f 100644
--- a/bfd/doc/bfd.texi
+++ b/bfd/doc/bfd.texi
@@ -75,7 +75,7 @@ Copyright @copyright{} 1991-2023 Free Software Foundation, 
Inc.
 @end iftex
 @contents
 
-@node Top
+@node Top, Overview, (dir), (dir)
 @ifinfo
 This file documents the binary file descriptor library libbfd.
 @end ifinfo
@@ -88,7 +88,7 @@ This file documents the binary file descriptor library libbfd.
 * BFD Index::          BFD Index
 @end menu
 
-@node Overview
+@node Overview, BFD front end, Top, Top
 @chapter Introduction
 @cindex BFD
 @cindex what is it?
@@ -114,7 +114,7 @@ their own use, for greater efficiency.
 * What BFD Version 2 Can Do::  What BFD Version 2 Can Do
 @end menu
 
-@node History
+@node History, How It Works, Overview, Overview
 @section History
 
 One spur behind BFD was the desire, on the part of the GNU 960 team at
@@ -137,7 +137,7 @@ and David Henkel-Wallace (@code{gumby@@cygnus.com}).
 
 
 
-@node How It Works
+@node How It Works, What BFD Version 2 Can Do, History, Overview
 @section How To Use BFD
 
 To use the library, include @file{bfd.h} and link with @file{libbfd.a}.        
@@ -188,11 +188,11 @@ and contain subordinate BFDs. This approach is fine for 
a.out and coff,
 but loses efficiency when applied to formats such as S-records and
 IEEE-695.
 
-@node What BFD Version 2 Can Do
+@node What BFD Version 2 Can Do,  , How It Works, Overview
 @section What BFD Version 2 Can Do
 @include bfdsumm.texi
 
-@node BFD front end
+@node BFD front end, BFD back ends, Overview, Top
 @chapter BFD Front End
 
 @menu
@@ -219,7 +219,7 @@ IEEE-695.
 @include bfdt.texi
 @include bfdio.texi
 
-@node Memory Usage
+@node Memory Usage, Sections, Miscellaneous, BFD front end
 @section Memory Usage
 BFD keeps all of its internal structures in obstacks. There is one obstack
 per open BFD file, into which the current state is stored. When a BFD is
@@ -242,46 +242,46 @@ select the greediest open BFD, close it to reclaim the 
memory, perform
 some operation and reopen the BFD again, to get a fresh copy of the data
 structures.
 
-@node Sections
+@node Sections, Symbols, Memory Usage, BFD front end
 @include  section.texi
 
-@node Symbols
+@node Symbols, Archives, Sections, BFD front end
 @include  syms.texi
 
-@node Archives
+@node Archives, Formats, Symbols, BFD front end
 @include  archive.texi
 
-@node Formats
+@node Formats, Relocations, Archives, BFD front end
 @include  format.texi
 
-@node Relocations
+@node Relocations, Core Files, Formats, BFD front end
 @include  reloc.texi
 
-@node Core Files
+@node Core Files, Targets, Relocations, BFD front end
 @include  corefile.texi
 
-@node Targets
+@node Targets, Architectures, Core Files, BFD front end
 @include  targets.texi
 
-@node Architectures
+@node Architectures, Opening and Closing, Targets, BFD front end
 @include  archures.texi
 
-@node Opening and Closing
+@node Opening and Closing, Internal, Architectures, BFD front end
 @include  opncls.texi
 
-@node Internal
+@node Internal, File Caching, Opening and Closing, BFD front end
 @include  libbfd.texi
 
-@node File Caching
+@node File Caching, Linker Functions, Internal, BFD front end
 @include  cache.texi
 
-@node Linker Functions
+@node Linker Functions, Hash Tables, File Caching, BFD front end
 @include  linker.texi
 
-@node Hash Tables
+@node Hash Tables, , Linker Functions, BFD front end
 @include  hash.texi
 
-@node BFD back ends
+@node BFD back ends, GNU Free Documentation License, BFD front end, Top
 @chapter BFD back ends
 @menu
 * What to Put Where::
@@ -293,28 +293,28 @@ structures.
 * srecord ::   s-record backend
 @end ignore
 @end menu
-@node What to Put Where
+@node What to Put Where, aout, BFD back ends, BFD back ends
 @section What to Put Where
 All of BFD lives in one directory.
 
-@node aout
+@node aout, coff, What to Put Where, BFD back ends
 @include  aoutx.texi
 
-@node coff
+@node coff, elf, aout, BFD back ends
 @include  coffcode.texi
 
-@node elf
+@node elf, mmo, coff, BFD back ends
 @include  elf.texi
 @c Leave this out until the file has some actual contents...
 @c @include  elfcode.texi
 
-@node mmo
+@node mmo,  , elf, BFD back ends
 @include  mmo.texi
 
-@node GNU Free Documentation License
+@node GNU Free Documentation License, BFD Index, BFD back ends, Top
 @include fdl.texi
 
-@node BFD Index
+@node BFD Index,  , GNU Free Documentation License, Top
 @unnumbered BFD Index
 @printindex cp
 
diff --git a/bfd/doc/webassembly.texi b/bfd/doc/webassembly.texi
index 5a05199d5f7..ad650943a1a 100644
--- a/bfd/doc/webassembly.texi
+++ b/bfd/doc/webassembly.texi
@@ -27,7 +27,7 @@ in some malformed WebAssembly modules being treated as valid.
 * File layout::
 @end menu
 
-@node File layout
+@node File layout, WebAssembly
 @subsection File layout
 For a description of the WebAssembly file format, see
 @url{https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md}.

++++++ binutils-revert-rela.diff ++++++
--- /var/tmp/diff_new_pack.q7W3jn/_old  2023-11-10 12:28:48.978525106 +0100
+++ /var/tmp/diff_new_pack.q7W3jn/_new  2023-11-10 12:28:48.982525253 +0100
@@ -26,10 +26,10 @@
 proper predicate to guard themself)
 
 
-Index: binutils-2.40/bfd/elf64-x86-64.c
+Index: binutils-2.41/bfd/elf64-x86-64.c
 ===================================================================
---- binutils-2.40.orig/bfd/elf64-x86-64.c      2023-03-08 16:21:20.818669606 
+0100
-+++ binutils-2.40/bfd/elf64-x86-64.c   2023-03-08 16:22:22.915673946 +0100
+--- binutils-2.41.orig/bfd/elf64-x86-64.c      2023-08-16 17:34:14.991069097 
+0200
++++ binutils-2.41/bfd/elf64-x86-64.c   2023-08-16 17:34:48.295651473 +0200
 @@ -48,127 +48,127 @@ static reloc_howto_type x86_64_elf_howto
        bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0, 0x00000000,
        false),
@@ -208,21 +208,9 @@
        false)
  };
  
-Index: binutils-2.40/gas/testsuite/gas/i386/i386.exp
+Index: binutils-2.41/gas/testsuite/gas/i386/rela.d
 ===================================================================
---- binutils-2.40.orig/gas/testsuite/gas/i386/i386.exp 2023-03-08 
16:21:20.818669606 +0100
-+++ binutils-2.40/gas/testsuite/gas/i386/i386.exp      2023-03-08 
16:22:22.915673946 +0100
-@@ -1328,7 +1328,6 @@ if [gas_64_check] then {
-       run_list_test "reloc64" "--defsym _bad_=1"
-       run_list_test "x86-64-inval-tls"
-       run_dump_test "mixed-mode-reloc64"
--      run_dump_test "rela"
-       run_dump_test "x86-64-ifunc"
-       run_dump_test "x86-64-opcode-inval"
-       run_dump_test "x86-64-opcode-inval-intel"
-Index: binutils-2.40/gas/testsuite/gas/i386/rela.d
-===================================================================
---- binutils-2.40.orig/gas/testsuite/gas/i386/rela.d   2023-03-08 
16:21:20.818669606 +0100
+--- binutils-2.41.orig/gas/testsuite/gas/i386/rela.d   2023-07-03 
01:00:00.000000000 +0200
 +++ /dev/null  1970-01-01 00:00:00.000000000 +0000
 @@ -1,13 +0,0 @@
 -#name: x86-64 rela relocs w/ non-zero relocated fields
@@ -238,9 +226,9 @@
 -
 -Contents of section .data:
 - 0+0 11 ?11 ?11 ?11 22 ?22 ?22 ?22 33 ?33 ?33 ?33 44 ?44 ?44 ?44 .*
-Index: binutils-2.40/gas/testsuite/gas/i386/rela.s
+Index: binutils-2.41/gas/testsuite/gas/i386/rela.s
 ===================================================================
---- binutils-2.40.orig/gas/testsuite/gas/i386/rela.s   2023-03-08 
16:21:20.818669606 +0100
+--- binutils-2.41.orig/gas/testsuite/gas/i386/rela.s   2023-07-03 
01:00:00.000000000 +0200
 +++ /dev/null  1970-01-01 00:00:00.000000000 +0000
 @@ -1,14 +0,0 @@
 -# Note: This file is also used by an ld test case.
@@ -257,9 +245,9 @@
 -
 -      .reloc l, BFD_RELOC_64, q
 -      .reloc q, BFD_RELOC_32, l
-Index: binutils-2.40/ld/testsuite/ld-x86-64/rela.d
+Index: binutils-2.41/ld/testsuite/ld-x86-64/rela.d
 ===================================================================
---- binutils-2.40.orig/ld/testsuite/ld-x86-64/rela.d   2023-03-08 
16:21:20.818669606 +0100
+--- binutils-2.41.orig/ld/testsuite/ld-x86-64/rela.d   2023-07-03 
01:00:00.000000000 +0200
 +++ /dev/null  1970-01-01 00:00:00.000000000 +0000
 @@ -1,10 +0,0 @@
 -#name: x86-64 rela relocs w/ non-zero relocated fields
@@ -272,10 +260,10 @@
 -
 -Contents of section .data:
 - *[0-9a-f]*0 .8 ?.. ?.. ?.. 00 ?00 ?00 ?00 .0 ?.. ?.. ?.. 44 ?44 ?44 ?44 .*
-Index: binutils-2.40/ld/testsuite/ld-x86-64/x86-64.exp
+Index: binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp
 ===================================================================
---- binutils-2.40.orig/ld/testsuite/ld-x86-64/x86-64.exp       2023-03-08 
16:21:20.818669606 +0100
-+++ binutils-2.40/ld/testsuite/ld-x86-64/x86-64.exp    2023-03-08 
16:22:22.919674009 +0100
+--- binutils-2.41.orig/ld/testsuite/ld-x86-64/x86-64.exp       2023-08-16 
17:34:14.967068677 +0200
++++ binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp    2023-08-16 
17:34:48.295651473 +0200
 @@ -286,7 +286,6 @@ run_dump_test "apic"
  run_dump_test "pcrel8"
  run_dump_test "pcrel16"
@@ -299,11 +287,11 @@
  
  if { ![skip_sframe_tests] } {
      run_dump_test "sframe-simple-1"
-Index: binutils-2.40/binutils/testsuite/lib/binutils-common.exp
+Index: binutils-2.41/binutils/testsuite/lib/binutils-common.exp
 ===================================================================
---- binutils-2.40.orig/binutils/testsuite/lib/binutils-common.exp      
2023-03-08 16:21:20.818669606 +0100
-+++ binutils-2.40/binutils/testsuite/lib/binutils-common.exp   2023-03-08 
16:22:22.919674009 +0100
-@@ -429,6 +429,8 @@ proc supports_persistent_section {} {
+--- binutils-2.41.orig/binutils/testsuite/lib/binutils-common.exp      
2023-07-03 01:00:00.000000000 +0200
++++ binutils-2.41/binutils/testsuite/lib/binutils-common.exp   2023-08-16 
17:34:48.295651473 +0200
+@@ -442,6 +442,8 @@ proc supports_persistent_section {} {
  
  # Whether a target support DT_RELR sections.
  proc supports_dt_relr {} {
@@ -312,10 +300,10 @@
      if { ([istarget x86_64-*-*]
          || [istarget i?86-*-*]
          || [istarget powerpc64*-*-*])
-Index: binutils-2.40/ld/emulparams/dt-relr.sh
+Index: binutils-2.41/ld/emulparams/dt-relr.sh
 ===================================================================
---- binutils-2.40.orig/ld/emulparams/dt-relr.sh        2023-03-08 
16:21:20.818669606 +0100
-+++ binutils-2.40/ld/emulparams/dt-relr.sh     2023-03-08 16:22:22.919674009 
+0100
+--- binutils-2.41.orig/ld/emulparams/dt-relr.sh        2023-07-03 
01:00:00.000000000 +0200
++++ binutils-2.41/ld/emulparams/dt-relr.sh     2023-08-16 17:34:48.295651473 
+0200
 @@ -1,3 +1,8 @@
 +if false; then
 +    # on old codestreams we don't have the DT_RELR support in the dynamic
@@ -331,10 +319,10 @@
  PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z 
$PARSE_AND_LIST_ARGS_CASE_Z_PACK_RELATIVE_RELOCS"
 +
 +fi
-Index: binutils-2.40/ld/testsuite/ld-i386/i386.exp
+Index: binutils-2.41/ld/testsuite/ld-i386/i386.exp
 ===================================================================
---- binutils-2.40.orig/ld/testsuite/ld-i386/i386.exp   2023-03-08 
16:21:20.818669606 +0100
-+++ binutils-2.40/ld/testsuite/ld-i386/i386.exp        2023-03-08 
16:22:22.919674009 +0100
+--- binutils-2.41.orig/ld/testsuite/ld-i386/i386.exp   2023-07-03 
01:00:00.000000000 +0200
++++ binutils-2.41/ld/testsuite/ld-i386/i386.exp        2023-08-16 
17:34:48.299651544 +0200
 @@ -507,8 +507,8 @@ run_dump_test "pr27491-1c"
  run_dump_test "pr27491-2"
  run_dump_test "pr27491-3"
@@ -346,10 +334,10 @@
  run_dump_test "pr28870"
  run_dump_test "pr28894"
  
-Index: binutils-2.40/ld/testsuite/ld-powerpc/powerpc.exp
+Index: binutils-2.41/ld/testsuite/ld-powerpc/powerpc.exp
 ===================================================================
---- binutils-2.40.orig/ld/testsuite/ld-powerpc/powerpc.exp     2023-01-14 
01:00:00.000000000 +0100
-+++ binutils-2.40/ld/testsuite/ld-powerpc/powerpc.exp  2023-03-08 
16:25:29.926698626 +0100
+--- binutils-2.41.orig/ld/testsuite/ld-powerpc/powerpc.exp     2023-08-16 
17:34:14.895067416 +0200
++++ binutils-2.41/ld/testsuite/ld-powerpc/powerpc.exp  2023-08-16 
17:34:48.299651544 +0200
 @@ -378,14 +378,14 @@ set ppc64elftests {
        "-a64" {abs-reloc.s}
        {{objdump {-sdr} abs-shared.d}
@@ -373,4 +361,16 @@
  }
  
  set ppceabitests {
+Index: binutils-2.41/gas/testsuite/gas/i386/x86-64.exp
+===================================================================
+--- binutils-2.41.orig/gas/testsuite/gas/i386/x86-64.exp       2023-07-03 
01:00:00.000000000 +0200
++++ binutils-2.41/gas/testsuite/gas/i386/x86-64.exp    2023-08-16 
17:38:35.023605534 +0200
+@@ -588,7 +588,6 @@ if [is_elf_format] then {
+     run_list_test "reloc64" "--defsym _bad_=1"
+     run_list_test "x86-64-inval-tls"
+     run_dump_test "mixed-mode-reloc64"
+-    run_dump_test "rela"
+     run_dump_test "x86-64-ifunc"
+     if { [gas_32_check] } then {
+       run_dump_test "x86-64-opcode-inval"
 

++++++ binutils-use-less-memory.diff ++++++
We need this for libQt5WebEngine on i586. (bsc#1216908)

>From 836654b1177ab305c36fe7319f08f0ad5d4fac1b Mon Sep 17 00:00:00 2001
From: Michael Matz <m...@suse.de>
Date: Tue, 7 Nov 2023 16:54:44 +0100
Subject: ld: Avoid overflows in string merging
To: binut...@sourceware.org

as the bug report shows we had an overflow in the test if
hash table resizing is needed.  Reorder the expression to avoid
that.  There's still a bug somewhere in gracefully handling
failure in resizing (e.g. out of memory), but this pushes the
boundary for that occurring somewhen into the future and
immediately helps the reporter.

    bfd/

    PR ld/31009
    * merge.c (NEEDS_RESIZE): New macro avoiding overflow.
    (sec_merge_maybe_resize): Use it.
    (sec_merge_hash_insert): Ditto.
---
 bfd/merge.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/bfd/merge.c b/bfd/merge.c
index 722e6659486..61ffab4d706 100644
--- a/bfd/merge.c
+++ b/bfd/merge.c
@@ -94,6 +94,10 @@ struct sec_merge_hash
   struct sec_merge_hash_entry **values;
 };
 
+/* True when given NEWCOUNT and NBUCKETS indicate that the hash table needs
+   resizing.  */
+#define NEEDS_RESIZE(newcount, nbuckets) ((newcount) > (nbuckets) / 3 * 2)
+
 struct sec_merge_sec_info;
 
 /* Information per merged blob.  This is the unit of merging and is
@@ -167,7 +171,7 @@ static bool
 sec_merge_maybe_resize (struct sec_merge_hash *table, unsigned added)
 {
   struct bfd_hash_table *bfdtab = &table->table;
-  if (bfdtab->count + added > table->nbuckets * 2 / 3)
+  if (NEEDS_RESIZE (bfdtab->count + added, table->nbuckets))
     {
       unsigned i;
       unsigned long newnb = table->nbuckets * 2;
@@ -175,7 +179,7 @@ sec_merge_maybe_resize (struct sec_merge_hash *table, 
unsigned added)
       uint64_t *newl;
       unsigned long alloc;
 
-      while (bfdtab->count + added > newnb * 2 / 3)
+      while (NEEDS_RESIZE (bfdtab->count + added, newnb))
        {
          newnb *= 2;
          if (!newnb)
@@ -239,8 +243,8 @@ sec_merge_hash_insert (struct sec_merge_hash *table,
   hashp->alignment = 0;
   hashp->u.suffix = NULL;
   hashp->next = NULL;
-  // We must not need resizing, otherwise _index is wrong
-  BFD_ASSERT (bfdtab->count + 1 <= table->nbuckets * 2 / 3);
+  // We must not need resizing, otherwise the estimation was wrong
+  BFD_ASSERT (!NEEDS_RESIZE (bfdtab->count + 1, table->nbuckets));
   bfdtab->count++;
   table->key_lens[_index] = (hash << 32) | (uint32_t)len;
   table->values[_index] = hashp;
-- 
2.42.0


>From 21160d8a18dc21aafb8ab1026e13e5c524954a46 Mon Sep 17 00:00:00 2001
From: Michael Matz <m...@suse.de>
Date: Tue, 7 Nov 2023 17:12:46 +0100
Subject: bfd: use less memory in string merging
To: binut...@sourceware.org

the offset-to-entry mappings are allocated in blocks, which may
become a bit wasteful in case there are extremely many small
input files or sections.  This made it so that a large project
(Qt5WebEngine) didn't build anymore on x86 32bit due to address
space limits.  It barely fit into address space before the new
string merging, and then got pushed over the limit by this.

So instead of leaving the waste reallocate the maps to their final
size once known.  Now the link barely fits again.

bfd/
    * merge.c (record_section): Reallocate offset maps to their
    final size.
---
 bfd/merge.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/bfd/merge.c b/bfd/merge.c
index 61ffab4d706..eeaa1a01fe3 100644
--- a/bfd/merge.c
+++ b/bfd/merge.c
@@ -711,6 +711,7 @@ record_section (struct sec_merge_info *sinfo,
   unsigned int align;
   bfd_size_type amt;
   bfd_byte *contents;
+  void *tmpptr;
 
   amt = sec->size;
   if (sec->flags & SEC_STRINGS)
@@ -771,6 +772,19 @@ record_section (struct sec_merge_info *sinfo,
 
   free (contents);
   contents = NULL;
+
+  /* We allocate the ofsmap arrays in blocks of 2048 elements.
+     In case we have very many small input files/sections,
+     this might waste large amounts of memory, so reallocate these
+     arrays here to their true size.  */
+  amt = secinfo->noffsetmap + 1;
+  tmpptr = bfd_realloc (secinfo->map, amt * sizeof(secinfo->map[0]));
+  if (tmpptr)
+    secinfo->map = tmpptr;
+  tmpptr = bfd_realloc (secinfo->map_ofs, amt * sizeof(secinfo->map_ofs[0]));
+  if (tmpptr)
+    secinfo->map_ofs = tmpptr;
+
   /*printf ("ZZZ %s:%s %u entries\n", sec->owner->filename, sec->name,
          (unsigned)secinfo->noffsetmap);*/
 
-- 
2.42.0



++++++ riscv-relro.patch ++++++
>From 7345d05aafde53a48d5a587a6d9c1778db78e0f3 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <sch...@suse.de>
Date: Thu, 21 Sep 2023 16:49:41 +0200
Subject: [PATCH] RISC-V: Protect .got with relro

Move .got before .data so that it can be protected with -zrelro.  Also
separate .got.plt from .got if -znow is not in effect; the first two words
of .got.plt are placed within the relro region.

ld:
        PR ld/30877
        * emulparams/elf32lriscv-defs.sh (DATA_GOT, SEPARATE_GOTPLT):
        Define.
        * emulparams/elf64lriscv-defs.sh (SEPARATE_GOTPLT): Define.
        * testsuite/ld-elf/binutils.exp (binutils_test): Remove riscv*-*-*
        from relro_got expression.
---
 ld/emulparams/elf32lriscv-defs.sh | 4 ++++
 ld/emulparams/elf64lriscv-defs.sh | 1 +
 ld/testsuite/ld-elf/binutils.exp  | 1 -
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ld/emulparams/elf32lriscv-defs.sh 
b/ld/emulparams/elf32lriscv-defs.sh
index b823cedacab..016556168c3 100644
--- a/ld/emulparams/elf32lriscv-defs.sh
+++ b/ld/emulparams/elf32lriscv-defs.sh
@@ -47,3 +47,7 @@ 
INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIO
 OTHER_END_SYMBOLS="${CREATE_SHLIB-__BSS_END__ = .;
     __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800,
                            MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800));}"
+
+# Put .got before .data
+DATA_GOT=" "
+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 8 ? 8 : 0"
diff --git a/ld/emulparams/elf64lriscv-defs.sh 
b/ld/emulparams/elf64lriscv-defs.sh
index 84a700a5f58..ca15338428f 100644
--- a/ld/emulparams/elf64lriscv-defs.sh
+++ b/ld/emulparams/elf64lriscv-defs.sh
@@ -1,2 +1,3 @@
 source_sh ${srcdir}/emulparams/elf32lriscv-defs.sh
 ELFSIZE=64
+SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 16 ? 16 : 0"
diff --git a/ld/testsuite/ld-elf/binutils.exp b/ld/testsuite/ld-elf/binutils.exp
index 674e8e9a575..b38e29ed6fb 100644
--- a/ld/testsuite/ld-elf/binutils.exp
+++ b/ld/testsuite/ld-elf/binutils.exp
@@ -95,7 +95,6 @@ proc binutils_test { prog_name ld_options test {test_name ""} 
{readelf_options "
                              || [istarget "mips*-*-*"] \
                              || [istarget "nios2*-*-*"] \
                              || [istarget "or1k-*-*"] \
-                             || [istarget "riscv*-*-*"] \
                              || [istarget "sh*-*-*"] \
                              || [istarget "x86_64-*-rdos*"])]
        # Check if GNU_RELRO segment is generated.
-- 
2.42.0

Reply via email to