fb72418160
Commit 2cfa86a54882(package/erlang: bump version to 26.0.2) added a patch to restore building on uClibc. However, that patch is not upstream, and has been rejected: https://github.com/erlang/otp/pull/7500 Please open a PR to https://github.com/asmjit/asmjit instead and we will get the fix next time we sync with upstream. We do not want theirs and our implementation to diverge. Furthermore, it happens to work on uClibc, because uClibc does not expose sys/auxv.h, but it fails to work on glibc, because the define is not propagated to "sub-trees", and thus is never defined where it is checked for, even when sys/auxv.h is available. This causes build failures such as: asmjit/core/cpuinfo.cpp: In function ‘void asmjit::_abi_1_10::detectHWCaps(CpuInfo&, long unsigned int, const LinuxHWCapMapping*, size_t)’: asmjit/core/cpuinfo.cpp:840:24: error: ‘getauxval’ was not declared in this scope 840 | unsigned long mask = getauxval(type); | ^~~~~~~~~ asmjit/core/cpuinfo.cpp: In function ‘void asmjit::_abi_1_10::detectARMCpu(CpuInfo&)’: asmjit/core/cpuinfo.cpp:972:21: error: ‘AT_HWCAP’ was not declared in this scope 972 | detectHWCaps(cpu, AT_HWCAP, hwCapMapping, ASMJIT_ARRAY_SIZE(hwCapMapping)); | ^~~~~~~~ asmjit/core/cpuinfo.cpp:973:21: error: ‘AT_HWCAP2’ was not declared in this scope 973 | detectHWCaps(cpu, AT_HWCAP2, hwCapMapping2, ASMJIT_ARRAY_SIZE(hwCapMapping2)); | ^~~~~~~~~ Yet, sys/auxv.h was detected at configure time: checking for sys/auxv.h... yes This defconfig is enough to reproduce the error: BR2_aarch64=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_PACKAGE_ERLANG=y Since upstream refused the patch, and there is no fix that was submitted to the actual upstream (asmjit), drop the rejectred patch, and disable for uClibc: the patch is incorrect, and we can't fix a build issue on uClibc by introducing another on glibc. Fixes: http://autobuild.buildroot.org/results/fc1/fc19bad2263bdfacea594217d5ddfde0e27895b1/ http://autobuild.buildroot.org/results/114/11416d81d5b27fc0627b335a971154c088d5754a/ Signed-off-by: Yann E. MORIN <yann.morin@orange.com> Cc: Bernd Kuhls <bernd@kuhls.net> Cc: Maxim Kochetkov <fido_max@inbox.ru> Changes v1 -> v2: - update comment when unavailable Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
54 lines
1.8 KiB
Plaintext
54 lines
1.8 KiB
Plaintext
config BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
|
|
bool
|
|
default y if BR2_HOSTARCH = "aarch64"
|
|
default y if BR2_HOSTARCH = "x86_64"
|
|
default y if BR2_HOSTARCH = "x86"
|
|
|
|
config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
|
bool
|
|
# see HOWTO/INSTALL.md for Erlang's supported platforms
|
|
# when using its native atomic ops implementation or gcc's
|
|
# __atomic_* builtins
|
|
default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || \
|
|
BR2_sparc_v9 || BR2_arm || BR2_aarch64 || BR2_mipsel || \
|
|
BR2_RISCV_64
|
|
# erlang needs host-erlang
|
|
depends on BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
|
|
|
|
comment "erlang needs a glibc or musl toolchain w/ dynamic library, threads, wchar"
|
|
depends on BR2_USE_MMU # fork()
|
|
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
|
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
|
|
|| !BR2_USE_WCHAR || BR2_TOOLCHAIN_USES_UCLIBC
|
|
|
|
config BR2_PACKAGE_ERLANG
|
|
bool "erlang"
|
|
depends on BR2_USE_MMU # fork()
|
|
depends on BR2_USE_WCHAR
|
|
depends on !BR2_STATIC_LIBS
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
|
depends on !BR2_TOOLCHAIN_USES_UCLIBC
|
|
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
|
select BR2_PACKAGE_ZLIB
|
|
help
|
|
Erlang is a programming language used to build massively
|
|
scalable soft real-time systems with requirements on high
|
|
availability. Some of its uses are in telecoms, banking,
|
|
e-commerce, computer telephony and instant messaging.
|
|
Erlang's runtime system has built-in support for
|
|
concurrency, distribution and fault tolerance.
|
|
|
|
http://www.erlang.org
|
|
|
|
if BR2_PACKAGE_ERLANG
|
|
|
|
config BR2_PACKAGE_ERLANG_MEGACO
|
|
bool "install megaco application"
|
|
help
|
|
The Megaco application is a framework for building
|
|
applications on top of the Megaco/H.248 protocol. It is
|
|
approximately 14MB in size so if you do not need it then
|
|
it is recommended not to enable it.
|
|
|
|
endif # BR2_PACKAGE_ERLANG
|