nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
106.68k stars 29.1k forks source link

armv7l libc don't have version `GLIBCXX_3.4.26' #51233

Open calidion opened 9 months ago

calidion commented 9 months ago

Version

v20.10.0

Platform

Linux localhost 3.4.113-lineageos-g0d0607df650 #1 SMP PREEMPT Thu Nov 2 17:52:53 UTC 2023 armv7l GNU/Linux

Subsystem

No response

What steps will reproduce the bug?

just run node command

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

every time

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

No response

What do you see instead?

node: /lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by node)

Additional information

No response

calidion commented 9 months ago

strings /lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBC_2.4 GLIBC_2.18 GLIBC_2.16 GLIBC_2.17 GLIBCXX_DEBUG_MESSAGE_LENGTH

targos commented 9 months ago

@nodejs/build

Our documentation says minimum GLIBC should be 2.28, not 3.4.

richardlau commented 9 months ago

@nodejs/build

Our documentation says minimum GLIBC should be 2.28, not 3.4.

Which is correct. GLIBCXX (note the "XX") refers to the libstdc++ version. For armv7l this is expected. It's noted in our documentation: https://github.com/nodejs/node/blob/a2206640f366cc145b17a2ece66d36bfa75720ee/BUILDING.md?plain=1#L181-L184

Other architectures are able to run on an earlier libstdc++ because we compile those on RHEL 8 (with gcc-toolset-10). Unfortunately RHEL 8 isn't available for armv7l so we're using a cross compiler built with crosstools-ng.

sxa commented 9 months ago

@calidion Interesing use case for arm32 builds that hadn't really occurred to me. Which version of LineageOS are you using? Can your device run 27? I'll be honest I'm not sure which version of the libraries are supported by each version as I'm not running it anywhere myself.

calidion commented 9 months ago

@sxa lineageos 18.1-20231102 android 11 hltechn for sumsung galaxy note 3

calidion commented 9 months ago

debian 10 (buster ) armhf