erlang: fix mis-detection of transparent hugepages
authorAleksey Vasilenko <aleksey.vasilenko@gmail.com>
Fri, 7 Jun 2024 07:48:51 +0000 (10:48 +0300)
committerRosen Penev <rosenp@gmail.com>
Sun, 9 Jun 2024 02:45:19 +0000 (19:45 -0700)
Latest Erlang update incorrectly detects THP as always enabled,
which leads to segmentation fault on systems without transparent hugepages.
Here we manually override configure flag by checking actual option of target kernel.

Signed-off-by: Aleksey Vasilenko <aleksey.vasilenko@gmail.com>
lang/erlang/Makefile

index 80b85df7d4d62571004d93697b638fae89a378ec..11f963c2d6076f7651c14e3f9d7fb5d8f616ed1b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=erlang
 PKG_VERSION:=27.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/erlang/otp/releases/download/OTP-$(PKG_VERSION)
@@ -23,6 +23,9 @@ PKG_CPE_ID:=cpe:/a:erlang:erlang
 PKG_BUILD_DEPENDS:=erlang/host openssl
 PKG_ASLR_PIE:=0
 
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_KERNEL_TRANSPARENT_HUGEPAGE
+
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION)
 PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION)
 
@@ -307,9 +310,16 @@ CONFIGURE_ARGS += \
        --without-javac \
        --enable-dynamic-ssl-lib
 
+## Override incorrect THP detection by configure script
+ERTS_THP=no
+ifeq ($(CONFIG_KERNEL_TRANSPARENT_HUGEPAGE),y)
+       ERTS_THP=yes
+endif
+
 CONFIGURE_VARS += \
        SHLIB_LD="$(TARGET_CC)" \
        TARGET_ARCH="$(TARGET_ARCH)" \
+       erts_cv_linux_thp=$(ERTS_THP) \
        ac_cv_func_mmap_fixed_mapped=yes \
        ac_cv_path_WX_CONFIG_PATH=no \
        erl_xcomp_getaddrinfo=no \