Bug#916591: gcc-8: Please add patch to disable broken selective scheduling on ia64

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.debian.ports.ia64
Message-ID <154495979123.6407.16978689852661986332.reportbug__48638.3531977937$1544960055$gmane$org@z6.physik.fu-berlin.de>
Source: gcc-8
Version: 8.2.0-12
Severity: normal
Tags: patch
User: [email protected]
Usertags: ia64

Hello!

The optimization feature "selective scheduling" on ia64 is broken and
causes multiple packages failing to build from source when built with
-O3 [1].

Since gcc upstream is pondering to remove selective scheduling anyway
and it currently causes only trouble for us on ia64, I suggest to
disable it for ia64 which is what the attached patch and debdiff do.

Please use either the debdiff or the patch. I have tested the patch.

Thanks,
Adrian

> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85412

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - [email protected]
`. `'   Freie Universitaet Berlin - [email protected]
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
gcc-8-ia64-disable-selective-scheduling.debdiff (text/plain, 1.4 KB)
diff -Nru old/gcc-8-8.2.0/debian/patches/ia64-disable-selective-scheduling.diff new/gcc-8-8.2.0/debian/patches/ia64-disable-selective-scheduling.diff
--- old/gcc-8-8.2.0/debian/patches/ia64-disable-selective-scheduling.diff	1970-01-01 01:00:00.000000000 +0100
+++ new/gcc-8-8.2.0/debian/patches/ia64-disable-selective-scheduling.diff	2018-12-16 12:18:41.641049632 +0100
@@ -0,0 +1,16 @@
+--- a/src/gcc/config/ia64/ia64.c	2018-01-03 11:03:58.000000000 +0100
++++ b/src/gcc/config/ia64/ia64.c	2018-12-16 12:19:05.420184086 +0100
+@@ -6122,13 +6122,6 @@
+ static void
+ ia64_override_options_after_change (void)
+ {
+-  if (optimize >= 3
+-      && !global_options_set.x_flag_selective_scheduling
+-      && !global_options_set.x_flag_selective_scheduling2)
+-    {
+-      flag_selective_scheduling2 = 1;
+-      flag_sel_sched_pipelining = 1;
+-    }
+   if (mflag_sched_control_spec == 2)
+     {
+       /* Control speculation is on by default for the selective scheduler,
diff -Nru old/gcc-8-8.2.0/debian/rules.patch new/gcc-8-8.2.0/debian/rules.patch
--- old/gcc-8-8.2.0/debian/rules.patch	2018-12-16 12:19:39.000000000 +0100
+++ new/gcc-8-8.2.0/debian/rules.patch	2018-12-16 12:20:40.509053873 +0100
@@ -76,6 +76,7 @@
 	kfreebsd-decimal-float \
  	powerpcspe_remove_many \
 	pr87531-revert \
+	ia64-disable-selective-scheduling \
 
 # FIXME: see #915194
 #      gcc-search-prefixed-as-ld \
ia64-disable-selective-scheduling.diff (text/plain, 571 B)
--- a/src/gcc/config/ia64/ia64.c	2018-01-03 11:03:58.000000000 +0100
+++ b/src/gcc/config/ia64/ia64.c	2018-12-16 12:19:05.420184086 +0100
@@ -6122,13 +6122,6 @@
 static void
 ia64_override_options_after_change (void)
 {
-  if (optimize >= 3
-      && !global_options_set.x_flag_selective_scheduling
-      && !global_options_set.x_flag_selective_scheduling2)
-    {
-      flag_selective_scheduling2 = 1;
-      flag_sel_sched_pipelining = 1;
-    }
   if (mflag_sched_control_spec == 2)
     {
       /* Control speculation is on by default for the selective scheduler,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.