Temporary workaround for ppc64 gcc compilation bug.

Resolves: RHEL-49348
This commit is contained in:
Nick Clifton 2024-07-30 20:43:12 +01:00
parent f1b6e599f8
commit c787dc68a0
2 changed files with 35 additions and 2 deletions

22
bin.ppc64.gcc.patch Normal file
View File

@ -0,0 +1,22 @@
--- binutils.orig/ld/ldlang.c 2024-07-30 16:10:24.931862075 +0100
+++ binutils-2.41/ld/ldlang.c 2024-07-30 19:11:58.741929934 +0100
@@ -7940,6 +7940,19 @@ lang_list_remove_tail (lang_statement_li
{
union lang_statement_union **savetail;
/* Check that ORIGLIST really is an earlier state of DESTLIST. */
+
+ if (getenv ("LD_DEBUG_NEVER") != NULL)
+ {
+ /* FIXME: RHEL-49348: For some reason building this function for the
+ PowerPC architecture on RHEL-10 is resulting in a linker that
+ triggers the ASSERT below - because the origlist pointer is
+ corrupt. These fprintf statements, even if they will never be
+ used, are enough to cause the compiler to build the function
+ correctly, thus avoiding the problem. */
+ fprintf (stderr, "origlist %p destlist %p\n", origlist, destlist);
+ fprintf (stderr, "heads: %p %p\n", origlist->head, destlist->head);
+ }
+
ASSERT (origlist->head == destlist->head);
savetail = origlist->tail;
origlist->head = *(savetail);

View File

@ -2,7 +2,7 @@
Summary: A GNU collection of binary utilities
Name: binutils%{?_with_debug:-debug}
Version: 2.41
Release: 46%{?dist}
Release: 47%{?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
@ -43,7 +43,10 @@ URL: https://sourceware.org/binutils
# Enable support for GCC LTO compilation.
# Disable if it is necessary to work around bugs in LTO.
%define enable_lto 1
# FIXME: Temporarily disabled because of RHEL-49348. The linker in the current
# RHEL-10 buildroot is suffering from the compilation bug. The workaround is
# to avoid using LTO...
%define enable_lto 0
# Enable support for generating new dtags in the linker
# Disable if it is necessary to use RPATH instead.
@ -347,6 +350,11 @@ Patch41: binutils-aarch64-RELR.patch
# Lifetime: Fixed in 2.43
Patch42: binutils-Intel-APX-part-1-supplimental.patch
# Purpose: Workaround for an unresolved bug in ppc gcc
# which generates bad code in the linker. cf RHEL-49348
# Lifetime: TEMPORARY
Patch88: bin.ppc64.gcc.patch
# Purpose: Suppress the assembler's comment test as it fails - intermitantly - for RHEL-10
# Lifetime: TEMPORARY
# Patch98: binutils-suppress-gas-comment-test.patch
@ -1384,6 +1392,9 @@ exit 0
#----------------------------------------------------------------------------
%changelog
* Tue Jul 30 2024 Nick Clifton <nickc@redhat.com> - 2.41-47
- Temporary workaround for ppc64 gcc compilation bug. (RHEL-49348)
* Mon Jul 08 2024 Nick Clifton <nickc@redhat.com> - 2.41-46
- Import fix for AArch64 DT_RELR support (PR 31924).
- More fixes for Intel's APX (part 1) extensions. (RHEL-44713)