惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
I
InfoQ
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
WordPress大学
WordPress大学
B
Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI

Cocoa

Untitled | Cocoa PicoBf: A brainf**k lang REPL environment for Pico Pi My Virtualization Setup | Cocoa Doodles | Cocoa Hardware UART communication between Raspberry Pi 4 and Arduino Micro The first amazing thing in 2021 OK Google, set Telegram as my YouTube music player! Record YouTube Live Stream | Cocoa 可能隨時咕咕咕掉的 NLP 項目(1)—— 抓取 YouTube Live Chat NextDest | Cocoa macOS version of Twitter Image Saver Rust Learning from Zero (26) —— Save Twitter Images Notes on Differential Equations (4) —— Step Function $H(t)$ and Delta Function $\delta(t)$ Notes on Differential Equations (3) —— $\frac{dy}{dt}=ay+q(t)$
Compile LLVM with OpenMP on macOS and Linux
Cocoa · 2021-01-28 · via Cocoa

This post is just supposed to be my personal note. But I will be happy if this can help you in some way!

Prerequisites

# macOS
brew install libomp cmake

# Ubuntu/Debian
sudo apt-get install -y libomp-dev cmake

Download LLVM source code

# You can check the latest LLVM verison at llvm.org 
export LLVM_VER=11.0.0
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/llvm-${LLVM_VER}.src.tar.xz" -O "llvm-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/clang-${LLVM_VER}.src.tar.xz" -O "clang-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/compiler-rt-${LLVM_VER}.src.tar.xz" -O "compiler-rt-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/libcxx-${LLVM_VER}.src.tar.xz" -O "libcxx-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/libcxxabi-${LLVM_VER}.src.tar.xz" -O "libcxxabi-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/lld-${LLVM_VER}.src.tar.xz" -O "lld-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/lldb-${LLVM_VER}.src.tar.xz" -O "lldb-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/openmp-${LLVM_VER}.src.tar.xz" -O "openmp-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/polly-${LLVM_VER}.src.tar.xz" -O "polly-${LLVM_VER}.src.tar.xz"
wget "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/clang-tools-extra-${LLVM_VER}.src.tar.xz" -O "clang-tools-extra-${LLVM_VER}.src.tar.xz"

tar xf "llvm-${LLVM_VER}.src.tar.xz"
tar xf "clang-${LLVM_VER}.src.tar.xz" && mv "clang-${LLVM_VER}.src" clang
tar xf "compiler-rt-${LLVM_VER}.src.tar.xz" && mv "compiler-rt-${LLVM_VER}.src" compiler-rt
tar xf "libcxx-${LLVM_VER}.src.tar.xz" && mv "libcxx-${LLVM_VER}.src" libcxx
tar xf "libcxxabi-${LLVM_VER}.src.tar.xz" && mv "libcxxabi-${LLVM_VER}.src" libcxxabi
tar xf "lld-${LLVM_VER}.src.tar.xz" && mv "lld-${LLVM_VER}.src" lld
tar xf "lldb-${LLVM_VER}.src.tar.xz" && mv "lldb-${LLVM_VER}.src" lldb
tar xf "openmp-${LLVM_VER}.src.tar.xz" && mv "openmp-${LLVM_VER}.src" openmp
tar xf "polly-${LLVM_VER}.src.tar.xz" && mv "polly-${LLVM_VER}.src" polly
tar xf "clang-tools-extra-${LLVM_VER}.src.tar.xz" && mv "clang-tools-extra-${LLVM_VER}.src" clang-tools-extra

export LLVM_SRC="`pwd`/llvm-${LLVM_VER}.src"
cd "${LLVM_SRC}" && mkdir -p build && cd build

Configure and compile

# macOS WITH Xcode toolchain enabled
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_FFI=ON \
    -DLLVM_CREATE_XCODE_TOOLCHAIN=ON \
    -DLLVM_ENABLE_PROJECTS="clang;compiler-rt;libcxx;libcxxabi;lld;lldb;openmp;polly;clang-tools-extra;" \
    ..

# macOS WITHOUT Xcode toolchain
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_FFI=ON \
    -DLLVM_CREATE_XCODE_TOOLCHAIN=OFF \
    -DLLVM_ENABLE_PROJECTS="clang;compiler-rt;libcxx;libcxxabi;lld;lldb;openmp;polly;clang-tools-extra;" \
    ..

# Linux
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_FFI=ON \
    -DLLVM_ENABLE_PROJECTS="clang;compiler-rt;libcxx;libcxxabi;lld;lldb;openmp;polly;clang-tools-extra;" \
    ..

# Compile
ninja

Install

# macOS WITH Xcode toolchain enabled
sudo mkdir -p /usr/local/Toolchains
sudo chmod a+w /usr/local/Toolchains
ninja install-xcode-toolchain
sudo ln -s /usr/local/Toolchains/LLVM${LLVM_VER}.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains
# copy arc related libraries from default toolchain to ours
sudo cp -rf /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc /Applications/Xcode.app/Contents/Developer/Toolchains/LLVM${LLVM_VER}.xctoolchain/usr/lib/

# macOS WITHOUT Xcode toolchain
# and Linux
sudo ninja install

Test

いまが最高!