Last active
March 25, 2022 16:02
-
-
Save cwpearson/c5521dfc50175b1d977643b2fc5a2bb1 to your computer and use it in GitHub Desktop.
Use clang5 to bootstrap clang5+openmp+libcxx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
set -eou pipefail | |
workdir=`mktemp -d -p $HOME` | |
workdir=`readlink -f $workdir` | |
echo $workdir | |
#trap "{ echo cleaning up $workdir; rm -r $workdir; }" EXIT | |
trap "{ echo workdir was $workdir; }" EXIT | |
cd $workdir | |
# llvm | |
wget http://releases.llvm.org/5.0.0/llvm-5.0.0.src.tar.xz | |
tar -vxf llvm-5.0.0.src.tar.xz | |
# clang | |
wget http://releases.llvm.org/5.0.0/cfe-5.0.0.src.tar.xz | |
tar -vxf cfe-5.0.0.src.tar.xz | |
# libc++ | |
wget http://releases.llvm.org/5.0.0/libcxx-5.0.0.src.tar.xz | |
tar -vxf libcxx-5.0.0.src.tar.xz | |
# libc++abi | |
wget http://releases.llvm.org/5.0.0/libcxxabi-5.0.0.src.tar.xz | |
tar -vxf libcxxabi-5.0.0.src.tar.xz | |
# openmp | |
wget http://releases.llvm.org/5.0.0/openmp-5.0.0.src.tar.xz | |
tar -vxf openmp-5.0.0.src.tar.xz | |
# build a basic clang5 to bootstrap the libcxx build | |
mv cfe-5.0.0.src llvm-5.0.0.src/tools/clang | |
mkdir -p $workdir/build-base | |
cd $workdir/build-base && cmake ../llvm-5.0.0.src \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DLLVM_TARGETS_TO_BUILD="PowerPC" | |
cd $workdir/build-base && nice -n20 make -j40 -k || make | |
# use the clang5 build to build clang again, but this time with libcxx | |
cd $workdir | |
mv libcxx-5.0.0.src llvm-5.0.0.src/projects/libcxx | |
mv libcxxabi-5.0.0.src llvm-5.0.0.src/projects/libcxxabi | |
mv openmp-5.0.0.src llvm-5.0.0.src/projects/openmp | |
mkdir -p $workdir/build | |
cd $workdir/build && cmake $workdir/llvm-5.0.0.src \ | |
-DCMAKE_CXX_COMPILER=$workdir/build-base/bin/clang++ \ | |
-DCMAKE_C_COMPILER=$workdir/build-base/bin/clang \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX=$HOME/software/clang-5.0.0 | |
cd $workdir/build && nice -n20 make -j40 -k || make | |
cd $workdir/build && make install |
Can't speak to that, sorry!
Can't speak to that, sorry!
Thank you for replying, got it.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@cwpearson does it produce correct code though?
@kencu had
clang5
built for PowerPC, but it was broken.