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