Node: test-torque.tq failing source tarball builds for v12.11.0 (V8 7.7)

Created on 26 Sep 2019  路  10Comments  路  Source: nodejs/node

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.

Most helpful comment

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

All 10 comments

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:

  • Grab deps/v8/test/torque/test-torque.tq from the repository.
  • Add it to the extracted tarball source in the same location.

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

fanjunzhi picture fanjunzhi  路  3Comments

stevenvachon picture stevenvachon  路  3Comments

seishun picture seishun  路  3Comments

dfahlander picture dfahlander  路  3Comments

danialkhansari picture danialkhansari  路  3Comments