Skip to content

Build failed when trying to install Node.js LTS with NVM on Raspberry Pi OS with 32-bit userspace #66809

Open

Description

@IvanPizhenko

Version

v24.21.0

Platform

OS identification:

pi@pi-trixie32:~ $ uname -a
Linux pi-trixie32 6.12.109 #1 SMP PREEMPT Thu Oct  1 20:36:48 EEST 2026 aarch64 GNU/Linux
pi@pi-trixie32:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 13 (trixie)
Release:        13
Codename:       trixie


Compiler information:


This is Raspberry Pi OS with 32-bit userspace. Kernel still 64-bit, so `uname -a` shows `aarch64`. Image can be downloaded from `https://www.raspberrypi.com/software/operating-systems/`.

$ c++ --version
c++ (Raspbian 14.2.0-19+rpi1) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Subsystem

No response

What steps will reproduce the bug?

  1. Install NVM (instructions are provided in the README of this repo https://github.com/nvm-sh/nvm)
  2. Attempt to install latest LTS version of Node.js: nvm install --lts

Attempt to install Node.js with NVM results in a build from sources, because there is no prebuilt binary for this platform available.

How often does it reproduce? Is there a required condition?

Always

What is the expected behavior? Why is that the expected behavior?

Build succeeds.

What do you see instead?

Build fails, as follows:

  touch /home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/tools/v8_gypfiles/v8_flags.stamp

LD_LIBRARY_PATH=/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/lib.host:/home/pi/.nvm/.cache/src/node-v24.21.0
/files/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/icu; mkdir -p
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj/gen; cp
"/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj/gen/icudt78l.dat"
"/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj/gen/icudt78.dat"
  g++ -o /home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/openssl-cli -pthread -rdynamic  -Wl,--start-group
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
cmp_mock_srv.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/asn1parse.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ca.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ciphers.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/cmp.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/cms.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/crl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/crl2pkcs7.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dgst.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dhparam.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dsa.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/dsaparam.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ec.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ecparam.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/enc.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/engine.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/errstr.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/fipsinstall.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/gendsa.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/genpkey.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/genrsa.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/info.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/kdf.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/list.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/mac.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/nseq.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ocsp.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/openssl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/passwd.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkcs12.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkcs7.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkcs8.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkey.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkeyparam.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/pkeyutl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/prime.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/config/archs/linux-armv4/
asm/apps/progs.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/rand.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/rehash.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/req.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/rsa.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/rsautl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/s_client.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/s_server.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/s_time.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/sess_id.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/skeyutl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/smime.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/speed.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/spkac.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/srp.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/storeutl.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/ts.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/verify.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/version.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/x509.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/app_libctx
.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/app_params
.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
app_provider.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/app_rand.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/app_x509.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/apps.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
apps_opt_printf.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/apps_ui.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/columns.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/engine.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
engine_loader.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/fmt.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
http_server.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/log.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/names.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/opt.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/s_cb.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/s_socket.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/
tlssrp_depr.o /home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/deps/openssl/libopenssl.a
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/deps/zlib/libzlib.a
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/deps/brotli/libbrotli.a
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/deps/zstd/libzstd.a -lm -ldl -pthread -latomic
-Wl,--end-group
  g++ -o /home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/bytecode_builtins_list_generator -pthread -rdynamic
-Wl,--start-group
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/bytecode_builtins_list_generator/deps/v8/src/
builtins/generate-bytecodes-builtins-list.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/bytecode_builtins_list_generator/deps/v8/src/
interpreter/bytecode-operands.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/bytecode_builtins_list_generator/deps/v8/src/
interpreter/bytecodes.o
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/tools/v8_gypfiles/libv8_libbase.a
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/tools/v8_gypfiles/libabseil.a -ldl -lrt
-Wl,--end-group
/usr/bin/ld:
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/obj.target/abseil/deps/v8/third_party/abseil-cpp/absl/base/
internal/spinlock_wait.o: in function `absl::base_internal::SpinLockSuggestedDelayNS(int)':
spinlock_wait.cc:(.text._ZN4absl13base_internal24SpinLockSuggestedDelayNSEi+0x18): undefined reference to
`__atomic_load_8'
/usr/bin/ld: spinlock_wait.cc:(.text._ZN4absl13base_internal24SpinLockSuggestedDelayNSEi+0x4c): undefined reference to
`__atomic_store_8'
collect2: error: ld returned 1 exit status
make[1]: *** [tools/v8_gypfiles/bytecode_builtins_list_generator.target.mk:219:
/home/pi/.nvm/.cache/src/node-v24.21.0/files/out/Release/bytecode_builtins_list_generator] Error 1
make[1]: *** Waiting for unfinished jobs....
rm a1f3483d2ff79d89c91973394d93f0eea1b7ff6717811e203d1a6a37e22f093f.intermediate
make: *** [Makefile:143: node] Error 2
nvm: install v24.21.0 failed!

Additional information

  1. Additional diagnostic:
$ c++ -print-file-name=libatomic.so
/usr/lib/gcc/arm-linux-gnueabihf/12/libatomic.so

$ ls -la /usr/lib/gcc/arm-linux-gnueabihf/12/libatomic.so
lrwxrwxrwx 1 root root 43 Mar 28  2025 /usr/lib/gcc/arm-linux-gnueabihf/12/libatomic.so -> ../../../arm-linux-gnueabihf/libatomic.so.1

$ nm -D $(c++ -print-file-name=libatomic.so) | grep __atomic_load_8
00003f98 i __atomic_load_8@@LIBATOMIC_1.0

So, libatomic1 is present, required symbol in it is also present.
It looks like order of libraries (-l options) needs to be fixes.

  1. Same issue happens also on the previous version of Raspbian (i.e. Raspbian 12 "Bookworm") with 32-bit userspace.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions