SHA256
1
0
forked from pool/binutils

Accepting request 1124735 from devel:gcc

This should fix the last fail in Staging, the build of
libQt5WebEngine on i586.  *knockonwood*

- Add binutils-use-less-memory.diff to be a little nicer to 32bit
  userspace and huge links.  [bsc#1216908]

- riscv-relro.patch: RISC-V: Protect .got with relro

- Add libzstd-devel to Requires of binutils-devel. (bsc#1215341)

- 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

OBS-URL: https://build.opensuse.org/request/show/1124735
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/binutils?expand=0&rev=167
This commit is contained in:
Ana Guerrero 2023-11-10 11:28:45 +00:00 committed by Git OBS Bridge
commit e1e98de2a1
16 changed files with 540 additions and 308 deletions

View File

@ -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 @@ Index: binutils-2.25.0/gold/aarch64.cc
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 @@ Index: binutils-2.25.0/gold/aarch64.cc
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 @@ Index: binutils-2.25.0/gold/aarch64.cc
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)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7978b2632b97d050013a2c76432981c9301f9cf9e81b19d8df88205e1be1182f
size 317038

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f8298eb153a4b37d112e945aa5cb2850040bcf26a3ea65b5a715c83afe05e48a
size 35227554

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEOiS8Ho+0CfqfFDcYE/zvid2ePE8FAmPCvWIACgkQE/zvid2e
PE9Gtw/7BAYpMkL9WtPz07g6stVHQl2ZDKruNJt1mXo36RgBVjHPcemh8GQcVC5Q
EJ/fK83F6XTG7oiXr/EQxt8HXqbG3rLjfnS3IAXnjizVX6yujgf/XvUcqs00pzsk
Oiyxh7BO4YtKiuj7d7Yrl21iv103kQE6+UIChzCduQfSAD9RqtbINUZOoWklxjff
8zFfgAEA+7dij9LpACRmWSgnfn77kzdviHgscpIMsHC0mjyAZrIHuZy3BUeqmRY6
TkHgQ3cl6ORieM0FN2eh9FN0Di+FwA+BVXijU6vNy26RveOtntK/Si1HC0R08z3g
1NJ2C8sL+LnmT3hFmmbFTbGA1haXlt6g1zPvQS8GVbeVoZQEn2Q7KH3I1KUaFRWQ
fzdpqR7oM2mG3RHytrNtDWKB7V9VY3FWNo9D1/5iBoX4IkXY0HsJQdl5geZR1vyr
SoL5MVwO8IfTKMZbQuC1fhllB2kL5ABa9pcm+VaWFzWccypffs5Us5sLDl3wug07
2slVb76syHGkVsJgcNo1OhkfbvGGshMHoicN1InyjEVng2ml9/Ha86QUQEbhRjg1
suFRfMmEAANSAwpkum6szYfE3EBz81VtMmPRjGxyYWsyU1W8LVxyiP9NlxkxYcdI
i4xZG9Q5AJQUcTsA3C9G6YZxSij1IQvDUIXQmFnLJpink7KAYNc=
=hWD9
-----END PGP SIGNATURE-----

BIN
binutils-2.41-branch.diff.gz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
binutils-2.41.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

16
binutils-2.41.tar.bz2.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEOiS8Ho+0CfqfFDcYE/zvid2ePE8FAmTGcUQACgkQE/zvid2e
PE94TRAAsAGH/rarx1cyAxa8x0yKjcQxERag3KE3NXN+OnRvw2bCOfVx62UA68Dt
nTCsJ46MTSECdMnMj+b6wGNXr4JDv57r4lkJxJN8TjAS+gWrouqbjvaTPOkros3L
1uElw3JLBznDktYvv2aJxBTLSPRXxaD2gMSjVYSZ5X43/ITbNx8mSToevZf2erXB
ev+FY5ROyjPwFZyXTEYqqbbdJ4A6+Fkp1UO9UiQv3leZde29ZSiBbNZUU4u5FH3x
qNq9zTd4Wlk72X1IEK/HFIVAcFbV2bV38V/r64tw5WRndYReXejtEQMm4kvzFZP4
tcgzlTNViTN8FmVNI3P3pByFxC4VmNEbnNCGTDzltuC/RxypqMHWdkBIFU2Zpk4p
oAuRMx+7MJ0MqbZjV+VklZAqbl71oDAtUEi7gwKL/UFsRnmUbjRV00YQrXv1kmm8
FAuK3UJbfX95MkMV9RSB4kwAdGTLv9CpWix+NGIQs17bnYXyuZPQ0OFuYM6xBDlo
IXTS3kvAgKLRni7EQ0xAh3CqQaE5vsLHf7WwTYvi4rWdt0B1hVpFJtpkAhWRrF/N
5Hey/pJgOaS2CqEpbijkfG6mGh/xNYK0T8HnHse1pKjl1U1QEgOtluVI3UF2C/H/
FkrlClxbExTt9+UmuF/wdvttVj7hDooI7Hh11uvOVBabtlUc66E=
=6jCW
-----END PGP SIGNATURE-----

176
binutils-old-makeinfo.diff Normal file
View File

@ -0,0 +1,176 @@
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}.

View File

@ -26,10 +26,10 @@ of missing support in ld.so.
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 @@ Index: binutils-2.40/bfd/elf64-x86-64.c
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 @@ Index: binutils-2.40/gas/testsuite/gas/i386/rela.d
-
-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 @@ Index: binutils-2.40/gas/testsuite/gas/i386/rela.s
-
- .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 @@ Index: binutils-2.40/ld/testsuite/ld-x86-64/rela.d
-
-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 @@ Index: binutils-2.40/ld/testsuite/ld-x86-64/x86-64.exp
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 @@ Index: binutils-2.40/binutils/testsuite/lib/binutils-common.exp
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 @@ Index: binutils-2.40/ld/emulparams/dt-relr.sh
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 @@ Index: binutils-2.40/ld/testsuite/ld-i386/i386.exp
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,3 +361,15 @@ Index: binutils-2.40/ld/testsuite/ld-powerpc/powerpc.exp
}
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"

View File

@ -0,0 +1,131 @@
We need this for libQt5WebEngine on i586. (bsc#1216908)
From 836654b1177ab305c36fe7319f08f0ad5d4fac1b Mon Sep 17 00:00:00 2001
From: Michael Matz <matz@suse.de>
Date: Tue, 7 Nov 2023 16:54:44 +0100
Subject: ld: Avoid overflows in string merging
To: binutils@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 <matz@suse.de>
Date: Tue, 7 Nov 2023 17:12:46 +0100
Subject: bfd: use less memory in string merging
To: binutils@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

View File

@ -1,3 +1,97 @@
-------------------------------------------------------------------
Thu Nov 9 16:51:13 UTC 2023 - Michael Matz <matz@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 <schwab@suse.de>
- riscv-relro.patch: RISC-V: Protect .got with relro
-------------------------------------------------------------------
Thu Sep 14 12:27:48 UTC 2023 - Michael Matz <matz@suse.com>
- Add libzstd-devel to Requires of binutils-devel. (bsc#1215341)
-------------------------------------------------------------------
Wed Aug 16 14:36:57 UTC 2023 - Michael Matz <matz@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 <matz@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.
-------------------------------------------------------------------
Tue May 30 09:43:15 UTC 2023 - Andreas Schwab <schwab@suse.de>

View File

@ -64,7 +64,7 @@ BuildRequires: zlib-devel
%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 @@ Source: binutils-%{version}.tar.bz2
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 @@ Patch41: binutils-fix-relax.diff
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 @@ License: GPL-3.0-or-later
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 @@ cp ld/ldgram.y ld/ldgram.y.orig
%patch42 -p1
%patch43 -p1
%patch44 -p1
%endif
%if %{suse_version} < 1500
%patch45 -p1
%endif
%patch46 -p1

View File

@ -1,20 +0,0 @@
# This fixes:
#
# [ 146s] In file included from ../../bfd/xtensa-isa.c:26:
# [ 146s] ../../bfd/../include/xtensa-dynconfig.h:107: error: redefinition of typedef 'xtensa_isa_internal'
# [ 146s] ../../bfd/../include/xtensa-isa-internal.h:227: error: previous declaration of 'xtensa_isa_internal' was here
#
# which is a strange issue with GCC 4.3
diff --git a/include/xtensa-dynconfig.h b/include/xtensa-dynconfig.h
index bb72d6ab22d..9c66ac4416d 100644
--- a/include/xtensa-dynconfig.h
+++ b/include/xtensa-dynconfig.h
@@ -104,7 +104,6 @@ struct xtensa_config_v2
int xtensa_march_earliest;
};
-typedef struct xtensa_isa_internal_struct xtensa_isa_internal;
extern const void *xtensa_load_config (const char *name,
const void *no_plugin_def,

View File

@ -1,103 +0,0 @@
From f491758f183592cbf8113e02a2bebbd412ff7358 Mon Sep 17 00:00:00 2001
From: Nelson Chu <nelson@nelson.ba.rivosinc.com>
Date: Thu, 4 May 2023 17:08:50 +0800
Subject: [PATCH] [PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs
in PIE.
Lots of targets already fixed the TEXTREL problem for TLS in PIE.
* For PR ld/25694,
In the check_reloc, refer to spare and loongarch, they don't need to reserve
any local dynamic reloc for TLS LE in pie/pde, and similar to other targets.
So it seems like riscv was too conservative to estimate the TLS LE before.
Just break and don't goto static_reloc for TLS LE in pie/pde can fix the
TEXTREL problem.
* For PR ld/22263,
The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port.
So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems
also the right way to do the same thing for risc-v.
On risc-v, fixes
FAIL: Build pr22263-1
RISC-V haven't supported the TLS transitions, so will need the same fix (use
bfd_link_dll) in the future.
bfd/
PR ld/22263
PR ld/25694
* elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with
bfd_link_dll for TLS IE. Don't need to reserve the local dynamic
relocation for TLS LE in pie/pde, and report error in pic just like
before.
(riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather
than !bfd_link_pic in determining the dynamic symbol index. Avoid
the index of -1.
---
bfd/elfnn-riscv.c | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 4a5da7df3fe..ee2d19f7699 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -732,7 +732,7 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
break;
case R_RISCV_TLS_GOT_HI20:
- if (bfd_link_pic (info))
+ if (bfd_link_dll (info))
info->flags |= DF_STATIC_TLS;
if (!riscv_elf_record_got_reference (abfd, info, h, r_symndx)
|| !riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_IE))
@@ -787,11 +787,12 @@ riscv_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
goto static_reloc;
case R_RISCV_TPREL_HI20:
+ /* This is not allowed in the pic, but okay in pie. */
if (!bfd_link_executable (info))
return bad_static_reloc (abfd, r_type, h);
if (h != NULL)
riscv_elf_record_tls_type (abfd, h, r_symndx, GOT_TLS_LE);
- goto static_reloc;
+ break;
case R_RISCV_HI20:
if (bfd_link_pic (info))
@@ -2689,24 +2690,20 @@ riscv_elf_relocate_section (bfd *output_bfd,
if (htab->elf.srelgot == NULL)
abort ();
- if (h != NULL)
- {
- bool dyn, pic;
- dyn = htab->elf.dynamic_sections_created;
- pic = bfd_link_pic (info);
-
- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h)
- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h)))
- indx = h->dynindx;
- }
+ bool dyn = elf_hash_table (info)->dynamic_sections_created;
+ if (h != NULL
+ && h->dynindx != -1
+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)
+ && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h)))
+ indx = h->dynindx;
/* The GOT entries have not been initialized yet. Do it
now, and emit any relocations. */
- if ((bfd_link_pic (info) || indx != 0)
+ if ((bfd_link_dll (info) || indx != 0)
&& (h == NULL
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak))
- need_relocs = true;
+ need_relocs = true;
if (tls_type & GOT_TLS_GD)
{
--
2.40.1

View File

@ -1,108 +0,0 @@
From 53e0482788fa665f532936ba3637bc0fcde6db2c Mon Sep 17 00:00:00 2001
From: Nelson Chu <nelson@rivosinc.com>
Date: Sat, 27 May 2023 09:36:20 +0800
Subject: [PATCH] RISC-V: Avoid spurious R_RISCV_NONE for pr22263-1 test.
For TLS GD/IE, add the same condition with the relocate_section in the
allocate_dynrelocs, to make sure we won't reserve redundant spaces
for dynamic relocations since the conservative estimatation.
After applying this patch, ld seems no longer generate the spurious
R_RISCV_NONE for pr22263-1 test.
bfd/
PR ld/22263
* elfnn-riscv.c (RISCV_TLS_GD_IE_NEED_DYN_RELOC): New defined.
Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations,
and INDX will be the dynamic index.
(allocate_dynrelocs): Don't reserve extra spaces in the rela.got
if RISCV_TLS_GD_IE_NEED_DYN_RELOC set need_reloc to false. This
condition needs to be same as relocate_section.
(relocate_section): Likewise, use the same condition as
allocate_dynrelocs.
---
bfd/elfnn-riscv.c | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index ee2d19f7699..d02c4a29324 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -38,6 +38,25 @@
#define CHAR_BIT 8
#endif
+/* Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations, and INDX will
+ be the dynamic index. PR22263, use the same check in allocate_dynrelocs and
+ riscv_elf_relocate_section for TLS GD/IE. */
+#define RISCV_TLS_GD_IE_NEED_DYN_RELOC(INFO, DYN, H, INDX, NEED_RELOC) \
+ do \
+ { \
+ if ((H) != NULL \
+ && (H)->dynindx != -1 \
+ && WILL_CALL_FINISH_DYNAMIC_SYMBOL ((DYN), bfd_link_pic (INFO), (H)) \
+ && (bfd_link_dll (INFO) || !SYMBOL_REFERENCES_LOCAL ((INFO), (H)))) \
+ (INDX) = (H)->dynindx; \
+ if ((bfd_link_dll (INFO) || (INDX) != 0) \
+ && ((H) == NULL \
+ || ELF_ST_VISIBILITY ((H)->other) == STV_DEFAULT \
+ || (H)->root.type != bfd_link_hash_undefweak)) \
+ (NEED_RELOC) = true; \
+ } \
+ while (0)
+
/* Internal relocations used exclusively by the relaxation pass. */
#define R_RISCV_DELETE (R_RISCV_max + 1)
@@ -1186,18 +1205,24 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
dyn = htab->elf.dynamic_sections_created;
if (tls_type & (GOT_TLS_GD | GOT_TLS_IE))
{
+ int indx = 0;
+ bool need_reloc = false;
+ RISCV_TLS_GD_IE_NEED_DYN_RELOC(info, dyn, h, indx, need_reloc);
+
/* TLS_GD needs two dynamic relocs and two GOT slots. */
if (tls_type & GOT_TLS_GD)
{
s->size += 2 * RISCV_ELF_WORD_BYTES;
- htab->elf.srelgot->size += 2 * sizeof (ElfNN_External_Rela);
+ if (need_reloc)
+ htab->elf.srelgot->size += 2 * sizeof (ElfNN_External_Rela);
}
/* TLS_IE needs one dynamic reloc and one GOT slot. */
if (tls_type & GOT_TLS_IE)
{
s->size += RISCV_ELF_WORD_BYTES;
- htab->elf.srelgot->size += sizeof (ElfNN_External_Rela);
+ if (need_reloc)
+ htab->elf.srelgot->size += sizeof (ElfNN_External_Rela);
}
}
else
@@ -2691,20 +2716,10 @@ riscv_elf_relocate_section (bfd *output_bfd,
abort ();
bool dyn = elf_hash_table (info)->dynamic_sections_created;
- if (h != NULL
- && h->dynindx != -1
- && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)
- && (bfd_link_dll (info) || !SYMBOL_REFERENCES_LOCAL (info, h)))
- indx = h->dynindx;
+ RISCV_TLS_GD_IE_NEED_DYN_RELOC (info, dyn, h, indx, need_relocs);
/* The GOT entries have not been initialized yet. Do it
now, and emit any relocations. */
- if ((bfd_link_dll (info) || indx != 0)
- && (h == NULL
- || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
- || h->root.type != bfd_link_hash_undefweak))
- need_relocs = true;
-
if (tls_type & GOT_TLS_GD)
{
if (need_relocs)
--
2.40.1

57
riscv-relro.patch Normal file
View File

@ -0,0 +1,57 @@
From 7345d05aafde53a48d5a587a6d9c1778db78e0f3 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@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