From 9072cc14eb6757f8cc30772b6274d991dbb3fe3e Mon Sep 17 00:00:00 2001 From: Laurent Cheylus Date: Sat, 14 Jun 2025 12:41:25 +0200 Subject: [PATCH] thirdparty: add script to build libgc on FreeBSD/amd64 (#24717) --- .../thirdparty-freebsd-amd64_bdwgc.sh | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 thirdparty/build_scripts/thirdparty-freebsd-amd64_bdwgc.sh diff --git a/thirdparty/build_scripts/thirdparty-freebsd-amd64_bdwgc.sh b/thirdparty/build_scripts/thirdparty-freebsd-amd64_bdwgc.sh new file mode 100755 index 0000000000..7bf8880a31 --- /dev/null +++ b/thirdparty/build_scripts/thirdparty-freebsd-amd64_bdwgc.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +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='-Os -mtune=generic -fPIC' LDFLAGS='-Os -fPIC' ./configure \ + --disable-dependency-tracking \ + --disable-docs \ + --enable-handle-fork=yes \ + --enable-rwlock \ + --enable-threads=posix \ + --enable-static \ + --enable-shared=no \ + --enable-parallel-mark \ + --enable-single-obj-compilation \ + --enable-gc-debug \ + --with-libatomic-ops=yes \ + --enable-sigrt-signals \ + --enable-mmap + +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 "