Compare commits

...
Sign in to create a new pull request.

98 commits

Author SHA1 Message Date
Nick Clifton
5e050ee6d4 Rebase to commit 48c933a69a8. 2026-09-01 11:34:23 +01:00
Jesus Checa Hidalgo
10671c0eca Fix logic to enable and disable gold linker 2026-08-25 09:22:43 +02:00
Nick Clifton
e0ff142016 Rebase to bring in commits d9ab6e42e739fe826b02a5f868586132ea2d893a and - 0f9faaebc91bc1886a563bde6c178601b4be743b, thus fixing CVE-2026-19548.
Resolves: #2514618
2026-08-19 13:25:44 +01:00
Nick Clifton
064736651b Replace %bcond_with and %bcond_without with %bcond [0|1] 2026-08-13 14:09:50 +01:00
Nick Clifton
9f66e09750 Restore building the gold linker 2026-08-13 10:00:35 +01:00
Nick Clifton
40bef170ce Remove unused patches 2026-08-12 11:22:10 +01:00
Nick Clifton
d4dfa51cea Update sources 2026-08-12 11:17:28 +01:00
Nick Clifton
29b46b6079 Rebase to commit 4e8ba93fdb2. 2026-08-12 11:15:08 +01:00
Nick Clifton
f40a1175b9 Add ChangeLog entry for previous delta 2026-08-12 08:19:17 +01:00
Yaakov Selkowitz
ddb3cb864e Disable gold on RHEL 11
gold is deprecated upstream, and nothing should need it in RHEL 11.

https://github.com/fedora-eln/eln/issues/553
2026-08-06 11:56:18 -04:00
Nick Clifton
5119f9a9cd Rebase to the 2.47 GNU Binutils release. 2026-07-27 11:06:13 +01:00
Fedora Release Engineering
9600c63b36 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-15 20:12:01 +00:00
Nick Clifton
23b67e31b8 Fix typo 2026-07-13 18:08:56 +01:00
Nick Clifton
f9af6f1a80 Rebase to 2.47 pre-release tarball. 2026-07-13 18:07:58 +01:00
Nick Clifton
c5ce1de980 Rebase to commit f85ff0c4bce 2026-06-25 14:24:54 +01:00
Nick Clifton
29eedae455 Fix linker testsuite problem for Risc-V 2026-06-11 09:06:04 +01:00
Nick Clifton
c546fe6976 Rebase to commit 48997323b0f 2026-06-05 09:02:36 +01:00
Nick Clifton
0608389263 Rebase to commit 48997323b0f 2026-06-05 08:59:45 +01:00
Nick Clifton
f294ebe3ba Rebase to commit 2ea3f3a7ac2 2026-05-14 10:46:21 +01:00
Nick Clifton
5b0464e961 Rebase to commit 991cf245839. 2026-04-24 12:35:06 +01:00
Nick Clifton
76d42a7875 Add support for zstd compression. (#2454341) 2026-04-08 12:04:07 +01:00
Nick Clifton
33e6445241 Rebase to commit c220f3ab8c0 2026-04-07 08:49:31 +01:00
Nick Clifton
108ab4ef7a Rebase to commit c220f3ab8c0 2026-03-30 12:05:39 +01:00
Nick Clifton
aa57e62e08 Fix Risc-V linker testsuite failures caused by #2428281. 2026-03-22 08:09:42 +00:00
Nick Clifton
cc43b90ffc Rebase to commit d712202846b. 2026-03-16 11:04:15 +00:00
Nick Clifton
a53f464f7d Rebase to commit dd9a411627a. 2026-03-02 10:42:44 +00:00
Nick Clifton
60fb2164e5 Rebase to commit 2d306bf8a70 2026-02-16 11:52:18 +00:00
Nick Clifton
2c4833fe8a Rebase to 2.46. 2026-02-09 11:12:42 +00:00
Nick Clifton
c228a0153a Rebase to pre-release snapshot. 2026-01-27 11:22:28 +00:00
Nick Clifton
27063804ce Rebase to commit ba5838a98fb 2026-01-19 10:29:29 +00:00
Fedora Release Engineering
4c1598168d Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 08:21:29 +00:00
Fedora Release Engineering
4483836ddc Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 04:24:36 +00:00
Nick Clifton
848e40ec3a Remove experimental Risc-V patch added with -12 revision. 2026-01-15 12:03:35 +00:00
Nick Clifton
735a883933 Disallow the creation of shared object that use text relocations. (#2428281) 2026-01-14 10:29:05 +00:00
Nick Clifton
64b8d9de61 Fix Risc-V related test failures caused by -12 revision. 2026-01-09 16:56:53 +00:00
Nick Clifton
d7078a903f Rebase to commit be970c68891 2026-01-05 10:34:24 +00:00
Nick Clifton
f862eebcff add package 2025-12-18 16:50:28 +00:00
Nick Clifton
04aad048cf Fix compile time warning messages about discarded qualifiers. - Change Risc-V assembler to default to disabling relaxation. 2025-12-18 16:47:41 +00:00
Nick Clifton
300293f7e2 Rebase to commit 8e992ccb1e4 2025-12-08 13:41:46 +00:00
Nick Clifton
9e81b24737 Fix testsuite failures for Risc-V target 2025-12-04 15:32:36 +00:00
Nick Clifton
2ac1ee2a42 Rebase to commit beab972c07d - Revert patches for PR 33577 2025-11-24 11:14:48 +00:00
Nick Clifton
19f1fc4940 Rebase to commit 96b8a8a633a 2025-11-11 16:04:21 +00:00
Nick Clifton
f9a1cd84ee Pass -flto=$RPM_BUILD_NCPUS in CFLAGS. (RHEL-121799) 2025-11-04 11:33:02 +00:00
Nick Clifton
9de042a279 Rebase to commit 2006dea18d5 2025-10-28 10:49:07 +00:00
Nick Clifton
96aece08c1 Rebase to commit b05d1d89605 2025-10-06 10:22:17 +01:00
Nick Clifton
f6c1766b84 Enhance the riscv-64 zicfilp-unlabeled-plt test to cope with larger offsets. 2025-09-11 09:33:13 +01:00
Nick Clifton
ca67fa0f89 Rebase to commit 79b2b564fec 2025-09-08 10:04:27 +01:00
Nick Clifton
1e5363880e Update sources 2025-08-19 09:19:39 +01:00
Nick Clifton
aa65e68b95 Rebase to commit 7e432e93f8a (previous rebase appears to be broken) 2025-08-19 09:14:30 +01:00
Nick Clifton
b2a44377f7 Rebase to commit 570f4c0c119. 2025-08-18 10:30:49 +01:00
Nick Clifton
a4377df024 Oops - the gold linker was disabled too soon, re-enabling. 2025-08-15 12:11:27 +01:00
Nick Clifton
049dc08ca1 Disable building the gold linker by default. 2025-08-13 15:35:13 +01:00
Nick Clifton
3c2b6fab82 Rebase to official GNU Binutils 2.45 release 2025-07-28 09:41:02 +01:00
Nick Clifton
cf3468eb37 Properly handle LLVM IR bitcodes. (#2382341) (PR 33198) 2025-07-25 11:14:48 +01:00
Fedora Release Engineering
2b97979d33 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 17:42:25 +00:00
Nick Clifton
b52b1c824b Improve strip's handling of archives containing bitcodes. (#2382341) 2025-07-22 15:06:57 +01:00
Miloš Prchlík
77d3ccc230 tests: switch to CentOS Stream test repository 2025-07-21 10:35:25 +02:00
Nick Clifton
001f1473de Rebase to pre-release source tarball for the upcoming 2.45 release 2025-07-14 11:15:17 +01:00
Nick Clifton
b84449875a Rebase to 21e608528c3 2025-07-07 10:44:51 +01:00
Nick Clifton
791874dbf7 Rebase to -28b75d9dcb8 2025-06-23 10:38:26 +01:00
Nick Clifton
5c8f89372f Rebase to commit a259da93f3c 2025-06-09 12:00:40 +01:00
Nick Clifton
c1e2857084 Rebase to commit d13aaae402f 2025-05-27 14:00:56 +01:00
Nick Clifton
0f77e6a6c6 Rebase to commit 8dc4e62fc94 2025-05-12 09:58:17 +01:00
Nick Clifton
6152e0d05c Rebase to commit 6ef74a3985b 2025-04-14 11:26:57 +01:00
Andrea Bolognani
88532ad57e Fix BuildRequires on bison
bison is only brought in for gold architectures or when
building gprofng right now, but non-gold architectures need
it too if the source file for the parser happens to have been
touched. Make the dependency unconditional to ensure that the
package can always be built.

While at it, clean up a few related things.

A BuildRequires on gcc-c++ already exists a few lines below
for the non-clang case, and obviously we don't need it when
building with clang.

m4 is not used directly by us, but rather by bison. Luckily
the bison package correctly depends on m4, so we don't need
to bring it in ourselves.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-04-10 11:27:43 +02:00
Andrea Bolognani
dbb6a2b533 Update comment for enable_separate_code
riscv64 was added to the list of architectures for which
separate code and data segments are enabled in 53dfb5f3d9
but the comment did not get updated accordingly.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-04-10 11:16:50 +02:00
Nick Clifton
01507c9252 Do not include -std=gnu11 in CXXFLAGS 2025-04-09 12:38:48 +01:00
Nick Clifton
8748d12378 Deprecate the gold linker. 2025-04-02 11:07:46 +01:00
Nick Clifton
fa3058d5fc update sources 2025-03-31 12:26:04 +01:00
Nick Clifton
7888285b10 Rebase to commit 7109ea04ac7 2025-03-31 12:23:09 +01:00
Nick Clifton
eaff7615a3 Rebase to commit a07c8b3a73c 2025-03-17 11:15:10 +00:00
Nick Clifton
c6ac23d8f1 Rebase to commit 56a0188548e 2025-03-03 11:06:29 +00:00
Nick Clifton
a9bd5526fa Renumber patches. Add -std=gnu11 to CFLAGS 2025-02-26 15:24:28 +00:00
Nick Clifton
384e850d5a add new sources 2025-02-18 09:48:00 +00:00
Nick Clifton
115547ce07 Rebase to commit 1256b9860f3 2025-02-18 09:45:37 +00:00
Nick Clifton
84cee8e828 Fix seg fault in AArch64 linker when building u-boot. (#2326190) 2025-02-07 14:37:49 +00:00
Nick Clifton
7f4b0bfa04 Fix s390x XPASS linker testsuite failures 2025-02-07 12:37:47 +00:00
Siddhesh Poyarekar
6be32c794e Disable gcs-report-dynamic warnings
The gcs-report-dynamic warnings have been failing builds in Fedora so
default to disabled for now.
2025-02-06 12:08:28 -05:00
Nick Clifton
87ee448377 Rebase to official 2.44 release 2025-02-03 12:16:30 +00:00
Nick Clifton
53dfb5f3d9 Enable separate code by default for the RISC-V architecture 2025-01-27 17:08:58 +00:00
Nick Clifton
9c83775c81 Rebased to 2.43.90 pre-release tarball. 2025-01-20 11:09:04 +00:00
Fedora Release Engineering
c4f15b9679 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 12:31:05 +00:00
Nick Clifton
6cb8c76a06 Rebase to commit f832531609d 2025-01-06 11:11:23 +00:00
Nick Clifton
875ad5b267 Rebase to commit 3d75969bd0e 2024-12-09 10:04:33 +00:00
Nick Clifton
00b3ac3d67 Rebase to commit 1686dc7079f 2024-11-26 16:58:28 +00:00
Nick Clifton
3f77f370f1 Spec File: Move all gprofng files into the binutils-gprofng sub-package.
Resolves: 2326286
2024-11-15 17:03:53 +00:00
Nick Clifton
4fe99c972e Rebase to commit 55e32b3c682
Revert commit 4f576180 which moves the .note.build-id section back to the start of the file.  (PR 2321588)
2024-11-05 10:12:21 +00:00
Nick Clifton
5d93718856 Revert commit 4f576180 which moves the .note.build-id section back to the start of the file.
Workaround for PR 2321588
2024-11-01 16:14:28 +00:00
Nick Clifton
6811ff96a8 Spec File: Do not install gprofng documentation when using --without docs 2024-10-31 12:56:34 +00:00
Miro Hrončok
3e7c1aeff4 Fixup the %files list for --without docs
RPM build errors:
    ...
    Directory not found: /builddir/build/BUILD/binutils-2.43.50-build/BUILDROOT/usr/share/doc/gprofng
    File not found: /builddir/build/BUILD/binutils-2.43.50-build/BUILDROOT/usr/share/doc/gprofng/examples.tar.gz
2024-10-30 13:58:22 +01:00
Richard W.M. Jones
50a2d13658 Rebuild for Jansson 2.14
(https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/)
2024-10-22 13:38:35 +01:00
Nick Clifton
cc723c198d Rebase to commit 22c62092858. 2024-10-14 13:19:59 +01:00
Nick Clifton
6936dfba5d Rebase to commit 22c62092858. 2024-10-14 13:16:39 +01:00
Nick Clifton
a8edbcb255 Fix RISC-V ld testsuite failures 2024-10-04 11:36:32 +01:00
Nick Clifton
a9dd5ddc2c Rebase to commit 1f4aee70ed1. Configure the linker to support xxhash by default. 2024-09-30 11:36:12 +01:00
Nick Clifton
8e380e50cb Rebase to commit c839a44c391 2024-09-10 16:14:42 +01:00
Nick Clifton
c0b354c6e6 Disable the default enablement of the linker's "-z separate-code" feature for non-x86 architectures. 2024-09-10 08:53:38 +01:00
Nick Clifton
83a75f8fd1 Rebase to 2.43.1 release. 2024-08-18 08:02:59 +01:00
13 changed files with 994 additions and 249 deletions

4
.gitignore vendored
View file

@ -64,3 +64,7 @@ stamp-*
/gmp*
/isl*
/binutils-2.19.50.0.1-output-format.sed
/binutils-2.44.50-13.fc43.src.rpm
/binutils-with-gold-2.45.50-be970c68891.tar.gz
/binutils-with-gold-2.45.50-ba5838a98fb.tar.gz
/binutils-2.47.50-1.fc46.src.rpm

View file

@ -0,0 +1,12 @@
--- binutils.orig/bfd/elfnn-aarch64.c 2025-02-07 13:42:20.961333141 +0000
+++ binutils-with-gold-2.44/bfd/elfnn-aarch64.c 2025-02-07 13:42:29.781353740 +0000
@@ -10162,7 +10162,8 @@ elfNN_aarch64_init_small_plt0_entry (bfd
/* PR 26312: Explicitly set the sh_entsize to 0 so that
consumers do not think that the section contains fixed
sized objects. */
- elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
+ if (elf_section_data (htab->root.splt->output_section) != NULL)
+ elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
plt_got_2nd_ent = (htab->root.sgotplt->output_section->vma
+ htab->root.sgotplt->output_offset

View file

@ -51,10 +51,9 @@ diff -rup binutils.orig/configure binutils-2.40/configure
if test -n "$ac_tool_prefix"; then
diff -rup binutils.orig/configure.ac binutils-2.40/configure.ac
--- binutils.orig/configure.ac 2023-02-13 14:43:00.728877170 +0000
+++ binutils-2.40/configure.ac 2023-02-13 14:43:13.671864892 +0000
@@ -1435,26 +1435,6 @@ if test -z "$LD"; then
--- binutils.orig/configure.ac 2024-11-26 15:08:50.162328683 +0000
+++ binutils-2.43.50-1686dc7079f/configure.ac 2024-11-26 15:08:56.929374527 +0000
@@ -1410,26 +1410,6 @@ if test -z "$LD"; then
fi
fi
@ -80,6 +79,4 @@ diff -rup binutils.orig/configure.ac binutils-2.40/configure.ac
-
ACX_PROG_GNAT
ACX_PROG_GDC
ACX_PROG_CMP_IGNORE_INITIAL
Only in binutils-2.40: configure.ac.orig
Only in binutils-2.40: configure.orig
ACX_PROG_CARGO

View file

@ -0,0 +1,40 @@
# The gold linker does not build if the target list includes s390x-linux
# but does not include s390-linux. ie it needs the 32-bit target to be
# enabled in order for the 64-bit target to work. On the other hand the
# BFD library does not support the 32-bit s390 target. So this patch
# "enhances" the gold configure script so that if s390x is listed, the
# s390 target will automatically be added to the list as well.
diff -upr orig/gold/configure binutils-2.47/gold/configure
--- orig/gold/configure 2026-07-27 09:38:54.907192013 +0100
+++ binutils-2.47/gold/configure 2026-07-27 10:12:02.759629540 +0100
@@ -5223,7 +5223,12 @@ if test -n "$enable_targets"; then
for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
result=`$ac_config_sub $targ 2>/dev/null`
if test -n "$result"; then
- canon_targets="$canon_targets $result"
+ canon_targets="$canon_targets $result" ;
+ case "$result" in
+ s390x-*)
+ canon_targets="$canon_targets s390-gnu-linux"
+ ;;
+ esac
else
# Permit unrecognized target names, like "all".
canon_targets="$canon_targets $targ"
diff -upr orig/gold/configure.ac binutils-2.47/gold/configure.ac
--- orig/gold/configure.ac 2026-07-27 09:38:54.907192013 +0100
+++ binutils-2.47/gold/configure.ac 2026-07-27 10:18:18.480766140 +0100
@@ -133,6 +133,12 @@ if test -n "$enable_targets"; then
result=`$ac_config_sub $targ 2>/dev/null`
if test -n "$result"; then
canon_targets="$canon_targets $result"
+ # Hack: Enable the s390-linux target if s390x-linux is enabled.
+ case "$result" in
+ s390x-*)
+ canon_targets="$canon_targets s390-gnu-linux"
+ ;;
+ esac
else
# Permit unrecognized target names, like "all".
canon_targets="$canon_targets $targ"

View file

@ -24,26 +24,6 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then
--- binutils.orig/ld/configure.tgt 2020-04-20 12:35:12.465301359 +0100
+++ binutils-2.34/ld/configure.tgt 2020-04-20 14:17:52.123066333 +0100
@@ -220,7 +220,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
targ_extra_emuls="elf32bfin"
targ_extra_libpath=$targ_extra_emuls
;;
-bpf-*-*) targ_emul=elf64bpf
+bpf-* | bpf-*-*) targ_emul=elf64bpf
;;
cr16-*-elf*) targ_emul=elf32cr16
;;
@@ -1026,7 +1026,7 @@ z8k-*-coff) targ_emul=z8002
targ_extra_ofiles=
;;
*)
- echo 2>&1 "*** ld does not support target ${targ}"
+ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY"
echo 2>&1 "*** see ld/configure.tgt for supported targets"
exit 1
--- binutils.orig/bfd/config.bfd 2020-04-20 12:35:13.038297375 +0100
+++ binutils-2.34/bfd/config.bfd 2020-04-20 14:25:26.452869193 +0100
@@ -473,7 +473,7 @@ case "${targ}" in
@ -55,12 +35,14 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
targ_defvec=bpf_elf64_le_vec
targ_selvecs=bpf_elf64_be_vec
targ_underscore=yes
@@ -1427,7 +1427,7 @@ case "${targ}" in
;;
*)
- echo 1>&2 "*** BFD does not support target ${targ}."
+ echo 1>&2 "*** BFD does not support target '${targ}'. Honest."
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
exit 1
;;
--- binutils.orig/ld/configure.tgt 2026-01-05 08:51:02.908224792 +0000
+++ binutils-with-gold-2.45.50-be970c68891/ld/configure.tgt 2026-01-05 08:51:55.852677409 +0000
@@ -255,7 +255,7 @@ bfin-*-uclinux*) targ_emul=elf32bfin;
bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
targ_extra_libpath=elf32bfin
;;
-bpf-*-*) targ_emul=elf64bpf
+bpf-* | bpf-*-*) targ_emul=elf64bpf
;;
cr16-*-elf*) targ_emul=elf32cr16
;;

View file

@ -0,0 +1,52 @@
diff -rup binutils.orig/bfd/elflink.c binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c
--- binutils.orig/bfd/elflink.c 2026-01-14 09:21:14.835847967 +0000
+++ binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c 2026-01-14 09:23:48.780495205 +0000
@@ -13786,7 +13786,7 @@ _bfd_elf_final_link (bfd *abfd, struct b
{
if (info->textrel_check == textrel_check_error)
info->callbacks->einfo
- (_("%P%X: read-only segment has dynamic relocations\n"));
+ (_("%P%X: error: read-only segment has dynamic relocations\n"));
else if (bfd_link_dll (info))
info->callbacks->einfo
(_("%P: warning: creating DT_TEXTREL in a shared object\n"));
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:21:15.248851537 +0000
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:22:24.603416270 +0000
@@ -1,5 +1,5 @@
#source: dt-memtag.s
-#ld: -shared -z memtag-mode=async
+#ld: -shared -z memtag-mode=async -z notext
#readelf: -d
#...
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:21:15.248851537 +0000
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:24:19.594780414 +0000
@@ -1,5 +1,5 @@
#source: dt-memtag.s
-#ld: -shared -z memtag-stack
+#ld: -shared -z memtag-stack -z notext
#readelf: -d
#...
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:21:15.246851520 +0000
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:24:45.363485698 +0000
@@ -1,5 +1,5 @@
#source: relr-text.s
-#ld: -pie -z pack-relative-relocs -T relocs.ld
+#ld: -pie -z pack-relative-relocs -T relocs.ld -z notext
#readelf: -drW
#...
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:21:15.246851520 +0000
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:25:06.651664713 +0000
@@ -1,5 +1,5 @@
#source: relr-text.s
-#ld: -shared -z pack-relative-relocs -T relocs.ld
+#ld: -shared -z pack-relative-relocs -T relocs.ld -z notext
#readelf: -drW
#...

View file

@ -0,0 +1,33 @@
diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:02:23.738336155 +0000
+++ binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:03:17.894485264 +0000
@@ -1413,14 +1413,6 @@ if { [isnative] && [check_compiler_avail
"libprotected-func-2b.so" \
] \
[list \
- "Build protected-func-2 without PIE" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
- { protected-func-1b.c } \
- {} \
- "protected-func-2" \
- ] \
- [list \
"Build libprotected-func-2c.so" \
"-shared" \
"-fPIC -Wa,-mx86-used-note=yes" \
@@ -1429,14 +1421,6 @@ if { [isnative] && [check_compiler_avail
"libprotected-func-2c.so" \
] \
[list \
- "Build protected-func-2a without PIE" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
- { protected-func-1b.c } \
- {} \
- "protected-func-2a" \
- ] \
- [list \
"Build libprotected-data-1a.so" \
"-shared -z noindirect-extern-access" \
"-fPIC -Wa,-mx86-used-note=yes" \

View file

@ -134,16 +134,136 @@ diff -rup binutils.orig/ld/testsuite/ld-elf/tls.exp binutils-2.40/ld/testsuite/l
objcopy_test_without_global_symbol
--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2024-02-08 10:12:23.739591113 +0000
+++ binutils-2.42/ld/testsuite/ld-ifunc/ifunc.exp 2024-02-08 10:14:58.243670115 +0000
@@ -666,6 +666,10 @@ run_cc_link_tests [list \
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:21:47.926570551 +0100
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:24:26.152502612 +0100
@@ -8,10 +8,10 @@
Disassembly of section \.text:
0+[0-9a-f]+ <_start>:
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.*
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1,0x[0-9a-f]+
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,\-[0-9]+ # [0-9a-f]+ <data_g>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,.*
.*:[ ]+[0-9a-f]+[ ]+lui[ ]+a2,0x[0-9a-f]+
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,[0-9]+ # [0-9a-f]+ <data_g>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2024-10-03 15:21:47.926570551 +0100
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2024-10-03 15:23:54.512530979 +0100
@@ -8,7 +8,7 @@
Disassembly of section \.text:
0+[0-9a-f]+ <_start>:
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.*
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2024-10-03 15:21:47.926570551 +0100
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2024-10-03 15:25:01.687468496 +0100
@@ -11,5 +11,5 @@ Disassembly of section .text:
[0-9a-f]+ <_start>:
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.*
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,gp.*<data_a>
-.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1
+.*:[ ]+[0-9a-f]+[ ]+.*
#pass
--- binutils-with-gold-2.45.50-79b2b564fec.orig/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:52:30.684689609 +0100
+++ binutils-with-gold-2.45.50-79b2b564fec/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:53:12.837859447 +0100
@@ -30,6 +30,6 @@ Disassembly of section \.plt:
[0-9a-f]+ <bar@plt>:
.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
-.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x1
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x[0-9a-f]+
.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <bar>
.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp
--- binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp 2025-12-02 12:47:19.063123207 +0000
+++ binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp 2025-12-04 12:39:26.079989597 +0000
@@ -602,14 +602,19 @@ proc strip_test { } {
set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"]
set exec_output [prune_warnings $exec_output]
if ![string equal "" $exec_output] {
- fail $test
+ fail "$test (warnings in linker output)"
+ verbose $exec_output
return
}
set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"]
set exec_output [prune_warnings $exec_output]
if ![string match "*: no symbols*" $exec_output] {
- fail $test
+
+ # The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
+ setup_xfail riscv*-*-*
+
+ fail "$test (symbols in nm output)"
return
}
@@ -659,6 +664,9 @@ proc strip_test_with_saving_a_symbol { }
pass $test
}
+# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
+setup_xfail riscv*-*-*
+
strip_test_with_saving_a_symbol
# Test stripping an archive.
@@ -1503,7 +1519,7 @@ proc objcopy_test_without_global_symbol
# in object files, so they will fail this test.
setup_xfail aarch64*-*-* arm*-*-*
# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
-# setup_xfail riscv*-*-*
+setup_xfail riscv*-*-*
objcopy_test_without_global_symbol
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp
--- binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp 2025-12-02 12:47:19.201090894 +0000
+++ binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp 2025-12-03 09:30:07.184360005 +0000
@@ -1633,6 +1633,12 @@ proc compile_one_cc { src output additio
proc check_ctf_available { } {
global ctf_available_saved
+ # Skip CTF tests for the Risc-V target for now, as the
+ # tests have not been tweaked to support the riscv format.
+ if { [istarget "riscv*-*-linux*"] } {
+ return 0
+ }
+
if {![info exists ctf_available_saved]} {
set ctf_available_saved 0
--- fred/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:37.205413649 +0000
+++ binutils-with-gold-2.46.50-d712202846b/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:49.559358668 +0000
@@ -803,6 +803,9 @@ proc prune_warnings_extra { text } {
# Ignore warnings about linking objects with an old sframe format
regsub -all {(^|\n)([^\n]* unexpected SFrame format version [^\n]*\n[^\n]* SFrame section ignored\n?)+} $text {\1} text
+ # Skip warnings about the LTO plugin being needed.
+ regsub -all "(^|\n)(\[^\n\]*:\[^\n\]*plugin needed to handle lto object\[^\n\]*\n?)+" $text "\\1" text
+
return $text
}
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:32:21.012274073 +0100
+++ binutils-with-gold-2.46.50-48997323b0f/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:34:41.397899263 +0100
@@ -1859,6 +1859,10 @@ run_cc_link_tests [list \
"pr29655.so" \
] \
]
+if {[istarget "riscv*-*-*"]} {
+ return
+}
+
run_ld_link_exec_tests [list \
[list \
"Run pr18808" \
+# FIXME: Find out why the Risc-V fails this test.
+setup_xfail "riscv64-*-*"
+
# PR 29655 (cont.): Check that in PIC code linked as PDE taking the address
# of a function defined in a DSO results in the function address (from GOT)
# and not the "canonical PLT" address from the PDE.

View file

@ -27,17 +27,6 @@
if ![regexp $want $got] then {
fail "$testname -s option $got\n"
} else {
--- binutils.orig/binutils/testsuite/binutils-all/objdump.exp 2023-08-03 13:09:07.631503783 +0100
+++ binutils-2.41/binutils/testsuite/binutils-all/objdump.exp 2023-08-03 14:51:54.621295727 +0100
@@ -921,7 +921,7 @@ proc test_objdump_S { } {
}
}
-test_objdump_S
+# test_objdump_S
# Test objdump --private
proc test_objdump_P {} {
--- binutils.orig/ld/testsuite/ld-scripts/ld-version.d 2023-08-03 13:09:07.949504208 +0100
+++ binutils-2.41/ld/testsuite/ld-scripts/ld-version.d 2023-08-03 15:13:01.374590134 +0100
@@ -4,4 +4,4 @@
@ -74,7 +63,7 @@
+++ binutils-2.41/ld/testsuite/ld-x86-64/x86-64.exp 2023-08-03 15:46:29.537416942 +0100
@@ -1386,7 +1386,7 @@ if { [isnative] && [check_compiler_avail
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
"$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ protected-func-1b.c } \
- {{error_output "pr28875-func.err"}} \
+ {} \
@ -83,21 +72,13 @@
[list \
@@ -1402,7 +1402,7 @@ if { [isnative] && [check_compiler_avail
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
"$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
"$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ protected-func-1b.c } \
- {{error_output "pr28875-func.err"}} \
+ {} \
"protected-func-2a" \
] \
[list \
@@ -2155,7 +2155,6 @@ if { [isnative] && [check_compiler_avail
}
}
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" ""
undefined_weak "-fPIE" "-pie"
undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"
--- binutils.orig/binutils/testsuite/binutils-all/addr2line.exp 2023-08-04 14:00:37.692356718 +0100
+++ binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp 2023-08-04 14:04:32.627697316 +0100
@@ -39,9 +39,9 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +\
@ -189,31 +170,6 @@
{pr29086.c} \
{} \
"pr29086" \
diff -rup binutils.orig/ld/testsuite/ld-aarch64/bti-plt-5.d binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d
--- binutils.orig/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-08-15 09:03:21.676463687 +0100
+++ binutils-2.41/ld/testsuite/ld-aarch64/bti-plt-5.d 2023-08-15 09:17:56.751533569 +0100
@@ -12,8 +12,8 @@ Disassembly of section \.plt:
[0-9a-f]+ <.*>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 410000 <.*>
-.*: f9...... ldr x17, \[x16, #....\]
+.*: 90000090 adrp x16, 4.0000 <.*>
+.*: f9...... ldr x17, \[x16, #.*\]
.*: 91...... add x16, x16, #0x...
.*: d61f0220 br x17
.*: d503201f nop
@@ -21,8 +21,8 @@ Disassembly of section \.plt:
[0-9a-f]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 410000 <.*>
-.*: f9...... ldr x17, \[x16, #....\]
+.*: 90000090 adrp x16, 4.0000 <.*>
+.*: f9...... ldr x17, \[x16, #.*\]
.*: 91...... add x16, x16, #0x...
.*: d61f0220 br x17
.*: d503201f nop
diff -rup binutils.orig/ld/testsuite/ld-aarch64/erratum843419-far-full.d binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d
--- binutils.orig/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-08-15 09:03:21.683463694 +0100
+++ binutils-2.41/ld/testsuite/ld-aarch64/erratum843419-far-full.d 2023-08-15 09:05:41.549608111 +0100
@ -767,25 +723,6 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32.d binutils-2.41/ld/testsui
[list "pr26580-4" \
"" "" \
{pr26580-a.c} "pr26580-4" "pr26580-4.out" "-fcommon" "c" "" \
@@ -1579,18 +1575,6 @@ if { [istarget *-*-linux*]
"pr22393-2-static" \
"pass.out" \
] \
- [list \
- "Run pr21964-4" \
- "" \
- "" \
- {pr21964-4.c} \
- "pr21964-4" \
- "pass.out" \
- "" \
- "" \
- "" \
- "-ldl" \
- ] \
]
}
--- binutils.orig/ld/testsuite/ld-s390/s390.exp 2023-08-15 14:30:13.292890888 +0100
+++ binutils-2.41/ld/testsuite/ld-s390/s390.exp 2023-08-15 14:48:38.327360916 +0100
@@ -35,6 +35,8 @@ if { !([istarget "s390-*-*"] || [istarge
@ -836,19 +773,6 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32.d binutils-2.41/ld/testsui
# Check cross references for ld -r
if { ![ld_compile "$CC_FOR_TARGET $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross4.c" tmpdir/cross4.o] } {
--- binutils.orig/ld/testsuite/ld-shared/shared.exp 2023-08-15 14:30:13.309890913 +0100
+++ binutils-2.41/ld/testsuite/ld-shared/shared.exp 2023-08-15 15:00:31.929701875 +0100
@@ -204,6 +204,10 @@ if { [istarget mips*-*-*] && ! [at_least
}
verbose "Using $picflag to compile PIC code"
+if { [istarget "i686-*-*"] } {
+ return
+}
+
# Compile the main program.
if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
unsupported "shared (non PIC)"
--- binutils.orig/ld/testsuite/ld-srec/srec.exp 2023-08-15 14:30:13.315890922 +0100
+++ binutils-2.41/ld/testsuite/ld-srec/srec.exp 2023-08-15 15:01:24.104806404 +0100
@@ -442,6 +442,9 @@ setup_xfail "csky*-*-*"
@ -1036,3 +960,190 @@ diff -rup binutils.orig/ld/testsuite/ld-powerpc/tls32no.d binutils-2.42.50-6b19a
.*: (3b de 80 a0|.. 80 de 3b) addi r30,r30,-[0-9]+
.*: (38 7f ff e4|e4 ff 7f 38) addi r3,r31,-28
.*: (48 00 00 6d|6d 00 00 48) bl .*
720,725d719
< [list "Run pr20267a" \
< "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267a.a" "" \
< {dummy.c} "pr20267a" "pass.out" "-flto -O2 -fcommon" "c"] \
< [list "Run pr20267b" \
< "-O2 -flto -fcommon tmpdir/pr20267a.o tmpdir/libpr20267b.a" "" \
< {dummy.c} "pr20267b" "pass.out" "-flto -O2 -fcommon" "c"] \
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-1.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-1.d 2024-11-04 13:34:33.522976068 +0000
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-1.d 2024-11-04 13:37:17.985526186 +0000
@@ -23,6 +23,6 @@ Contents of the SFrame section .sframe:
func idx \[1\]: pc = 0x1010, size = 64 bytes
STARTPC\[m\] +CFA +FP +RA +
- 0+0000 +sp\+16 +u +f +
+ 0+0000 +sp\+[0-9]+ +u +f +
#...
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 13:34:33.522976068 +0000
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 13:37:43.874611190 +0000
@@ -23,6 +23,6 @@ Contents of the SFrame section .sframe:
func idx \[1\]: pc = 0x1010, size = 32 bytes
STARTPC\[m\] +CFA +FP +RA +
- 0+0000 +sp\+16 +u +f +
+ 0+0000 +sp\+[0-9]+ +u +f +
#...
diff -rup bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
--- bin.orig/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 14:26:07.983307843 +0000
+++ binutils-2.43.50-55e32b3c682/ld/testsuite/ld-x86-64/sframe-pltgot-2.d 2024-11-04 14:26:18.781353913 +0000
@@ -21,7 +21,7 @@ Contents of the SFrame section .sframe:
0+1000 +sp\+16 +u +f +
0+1006 +sp\+24 +u +f +
- func idx \[1\]: pc = 0x1010, size = 32 bytes
+ func idx \[1\]: pc = 0x1010, size = [0-9]+ bytes
STARTPC\[m\] +CFA +FP +RA +
0+0000 +sp\+[0-9]+ +u +f +
--- binutils.orig/ld/testsuite/ld-bootstrap/bootstrap.exp 2025-02-03 11:13:50.829608207 +0000
+++ binutils-with-gold-2.44/ld/testsuite/ld-bootstrap/bootstrap.exp 2025-02-03 11:17:34.589136290 +0000
@@ -29,6 +29,12 @@ if ![isnative] {
return
}
+# FIXME: The AArch64 rawhide libz and libjanson libraries are built
+# without GCS support and so cannot be linked.
+if {[istarget "aarch64*-*-*"] } {
+ return
+}
+
# Skip if OFILES aren't provided, it can happen when lauching
# the testsuites outside the build directory.
if {![info exists OFILES]} {
--- binutils.orig/ld/testsuite/ld-vsb/vsb.exp 2025-02-07 11:24:06.084525843 +0000
+++ binutils-with-gold-2.44/ld/testsuite/ld-vsb/vsb.exp 2025-02-07 11:26:34.984041584 +0000
@@ -366,7 +366,6 @@ proc visibility_run {visibility} {
|| [ string match $visibility "protected_weak" ]
|| [ string match $visibility "normal" ] } {
setup_xfail "powerpc-*-linux*"
- setup_xfail "s390x-*-linux*"
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "sparc*-*-linux*"
}
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2025-03-31 09:24:34.260146421 +0100
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-x86-64/x86-64.exp 2025-03-31 09:25:38.951438172 +0100
@@ -2167,7 +2167,6 @@ if { [isnative] && [check_compiler_avail
}
}
- undefined_weak "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "-pie"
undefined_weak "-fPIE" "$NOPIE_LDFLAGS -Wl,-z,nodynamic-undefined-weak"
--- binutils.orig/ld/testsuite/ld-shared/shared.exp 2025-03-31 11:25:50.792541423 +0100
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-shared/shared.exp 2025-03-31 11:27:36.680868036 +0100
@@ -205,6 +205,10 @@ if { [istarget mips*-*-*] && ! [at_least
}
verbose "Using $picflag to compile PIC code"
+if { [istarget "i686-*-*"] } {
+ return
+}
+
# Compile the main program.
global PLT_CFLAGS NOPIE_CFLAGS NOPIE_LDFLAGS
verbose "Using $NOPIE_CFLAGS to compile and $NOPIE_LDFLAGS to link non PIC code"
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2025-03-31 11:25:50.643275417 +0100
+++ binutils-with-gold-2.44.50-7109ea04ac7/ld/testsuite/ld-elf/shared.exp 2025-03-31 11:28:38.353212702 +0100
@@ -1612,18 +1612,6 @@ if { [istarget *-*-linux*]
"pr22393-2-static" \
"pass.out" \
] \
- [list \
- "Run pr21964-4" \
- "$NOPIE_LDFLAGS" \
- "" \
- {pr21964-4.c} \
- "pr21964-4" \
- "pass.out" \
- "$NOPIE_CFLAGS" \
- "" \
- "" \
- "-ldl" \
- ] \
]
}
--- fred/binutils/testsuite/binutils-all/objdump.exp 2026-02-16 09:03:27.457277379 +0000
+++ binutils-with-gold-2.46.50-2d306bf8a70/binutils/testsuite/binutils-all/objdump.exp 2026-02-16 09:03:30.592967621 +0000
@@ -957,7 +957,7 @@ proc test_objdump_S { } {
}
}
-test_objdump_S
+# test_objdump_S
# Test objdump --map-global-vars on file containing dwarf-2 encoding information.
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pic.d 2026-03-20 13:05:31.155200130 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -z notext
#objdump: -dR
.*:[ ]+file format .*
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-pie.d 2026-03-20 13:05:52.846252771 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie -z notext
#objdump: -dR
.*:[ ]+file format .*
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv32-symbolic.d 2026-03-20 13:06:01.427273593 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv32i -mabi=ilp32 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
-#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic
+#ld: -m[riscv_choose_ilp32_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic -z notext
#objdump: -dR
.*:[ ]+file format .*
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pic.d 2026-03-20 13:04:07.601997355 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -z notext
#objdump: -dR
.*:[ ]+file format .*
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-pie.d 2026-03-20 13:04:57.106117494 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -pie -z notext
#objdump: -dR
.*:[ ]+file format .*
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d
--- binutils.orig/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d 2026-03-20 13:02:05.468700958 +0000
+++ binutils-with-gold-2.46/ld/testsuite/ld-riscv-elf/data-reloc-rv64-symbolic.d 2026-03-20 13:05:14.650160073 +0000
@@ -1,6 +1,6 @@
#source: data-reloc.s
#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 -defsym __abs__=1 -defsym __addr__=1 -defsym __undef__=1
-#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic
+#ld: -m[riscv_choose_lp64_emul] -Ttext 0x8000 --defsym _start=0x0 --defsym abs=0x100 --defsym abs_local=0x200 -shared -Bsymbolic -z notext
#objdump: -dR
.*:[ ]+file format .*

View file

@ -6,8 +6,8 @@ Name: binutils%{?_with_debug:-debug}
# A version number of X.XX.90 is a pre-release snapshot.
# The variable %%{source} (see below) should be set to indicate which of these
# origins is being used.
Version: 2.43
Release: 2%{?dist}
Version: 2.47.50
Release: 6%{?dist}
License: GPL-3.0-or-later AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND BSD-3-Clause AND GFDL-1.3-or-later AND GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later
URL: https://sourceware.org/binutils
@ -24,8 +24,10 @@ URL: https://sourceware.org/binutils
# --without docs Skip building documentation. Default is with docs, except when building a cross binutils.
# --without gold Disable building of the GOLD linker.
# --without gprofng Do not build the GprofNG profiler.
# --without systemzlib Use the binutils version of zlib.
# --without systemzlib Use the binutils version of zlib. Default is to use the system version.
# --without testsuite Do not run the testsuite. Default is to run it.
# --without xxhash Do not link against the xxhash library.
# --without zstd Do not link against the zstd library.
# Other configuration options can be set by modifying the following defines.
@ -83,26 +85,47 @@ URL: https://sourceware.org/binutils
# configurable in case there is ever a need to disable thread support.
%define enable_threading 1
# Enable the use of separate code and data segments for all architectures,
# not just x86/x86_64.
# Enable the use of separate code and data segments. Whilst potentially
# useful from a security point of view, it is problematic from a file
# size point of view. So for now, only enable it for the i686, x86_64
# and riscv64 architectures as these are the ones that have the most
# potential vulnerability.
%ifarch %{ix86} x86_64 riscv64
%define enable_separate_code 1
%else
%define enable_separate_code 0
%endif
# Enable the creation of relocations against the contents of read-only
# sections (such as .text). This is a security vulnerability, so it is
# disabled here by default.
# Note - the upstream GNU Binutils sources enable the generation of this
# kind of relocation by default, so this is a difference between Ferdora
# and upstream.
%define enable_textrel 0
# Indicate where the sources come from.
#
# Official releases come from: https://ftp.gnu.org/gnu/binutils
# Pre releases come from: https://sourceware.org/pub/binutils/snapshots/
# (Even numbered pre releases include gold)
# Snapshots come from: https://snapshots.sourceware.org/binutils/trunk/
# Tarballs are made by hand following a process outlined in this document:
# and are turned into commits by following this process:
# https://fedoraproject.org/wiki/BinutilsRawhideSync
# Tarballs are made by hand as and when necessary.
#
# Note - the Linux Kernel binutils releases are too unstable and contain
# too many controversial patches so we stick with the official GNU version
# instead.
#
# Note - there is a confusing misnomer in the URL for the pre-release tarballs.
# They are a "snapshot" of the about to be released branch sources, rather than
# a snapshot of the mainline development sources.
%define source official-release
# %%define source pre-release
# %%define source snapshot
# %%define source official-release
# %%define source even-pre-release
# %%define source odd-pre-release
%define source snapshot
# %%define source tarball
# For snapshots and tarballs an extension is used to indicate the commit ID.
@ -110,39 +133,50 @@ URL: https://sourceware.org/binutils
# correctly. Note %%(echo) is used because you cannot directly set a
# spec variable to a hexadecimal string value.
%define commit_id %(echo "49cc32b732a")
%define commit_id %(echo "48c933a69a8")
#----End of Configure Options------------------------------------------------
# Default: Not bootstrapping.
%bcond_with bootstrap
%bcond bootstrap 0
# Default: Not debug
%bcond_with debug
%bcond debug 0
# Default: support debuginfod.
%bcond_without debuginfod
%bcond debuginfod 1
# Default: Always build documentation.
%bcond_without docs
%bcond docs 1
# Default: build binutils-gprofng package.
%bcond_without gprofng
%bcond gprofng 1
# Default: Use the system supplied version of the zlib compression library.
%bcond_without systemzlib
%bcond systemzlib 1
# Default: Always run the testsuite.
%bcond_without testsuite
%bcond testsuite 1
# Default: Use the xxhash-devel library.
%bcond xxhash 1
# Default: Use the libztsd-devel library.
%bcond zstd 1
# Default: Do not create cross targeted versions of the binutils.
%bcond crossbuilds 0
# Note - in the future the gold linker may become deprecated.
%ifnarch riscv64
%bcond_without gold
# Note - in the future the gold linker will become deprecated in Fedora.
# And it will be deprecated in RHEL-11.
%if 0%{?rhel} >= 11
%bcond gold 0
%else
# RISC-V does not have ld.gold thus disable by default.
%bcond_with gold
%ifarch riscv64
%bcond gold 0
%else
%bcond gold 1
%endif
%endif
# Allow the user to override the compiler used to build the binutils.
# The default build compiler is gcc if %%toolchain is not clang.
%if "%toolchain" == "clang"
%bcond_without clang
%bcond clang 1
%else
%bcond_with clang
%bcond clang 0
%endif
%if %{with clang}
@ -151,10 +185,6 @@ URL: https://sourceware.org/binutils
%global toolchain gcc
%endif
# (Do not) create cross targeted versions of the binutils.
%bcond_with crossbuilds
# %%bcond_without crossbuilds
%if %{with bootstrap}
%undefine with_docs
%undefine with_testsuite
@ -182,23 +212,35 @@ URL: https://sourceware.org/binutils
# its debug informnation.
%undefine __brp_strip_static_archive
# ODD numbered upstream GNU Binutils releases do not include the sources
# for the GOLD linker, so we use a snapshot from the mainline development
# sources instead - but only for GOLD, not for the rest of the binutils.
# FIXME: Delete this once the gold linker is fully deprecated.
# %%define gold_tarball %%(echo "binutils-with-gold-2.46.50-f85ff0c4bce")
%define gold_tarball none
#----------------------------------------------------------------------------
%if "%{source}" == "tarball"
Source0: binutils-%{version}-%{commit_id}.tar.xz
%endif
%if "%{source}" == "snapshot"
Source0: binutils-%{version}-%{commit_id}.tar.xz
%endif
%if "%{source}" == "pre-release"
Source0: binutils-%{version}.tar.xz
%endif
%if "%{source}" == "official-release"
# Source0: https://ftp.gnu.org/gnu/binutils/binutils-with-gold-%%{version}.tar.xz
Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
%elif "%{source}" == "even-pre-release"
Source0: binutils-with-gold-%{version}.tar.xz
%elif "%{source}" == "odd-pre-release"
Source0: binutils-%{version}.tar.xz
%elif "%{source}" == "snapshot"
Source0: binutils-with-gold-%{version}-%{commit_id}.tar.xz
%elif "%{source}" == "tarball"
Source0: binutils-with-gold-%{version}-%{commit_id}.tar.xz
%endif
Source1: binutils-2.19.50.0.1-output-format.sed
%if "%{gold_tarball}" != "none"
Source2: %{gold_tarball}.tar.xz
%endif
#----------------------------------------------------------------------------
# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
@ -249,64 +291,79 @@ Patch06: binutils-2.27-aarch64-ifunc.patch
# Lifetime: Permanent.
Patch07: binutils-do-not-link-with-static-libstdc++.patch
# Purpose: Allow OS specific sections in section groups.
# Lifetime: Fixed in 2.43 (maybe)
# Patch08: binutils-special-sections-in-groups.patch
# Purpose: Allow the binutils to be configured with any (recent) version of
# autoconf.
# Lifetime: Fixed in 2.46 (maybe ?)
Patch08: binutils-autoconf-version.patch
# Purpose: Stop libtool from inserting useless runpaths into binaries.
# Lifetime: Who knows.
Patch09: binutils-libtool-no-rpath.patch
# Purpose: Fix binutils testsuite failures.
# Lifetime: Permanent, but varies with each rebase.
Patch10: binutils-testsuite-fixes.patch
# Purpose: Fix binutils testsuite failures for the RISCV-64 target.
# Lifetime: Permanent, but varies with each rebase.
Patch11: binutils-riscv-testsuite-fixes.patch
# Purpose: Fix the ar test of non-deterministic archives.
# Lifetime: Fixed in 2.46
Patch12: binutils-fix-ar-test.patch
# Purpose: Fix a seg fault in the AArch64 linker when building u-boot.
# Lifetime: Fixed in 2.46
Patch13: binutils-aarch64-small-plt0.patch
%if %{with gold}
# Purpose: Make the GOLD linker ignore the "-z pack-relative-relocs" command line option.
# Lifetime: Fixed in 2.46 (maybe)
Patch14: binutils-gold-pack-relative-relocs.patch
# Purpose: Let the gold linker ignore --error-execstack and --error-rwx-segments.
# Lifetime: Fixed in 2.46 (maybe)
Patch15: binutils-gold-ignore-execstack-error.patch
# Purpose: Stop gold from aborting when input sections with the same name
# have different flags.
# Lifetime: Fixed in 2.43 (maybe)
Patch09: binutils-gold-mismatched-section-flags.patch
Patch16: binutils-gold-mismatched-section-flags.patch
# Purpose: Change the gold configuration script to only warn about
# unsupported targets. This allows the binutils to be built with
# BPF support enabled.
# Lifetime: Permanent.
Patch10: binutils-gold-warn-unsupported.patch
Patch17: binutils-gold-warn-unsupported.patch
# Purpose: Enable the creation of .note.gnu.property sections by the GOLD
# linker for x86 binaries.
# Lifetime: Permanent.
Patch11: binutils-gold-i386-gnu-property-notes.patch
# Purpose: Allow the binutils to be configured with any (recent) version of
# autoconf.
# Lifetime: Fixed in 2.44 (maybe ?)
Patch12: binutils-autoconf-version.patch
# Purpose: Stop libtool from inserting useless runpaths into binaries.
# Lifetime: Who knows.
Patch13: binutils-libtool-no-rpath.patch
Patch18: binutils-gold-i386-gnu-property-notes.patch
# Purpose: Stop an abort when using dwp to process a file with no dwo links.
# Lifetime: Fixed in 2.44 (maybe)
Patch15: binutils-gold-empty-dwp.patch
# Lifetime: Fixed in 2.46 (maybe)
Patch19: binutils-gold-empty-dwp.patch
# Purpose: Fix binutils testsuite failures.
# Lifetime: Permanent, but varies with each rebase.
Patch16: binutils-testsuite-fixes.patch
# Purpose: Enable building the gold linker with the target is s390x-linux.
# Lifetime: Fixed in 2.48 (maybe)
Patch20: binutils-gold-s390-configure.patch
# Purpose: Fix binutils testsuite failures for the RISCV-64 target.
# Lifetime: Permanent, but varies with each rebase.
Patch17: binutils-riscv-testsuite-fixes.patch
%endif
# Purpose: Make the GOLD linker ignore the "-z pack-relative-relocs" command line option.
# Lifetime: Fixed in 2.44 (maybe)
Patch18: binutils-gold-pack-relative-relocs.patch
# Purpose: Fix ld testsuite failures when enable_textrel is set.
# Lifetime: Permanent.
Patch21: binutils-ld-default-z-text.patch
# Purpose: Let the gold lihnker ignore --error-execstack and --error-rwx-segments.
# Lifetime: Fixed in 2.44 (maybe)
Patch19: binutils-gold-ignore-execstack-error.patch
#----------------------------------------------------------------------------
# Purpose: Fix the ar test of non-deterministic archives.
# Lifetime: Fixed in 2.44
Patch20: binutils-fix-ar-test.patch
# Purpose: Remove the Build protected-func-2 without PIE linker tests
# as these are currently failing.
# Lifetime: TEMPORARY - should be fixed by the 2.46 release.
Patch98: binutils-remove-ld-protected-func-2-test.patch
# Purpose: Fix PR 31956 and BZ 2301454.
# Lifetime: Fixed in 2.43.1 ?
Patch21: binutils-LTO-restore-wrapper-symbol.patch
# Purpose: Suppress the x86 linker's p_align-1 tests due to kernel bug on CentOS-10
# Purpose: Suppress the x86 linker's p_align-1 tests due to kernel bug on CentOS-10.
# Lifetime: TEMPORARY
Patch99: binutils-suppress-ld-align-tests.patch
@ -324,6 +381,9 @@ Provides: bundled(libiberty)
# Perl, sed and touch are all used in the %%prep section of this spec file.
BuildRequires: autoconf, automake, perl, sed, coreutils, make
# Bison is used to generate gold/yyscript.c and ld/ldgram.c.
BuildRequires: bison
%if %{with clang}
BuildRequires: clang compiler-rt
%else
@ -331,8 +391,8 @@ BuildRequires: gcc
%endif
%if %{with gold}
# Gold needs bison in order to build gold/yyscript.c. The GOLD testsuite needs a static libc++
BuildRequires: bison, m4, gcc-c++, libstdc++-static
# The GOLD testsuite needs a static libc++
BuildRequires: libstdc++-static
%if ! %{with clang}
BuildRequires: gcc-c++
@ -370,20 +430,19 @@ BuildRequires: zlib-devel
BuildRequires: elfutils-debuginfod-client-devel
%endif
%if %{with xxhash}
BuildRequires: xxhash-devel
%endif
%if %{with zstd}
BuildRequires: libzstd-devel
%endif
Requires(post): %{_sbindir}/alternatives
Requires(preun): %{_sbindir}/alternatives
# We also need rm.
Requires(post): coreutils
# %%if %%{with gold}
# # For now we make the binutils package require the gold sub-package.
# # That way other packages that have a requirement on "binutils" but
# # actually want gold will not have to be changed. In the future, if
# # we decide to deprecate gold, we can remove this requirement, and
# # then update other packages as necessary.
# Requires: binutils-gold >= %%{version}
# %%endif
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
%ifnarch %{arm}
@ -445,7 +504,9 @@ using libelf instead of BFD.
%package gold
Summary: The GOLD linker, a faster alternative to the BFD linker
Provides: gold = %{version}-%{release}
# The GOLD linker is now deprecated as it is not being developed upstream.
# For more details see: https://fedoraproject.org/wiki/Changes/DeprecateGoldLinker
Provides: deprecated()
Requires: binutils >= %{version}
%description gold
@ -470,7 +531,6 @@ linker, and it may become deprecated in the future.
Summary: Next Generating code profiling tool
Provides: gprofng = %{version}-%{release}
Requires: binutils = %{version}-%{release}
BuildRequires: bison
%description gprofng
GprofNG is the GNU Next Generation Profiler for analyzing the performance
@ -555,17 +615,37 @@ use by developers. It is NOT INTENDED FOR PRODUCTION use.
%prep
%if "%{source}" == "snapshot"
%autosetup -p1 -n binutils-%{version}-%{commit_id}
%else
%if "%{gold_tarball}" != "none"
%setup -q -n binutils-%{version} -a 0
%if %{with gold}
%setup -q -n binutils-%{version} -D -b 2
mv ../%{gold_tarball}/gold .
mv ../%{gold_tarball}/elfcpp .
%endif
%autopatch -p1
%elif "%{source}" == "snapshot"
%autosetup -p1 -n binutils-with-gold-%{version}-%{commit_id}
%elif "%{source}" == "official-release"
%autosetup -p1 -n binutils-with-gold-%{version}
%elif "%{source}" == "even-pre-release"
%autosetup -p1 -n binutils-with-gold-%{version}
%elif "%{source}" == "odd-pre-release"
%autosetup -p1 -n binutils-%{version}
%else
%autosetup -p1 -n binutils-with-gold-%{version}
%endif
# On ppc64 and aarch64, we might use 64KiB pages
sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*aarch64.c
%if %{with gold}
sed -i -e '/common_pagesize/s/4 /64 /' gold/powerpc.cc
sed -i -e '/pagesize/s/0x1000,/0x10000,/' gold/aarch64.cc
%endif
# LTP sucks
perl -pi -e 's/i\[3-7\]86/i[34567]86/g' */conf*
@ -621,6 +701,7 @@ compute_global_configuration()
--enable-ld \
--enable-plugins \
--enable-64-bit-bfd \
--enable-default-hash-style=gnu \
--with-bugurl=%{dist_bug_report_url}"
%if %{without bootstrap}
@ -638,7 +719,19 @@ compute_global_configuration()
%endif
%if %{with systemzlib}
CARGS="$CARGS --with-system-zlib"
CARGS="$CARGS --with-system-zlib=yes"
%endif
%if %{with xxhash}
CARGS="$CARGS --with-xxhash=yes"
%else
CARGS="$CARGS --with-xxhash=no"
%endif
%if %{with zstd}
CARGS="$CARGS --with-zstd=yes"
%else
CARGS="$CARGS --with-zstd=no"
%endif
%if %{default_compress_debug}
@ -694,7 +787,10 @@ compute_global_configuration()
%if %{enable_separate_code}
CARGS="$CARGS --enable-separate-code=yes"
CARGS="$CARGS --enable-rosegment=yes"
CARGS="$CARGS --enable-rosegment=yes"
%else
CARGS="$CARGS --enable-separate-code=no"
CARGS="$CARGS --enable-rosegment=no"
%endif
%if %{enable_threading}
@ -703,16 +799,18 @@ compute_global_configuration()
CARGS="$CARGS --enable-threads=no"
%endif
%if "%{source}" != "official-release"
# Since non official release tarballs are created directly from development
# sources they will have "development=true" set in the bfd/development.sh file.
# This enables -Werror by default, which is a problem because there is a
# known issue with the libiberty library:
%if %{enable_textrel}
CARGS="$CARGS --enable-textrel-check=no"
%else
CARGS="$CARGS --enable-textrel-check=error"
%endif
# The binutils build system enables -Werror by default, which is a problem
# because there is a known issue with the libiberty library sources:
# libiberty/cp-demangle.c: In function 'd_demangle_callback.constprop':
# libiberty/cp-demangle.c:6794:1: error: stack usage might be unbounded [-Werror=stack-usage=]
# So we explicitly disable werror for builds from these tarballs.
# So we explicitly disable werror for builds.
CARGS="$CARGS --enable-werror=no"
%endif
}
# run_target_configuration()
@ -737,10 +835,16 @@ run_target_configuration()
%set_build_flags
%if %{enable_lto}
# RHEL-121799: Builders may want to restrict the number of CPUs used by
# the LTO compiler. The normal way to do this is to set RPM_BUILD_NCPUS.
# But this only affects the -j option passed to make. By adding -flto=N
# we can also restrict the number of threads used by the LTO compiler.
export CFLAGS="$RPM_OPT_FLAGS -flto=$RPM_BUILD_NCPUS"
%endif
%ifarch %{power64}
export CFLAGS="$RPM_OPT_FLAGS -Wno-error"
%else
export CFLAGS="$RPM_OPT_FLAGS"
export CFLAGS="$CFLAGS -Wno-error"
%endif
%if %{with debug}
@ -750,6 +854,10 @@ run_target_configuration()
export CXXFLAGS="$CXXFLAGS $CFLAGS"
# Some GNU extensions to the C11 standard are used.
# Note set here as -std=gnu11 is not a valid G++ command line option.
export CFLAGS="$CFLAGS -std=gnu11"
# BZ 1541027 - include the linker flags from redhat-rpm-config as well.
export LDFLAGS=$RPM_LD_FLAGS
@ -762,17 +870,13 @@ run_target_configuration()
# Extra targets to build along with the native one.
#
# BZ 1920373: Enable PEP support for all targets as the PERF package's
# testsuite expects to be able to read PE format files ragrdless of
# testsuite expects to be able to read PE format files regardless of
# the host's architecture.
#
# Also enable the BPF target so that strip will work on BPF files.
case $target in
s390*)
# Note - The s390-linux target is there so that the GOLD linker will
# build. By default, if configured for just s390x-linux, the GOLD
# configure system will only include support for 64-bit targets, but
# the s390x gold backend uses both 32-bit and 64-bit templates.
TARGS="--enable-targets=s390-linux,s390x-linux,x86_64-pep,bpf-unknown-none"
s390x*)
TARGS="--enable-targets=s390x-linux,x86_64-pep,bpf-unknown-none"
;;
ia64*)
TARGS="--enable-targets=ia64-linux,x86_64-pep,bpf-unknown-none"
@ -837,6 +941,8 @@ build_target()
pushd $builddir
mkdir -p gas/doc
%if %{with docs}
# Because of parallel building, info has to be made after all.
# %%make_build %%{_smp_mflags} tooldir=%%{_prefix} all
@ -1031,7 +1137,7 @@ install_binutils()
%make_install DESTDIR=%{buildroot} MAKEINFO=true
%endif
# Rebuild the static libiaries with -fPIC.
# Rebuild the static libraries with -fPIC.
# It would be nice to build the static libraries with -fno-lto so that
# they can be used by programs that are built with a different version
# of GCC from the one used to build the libraries, but this will trigger
@ -1067,6 +1173,9 @@ install_binutils()
%if %{without docs}
rm -f $local_mandir/{addr2line,ar,as,c++filt,elfedit,gp,ld,nm,objcopy,objdump,ranlib,readelf,size,strings,strip}*
rm -f $local_infodir/{as,bfd,binutils,ctf,gprof,ld,sframe}*
%if %{with gprofng}
rm -fr $local_infodir/../doc/gprofng
%endif
%endif
%if %{enable_shared}
@ -1264,12 +1373,13 @@ exit 0
%{_bindir}/[!l]*
# %%verify(symlink) does not work for some reason, so using "owner" instead.
%verify(owner) %{_bindir}/ld
# %%verify(mtime) does not work, probably because of the alternatives command in the %%post stage, so using "owner" instead. (#2277349)
%verify(owner) %{_bindir}/ld.bfd
# %%verify(mtime) does not work, probably because of the alternatives command in the %%post stage, so using "not mtime" instead. (#2277349)(RHEL-238406)
%verify(not mtime) %{_bindir}/ld.bfd
%if %{with gprofng}
%exclude %{_bindir}/gp-*
%exclude %{_bindir}/gprofng
%exclude %{_bindir}/gprofng-*
%endif
%exclude %dir %{_exec_prefix}/lib/debug
@ -1284,23 +1394,42 @@ exit 0
%{_infodir}/ctf-spec.info.*
%{_infodir}/gprof.info.*
%{_infodir}/sframe-spec.info.*
%if %{with gprofng}
%{_mandir}/man1/gp-*
%{_mandir}/man1/gprofng*
%{_infodir}/gprofng*
%exclude %{_docdir}/gprofng/examples.tar.gz
%exclude %{_infodir}/gprofng*
%exclude %{_mandir}/man1/gprofng*
%endif
%endif
%if %{enable_shared}
%{_libdir}/lib*.so
%{_libdir}/lib*.so.*
%dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so
%exclude %{_libdir}/libbfd.so
%exclude %{_libdir}/libopcodes.so
%exclude %{_libdir}/libctf.a
%exclude %{_libdir}/libctf-nobfd.a
%dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so
%if %{with gprofng}
%exclude %{_libdir}/libgprofng.*
%endif
%endif
#------------------------------------
%files devel
%{_prefix}/include/*
%{_libdir}/lib*.a
%{_libdir}/libbfd.so
%{_libdir}/libopcodes.so
%if %{enable_shared}
%exclude %{_libdir}/lib*.la
%endif
%if %{with debug}
@ -1308,29 +1437,39 @@ exit 0
%{_libdir}/bfd-plugins/libdep.a
%endif
%files devel
%{_prefix}/include/*
%{_libdir}/lib*.a
%{_libdir}/libbfd.so
%{_libdir}/libopcodes.so
%if %{enable_shared}
%exclude %{_libdir}/lib*.la
%endif
#------------------------------------
%if %{with gold}
%files gold
%{_bindir}/%{?cross}ld.gold
%endif
#------------------------------------
%if %{with gprofng}
%files gprofng
%{_bindir}/gp-*
%{_bindir}/gprofng
%{_bindir}/gprofng-*
%dir %{_libdir}/gprofng
%{_libdir}/gprofng/*
%{_sysconfdir}/gprofng.rc
%if %{enable_shared}
%{_libdir}/libgprofng.*
%endif
%if %{with docs}
%dir %{_docdir}/gprofng
%{_docdir}/gprofng/examples.tar.gz
%{_infodir}/gprofng*
%{_mandir}/man1/gprofng*
%endif
%endif
#------------------------------------
%if %{with crossbuilds}
%if "%{_target_platform}" != "aarch64-%{system}"
@ -1361,6 +1500,261 @@ exit 0
#----------------------------------------------------------------------------
%changelog
* Tue Sep 01 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-6
- Rebase to commit 48c933a69a8
* Tue Sep 01 2026 Jesus Checa Hidalgo <jchecahi@redhat.com> - 2.47.50-5
- Fix logic to enable and disable gold linker.
* Wed Aug 19 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-4
- Rebase to bring in commits d9ab6e42e739fe826b02a5f868586132ea2d893a and
- 0f9faaebc91bc1886a563bde6c178601b4be743b, thus fixing CVE-2026-19548. (#2514618)
* Thu Aug 13 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-3
- Switch from using %%bcond_with and %%bcond_without to just %%bcond <0|1>
* Thu Aug 13 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-2
- Re-enable the gold linker - for now - for Rawhide.
* Wed Aug 12 2026 Nick Clifton <nickc@redhat.com> - 2.47.50-1
- Rebase to commit 4e8ba93fdb2.
- Disable the gold linker for Rawhide as well.
* Wed Aug 12 2026 Yaakov Selkowitz <yselkowi@redhat.com>
- Disable the gold linker by default for RHEL-11+.
* Mon Jul 27 2026 Nick Clifton <nickc@redhat.com> - 2.47-1
- Rebase to 2.47 release.
* Wed Jul 15 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.46.90-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Mon Jul 13 2026 Nick Clifton <nickc@redhat.com> - 2.46.90-1
- Rebase to 2.47 pre-release tarball.
* Thu Jun 25 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-12
- Rebase to commit f85ff0c4bce
* Thu Jun 11 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-11
- Fix linker testsuite problem for Risc-V.
* Thu Jun 04 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-10
- Rebase to commit 48997323b0f
* Thu May 14 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-9
- Rebase to commit 2ea3f3a7ac2
* Fri Apr 24 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-8
- Rebase to commit 991cf245839.
* Wed Apr 08 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-7
- Add support for zstd compression. (#2454341)
* Tue Apr 07 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-6
- Rebase to commit c220f3ab8c0
* Mon Mar 30 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-5
- Rebase to commit c220f3ab8c0
* Fri Mar 20 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-4
- Fix Risc-V linker testsuite failures caused by #2428281.
* Mon Mar 16 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-3
- Rebase to commit d712202846b.
* Mon Mar 02 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-2
- Rebase to commit dd9a411627a.
* Mon Feb 16 2026 Nick Clifton <nickc@redhat.com> - 2.46.50-1
- Rebase to commit 2d306bf8a70
* Mon Feb 09 2026 Nick Clifton <nickc@redhat.com> - 2.46-1
- Rebase to GNU Binutils 2.46.
* Tue Jan 27 2026 Nick Clifton <nickc@redhat.com> - 2.45.90-1
- Rebase to pre-release snapshot.
* Mon Jan 19 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-19
- Rebase to commit ba5838a98fb
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.50-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.50-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Jan 15 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-16
- Remove experimental Risc-V patch added with -12 revision.
* Tue Jan 13 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-15
- Disallow the creation of shared object that use text relocations. (#2428281)
* Fri Jan 09 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-14
- Fix Risc-V related test failures caused by -12 revision.
* Mon Jan 05 2026 Nick Clifton <nickc@redhat.com> - 2.45.50-13
- Rebase to commit be970c68891
* Thu Dec 18 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-12
- Fix compile time warning messages about discarded qualifiers.
- Change Risc-V assembler to default to disabling relaxation.
* Mon Dec 08 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-11
- Rebase to commit 8e992ccb1e4
* Thu Dec 04 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-10
- Fix testsuite failures for Risc-V target.
* Mon Nov 24 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-9
- Rebase to commit beab972c07d
- Revert patches for PR 33577
* Tue Nov 11 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-8
- Rebase to commit 96b8a8a633a
* Tue Nov 04 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-7
- Pass -flto=$RPM_BUILD_NCPUS in CFLAGS. (RHEL-121799)
* Tue Oct 28 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-6
- Rebase to commit 2006dea18d5
* Mon Oct 06 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-5
- Rebase to commit b05d1d89605
* Tue Sep 09 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-4
- Enhance the riscv-64 zicfilp-unlabeled-plt test to cope with larger offsets.
* Mon Sep 08 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-3
- Rebase to commit 79b2b564fec
* Tue Aug 19 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-2
- Rebase to commit 7e432e93f8a (previous rebase appears to be broken)
* Mon Aug 18 2025 Nick Clifton <nickc@redhat.com> - 2.45.50-1
- Rebase to commit 570f4c0c119.
* Fri Aug 15 2025 Nick Clifton <nickc@redhat.com> - 2.45-3
- Oops - the gold linker was disabled too soon, re-enabling.
* Wed Aug 13 2025 Nick Clifton <nickc@redhat.com> - 2.45-2
- Disable building of gold by default. Ref: https://fedoraproject.org/wiki/Changes/DeprecateGoldLinker
* Mon Jul 28 2025 Nick Clifton <nickc@redhat.com> - 2.45-1
- Rebase to official GNU Binutils 2.45 release.
* Fri Jul 25 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-4
- Properly handle LLVM IR bitcodes. (#2382341) (PR 33198)
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.44.90-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jul 22 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-2
- Improve strip's handling of archives containing bitcodes. (#2382341)
* Mon Jul 14 2025 Nick Clifton <nickc@redhat.com> - 2.44.90-1
- Rebase to 2.45 pre-release snapshot.
* Mon Jul 07 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-13
- Rebase to commit 21e608528c3
* Mon Jun 23 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-12
- Rebase to commit 28b75d9dcb8
* Mon Jun 09 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-11
- Rebase to commit a259da93f3c
* Tue May 27 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-10
- Rebase to commit d13aaae402f
* Mon May 12 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-9
- Rebase to commit 8dc4e62fc94
* Mon Apr 14 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-8
- Rebase to commit 6ef74a3985b
* Thu Apr 10 2025 Andrea Bolognani <abologna@redhat.com> - 2.44.50-7
- Fix BuildRequires on bison
* Wed Apr 02 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-6
- Deprecate the GOLD linker.
* Mon Mar 31 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-5
- Rebase to commit 7109ea04ac7
* Mon Mar 17 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-4
- Rebase to commit a07c8b3a73c
* Mon Mar 03 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-3
- Rebase to commit 56a0188548e
* Wed Feb 26 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-2
- Renumber patches.
- Add -std=gnu11 to CFLAGS to support the use of static_assert in the sources.
* Tue Feb 18 2025 Nick Clifton <nickc@redhat.com> - 2.44.50-1
- Rebase to commit 1256b9860f3
* Fri Feb 07 2025 Nick Clifton <nickc@redhat.com> - 2.44-3
- Fix seg fault in AArch64 linker when building u-boot. (#2326190)
* Thu Feb 06 2025 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.44-2
- Default gcs-report-dynamic to NONE for Fedora.
* Mon Feb 03 2025 Nick Clifton <nickc@redhat.com> - 2.44-1
- Rebase to official GNU Binutils 2.44 release
* Mon Jan 27 2025 Nick Clifton <nickc@redhat.com> - 2.43.90-2
- Enable separate-code by default for the RISC-V target.
* Mon Jan 20 2025 Nick Clifton <nickc@redhat.com> - 2.43.90-1
- Rebased to 2.43.90 pre-release tarball.
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.43.50-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Jan 06 2025 Nick Clifton <nickc@redhat.com> - 2.43.50-11
- Rebase to commit f832531609d
* Mon Dec 09 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-10
- Rebase to commit 3d75969bd0e
* Tue Nov 26 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-9
- Rebase to commit 1686dc7079f
* Fri Nov 15 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-8
- Spec File: Move all gprofng files into the binutils-gprofng sub-package. (2326286)
* Mon Nov 04 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-7
- Rebase to commit 55e32b3c682
- Revert commit 4f576180 which moves the .note.build-id section back to the start of the file. (PR 2321588)
* Thu Oct 31 2024 Miro Hrončok <mhroncok@redhat.com> - 2.43.50-6
- Spec File: Do not install gprofng documentation when using --without docs
* Tue Oct 22 2024 Richard W.M. Jones <rjones@redhat.com> - 2.43.50-5
- Rebuild for Jansson 2.14
(https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/)
* Mon Oct 14 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-4
- Rebase to commit 22c62092858.
* Thu Oct 03 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-3
- Add more fixes for linker testsuite failures for the RISC-V.
* Mon Sep 30 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-2
- Rebase to commit 1f4aee70ed1.
- Configure the linker to support xxhash by default.
* Tue Sep 10 2024 Nick Clifton <nickc@redhat.com> - 2.43.50-1
- Rebase to commit c839a44c391.
* Mon Sep 09 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-2
- Disable the default enablement of the linker's "-z separate-code" feature for non-x86 architectures.
* Sat Aug 17 2024 Nick Clifton <nickc@redhat.com> - 2.43.1-1
- Rebase to 2.43.1 release. (#2305399)
- Retire: binutils-LTO-restore-wrapper-symbol.patch
* Mon Aug 05 2024 Nick Clifton <nickc@redhat.com> - 2.43-2
- Use correct fix for BZ 2301454.

View file

@ -5,14 +5,14 @@
/common:
plan:
import:
url: https://src.fedoraproject.org/tests/binutils.git
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
ref: main
name: /plans/build-gating/common
/kernel-rebuild:
plan:
import:
url: https://src.fedoraproject.org/tests/binutils.git
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
ref: main
name: /plans/build-gating/kernel-rebuild

View file

@ -5,7 +5,7 @@
/common:
plan:
import:
url: https://src.fedoraproject.org/tests/binutils.git
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
ref: main
name: /plans/regression

View file

@ -1,2 +1,2 @@
SHA512 (binutils-2.43.tar.xz) = 93e063163e54d6a6ee2bd48dc754270bf757a3635b49a702ed6b310e929e94063958512d191e66beaf44275f7ea60865dbde138b624626739679fcc306b133bb
SHA512 (binutils-with-gold-2.47.50-48c933a69a8.tar.xz) = c4300e4881227c431c0bbbb949a5ee5bc113701f993766418b152df7d46d9df378ebace9efffcb6e1f0b7e72ad716bbcccf5b6aa55851dc28216555b242d18a0
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2