Как включить версии glibc, необходимые узлу, в мою конфигурацию buildroot?

Я создаю корневую файловую систему с помощью buildroot (работает на Ubuntu 22.04.4 LTS) для цели ARM Cortex-A7. Я включаю Node.js, выбрав «[*] nodejs» в Целевые пакеты ---> Языки интерпретатора и сценарии --->.

После успешной прошивки и загрузки таргета я запускаю node в /usr/bin/ и получаю:

/usr/bin # ./node
./node: /lib/libm.so.6: version `GLIBC_2.38' not found (required by ./node)
./node: /lib/libm.so.6: version `GLIBC_2.29' not found (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.32' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.36' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libssl.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libssl.so.3)

Я не понимаю, как изменить конфигурацию buildroot, чтобы включить необходимые версии GLIBC.

Единственный параметр конфигурации, связанный с glibc, который я вижу (в make nconfig), — это «Включить прокладки совместимости для запуска на старых ядрах» в Toolchain --->, который я проверил.

🤔 А знаете ли вы, что...
Node.js позволяет создавать масштабируемые приложения с использованием механизмов кластеризации.


53
2

Ответы:

Какую версию Buildroot вы используете? Не могли бы вы предоставить свой Buildroot .config?

Я полагаю, что вы используете предварительно скомпилированный NodeJS (nodejs-bin), и возможно, он предварительно скомпилирован для слишком последней версии glibc. Но это всего лишь гипотеза, нам нужно больше подробностей о вашей настройке.


Решено

Вы начали сборку какой-то конфигурации, затем изменили настройки инструментальной цепочки, а затем снова собрали с новыми настройками, не запуская make clean. Вам нужна явная очистка при изменении настроек цепочки инструментов.