From f59ddbb64560fd6ae1d36d408fdc78fdff2559c4 Mon Sep 17 00:00:00 2001 From: bol-van Date: Tue, 3 Mar 2026 19:25:33 +0300 Subject: [PATCH] github,linux-builder: revert to lj_alloc for arm64 and mips64 --- .github/workflows/build.yml | 15 +++++++++++++-- docs/compile/builder-linux/build_deps.sh | 11 ++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 360911a..6906ffd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,6 +100,7 @@ jobs: export PKG_CONFIG_PATH=$DEPS_DIR/lib/pkgconfig export STAGING_DIR=$RUNNER_TEMP OPTIMIZE=-Oz + SYSMALLOC=-DLUAJIT_USE_SYSMALLOC case "$ARCH" in lexra) OPTIMIZE=-Os @@ -107,6 +108,10 @@ jobs: arm) CPU="-mcpu=cortex-a7 -mthumb" ;; + arm64|mips64) + # not safe without GC64 + SYSMALLOC= + ;; esac MINSIZE="$OPTIMIZE $MINSIZE" @@ -131,9 +136,10 @@ jobs: *) HOSTCC="cc -m32" esac + echo ARCH=$ARCH SYSMALLOC=$SYSMALLOC ( cd luajit2-* - make BUILDMODE=static XCFLAGS="-DLUAJIT_USE_SYSMALLOC -DLUAJIT_DISABLE_FFI" HOST_CC="$HOSTCC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$CPU $MINSIZE $CFLAGS" TARGET_LDFLAGS="$CPU $LDMINSIZE $LDFLAGS" -j$(nproc) + make BUILDMODE=static XCFLAGS="$SYSMALLOC -DLUAJIT_DISABLE_FFI" HOST_CC="$HOSTCC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$CPU $MINSIZE $CFLAGS" TARGET_LDFLAGS="$CPU $LDMINSIZE $LDFLAGS" -j$(nproc) make install PREFIX= DESTDIR=$DEPS_DIR ) LJIT=1 @@ -236,10 +242,15 @@ jobs: export RANLIB=$TOOLCHAIN/bin/llvm-ranlib export STRIP=$TOOLCHAIN/bin/llvm-strip export PKG_CONFIG_PATH=$DEPS_DIR/lib/pkgconfig + SYSMALLOC=-DLUAJIT_USE_SYSMALLOC case "$ABI" in armeabi-v7a) CPU="-mthumb" ;; + arm64-v8a) + # not safe without GC64 + SYSMALLOC= + ;; esac # luajit @@ -253,7 +264,7 @@ jobs: esac ( cd luajit2-* - make BUILDMODE=static XCFLAGS="-DLUAJIT_USE_SYSMALLOC -DLUAJIT_DISABLE_FFI" HOST_CC="$HOSTCC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$CPU $MINSIZE $CFLAGS" TARGET_LDFLAGS="$LDMINSIZE $LDFLAGS" -j$(nproc) + make BUILDMODE=static XCFLAGS="$SYSMALLOC -DLUAJIT_DISABLE_FFI" HOST_CC="$HOSTCC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$CPU $MINSIZE $CFLAGS" TARGET_LDFLAGS="$LDMINSIZE $LDFLAGS" -j$(nproc) make install PREFIX= DESTDIR=$DEPS_DIR ) LJIT=1 diff --git a/docs/compile/builder-linux/build_deps.sh b/docs/compile/builder-linux/build_deps.sh index 34af193..d265eb9 100755 --- a/docs/compile/builder-linux/build_deps.sh +++ b/docs/compile/builder-linux/build_deps.sh @@ -62,11 +62,20 @@ build_lua() build_luajit() { local CFL="$CFLAGS" + local SYSMALLOC= ( cd luajit2-* CFLAGS="-Os" make clean - make BUILDMODE=static XCFLAGS="-DLUAJIT_USE_SYSMALLOC -DLUAJIT_DISABLE_FFI $CFLAGS_PIC" HOST_CC="$HOST_CC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$OPTIMIZE $MINSIZE $CFL" TARGET_LDFLAGS="$CPU $LDMINSIZE $LDFLAGS" + case $TARGET in + aarch64*|mips64*) + # sysmalloc can cause troubles without GC64. GC64 slows down by 10-15%. better not to use sysmalloc and leave lj_alloc. + ;; + *) + # save some exe size + SYSMALLOC=-DLUAJIT_USE_SYSMALLOC + esac + make BUILDMODE=static XCFLAGS="$SYSMALLOC -DLUAJIT_DISABLE_FFI $CFLAGS_PIC" HOST_CC="$HOST_CC" CROSS= CC="$CC" TARGET_AR="$AR rcus" TARGET_STRIP=$STRIP TARGET_CFLAGS="$OPTIMIZE $MINSIZE $CFL" TARGET_LDFLAGS="$CPU $LDMINSIZE $LDFLAGS" make install PREFIX= DESTDIR="$STAGING_DIR" ) }