@@ -28,13 +28,11 @@ jobs:
2828 - name : Installing dependencies
2929 run : |
3030 sudo apt-get update
31- sudo apt-get install -y build-essential cmake ninja-build python3 wget libz-dev binutils xz-utils gcc g++ lld
31+ sudo apt-get install -y build-essential cmake ninja-build python3 wget libz-dev binutils xz-utils gcc g++
3232
3333 sudo apt-get remove -y llvm-16* clang-16* || true
3434 sudo rm -rf /usr/lib/llvm-16
3535
36- sudo apt-get install -y clang
37-
3836 - name : Downloading LLVM project
3937 run : |
4038 wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/llvm-project-17.0.6.src.tar.xz
@@ -44,19 +42,39 @@ jobs:
4442 tar -xf llvm-project-17.0.6.src.tar.xz
4543 mv llvm-project-17.0.6.src llvm-project
4644
45+ - name : Creating host-tools build directory
46+ run : |
47+ mkdir -p host-build
48+
49+ - name : Build host tools first
50+ run : |
51+ cmake ../llvm-project/llvm -G Ninja \
52+ -DCMAKE_BUILD_TYPE=Release \
53+ -DLLVM_ENABLE_PROJECTS="llvm" \
54+ -DLLVM_TARGETS_TO_BUILD="X86" \
55+ -DLLVM_BUILD_TESTS=OFF \
56+ -DLLVM_INCLUDE_TESTS=OFF \
57+ -DLLVM_INCLUDE_EXAMPLES=OFF \
58+ -DLLVM_INCLUDE_DOCS=OFF \
59+ -DCMAKE_INSTALL_PREFIX="/host-tools"
60+
61+ ninja -j$(nproc) llvm-tblgen llvm-config
62+ ninja install
63+
64+ working-directory : host-build
65+
4766 - name : Creating cross-compilation build directory
4867 run : |
4968 mkdir -p llvm-build
5069
51- - name : Configure LLVM for cross-compilation to musl
70+ - name : Configure LLVM for cross-compilation to gnu
5271 run : |
5372 cmake ../llvm-project/llvm -G Ninja \
5473 -DCMAKE_BUILD_TYPE=MinSizeRel \
55- -DCMAKE_C_COMPILER=clang \
56- -DCMAKE_CXX_COMPILER=clang++ \
57- -DCMAKE_C_FLAGS="--target=x86_64-unknown-linux-gnu" \
58- -DCMAKE_CXX_FLAGS="--target=x86_64-unknown-linux-gnu" \
59- -DCMAKE_ASM_FLAGS="--target=x86_64-unknown-linux-gnu" \
74+ -DCMAKE_C_COMPILER=x86_64-unknown-linux-gnu-gcc \
75+ -DCMAKE_CXX_COMPILER=x86_64-unknown-linux-gnu-g++ \
76+ -DCMAKE_SYSROOT=/usr/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot/ \
77+ -DLLVM_TABLEGEN=/host-tools/bin/llvm-tblgen \
6078 -DLLVM_ENABLE_PROJECTS="llvm" \
6179 -DLLVM_ENABLE_TERMINFO=OFF \
6280 -DLLVM_ENABLE_ZLIB=ON \
@@ -118,5 +136,4 @@ jobs:
118136
119137 files : |
120138 tempDir/llvm-x86_64-unknown-linux-gnu.tar.xz
121-
122- draft : false
139+
0 commit comments