thirdparty: add thirdparty-linux-armv7_bdwgc.sh for building libgc.a on ARMv7 CPUs (#25077)

This commit is contained in:
larpon 2025-08-09 13:43:55 +02:00 committed by GitHub
parent 5eebd91425
commit 9140c9f844
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,61 @@
#!/usr/bin/env bash
# NOTE: The configure step may require:
# sudo apt-get install libatomic-ops-dev
set -e
if ! test -f vlib/v/compiler_errors_test.v; then
echo "this script should be run in V's main repo folder!"
exit 1
fi
export CURRENT_SCRIPT_PATH=$(realpath "$0")
export CC="${CC:-gcc}"
export TCC_FOLDER="${TCC_FOLDER:-thirdparty/tcc}"
export LIBGC_COMMIT="${LIBGC_COMMIT:-master}"
mkdir -p $TCC_FOLDER/lib/
echo " CC: $CC"
echo " TCC_FOLDER: $TCC_FOLDER"
echo "LIBGC_COMMIT: $LIBGC_COMMIT"
echo ===============================================================
rm -rf bdwgc/
pushd .
git clone https://github.com/ivmai/bdwgc
cd bdwgc/
git checkout $LIBGC_COMMIT
export LIBGC_COMMIT_FULL_HASH=$(git rev-parse HEAD)
./autogen.sh
CC=$CC CFLAGS='-fPIC' LDFLAGS='-fPIC' ./configure \
--disable-dependency-tracking \
--disable-docs \
--enable-handle-fork=yes \
--enable-rwlock \
--enable-threads=pthreads \
--enable-static \
--enable-shared=no \
--enable-parallel-mark \
--enable-single-obj-compilation \
--enable-gc-debug \
--with-libatomic-ops=yes \
--enable-sigrt-signals
make
popd
cp bdwgc/.libs/libgc.a $TCC_FOLDER/lib/libgc.a
date > $TCC_FOLDER/lib/libgc_build_on_date.txt
echo $LIBGC_COMMIT_FULL_HASH > $TCC_FOLDER/lib/libgc_build_source_hash.txt
uname -a > $TCC_FOLDER/lib/libgc_build_machine_uname.txt
ls -la $TCC_FOLDER/lib/libgc.a
echo "Done compiling libgc, at commit $LIBGC_COMMIT , full hash: $LIBGC_COMMIT_FULL_HASH . The static library is in $TCC_FOLDER/lib/libgc.a "