At Sun, 08 Sep 2024 12:55:55 -0700, "Greg A. Woods" <wo...@planix.ca> 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 <gwo...@acm.org>

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

Attachment: pgpbA4roiRKH1.pgp
Description: OpenPGP Digital Signature

Reply via email to