Add libunwind

pull/6/head
A. R. Shajii 2021-11-11 20:46:39 -05:00
parent c0a784c3a5
commit 25789d6bc7
4 changed files with 30 additions and 9 deletions

View File

@ -18,12 +18,11 @@ fi
# build
mkdir build
export CC="$(pwd)/llvm/bin/clang"
export CXX="$(pwd)/llvm/bin/clang++"
export LLVM_DIR=$(llvm/bin/llvm-config --cmakedir)
(cd build && cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=${CC} \
-DCMAKE_CXX_COMPILER=${CXX})
-DCMAKE_C_COMPILER="$(pwd)/llvm/bin/clang" \
-DCMAKE_CXX_COMPILER="$(pwd)/llvm/bin/clang++" \
-DLLVM_DIR=$(llvm/bin/llvm-config --cmakedir) \
-DLIBUNWIND_PREFIX="$(pwd)/llvm")
cmake --build build --config Release -- VERBOSE=1
# test

View File

@ -56,7 +56,7 @@ jobs:
uses: actions/cache@v2
with:
path: llvm
key: manylinux-llvm
key: manylinux-llvm-2
- name: Main
uses: ./.github/actions/build-manylinux
@ -130,7 +130,7 @@ jobs:
uses: actions/cache@v2
with:
path: llvm
key: ${{ runner.os }}-llvm
key: ${{ runner.os }}-llvm-2
- name: Build Dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
@ -142,10 +142,11 @@ jobs:
- name: Build
run: |
mkdir build
export LLVM_DIR=$(llvm/bin/llvm-config --cmakedir)
(cd build && cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=${CC} \
-DCMAKE_CXX_COMPILER=${CXX})
-DCMAKE_CXX_COMPILER=${CXX}
-DLLVM_DIR=$(llvm/bin/llvm-config --cmakedir)
-DLIBUNWIND_PREFIX="$(pwd)/llvm")
cmake --build build --config Release -- VERBOSE=1
env:
CC: clang

View File

@ -73,6 +73,11 @@ else()
$<TARGET_FILE:bz2>
$<TARGET_FILE:liblzma>
-Wl,--no-whole-archive)
if(DEFINED LIBUNWIND_PREFIX)
target_include_directories(codonrt PRIVATE "${LIBUNWIND_PREFIX}/include")
find_library(UNWIND_LIBRARY unwind HINTS "${LIBUNWIND_PREFIX}/lib/libunwind.a")
target_link_libraries(codonrt PRIVATE ${UNWIND_LIBRARY})
endif()
endif()
add_custom_command(TARGET codonrt POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:omp> ${CMAKE_BINARY_DIR})

View File

@ -27,6 +27,22 @@ if [ ! -f "${INSTALLDIR}/bin/llvm-config" ]; then
make -j "${JOBS}"
make install
# libunwind
mkdir -p "${SRCDIR}/libunwind/build"
cd "${SRCDIR}/libunwind/build"
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DLIBUNWIND_BUILD_32_BITS=OFF \
-DLIBUNWIND_ENABLE_SHARED=OFF \
-DLIBUNWIND_ENABLE_STATIC=ON \
-DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON \
-DLIBUNWIND_ENABLE_THREADS=ON \
-DCMAKE_INSTALL_PREFIX="${INSTALLDIR}"
make -j "${JOBS}"
make install
mkdir -p "${INSTALLDIR}/include"
cp -r ${SRCDIR}/libunwind/include/* "${INSTALLDIR}/include/"
# clang
if ! command -v clang &> /dev/null; then
mkdir -p "${SRCDIR}/clang/build"