Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: parallel build failure in "make includes" with same rules being run multiple times in parallel



At Sun, 08 Sep 2024 12:55:55 -0700, "Greg A. Woods" <woods%planix.ca@localhost> wrote:
Subject: parallel build failure in "make includes" with same rules being run multiple times in parallel
>
> I just had the following happen during a build with '-j 12', in the
> "make includes" phase.  This looks like a parallel build race failure
> where the same rules were run in parallel when they shouldn't have done
> so.  (I'm pretty sure I've seen similar races in other parts of the tree
> before too, but I've just brushed it off and re-ran the build.)
>
>     mv: rename gthr-single.h.tmp to gthr-single.h: No such file or directory
>     mv: rename gthr.h.tmp to gthr.h: No such file or directory
>     --- gthr-single.h ---
>     *** [gthr-single.h] Error code 1
>
>     nbmake[7]: stopped in /work/woods/m-NetBSD-current/external/gpl3/gcc/lib/libstdc++-v3/include/bits
>
> If I go there and run it by hand all is well:
>
>     $ cd external/gpl3/gcc/lib/libstdc++-v3/include/bits/
>     $ mynbmake includes
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/basic_file.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/c++allocator.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/c++io.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/c++locale.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/gthr-posix.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/gthr-single.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/gthr.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/messages_members.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/opt_random.h
>         install  /build/woods/b2/current-amd64-destdir/usr/include/g++/bits/time_members.h
>     includes ===> arch
>     includes ===> arch/i386
>     includes ===> arch/x86_64
>
> Given a quick look at the Makefile in that directory I'm guessing it
> needs to be re-written to serialize the build of the three headers
> gthr.h, gthr-single.h, and gthr-posix.h, but I'm not sure exactly how to
> accomplish that in this context.

And again yesterday, this time during the cross-build on macOS:

mv: gthr-single.h.tmp: No such file or directory
--- gthr-single.h ---

*** Failed target: gthr-single.h
*** In directory: /Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits
*** Failed commands:
        ${TOOL_SED}  -e 's/\(UNUSED\)/_GLIBCXX_\1/g'  -e 's/\(GCC[A-Z_]*_H\)/_GLIBCXX_\1/g'  < ${DIST}/libgcc/gthr-single.h > ${.TARGET}.tmp && mv ${.TARGET}.tmp ${.TARGET}
        => /Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbsed  -e 's/\(UNUSED\)/_GLIBCXX_\1/g'  -e 's/\(GCC[A-Z_]*_H\)/_GLIBCXX_\1/g'  < /Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/dist/libgcc/gthr-single.h > gthr-single.h.tmp && mv gthr-single.h.tmp gthr-single.h
*** [gthr-single.h] Error code 1

nbmake[10]: stopped making "includes" in /Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits
--- includes-arch ---

*** Failed target: includes-arch
*** In directory: /Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits
*** Failed commands:
        @${MAKEDIRTARGET} ${.TARGET:C/^[^-]*-//} ${.TARGET:C/-.*$//}
        => @@_makedirtarget() {  dir="$1"; shift;  target="$1"; shift;  case "${dir}" in  /*)   this="${dir}/";  real="${dir}" ;;  .)   this="external/gpl3/gcc/lib/libstdc++-v3/include/bits/";  real="/Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits" ;;  *)        this="external/gpl3/gcc/lib/libstdc++-v3/include/bits/${dir}/";  real="/Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits/${dir}" ;;  esac;  show=${this:-.};  echo "${target} ===> ${show%/}${1:+        (with: $@)}";  cd "${real}"  &&  /Users/woods/build/woods/very.local/trunk-x86_64-amd64-tools/bin/nbmake _THISDIR_="${this}" "$@" ${target};  };  _makedirtarget arch includes
*** [includes-arch] Error code 6

nbmake[10]: stopped making "includes" in /Volumes/work/woods/g-NetBSD-src/external/gpl3/gcc/lib/libstdc++-v3/include/bits


Re-running "nbmake includeds" again by hand completes with no error.

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgpillwNeFsv6.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index