v / thirdparty / build_scripts / thirdparty-linux-amd64_bdwgc.sh
58 lines · 43 sloc · 1.48 KB · 86bb2d72ea345a6aec2268e96fb8d8da23fd8d70
Raw
1#!/usr/bin/env bash
2
3set -e
4
5if ! test -f vlib/v/compiler_errors_test.v; then
6 echo "this script should be run in V's main repo folder!"
7 exit 1
8fi
9
10export CURRENT_SCRIPT_PATH=$(realpath "$0")
11
12export CC="${CC:-gcc}"
13export TCC_FOLDER="${TCC_FOLDER:-thirdparty/tcc}"
14export LIBGC_COMMIT="${LIBGC_COMMIT:-master}"
15mkdir -p $TCC_FOLDER/lib/
16
17echo " CC: $CC"
18echo " TCC_FOLDER: $TCC_FOLDER"
19echo "LIBGC_COMMIT: $LIBGC_COMMIT"
20echo ===============================================================
21
22rm -rf bdwgc/
23
24pushd .
25git clone https://github.com/ivmai/bdwgc
26cd bdwgc/
27
28git checkout $LIBGC_COMMIT
29export LIBGC_COMMIT_FULL_HASH=$(git rev-parse HEAD)
30
31./autogen.sh
32
33CC=$CC CFLAGS='-Os -mtune=generic -fPIC' LDFLAGS='-Os -fPIC' ./configure \
34 --disable-dependency-tracking \
35 --disable-docs \
36 --enable-handle-fork=yes \
37 --enable-rwlock \
38 --enable-threads=pthreads \
39 --enable-static \
40 --enable-shared=no \
41 --enable-parallel-mark \
42 --enable-single-obj-compilation \
43 --enable-gc-debug \
44 --with-libatomic-ops=yes \
45 --enable-sigrt-signals
46
47make
48
49popd
50
51cp bdwgc/.libs/libgc.a $TCC_FOLDER/lib/libgc.a
52
53date > $TCC_FOLDER/lib/libgc_build_on_date.txt
54echo $LIBGC_COMMIT_FULL_HASH > $TCC_FOLDER/lib/libgc_build_source_hash.txt
55uname -a > $TCC_FOLDER/lib/libgc_build_machine_uname.txt
56
57ls -la $TCC_FOLDER/lib/libgc.a
58echo "Done compiling libgc, at commit $LIBGC_COMMIT , full hash: $LIBGC_COMMIT_FULL_HASH . The static library is in $TCC_FOLDER/lib/libgc.a "
59