[hurd,commited] hurd: fix gcc build in build-many-glibcs.py

Message ID 20180127185643.6837-1-samuel.thibault@ens-lyon.org
State New
Headers show
Series
  • [hurd,commited] hurd: fix gcc build in build-many-glibcs.py
Related show

Commit Message

Samuel Thibault Jan. 27, 2018, 6:56 p.m.
gcc's libcilkrts has never actually supported GNU/Hurd, and doesn't
automatically disable it, and the support was actually removed in gcc trunk,
so that will never actually be fixed there.

	* scripts/build-many-glibcs.py [os == gnu] (build_gcc): Pass
	--disable-libcilkrts to gcc configure.
---
 ChangeLog                    | 2 ++
 scripts/build-many-glibcs.py | 2 ++
 2 files changed, 4 insertions(+)

-- 
2.15.1

Comments

Joseph Myers Jan. 29, 2018, 1:50 p.m. | #1
On Sat, 27 Jan 2018, Samuel Thibault wrote:

> gcc's libcilkrts has never actually supported GNU/Hurd, and doesn't

> automatically disable it, and the support was actually removed in gcc trunk,

> so that will never actually be fixed there.


I don't think this is the best approach for disabling libcilkrts.  
Followup patch committed.

Clean up build-many-glibcs.py libcilkrts disabling.

The disabling of libcilkrts in build-many-glibcs.py has some
peculiarities.  It's only for the final GCC build, not the initial
bootstrap one, whereas normally anything disabled for the final build
should be disabled for the bootstrap one as well.  And it's only for
Hurd, when it's more natural by analogy with the libsanitizer
disabling to disable this library unconditionally, not only for
targets where it's known to break.  This patch cleans up that
disabling accordingly, adding a comment so it's obvious it can be
removed once GCC 7 is too old to build glibc.

2018-01-29  Joseph Myers  <joseph@codesourcery.com>

	* scripts/build-many-glibcs.py (Config.build_gcc): Use
	--disable-libcilkrts unconditionally, not just for the final GCC
	build for Hurd.

diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index dad51a5..0c2ea85 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -1311,8 +1311,12 @@ class Config(object):
         # libsanitizer commonly breaks because of glibc header
         # changes, or on unusual targets.  libssp is of little
         # relevance with glibc's own stack checking support.
+        # libcilkrts does not support GNU/Hurd (and has been removed
+        # in GCC 8, so --disable-libcilkrts can be removed once glibc
+        # no longer supports building with older GCC versions).
         cfg_opts = list(self.gcc_cfg)
-        cfg_opts += ['--disable-libsanitizer', '--disable-libssp']
+        cfg_opts += ['--disable-libsanitizer', '--disable-libssp',
+                     '--disable-libcilkrts']
         host_libs = self.ctx.host_libraries_installdir
         cfg_opts += ['--with-gmp=%s' % host_libs,
                      '--with-mpfr=%s' % host_libs,
@@ -1343,8 +1347,6 @@ class Config(object):
             tool_build = 'gcc'
             cfg_opts += ['--enable-languages=c,c++', '--enable-shared',
                          '--enable-threads']
-            if self.os == 'gnu':
-                cfg_opts += ['--disable-libcilkrts']
         self.build_cross_tool(cmdlist, 'gcc', tool_build, cfg_opts)
 
 

-- 
Joseph S. Myers
joseph@codesourcery.com

Patch

diff --git a/ChangeLog b/ChangeLog
index 497b00f65a..88f6d93c12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,8 @@ 
 	instead of void *.
 	* sysdeps/pthread/timer_create.c (timer_create): Do not use
 	timer_ptr2id to cast struct timer_node * to void *.
+	* scripts/build-many-glibcs.py [os == gnu] (build_gcc): Pass
+	--disable-libcilkrts to gcc configure.
 
 2018-01-27  James Clarke  <jrtc27@jrtc27.com>
 
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 8a2e068577..fbb701e25d 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -1329,6 +1329,8 @@  class Config(object):
             tool_build = 'gcc'
             cfg_opts += ['--enable-languages=c,c++', '--enable-shared',
                          '--enable-threads']
+            if self.os == 'gnu':
+                cfg_opts += ['--disable-libcilkrts']
         self.build_cross_tool(cmdlist, 'gcc', tool_build, cfg_opts)