diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cf04287..d749157 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -120,9 +120,17 @@ jobs: target: ${{ matrix.target }} manylinux: 2_28 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: messense/manylinux_2_28-cross:${{ matrix.target }} + container: congyuwang/manylinux_2_28_x86_64:llvm-17.0.6 + env: + LIBCLANG_PATH: /usr/local/lib + CC: /usr/local/bin/clang + CXX: /usr/local/bin/clang++ + AR: /usr/local/bin/llvm-ar + CFLAGS: "-flto=thin -O3" + CXXFLAGS: "-flto=thin -O3" + RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld" + - name: Install built wheel and test - if: matrix.target == 'x86_64' run: | pip install rocksdict --no-index --find-links dist --force-reinstall || true pip install speedict --no-index --find-links dist --force-reinstall || true @@ -153,9 +161,16 @@ jobs: target: ${{ matrix.target }} manylinux: 2014 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: congyuwang/manylinux2014:${{ matrix.target }} + container: congyuwang/manylinux2014_x86_64:llvm-17.0.6 + env: + LIBCLANG_PATH: /usr/local/lib + CC: /usr/local/bin/clang + CXX: /usr/local/bin/clang++ + AR: /usr/local/bin/llvm-ar + CFLAGS: "-flto=thin -O3" + CXXFLAGS: "-flto=thin -O3" + RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld" - name: Install built wheel and test - if: matrix.target == 'x86_64' run: | pip install rocksdict --no-index --find-links dist --force-reinstall || true pip install speedict --no-index --find-links dist --force-reinstall || true @@ -185,9 +200,32 @@ jobs: target: ${{ matrix.target }} manylinux: 2_28 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: congyuwang/manylinux_2_28-cross:${{ matrix.target }} + container: congyuwang/manylinux_2_28_aarch64:llvm-17.0.6 + docker-options: "-e BINDGEN_EXTRA_CLANG_ARGS" + before-script-linux: | + ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtbeginS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtbeginS.o + ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtendS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtendS.o + env: + LIBCLANG_PATH: /usr/local/lib + CC_aarch64_unknown_linux_gnu: /usr/local/bin/clang + CXX_aarch64_unknown_linux_gnu: /usr/local/bin/clang++ + AR_aarch64_unknown_linux_gnu: /usr/local/bin/llvm-ar + CFLAGS_aarch64_unknown_linux_gnu: > + -flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + CXXFLAGS_aarch64_unknown_linux_gnu: > + -flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + -I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/ + -I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/aarch64-unknown-linux-gnu/ + BINDGEN_EXTRA_CLANG_ARGS: > + --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: > + /usr/local/bin/clang + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS: > + -Clinker-plugin-lto + -Clinker=/usr/local/bin/clang + -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld + -Clink-arg=--sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ - uses: uraimo/run-on-arch-action@v2 - if: matrix.target != 'ppc64' name: Install built wheel and test with: arch: ${{ matrix.target }} diff --git a/.github/workflows/PR.yml b/.github/workflows/PR.yml index a67bffc..56312db 100644 --- a/.github/workflows/PR.yml +++ b/.github/workflows/PR.yml @@ -120,9 +120,17 @@ jobs: target: ${{ matrix.target }} manylinux: 2_28 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: messense/manylinux_2_28-cross:${{ matrix.target }} + container: congyuwang/manylinux_2_28_x86_64:llvm-17.0.6 + env: + LIBCLANG_PATH: /usr/local/lib + CC: /usr/local/bin/clang + CXX: /usr/local/bin/clang++ + AR: /usr/local/bin/llvm-ar + CFLAGS: "-flto=thin -O3" + CXXFLAGS: "-flto=thin -O3" + RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld" + - name: Install built wheel and test - if: matrix.target == 'x86_64' run: | pip install rocksdict --no-index --find-links dist --force-reinstall || true pip install speedict --no-index --find-links dist --force-reinstall || true @@ -153,9 +161,16 @@ jobs: target: ${{ matrix.target }} manylinux: 2014 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: congyuwang/manylinux2014:${{ matrix.target }} + container: congyuwang/manylinux2014_x86_64:llvm-17.0.6 + env: + LIBCLANG_PATH: /usr/local/lib + CC: /usr/local/bin/clang + CXX: /usr/local/bin/clang++ + AR: /usr/local/bin/llvm-ar + CFLAGS: "-flto=thin -O3" + CXXFLAGS: "-flto=thin -O3" + RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld" - name: Install built wheel and test - if: matrix.target == 'x86_64' run: | pip install rocksdict --no-index --find-links dist --force-reinstall || true pip install speedict --no-index --find-links dist --force-reinstall || true @@ -185,9 +200,32 @@ jobs: target: ${{ matrix.target }} manylinux: 2_28 args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12' - container: congyuwang/manylinux_2_28-cross:${{ matrix.target }} + container: congyuwang/manylinux_2_28_aarch64:llvm-17.0.6 + docker-options: "-e BINDGEN_EXTRA_CLANG_ARGS" + before-script-linux: | + ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtbeginS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtbeginS.o + ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtendS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtendS.o + env: + LIBCLANG_PATH: /usr/local/lib + CC_aarch64_unknown_linux_gnu: /usr/local/bin/clang + CXX_aarch64_unknown_linux_gnu: /usr/local/bin/clang++ + AR_aarch64_unknown_linux_gnu: /usr/local/bin/llvm-ar + CFLAGS_aarch64_unknown_linux_gnu: > + -flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + CXXFLAGS_aarch64_unknown_linux_gnu: > + -flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + -I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/ + -I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/aarch64-unknown-linux-gnu/ + BINDGEN_EXTRA_CLANG_ARGS: > + --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: > + /usr/local/bin/clang + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS: > + -Clinker-plugin-lto + -Clinker=/usr/local/bin/clang + -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld + -Clink-arg=--sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/ - uses: uraimo/run-on-arch-action@v2 - if: matrix.target != 'ppc64' name: Install built wheel and test with: arch: ${{ matrix.target }}