32 lines
1.4 KiB
Bash
Executable File
32 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
if [ -z "$SYSROOT" ]; then export SYSROOT="$(realpath "$(dirname "$0")/../sysroot")"; fi
|
|
if [ -z "$LLVMDIR" ]; then export LLVMDIR="$(realpath "$(dirname "$0")/../llvm-project")"; fi
|
|
if [ -f "$SYSROOT/bin/musl-gcc" ]; then export CC="$SYSROOT/bin/musl-gcc"; fi
|
|
if [ -f "$SYSROOT/bin/musl-clang" ]; then export CC="$SYSROOT/bin/musl-clang"; fi
|
|
|
|
rm -rf build0
|
|
mkdir build0
|
|
cd build0
|
|
export ASMFLAGS="-w -mcmodel=large -mstack-protector-guard=global -fno-pic -fno-pie -fcf-protection=none"
|
|
export CFLAGS="-w -mcmodel=large -mstack-protector-guard=global -fno-pic -fno-pie -fcf-protection=none"
|
|
export CXXFLAGS="-w -mcmodel=large -mstack-protector-guard=global -fno-pic -fno-pie -fcf-protection=none -fno-use-cxa-atexit"
|
|
export LDFLAGS="-no-pie"
|
|
|
|
# libunwind cmake script never actually does enable_language(ASM) or project(... ASM) it would seem
|
|
# this is probably due to this being intended to be called from another script
|
|
# but this ends up breaking our standalone building of libunwind
|
|
# there isn't a simple fix with a command line option, so...
|
|
|
|
printf "%s\n%s\n" "enable_language(ASM)" "add_subdirectory($LLVMDIR/libunwind .)" > CMakeLists.txt
|
|
|
|
cmake \
|
|
-DCMAKE_ASM_COMPILER="$CC" \
|
|
-DCMAKE_C_COMPILER="$CC" \
|
|
-DCMAKE_CXX_COMPILER="$CC" \
|
|
-DLIBUNWIND_ENABLE_SHARED=OFF \
|
|
-DLIBUNWIND_USE_COMPILER_RT=ON \
|
|
-DLIBUNWIND_IS_BAREMETAL=ON \
|
|
-DCMAKE_INSTALL_PREFIX="$SYSROOT" \
|
|
.
|