Closed poisonintheink closed 1 year ago
This is probably the same as https://github.com/gpujs/gpu.js/issues/711
I believe this is resolved now.
There is a similar issue on Arch Linux when running pnpm install
gpu.js version: 2.16
Error output:
.../.pnpm/gl@5.0.3/node_modules/gl install$ prebuild-install || node-gyp rebuild
│ prebuild-install warn install No prebuilt binaries found (target=20.2.0 runtime=node arch=x64 libc= platform=linux)
│ gyp info it worked if it ends with ok
│ gyp info using node-gyp@9.4.0
│ gyp info using node@20.2.0 | linux | x64
│ gyp info find Python using Python version 3.11.3 found at "/usr/bin/python3"
│ gyp info spawn /usr/bin/python3
│ gyp info spawn args [
│ gyp info spawn args 'PROJECT/node_modules/.pnpm/node-gyp@9.4.0/node_modules/node-gyp/gyp/gyp_main.py',
│ gyp info spawn args 'binding.gyp',
│ gyp info spawn args '-f',
│ gyp info spawn args 'make',
│ gyp info spawn args '-I',
│ gyp info spawn args 'PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl/build/config.gypi',
│ gyp info spawn args '-I',
│ gyp info spawn args 'PROJECT/node_modules/.pnpm/node-gyp@9.4.0/node_modules/node-gyp/addon.gypi',
│ gyp info spawn args '-I',
│ gyp info spawn args '/home/haschtl/.cache/node-gyp/20.2.0/include/node/common.gypi',
│ gyp info spawn args '-Dlibrary=shared_library',
│ gyp info spawn args '-Dvisibility=default',
│ gyp info spawn args '-Dnode_root_dir=/home/haschtl/.cache/node-gyp/20.2.0',
│ gyp info spawn args '-Dnode_gyp_dir=PROJECT/node_modules/.pnpm/node-gyp@9.4.0/node_modules/node-gyp',
│ gyp info spawn args '-Dnode_lib_file=/home/haschtl/.cache/node-gyp/20.2.0/<(target_arch)/node.lib',
│ gyp info spawn args '-Dmodule_root_dir=PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl',
│ gyp info spawn args '-Dnode_engine=v8',
│ gyp info spawn args '--depth=.',
│ gyp info spawn args '--no-parallel',
│ gyp info spawn args '--generator-output',
│ gyp info spawn args 'build',
│ gyp info spawn args '-Goutput_dir=.'
│ gyp info spawn args ]
│ gyp info spawn make
│ gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
│ make: Verzeichnis „PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl/build“ wird betreten
│ CXX(target) Release/obj.target/angle_common/angle/src/common/Float16ToFloat32.o
│ In Datei, eingebunden von ../angle/src/common/debug.h:16,
│ von ../angle/src/common/mathutil.h:12,
│ von ../angle/src/common/Float16ToFloat32.cpp:9:
│ ../angle/src/common/angleutils.h:36:14: Fehler: »uintptr_t« bezeichnet keinen Typ
│ 36 | extern const uintptr_t DirtyPointer;
│ | ^~~~~~~~~
│ ../angle/src/common/angleutils.h:21:1: Anmerkung: »uintptr_t« ist im Header »<cstdint>« definiert; haben Sie vergessen, »#include <cstdint>« zu schreiben?
│ 20 | #include <vector>
│ +++ |+#include <cstdint>
│ 21 |
│ make: *** [angle/src/angle_common.target.mk:157: Release/obj.target/angle_common/angle/src/common/Float16ToFloat32.o] Fehler 1
│ make: Verzeichnis „PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl/build“ wird verlassen
│ gyp ERR! build error
│ gyp ERR! stack Error: `make` failed with exit code: 2
│ gyp ERR! stack at ChildProcess.onExit (PROJECT/node_modules/.pnpm/node-gyp@9.4.0/node_modules/node-gyp/lib/build.js:203:23)
│ gyp ERR! stack at ChildProcess.emit (node:events:511:28)
│ gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:293:12)
│ gyp ERR! System Linux 6.1.31-2-MANJARO
│ gyp ERR! command "/usr/bin/node" "PROJECT/node_modules/.pnpm/node-gyp@9.4.0/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
│ gyp ERR! cwd PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl
│ gyp ERR! node -v v20.2.0
│ gyp ERR! node-gyp -v v9.4.0
│ gyp ERR! not ok
└─ Failed in 3.5s at PROJECT/node_modules/.pnpm/gl@5.0.3/node_modules/gl
Adding
"overrides": {
"gpu.js": {
"gl": {
"node-gyp": ">7.0.0"
}
}
}
to the package.json solved it for me (I think, because with this override prebuild packages are used?)
I am able to replicate this error with gpu.js 2.16
on Arch Linux with Linux <HOSTNAME> 6.3.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 10 Jun 2023 00:35:35 +0000 x86_64 GNU/Linux
.
689 error make: Entering directory '<PROJECT>/node_modules/gl/build'
689 error CXX(target) Release/obj.target/angle_common/angle/src/common/Float16ToFloat32.o
689 error make: Leaving directory '<PROJECT>/node_modules/gl/build'
690 error prebuild-install warn install No prebuilt binaries found (target=20.2.0 runtime=node arch=x64 libc= platform=linux)
690 error gyp info it worked if it ends with ok
690 error gyp info using node-gyp@9.4.0
690 error gyp info using node@20.2.0 | linux | x64
690 error gyp info find Python using Python version 3.11.3 found at "/usr/bin/python3"
690 error gyp info spawn /usr/bin/python3
690 error gyp info spawn args [
690 error gyp info spawn args '/home/quantatic/quantatic.github.io/node_modules/node-gyp/gyp/gyp_main.py',
690 error gyp info spawn args 'binding.gyp',
690 error gyp info spawn args '-f',
690 error gyp info spawn args 'make',
690 error gyp info spawn args '-I',
690 error gyp info spawn args '<PROJECT>/node_modules/gl/build/config.gypi',
690 error gyp info spawn args '-I',
690 error gyp info spawn args '<PROJECT>/node_modules/node-gyp/addon.gypi',
690 error gyp info spawn args '-I',
690 error gyp info spawn args '/home/<USERNAME>/.cache/node-gyp/20.2.0/include/node/common.gypi',
690 error gyp info spawn args '-Dlibrary=shared_library',
690 error gyp info spawn args '-Dvisibility=default',
690 error gyp info spawn args '-Dnode_root_dir=/home/<USERNAME>/.cache/node-gyp/20.2.0',
690 error gyp info spawn args '-Dnode_gyp_dir=<PROJECT>/node_modules/node-gyp',
690 error gyp info spawn args '-Dnode_lib_file=/home/<USERNAME>/.cache/node-gyp/20.2.0/<(target_arch)/node.lib',
690 error gyp info spawn args '-Dmodule_root_dir=<PROJECT>/node_modules/gl',
690 error gyp info spawn args '-Dnode_engine=v8',
690 error gyp info spawn args '--depth=.',
690 error gyp info spawn args '--no-parallel',
690 error gyp info spawn args '--generator-output',
690 error gyp info spawn args 'build',
690 error gyp info spawn args '-Goutput_dir=.'
690 error gyp info spawn args ]
690 error gyp info spawn make
690 error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
690 error In file included from ../angle/src/common/debug.h:16,
690 error from ../angle/src/common/mathutil.h:12,
690 error from ../angle/src/common/Float16ToFloat32.cpp:9:
690 error ../angle/src/common/angleutils.h:36:14: error: ‘uintptr_t’ does not name a type
690 error 36 | extern const uintptr_t DirtyPointer;
690 error | ^~~~~~~~~
690 error ../angle/src/common/angleutils.h:21:1: note: ‘uintptr_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
690 error 20 | #include <vector>
690 error +++ |+#include <cstdint>
690 error 21 |
690 error make: *** [angle/src/angle_common.target.mk:159: Release/obj.target/angle_common/angle/src/common/Float16ToFloat32.o] Error 1
690 error gyp ERR! build error
690 error gyp ERR! stack Error: `make` failed with exit code: 2
690 error gyp ERR! stack at ChildProcess.onExit (<PROJECT>/node_modules/node-gyp/lib/build.js:203:23)
690 error gyp ERR! stack at ChildProcess.emit (node:events:511:28)
690 error gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:293:12)
690 error gyp ERR! System Linux 6.3.7-arch1-1
690 error gyp ERR! command "/home/<USERNAME>/.local/share/rtx/installs/node/20.2.0/bin/node" "<PROJECT>/node_modules/.bin/node-gyp" "rebuild"
690 error gyp ERR! cwd <PROJECT>/node_modules/gl
690 error gyp ERR! node -v v20.2.0
690 error gyp ERR! node-gyp -v v9.4.0
690 error gyp ERR! not ok
691 verbose exit 1
I was able to find a number of related issues, for instance, https://bbs.archlinux.org/viewtopic.php?id=285729. Looking at GCC changes, it looks like GCC13 may be the root cause, as per https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes.
When running locally, I was able to resolve this by forcing an older version of GCC/G++ as follows:
CC=gcc-11 CXX=g++-11 npm install
gpu.js up to bat... node-gyp/vs2022: not today.
What is wrong?
(tldr; solution/workaround at the end)
Prefacing by saying I don't consider this a gpu.js issue, but an issue other users may have encountered and struggled with...
How do we replicate the issue?
Relevant section of the failure for better context:
How important is this (1-5)?
Expected behavior (i.e. solution)
Working Example 'package.json'