This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/81797] gcc 7.1.0 fails to build on macOS 10.13 (High Sierra):
- From: "egallager at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Aug 2017 16:00:51 +0000
- Subject: [Bug target/81797] gcc 7.1.0 fails to build on macOS 10.13 (High Sierra):
- Auto-submitted: auto-generated
- References: <bug-81797-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
Eric Gallager <egallager at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64-apple-darwin17.0.0
Status|UNCONFIRMED |NEW
Keywords| |build
Last reconfirmed| |2017-08-17
Component|libstdc++ |target
CC| |egallager at gcc dot gnu.org,
| |howarth.at.gcc at gmail dot com
Host| |x86_64-apple-darwin17.0.0
Ever confirmed|0 |1
Build| |x86_64-apple-darwin17.0.0
--- Comment #4 from Eric Gallager <egallager at gcc dot gnu.org> ---
Redoing lost comments:
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01294.html
Jack Howarth <howarth.at.gcc at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |howarth.at.gcc at gmail dot
com
--- Comment #3 from Jack Howarth <howarth.at.gcc at gmail dot com> ---
I don't see this issue with the gcc7-7.1.0-1 fink package build on High Sierra.
This is from a clean install of fink master on 10.13 using the proposed changes
from...
https://github.com/fink/fink/pull/143
to bootstrap fink git master on 10.13 and patching all the fink package
dependencies that trip over the increased format string strictness in 10.13...
http://lists.gnu.org/archive/html/bug-gnulib/2017-07/msg00056.html
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01310.html
Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-08-13
Ever confirmed|0 |1
--- Comment #4 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
We have a Homebrew user report it, and I can see it myself. It is intermittent,
and I have seen it happen twice, always with "make -j4" (2 out of 4 parallel
builds). Building with -j1 does not appear to trigger the issue.
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01311.html
--- Comment #5 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
I've also found one case where the error is slightly different (also "make
-j4"):
make "AR_FLAGS=rc" "CC_FOR_BUILD=clang"
"CC_FOR_TARGET=/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/xgcc
-B/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/" "CFLAGS=-g -O2
-m32" "CXXFLAGS=-g -O2 -m32" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-g
-O2" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=-m32" "LIBCFLAGS=-g -O2 -m32" "LIBCFLAGS_FOR_TARGET=-g -O2"
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000
--split-size=5000000 " "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/usr/local/Cellar/gcc/7.1.0"
"infodir=/usr/local/Cellar/gcc/7.1.0/share/info"
"libdir=/usr/local/Cellar/gcc/7.1.0/lib/gcc/7"
"includedir=/usr/local/Cellar/gcc/7.1.0/include"
"prefix=/usr/local/Cellar/gcc/7.1.0"
"tooldir=/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0"
"gxx_include_dir=/usr/local/Cellar/gcc/7.1.0/include/c++/7.1.0" "AR=ar"
"AS=/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/as"
"LD=/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/collect-ld"
"RANLIB=ranlib"
"NM=/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" all-recursive
Making all in include
mkdir -p ./x86_64-apple-darwin17.0.0/bits/stdc++.h.gch
mkdir -p ./x86_64-apple-darwin17.0.0/bits/stdc++.h.gch
/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/xgcc -shared-libgcc
-B/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc -nostdinc++
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/src
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/src/.libs
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/libsupc++/.libs
-B/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/bin/
-B/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/lib/ -isystem
/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/include -isystem
/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/sys-include -m32 -x
c++-header -nostdinc++ -g -O2 -m32
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/include/x86_64-apple-darwin17.0.0
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/include
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/libstdc++-v3/libsupc++ -O2
-g -std=gnu++0x
/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/libstdc++-v3/include/precompiled/stdc++.h
\
-o x86_64-apple-darwin17.0.0/bits/stdc++.h.gch/O2ggnu++0x.gch
/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc/xgcc -shared-libgcc
-B/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/./gcc -nostdinc++
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/src
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/src/.libs
-L/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/libsupc++/.libs
-B/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/bin/
-B/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/lib/ -isystem
/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/include -isystem
/usr/local/Cellar/gcc/7.1.0/x86_64-apple-darwin17.0.0/sys-include -m32 -x
c++-header -nostdinc++ -g -O2 -m32
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/include/x86_64-apple-darwin17.0.0
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/build/x86_64-apple-darwin17.0.0/i386/libstdc++-v3/include
-I/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/libstdc++-v3/libsupc++ -O2
-g
/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/libstdc++-v3/include/precompiled/stdc++.h
-o x86_64-apple-darwin17.0.0/bits/stdc++.h.gch/O2g.gch
/private/tmp/gcc-20170813-56216-v7ncm/gcc-7.1.0/libstdc++-v3/include/precompiled/stdc++.h:56:10:
fatal error: cstdbool: No such file or directory
#include <cstdbool>
^~~~~~~~~~
compilation terminated.
make[9]: *** [x86_64-apple-darwin17.0.0/bits/stdc++.h.gch/O2g.gch] Error 1
After make aborts, the contents of the include folders in that build are:
bash-3.2$ ls x86_64-apple-darwin17.0.0/i386/libstdc++-v3/include/
Makefile complex experimental
numeric stamp-debug
string
algorithm complex.h ext
optional stamp-decimal
string_view
any condition_variable fenv.h
ostream stamp-dual-abi
system_error
array csetjmp forward_list
parallel stamp-experimental
tgmath.h
atomic csignal fstream
profile stamp-experimental-bits
thread
backward cstdalign functional
queue stamp-ext
tr1
bits cstdarg future
random stamp-extern-template
tr2
bitset cstdbool gstdint.h
ratio stamp-host
tuple
cassert cstddef iomanip
regex stamp-namespace-version
type_traits
ccomplex cstdint ios
scoped_allocator stamp-parallel
typeindex
cctype cstdio iosfwd
set stamp-pb
unordered_map
cerrno cstdlib iostream
shared_mutex stamp-profile
unordered_set
cfenv cstring istream
sstream stamp-profile-impl
utility
cfloat ctgmath iterator
stack stamp-std
valarray
chrono ctime limits
stamp-allocator-new stamp-tr1
variant
cinttypes cuchar list
stamp-backward stamp-tr2
vector
ciso646 cwchar locale
stamp-bits stamp-visibility
x86_64-apple-darwin17.0.0
climits cwctype map
stamp-bits-sup stamp-x86_64-apple-darwin17.0.0
clocale debug math.h
stamp-c_base stdexcept
cmath decimal memory
stamp-c_compatibility stdlib.h
codecvt deque mutex
stamp-cxx11-abi streambuf
bash-3.2$ ls x86_64-apple-darwin17.0.0/libstdc++-v3/include
Makefile complex experimental
numeric stamp-debug
string
algorithm complex.h ext
optional stamp-decimal
string_view
any condition_variable fenv.h
ostream stamp-dual-abi
system_error
array csetjmp forward_list
parallel stamp-experimental
tgmath.h
atomic csignal fstream
profile stamp-experimental-bits
thread
backward cstdalign functional
queue stamp-ext
tr1
bits cstdarg future
random stamp-extern-template
tr2
bitset cstdbool gstdint.h
ratio stamp-host
tuple
cassert cstddef iomanip
regex stamp-namespace-version
type_traits
ccomplex cstdint ios
scoped_allocator stamp-parallel
typeindex
cctype cstdio iosfwd
set stamp-pb
unordered_map
cerrno cstdlib iostream
shared_mutex stamp-profile
unordered_set
cfenv cstring istream
sstream stamp-profile-impl
utility
cfloat ctgmath iterator
stack stamp-std
valarray
chrono ctime limits
stamp-allocator-new stamp-tr1
variant
cinttypes cuchar list
stamp-backward stamp-tr2
vector
ciso646 cwchar locale
stamp-bits stamp-visibility
x86_64-apple-darwin17.0.0
climits cwctype map
stamp-bits-sup stamp-x86_64-apple-darwin17.0.0
clocale debug math.h
stamp-c_base stdexcept
cmath decimal memory
stamp-c_compatibility stdlib.h
codecvt deque mutex
stamp-cxx11-abi streambuf
I am not sure what other information I can pass on…
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01312.html
--- Comment #6 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
(On both macOS 10.12 and 10.13, make is "GNU Make 3.81". But I have never seen
that bug on 10.12, and it's not been reported by any Homebrew user.)
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01313.html
--- Comment #7 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
Yet another one:
In file included from
/Users/fx/ibin/x86_64-apple-darwin17.0.0/libstdc++-v3/include/bits/stl_algo.h:62:0,
from
/Users/fx/ibin/x86_64-apple-darwin17.0.0/libstdc++-v3/include/algorithm:62,
from
/Users/fx/gcc-7.1.0/libstdc++-v3/include/precompiled/stdc++.h:65:
/Users/fx/ibin/x86_64-apple-darwin17.0.0/libstdc++-v3/include/bits/stl_tempbuf.h:60:10:
fatal error: bits/stl_construct.h: No such file or directory
#include <bits/stl_construct.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [x86_64-apple-darwin17.0.0/bits/stdc++.h.gch/O2g.gch] Error 1
Yet when make aborts, the file
x86_64-apple-darwin17.0.0/libstdc++-v3/include/bits/stl_construct.h is present.
So I guess it's a race condition somewhere in the Makefile.
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01314.html
--- Comment #8 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
Can reproduce with GNU Make 4.2.1, on the same system.
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01315.html
--- Comment #9 from Jack Howarth <howarth.at.gcc at gmail dot com> ---
(In reply to Francois-Xavier Coudert from comment #8)
> Can reproduce with GNU Make 4.2.1, on the same system.
I assume all of these builds are done using a gcc7.rb file run under ruby,
correct? You might try a manual build outside of ruby (but duplicating there
exact build approach).
There is a history of certain race condition bugs only being exposed when make
is run under a particular program...
http://savannah.gnu.org/bugs/index.php?46261
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01316.html
--- Comment #10 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
(In reply to Jack Howarth from comment #9)
No, I can reproduce this with a build outside Homebrew/ruby. From the command
line:
$ ../gcc-7.1.0/configure --build=x86_64-apple-darwin17.0.0
--prefix=/usr/local/Cellar/gcc/7.1.0 --with-gmp=/usr/local/opt/gmp
--with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc
--with-isl=/usr/local/opt/isl --enable-checking=release
--with-native-system-header-dir=/usr/include
--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
$ make -j4
The only thing I can think of is that maybe, just maybe, it's due to filesystem
timestamp granularity? My 10.13 system is running on APFS filesystem, which has
1 ns granularity (smaller than 1 s for HFS+).
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01318.html
--- Comment #11 from Jack Howarth <howarth.at.gcc at gmail dot com> ---
(In reply to Francois-Xavier Coudert from comment #10)
> (In reply to Jack Howarth from comment #9)
>
>
> The only thing I can think of is that maybe, just maybe, it's due to
> filesystem timestamp granularity? My 10.13 system is running on APFS
> filesystem, which has 1 ns granularity (smaller than 1 s for HFS+).
That sounds much more likely as the trigger for the problem. I only have hard
drives to test 10.13 on so I am stuck with HFS (and wouldn't press the envelope
with APFS without using it on an SSD).
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01319.html
--- Comment #12 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
(In reply to Francois-Xavier Coudert from comment #10)
> The only thing I can think of is that maybe, just maybe, it's due to
> filesystem timestamp granularity? My 10.13 system is running on APFS
> filesystem, which has 1 ns granularity (smaller than 1 s for HFS+).
Some potential confirmation of this: compiling with the 10.12 Xcode 8 on the
10.13 machine with APFS leads to the same error.
Another difference between HFS+ and APFS is file ordering: “Calling readdir(2)
on a directory in APFS returns filenames in hash order, whereas HFS+ returns
filenames in lexicographical order.”
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01320.html
--- Comment #13 from Jack Howarth <howarth.at.gcc at gmail dot com> ---
(In reply to Francois-Xavier Coudert from comment #12)>
> Some potential confirmation of this: compiling with the 10.12 Xcode 8 on the
> 10.13 machine with APFS leads to the same error.
>
> Another difference between HFS+ and APFS is file ordering: “Calling
> readdir(2) on a directory in APFS returns filenames in hash order, whereas
> HFS+ returns filenames in lexicographical order.”
It might be an interesting exercise to encrypt the APFS volume and see if that
throws just enough additional filesystem overhead in to make the problem go
latent.
https://gcc.gnu.org/ml/gcc-bugs/2017-08/msg01569.html
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |build
Target| |x86_64-apple-darwin17.0.0
Component|libstdc++ |target
Host| |x86_64-apple-darwin17.0.0
Build| |x86_64-apple-darwin17.0.0
--- Comment #14 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I'm changing the component, because I don't think this is a libstdc++ issue.