sys-devel/gcc: fix ia64 bootstrap
authorSergei Trofimovich <slyfox@gentoo.org>
Wed, 1 May 2019 17:13:42 +0000 (18:13 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Wed, 1 May 2019 17:14:10 +0000 (18:14 +0100)
On ia64 stage2/3 comparison fails due to label wibble.

Bug: https://gcc.gnu.org/87338
Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
sys-devel/gcc/files/gcc-8.3.0-ia64-bootstrap.patch [new file with mode: 0644]
sys-devel/gcc/gcc-8.2.0-r6.ebuild
sys-devel/gcc/gcc-8.3.0-r1.ebuild

diff --git a/sys-devel/gcc/files/gcc-8.3.0-ia64-bootstrap.patch b/sys-devel/gcc/files/gcc-8.3.0-ia64-bootstrap.patch
new file mode 100644 (file)
index 0000000..0a0a25b
--- /dev/null
@@ -0,0 +1,41 @@
+https://gcc.gnu.org/PR87338
+
+From 1cc1dc32fcf6b47db4e6d28f55de343713f824a4 Mon Sep 17 00:00:00 2001
+From: James Clarke <jrtc27@jrtc27.com>
+Date: Thu, 25 Apr 2019 15:58:55 +0200
+Subject: [PATCH] PR bootstrap/87338: Fix ia64 bootstrap comparison regression
+ in r257511
+To: gcc-patches@gcc.gnu.org
+
+By using ASM_OUTPUT_LABEL, r257511 forced the assembler to start a new
+bundle when emitting an inline entry label on. Instead, use
+ASM_OUTPUT_DEBUG_LABEL like for the block begin and end labels so tags are
+emitted rather than labels.
+
+gcc/
+       PR bootstrap/87338
+       * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
+       instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
+---
+ gcc/dwarf2out.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+--- a/gcc/dwarf2out.c
++++ b/gcc/dwarf2out.c
+@@ -27670,11 +27670,8 @@ dwarf2out_inline_entry (tree block)
+   if (cur_line_info_table)
+     ied->view = cur_line_info_table->view;
+-  char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-
+-  ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_INLINE_ENTRY_LABEL,
+-                             BLOCK_NUMBER (block));
+-  ASM_OUTPUT_LABEL (asm_out_file, label);
++  ASM_OUTPUT_DEBUG_LABEL (asm_out_file, BLOCK_INLINE_ENTRY_LABEL,
++                        BLOCK_NUMBER (block));
+ }
+ /* Called from finalize_size_functions for size functions so that their body
+-- 
+1.8.5.3
+
index be3cfb4e2926ab23b8154644a22d7e4584f77e92..08707ae05afed114a06fa1edaf6db9f73f4ac89c 100644 (file)
@@ -18,3 +18,8 @@ DEPEND="${RDEPEND}
 if [[ ${CATEGORY} != cross-* ]] ; then
        PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
 fi
+
+src_prepare() {
+       toolchain_src_prepare
+       epatch "${FILESDIR}"/gcc-8.3.0-ia64-bootstrap.patch
+}
index aa06c78b543dfb035f82afb96bdc95cd24d924f2..4ccee806e93818ca053a6486b8e5935b8626f406 100644 (file)
@@ -17,3 +17,8 @@ DEPEND="${RDEPEND}
 if [[ ${CATEGORY} != cross-* ]] ; then
        PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
 fi
+
+src_prepare() {
+       toolchain_src_prepare
+       eapply "${FILESDIR}"/gcc-8.3.0-ia64-bootstrap.patch
+}