@@ -86,20 +86,20 @@ LLVM_BUILD=${BUILD_DIR}/llvm
86
86
SYMBOLIZER_BUILD=${BUILD_DIR} /symbolizer
87
87
88
88
FLAGS=${FLAGS:- }
89
- FLAGS=" $FLAGS -fPIC -flto -Os -g0 -DNDEBUG"
89
+ FLAGS=" $FLAGS -fPIC -flto -Oz -g0 -DNDEBUG"
90
90
91
91
# Build zlib.
92
92
mkdir -p ${ZLIB_BUILD}
93
93
cd ${ZLIB_BUILD}
94
94
cp -r ${ZLIB_SRC} /* .
95
- CC=$CC CFLAGS=" $FLAGS " RANLIB=/bin/true ./configure --static
95
+ AR= " ${AR} " CC=" ${CC} " CFLAGS=" $FLAGS -Wno-deprecated-non-prototype " RANLIB=/bin/true ./configure --static
96
96
make -j${J} libz.a
97
97
98
98
# Build and install libcxxabi and libcxx.
99
99
if [[ ! -d ${LIBCXX_BUILD} ]]; then
100
100
mkdir -p ${LIBCXX_BUILD}
101
101
cd ${LIBCXX_BUILD}
102
- LIBCXX_FLAGS=" ${FLAGS} -Wno-macro-redefined"
102
+ LIBCXX_FLAGS=" ${FLAGS} -Wno-macro-redefined -Wno-unused-command-line-argument "
103
103
cmake -GNinja \
104
104
-DLLVM_ENABLE_RUNTIMES=" libcxx;libcxxabi" \
105
105
-DCMAKE_BUILD_TYPE=Release \
@@ -109,19 +109,19 @@ if [[ ! -d ${LIBCXX_BUILD} ]]; then
109
109
-DCMAKE_CXX_FLAGS_RELEASE=" ${LIBCXX_FLAGS} " \
110
110
-DLIBCXXABI_ENABLE_ASSERTIONS=OFF \
111
111
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
112
- -DLIBCXXABI_ENABLE_SHARED=OFF \
113
112
-DLIBCXX_ENABLE_ASSERTIONS=OFF \
114
113
-DLIBCXX_ENABLE_EXCEPTIONS=OFF \
115
114
-DLIBCXX_ENABLE_RTTI=OFF \
116
- -DLIBCXX_ENABLE_SHARED=OFF \
115
+ -DCMAKE_SHARED_LINKER_FLAGS= " -fuse-ld=lld " \
117
116
-DLLVM_DEFAULT_TARGET_TRIPLE=" ${TARGET_TRIPLE} " \
118
117
$LLVM_SRC /../runtimes
119
118
fi
120
119
cd ${LIBCXX_BUILD}
121
120
ninja cxx cxxabi
122
121
123
122
FLAGS=" ${FLAGS} -fno-rtti -fno-exceptions"
124
- LLVM_FLAGS=" ${FLAGS} -nostdinc++ -I${ZLIB_BUILD} -isystem ${LIBCXX_BUILD} /include/${TARGET_TRIPLE} /c++/v1 -isystem ${LIBCXX_BUILD} /include/c++/v1 -Wno-error=global-constructors"
123
+ LLVM_CFLAGS=" ${FLAGS} -Wno-global-constructors"
124
+ LLVM_CXXFLAGS=" ${LLVM_CFLAGS} -nostdinc++ -I${ZLIB_BUILD} -isystem ${LIBCXX_BUILD} /include -isystem ${LIBCXX_BUILD} /include/c++/v1"
125
125
126
126
# Build LLVM.
127
127
if [[ ! -d ${LLVM_BUILD} ]]; then
@@ -131,8 +131,9 @@ if [[ ! -d ${LLVM_BUILD} ]]; then
131
131
-DCMAKE_BUILD_TYPE=Release \
132
132
-DCMAKE_C_COMPILER=$CC \
133
133
-DCMAKE_CXX_COMPILER=$CXX \
134
- -DCMAKE_C_FLAGS_RELEASE=" ${LLVM_FLAGS} " \
135
- -DCMAKE_CXX_FLAGS_RELEASE=" ${LLVM_FLAGS} " \
134
+ -DCMAKE_C_FLAGS_RELEASE=" ${LLVM_CFLAGS} " \
135
+ -DCMAKE_CXX_FLAGS_RELEASE=" ${LLVM_CXXFLAGS} " \
136
+ -DCMAKE_EXE_LINKER_FLAGS=" -stdlib=libc++ -fuse-ld=lld -L${LIBCXX_BUILD} /lib" \
136
137
-DLLVM_TABLEGEN=$TBLGEN \
137
138
-DLLVM_DEFAULT_TARGET_TRIPLE=" ${TARGET_TRIPLE} " \
138
139
-DLLVM_ENABLE_ZLIB=ON \
@@ -149,7 +150,7 @@ mkdir ${SYMBOLIZER_BUILD}
149
150
cd ${SYMBOLIZER_BUILD}
150
151
151
152
echo " Compiling..."
152
- SYMBOLIZER_FLAGS=" $LLVM_FLAGS -I${LLVM_SRC} /include -I${LLVM_BUILD} /include -std=c++17"
153
+ SYMBOLIZER_FLAGS=" $LLVM_CXXFLAGS -I${LLVM_SRC} /include -I${LLVM_BUILD} /include -std=c++17"
153
154
$CXX $SYMBOLIZER_FLAGS ${SRC_DIR} /sanitizer_symbolize.cpp ${SRC_DIR} /sanitizer_wrappers.cpp -c
154
155
$AR rc symbolizer.a sanitizer_symbolize.o sanitizer_wrappers.o
155
156
0 commit comments