1
1
#! /usr/bin/env bash
2
2
#
3
- # Run as: CLANG=bin/clang ZLIB_SRC=src/zlib \
4
- # build_symbolizer.sh runtime_build/lib/clang/4.0.0/lib/linux/
3
+ # Run as: CLANG=bin/clang build_symbolizer.sh out.o
5
4
# zlib can be downloaded from http://www.zlib.net.
6
5
#
7
6
# Script compiles self-contained object file with symbolization code and injects
@@ -36,22 +35,9 @@ COMPILER_RT_SRC=$(readlink -f ${SCRIPT_DIR}/../../../..)
36
35
LLVM_SRC=${LLVM_SRC:- ${COMPILER_RT_SRC} / ../ llvm}
37
36
LLVM_SRC=$( readlink -f $LLVM_SRC )
38
37
39
- if [[ " $ZLIB_SRC " == " " ||
40
- ! -x " ${ZLIB_SRC} /configure" ||
41
- ! -f " ${ZLIB_SRC} /zlib.h" ]]; then
42
- echo " Missing or incomplete ZLIB_SRC"
43
- exit 1
44
- fi
45
- ZLIB_SRC=$( readlink -f $ZLIB_SRC )
46
-
47
38
CLANG=" ${CLANG:- `which clang`} "
48
39
CLANG_DIR=$( readlink -f $( dirname " $CLANG " ) )
49
40
50
- rm -rf symbolizer
51
- BUILD_DIR=$( readlink -f ./symbolizer)
52
- mkdir -p $BUILD_DIR
53
- cd $BUILD_DIR
54
-
55
41
CC=$CLANG_DIR /clang
56
42
CXX=$CLANG_DIR /clang++
57
43
TBLGEN=$CLANG_DIR /llvm-tblgen
@@ -66,6 +52,10 @@ for F in $CC $CXX $TBLGEN $LINK $OPT $AR; do
66
52
fi
67
53
done
68
54
55
+ BUILD_DIR=${PWD} /symbolizer
56
+ mkdir -p $BUILD_DIR
57
+ cd $BUILD_DIR
58
+
69
59
ZLIB_BUILD=${BUILD_DIR} /zlib
70
60
LIBCXX_BUILD=${BUILD_DIR} /libcxx
71
61
LLVM_BUILD=${BUILD_DIR} /llvm
@@ -83,9 +73,8 @@ FLAGS+=" -include ${SRC_DIR}/../sanitizer_redefine_builtins.h -DSANITIZER_COMMON
83
73
LINKFLAGS=" -fuse-ld=lld -target $TARGET_TRIPLE "
84
74
85
75
# Build zlib.
86
- mkdir -p ${ZLIB_BUILD}
76
+ [[ -d ${ZLIB_BUILD} ]] || git clone https://github.com/madler/zlib ${ZLIB_BUILD}
87
77
cd ${ZLIB_BUILD}
88
- cp -r ${ZLIB_SRC} /* .
89
78
AR=" ${AR} " CC=" ${CC} " CFLAGS=" $FLAGS -Wno-deprecated-non-prototype" RANLIB=/bin/true ./configure --static
90
79
make -j libz.a
91
80
0 commit comments