commit:     2886ab1e3c924cd8b82354ab1e7011f0a1e3f40d
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Wed May  1 17:13:42 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed May  1 17:14:10 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2886ab1e

sys-devel/gcc: fix ia64 bootstrap

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 <AT> gentoo.org>

 sys-devel/gcc/files/gcc-8.3.0-ia64-bootstrap.patch | 41 ++++++++++++++++++++++
 sys-devel/gcc/gcc-8.2.0-r6.ebuild                  |  5 +++
 sys-devel/gcc/gcc-8.3.0-r1.ebuild                  |  5 +++
 3 files changed, 51 insertions(+)

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
index 00000000000..0a0a25b5655
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-8.3.0-ia64-bootstrap.patch
@@ -0,0 +1,41 @@
+https://gcc.gnu.org/PR87338
+
+From 1cc1dc32fcf6b47db4e6d28f55de343713f824a4 Mon Sep 17 00:00:00 2001
+From: James Clarke <[email protected]>
+Date: Thu, 25 Apr 2019 15:58:55 +0200
+Subject: [PATCH] PR bootstrap/87338: Fix ia64 bootstrap comparison regression
+ in r257511
+To: [email protected]
+
+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
+

diff --git a/sys-devel/gcc/gcc-8.2.0-r6.ebuild 
b/sys-devel/gcc/gcc-8.2.0-r6.ebuild
index be3cfb4e292..08707ae05af 100644
--- a/sys-devel/gcc/gcc-8.2.0-r6.ebuild
+++ b/sys-devel/gcc/gcc-8.2.0-r6.ebuild
@@ -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
+}

diff --git a/sys-devel/gcc/gcc-8.3.0-r1.ebuild 
b/sys-devel/gcc/gcc-8.3.0-r1.ebuild
index aa06c78b543..4ccee806e93 100644
--- a/sys-devel/gcc/gcc-8.3.0-r1.ebuild
+++ b/sys-devel/gcc/gcc-8.3.0-r1.ebuild
@@ -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
+}

Reply via email to