https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106162
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Sergei Trofimovich from comment #0) > There is a race condition when (I speculate) libstdcv++v3 is built in > parallel from different 'make' processes. Perhaps for c++98 | c++11 | x++17 > instances? There are no such instances. It is built separately for each multilib, but each of those has its own $host_builddir > > From libstdc++-v3/include/Makefile.am: > > # This header is not installed, it's only used to build libstdc++ itself. > ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} > @rm -f $@.tmp > @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp > @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp > @-grep 'define _LARGE_FILES' ${CONFIG_HEADER} >> $@.tmp > @mv $@.tmp $@ > > As a result 'bits/largefile-config.h' rule gets executed in parallel and I don't see how that's possible. It's a prerequisite of c++config.h which is built once per multilib, and parallel make processes will coordinate to only build the prereq once. Are you 100% sure you didn't actually run multiple make processes yourself, e.g by using & instead of && in a shell command?