EDIT: this is not x86 specific, see further comments below.
Holding up the unofficial-builds of v12.11.0 (we don't handle failures yet, so they're all blocked for now). Here's the failing build log for x86: https://unofficial-builds.nodejs.org/logs/201909252318-v12.11.0/x86.log
Key part:
make install DESTDIR=node-v12.11.0-linux-x86 V= PORTABLE=1
make -C out BUILDTYPE=Release V=
TOUCH /home/node/node-v12.11.0/out/Release/obj.target/tools/v8_gypfiles/v8_version.stamp
make[2]: *** Norule to make target '../deps/v8/test/torque/test-torque.tq', needed by '7ea8302c51573d5268a52f6014edc10e884f440e.intermediate'. Stop.
We don't officially support them but have plenty of users, so if we can address this it would be really great. It's V8-related and I don't know how to go about assessing whether this is easy to address.
@nodejs/v8 any help getting this addressed on master would be greatly appreciated.
Possibly related: https://github.com/nodejs/node/issues/25095
I think it's the tarball that's the problem
Actually yeah, I removed x86 from the unofficial-builds pipeline and the musl build broke with the same error: https://unofficial-builds.nodejs.org/logs/201909260213-v12.11.0/musl.log
So the title is wrong for this issue, it's not x86 specific.
Can reproduce by unpacking tarball, running configure, and then make (on Debian and Alpine):
docker run --rm gcc bash -c 'curl https://nodejs.org/dist/v12.11.0/node-v12.11.0.tar.xz | tar -xJ && cd node-v12.11.0 && ./configure && make -j4'
I can reproduce on a musl based system:
INFO: Using floating patch "tools/icu/patches/64/source/common/putil.cpp" from "tools/icu"
INFO: Using floating patch "tools/icu/patches/64/source/i18n/dtptngen.cpp" from "tools/icu"
INFO: configure completed successfully
make -C out BUILDTYPE=Release V=0
touch /home/goldie/.cache/kiss/build-17145/nodejs/out/Release/obj.target/tools/v8_gypfiles/v8_version.stamp
make[1]: *** No rule to make target '../deps/v8/test/torque/test-torque.tq', needed by '0c23b8358f0f4da23b589e1b64ee728c8b90e303.intermediate'. Stop.
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:101: node] Error 2
Very simple build options to reproduce:
./configure \
--prefix=/usr
make
Part of the V8 7.7 update (https://github.com/nodejs/node/pull/28918) added this:
https://github.com/nodejs/node/blob/4d2856ed5aa9d831c06828d98db88ee91385372c/tools/v8_gypfiles/v8.gyp#L85
Our source tarballs currently exclude everything in deps/v8/test:
https://github.com/nodejs/node/blob/d36b6f8da39bda0e2f52680f0f7a81ee0146e23f/Makefile#L1040
https://github.com/nodejs/node/pull/29712 includes deps/v8/test/torque in the source tarball but still excludes the rest of deps/v8/test and should fix the build from the source tarball.
The V8 7.7 update didn't really add that line. It just made it explicit (the list was generated by a script before).
The V8 7.7 update didn't really add that line. It just made it explicit (the list was generated by a script before).
@targos It added it back in as we removed it previously in https://github.com/nodejs/node/pull/25097.
For those wanting a quick fix for the current tarball:
deps/v8/test/torque/test-torque.tq from the repository. While my build hasn't yet completed, it has been running for 20~ minutes now. It'd be great to know if more is needed to fix this present issue. Build succeeded with above workaround.
I suggest we fix that issue soon and release a patch release right after.
Confirmed that @dylanaraps' method of including deps/v8/test/torque/test-torque.tq alone is enough to get it to build. Here's a one-liner with curl to get it into your build:
curl -sfSL https://github.com/nodejs/node/archive/${VERSION}.tar.gz | tar -xz --strip-components=1 -- node-12.11.0/deps/v8/test/torque/test-torque.tq
I used it successfully to build on Alpine: https://github.com/mhart/alpine-node/blob/12.11.0/Dockerfile#L35
Most helpful comment
Confirmed that @dylanaraps' method of including
deps/v8/test/torque/test-torque.tqalone is enough to get it to build. Here's a one-liner with curl to get it into your build:I used it successfully to build on Alpine: https://github.com/mhart/alpine-node/blob/12.11.0/Dockerfile#L35