@@ -47,50 +47,58 @@ jobs:
4747 tar -xf llvm-project-17.0.6.src.tar.xz
4848 mv llvm-project-17.0.6.src llvm-project
4949
50- - name : Creating build directory
50+ - name : Build host tools first (para glibc - herramientas nativas)
51+ run : |
52+ mkdir -p host-build
53+ cmake ../llvm-project/llvm -G Ninja \
54+ -DCMAKE_BUILD_TYPE=Release \
55+ -DLLVM_ENABLE_PROJECTS="llvm" \
56+ -DLLVM_TARGETS_TO_BUILD="X86" \
57+ -DLLVM_BUILD_TESTS=OFF \
58+ -DLLVM_INCLUDE_TESTS=OFF \
59+ -DLLVM_INCLUDE_EXAMPLES=OFF \
60+ -DLLVM_INCLUDE_DOCS=OFF \
61+ -DCMAKE_INSTALL_PREFIX="/host-tools"
62+ ninja -j$(nproc) llvm-tblgen llvm-config
63+ ninja install
64+ working-directory : host-build
65+
66+ - name : Creating cross-compilation build directory
5167 run : |
5268 mkdir -p llvm-build
5369
54- - name : Configure LLVM build
70+ - name : Configure LLVM for cross-compilation to musl
5571 run : |
5672 cmake ../llvm-project/llvm -G Ninja \
5773 -DCMAKE_BUILD_TYPE=MinSizeRel \
5874 -DCMAKE_C_COMPILER=x86_64-unknown-linux-musl-gcc \
5975 -DCMAKE_CXX_COMPILER=x86_64-unknown-linux-musl-g++ \
60- -DLLD_INCLUDE_TOOLS=ON \
76+ -DCMAKE_SYSROOT=/usr/local/musl/x86_64-unknown-linux-musl \
77+ -DLLVM_TABLEGEN=/host-tools/bin/llvm-tblgen \
78+ -DLLVM_CONFIG_PATH=/host-tools/bin/llvm-config \
6179 -DLLVM_ENABLE_PROJECTS="llvm;lld" \
6280 -DLLVM_ENABLE_TERMINFO=OFF \
63- -DLLVM_ENABLE_ZLIB=OFF \
64- -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=TRUE \
65- -DLLVM_ENABLE_LIBXML2=0 \
81+ -DLLVM_ENABLE_ZLIB=ON \
82+ -DLLVM_ENABLE_LIBXML2=OFF \
6683 -DCMAKE_INSTALL_PREFIX="dist" \
67- -DLLVM_TARGETS_TO_BUILD=X86 \
84+ -DLLVM_TARGETS_TO_BUILD="X86" \
85+ -DLLVM_HOST_TRIPLE=x86_64-unknown-linux-musl \
86+ -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-linux-musl \
6887 -DLLVM_BUILD_TESTS=OFF \
6988 -DLLVM_BUILD_EXAMPLES=OFF \
7089 -DLLVM_INCLUDE_TESTS=OFF \
7190 -DLLVM_INCLUDE_EXAMPLES=OFF \
72- -DLLVM_INCLUDE_DOCS=OFF
73- working-directory : llvm-build
74-
75- - name : Building LLVM tools first
76- run : |
77- # Primero construimos solo las herramientas esenciales
78- ninja -j$(nproc) llvm-min-tblgen llvm-tblgen llvm-config
79- working-directory : llvm-build
80-
81- - name : Verify tools are built
82- run : |
83- ls -la bin/llvm-min-tblgen
84- file bin/llvm-min-tblgen
85- ./bin/llvm-min-tblgen --version
91+ -DLLVM_INCLUDE_DOCS=OFF \
92+ -DLLVM_BUILD_LLVM_DYLIB=ON \
93+ -DLLVM_LINK_LLVM_DYLIB=ON
8694 working-directory : llvm-build
8795
88- - name : Building LLVM
96+ - name : Building LLVM for musl
8997 run : |
9098 ninja -j$(nproc)
9199 working-directory : llvm-build
92100
93- - name : Installing LLVM
101+ - name : Installing LLVM for musl
94102 run : |
95103 ninja install
96104 working-directory : llvm-build
0 commit comments