Skip to content

Commit 556e871

Browse files
authored
[ATfL] build.sh modifications to accommodate the upstream changes (#336)
After the upstream commit [1] we could not build the product anymore. Several things had to change: - path to libc++ includes must be forcibly provided to the runtimes - flang-rt must be explicitly listed for building - we must explicitly ensure both static and shared build of flang-rt - the `-DLLVM_ENABLE_LIBCXX=ON` flag has been removed to silence the compiler warnings [1] llvm/llvm-project@77581e2
1 parent 0169f60 commit 556e871

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

arm-software/linux/build.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,17 @@ PRODUCT_CMAKE_FLAGS=(
7272
-DCMAKE_CXX_COMPILER="${BUILD_DIR}/bootstrap_compiler/bin/clang++"
7373
-DCMAKE_INSTALL_PREFIX="${ATFL_DIR}"
7474
-DLLVM_ENABLE_LLD=ON
75-
-DLLVM_ENABLE_LIBCXX=ON
7675
)
7776
COMPILER_CMAKE_FLAGS=(
78-
-DCMAKE_C_FLAGS="-I${ATFL_DIR}/include"
79-
-DCMAKE_CXX_FLAGS="-I${ATFL_DIR}/include -I${ATFL_DIR}/include/c++/v1 -D_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT"
80-
-DCMAKE_EXE_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed"
81-
-DCMAKE_MODULE_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed"
82-
-DCMAKE_SHARED_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed"
77+
-DCMAKE_CXX_FLAGS="-stdlib++-isystem ${ATFL_DIR}/include/c++/v1 -D_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT"
78+
-DCMAKE_EXE_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++"
79+
-DCMAKE_MODULE_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++"
80+
-DCMAKE_SHARED_LINKER_FLAGS="-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++"
8381
-DCMAKE_BUILD_TYPE=Release
8482
-DCMAKE_SKIP_RPATH=No
8583
-DCMAKE_SKIP_INSTALL_RPATH=No
8684
-DLLVM_ENABLE_PROJECTS="llvm;clang;flang;lld"
87-
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;openmp"
85+
-DLLVM_ENABLE_RUNTIMES="compiler-rt;flang-rt;libunwind;openmp"
8886
-DCLANG_ENABLE_LIBXML2=OFF
8987
-DCLANG_PLUGIN_SUPPORT=ON
9088
-DCLANG_ENABLE_STATIC_ANALYZER=ON
@@ -102,6 +100,8 @@ COMPILER_CMAKE_FLAGS=(
102100
-DCOMPILER_RT_USE_ATOMIC_LIBRARY=ON
103101
-DCOMPILER_RT_USE_LLVM_UNWINDER=OFF
104102
-DCOMPILER_RT_LIBRARY_atomic_${ATFL_TARGET_TRIPLE}="-rtlib=compiler-rt"
103+
-DFLANG_RT_ENABLE_SHARED=ON
104+
-DFLANG_RT_ENABLE_STATIC=ON
105105
-DLIBOMP_COPY_EXPORTS=False
106106
-DLIBOMP_USE_HWLOC=False
107107
-DLIBOMP_OMPT_SUPPORT=ON
@@ -344,6 +344,7 @@ product_build() {
344344
run_command cmake ${CMAKE_ARGS} -G Ninja "${SOURCES_DIR}/llvm" \
345345
-DBUILD_SHARED_LIBS=False \
346346
-DLIBOMP_ENABLE_SHARED=True \
347+
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_CXX_FLAGS=-stdlib++-isystem${ATFL_DIR}/include/c++/v1 -D_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT;-DCMAKE_EXE_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++;-DCMAKE_MODULE_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++;-DCMAKE_SHARED_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++" \
347348
"${COMMON_CMAKE_FLAGS[@]}" "${PRODUCT_CMAKE_FLAGS[@]}" "${COMPILER_CMAKE_FLAGS[@]}" "${LIBUNWIND_SHARED_CMAKE_FLAGS[@]}" ${extra_flags} 2>&1 |
348349
tee "${LOGS_DIR}/product.txt"
349350
run_command cmake --build . ${CMAKE_BUILD_ARGS} 2>&1 | tee -a "${LOGS_DIR}/product.txt"
@@ -364,6 +365,7 @@ shared_lib_build() {
364365
run_command cmake ${CMAKE_ARGS} -G Ninja "${SOURCES_DIR}/llvm" \
365366
-DBUILD_SHARED_LIBS=True \
366367
-DLIBOMP_ENABLE_SHARED=False \
368+
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_CXX_FLAGS=-stdlib++-isystem${ATFL_DIR}/include/c++/v1 -D_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT;-DCMAKE_EXE_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++;-DCMAKE_MODULE_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++;-DCMAKE_SHARED_LINKER_FLAGS=-L${ATFL_DIR}/lib -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -stdlib=libc++" \
367369
"${COMMON_CMAKE_FLAGS[@]}" -DLLVM_ENABLE_ZSTD=OFF "${PRODUCT_CMAKE_FLAGS[@]}" "${COMPILER_CMAKE_FLAGS[@]}" -DLIBOMP_OMPT_SUPPORT=OFF "${LIBUNWIND_SHARED_CMAKE_FLAGS[@]}" ${extra_flags} 2>&1 |
368370
tee "${LOGS_DIR}/shared_lib.txt"
369371
run_command cmake --build . ${CMAKE_BUILD_ARGS} 2>&1 | tee -a "${LOGS_DIR}/shared_lib.txt"
@@ -374,7 +376,7 @@ shared_lib_build() {
374376
mv "${ATFL_DIR}.keep" "${ATFL_DIR}"
375377
cp "${ATFL_DIR}.libs/lib/${ATFL_TARGET_TRIPLE}/libomp.a" \
376378
"${ATFL_DIR}/lib/${ATFL_TARGET_TRIPLE}"
377-
cp -d ${ATFL_DIR}.libs/lib/libflang_rt* \
379+
cp -d ${ATFL_DIR}.libs/lib/clang/*/lib/${ATFL_TARGET_TRIPLE}/libflang_rt* \
378380
"${ATFL_DIR}/lib/${ATFL_TARGET_TRIPLE}"
379381
rm -r "${ATFL_DIR}.libs"
380382
echo '-L<CFGDIR>/../runtimes/runtimes-bins/openmp/runtime/src $-Wl,--push-state $-Wl,--as-needed $-lomp $-ldl $-Wl,--pop-state' >bin/clang.cfg
@@ -402,8 +404,6 @@ package() {
402404
cp "${LIBRARIES_DIR}/libamath.so" \
403405
"${ATFL_DIR}/lib/${ATFL_TARGET_TRIPLE}"
404406
fi
405-
cp "${ATFL_DIR}/lib/libflang_rt.runtime.a" \
406-
"${ATFL_DIR}/lib/${ATFL_TARGET_TRIPLE}"
407407
cp ${ATFL_DIR}/include/flang/omp* "${ATFL_DIR}/include"
408408
echo 'export PATH="$(dirname `realpath $BASH_SOURCE`)/bin:$PATH"' >"${ATFL_DIR}/env.bash"
409409
echo "export PS1=\"(ATfL ${ATFL_VERSION}) \$PS1\"" >>"${ATFL_DIR}/env.bash"

0 commit comments

Comments
 (0)