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 | expand |
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)
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)