From e7c50dcff6de6b61d9d1b3805016126ac4063ca6 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 10 Oct 2022 11:37:59 +0900 Subject: [PATCH 1/3] testing Signed-off-by: Yuki Okushi --- .github/workflows/bors.yml | 357 +------------------------------------ ci/install-rust.sh | 2 +- 2 files changed, 2 insertions(+), 357 deletions(-) diff --git a/.github/workflows/bors.yml b/.github/workflows/bors.yml index 89850c8cc4d80..b693e4dd9d281 100644 --- a/.github/workflows/bors.yml +++ b/.github/workflows/bors.yml @@ -8,165 +8,19 @@ on: permissions: {} jobs: - docker_linux_tier1: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Linux Tier1 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - macos: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: macOS - runs-on: macos-12 - strategy: - fail-fast: true - matrix: - target: [ - x86_64-apple-darwin, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - - windows: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - include: - - target: x86_64-pc-windows-gnu - env: - ARCH_BITS: 64 - ARCH: x86_64 - - target: x86_64-pc-windows-msvc - # Disabled because broken: - # https://github.com/rust-lang/libc/issues/1592 - #- target: i686-pc-windows-gnu - # env: - # ARCH_BITS: 32 - # ARCH: i686 - - target: i686-pc-windows-msvc - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - shell: bash - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - shell: bash - - style_check: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Style check - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh - docker_linux_tier2: permissions: actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) contents: read # to fetch code (actions/checkout) name: Docker Linux Tier2 - needs: [docker_linux_tier1, style_check] runs-on: ubuntu-22.04 strategy: fail-fast: true max-parallel: 12 matrix: target: [ - # FIXME: Mysterious failures in CI, see - # https://github.com/rust-lang/libc/issues/2081 - # aarch64-linux-android, - aarch64-unknown-linux-gnu, - aarch64-unknown-linux-musl, - arm-linux-androideabi, - arm-unknown-linux-gnueabihf, - arm-unknown-linux-musleabihf, - asmjs-unknown-emscripten, - # FIXME: Started to fail since 2022-10-10: - # error: linking with `i686-linux-android-gcc` failed: exit status: 1 - # ld: error: cannot find -lunwind - # i686-linux-android, - i686-unknown-linux-musl, - mips-unknown-linux-gnu, - mips-unknown-linux-musl, - # FIXME: Somehow failed on CI - # https://github.com/rust-lang/libc/runs/1659882216 - # mips64-unknown-linux-gnuabi64, - # mips64el-unknown-linux-gnuabi64, - mipsel-unknown-linux-musl, - powerpc-unknown-linux-gnu, - powerpc64-unknown-linux-gnu, - powerpc64le-unknown-linux-gnu, - s390x-unknown-linux-gnu, - riscv64gc-unknown-linux-gnu, - # FIXME: A recent nightly causes a linker failure: - # https://github.com/rust-lang/rust/issues/76679 - # See this comment for more details: - # https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737 - #wasm32-wasi, - sparc64-unknown-linux-gnu, - wasm32-unknown-emscripten, - # FIXME: Started to fail since 2022-10-10: - # error: linking with `x86_64-linux-android-gcc` failed: exit status: 1 - # ld: error: cannot find -lunwind - # x86_64-linux-android, - x86_64-unknown-linux-gnux32, - x86_64-unknown-linux-musl, - # FIXME: It seems some items in `src/unix/mod.rs` - # aren't defined on redox actually. - # x86_64-unknown-redox, + i686-linux-android, ] steps: - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master @@ -178,195 +32,6 @@ jobs: - name: Execute run-docker.sh run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - # These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std. - # Because of this, only the nightly compiler can be used on these targets. - docker_linux_build_std: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - if: ${{ false }} # This is currently broken - name: Docker Linux Build-Std Targets - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - armv7-unknown-linux-uclibceabihf - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # devkitpro's pacman needs to be connected from Docker. - docker_switch: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Switch - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh switch - - build_channels_linux: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Build Channels Linux - needs: docker_linux_tier2 - runs-on: ubuntu-22.04 - env: - OS: linux - strategy: - fail-fast: true - max-parallel: 5 - matrix: - toolchain: [ - stable, - beta, - nightly, - 1.13.0, - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - - build_channels_macos: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels macOS - needs: macos - # FIXME: Use macOS 11 for now as CI failed with a linker error on macOS 12 image: - # ld: in /.../x86_64-apple-darwin/lib/libstd-a4729905.rlib(rust.metadata.bin), - # archive member 'rust.metadata.bin' with length 2958149 is not mach-o or llvm bitcode file '/.../x86_64-apple-darwin/lib/libstd-a4729905.rlib' - # Possibly related: https://github.com/actions/runner-images/issues/6350 - runs-on: macos-11 - env: - OS: macos - strategy: - fail-fast: true - max-parallel: 4 - matrix: - toolchain: [ - stable, - beta, - nightly, - 1.13.0, - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - - build_channels_windows: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - toolchain: [ - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - stable, - ] - steps: - - uses: actions/checkout@v3 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} WIN_TARGET=${{ matrix.target }} sh ./ci/build.sh - shell: bash - - semver_linux: - if: ${{ false }} # This is currently broken - name: Semver Linux - runs-on: ubuntu-22.04 - continue-on-error: true - steps: - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - # Should update the semverver revision in semver.sh if we touch nightly ver. - run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh - - name: Check breaking changes - run: sh ci/semver.sh linux - - semver_macos: - if: ${{ false }} # This is currently broken - name: Semver macOS - runs-on: macos-12 - continue-on-error: true - steps: - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - # Pin nightly version to make semverver compilable. - run: TOOLCHAIN=nightly-2022-05-23 sh ./ci/install-rust.sh - - name: Check breaking changes - run: sh ci/semver.sh macos - - docs: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Generate documentation - runs-on: ubuntu-22.04 - needs: docker_linux_tier2 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v3 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Generate documentation - run: LIBC_CI=1 sh ci/dox.sh - # These jobs doesn't actually test anything, but they're only used to tell # bors the build completed, as there is no practical way to detect when a # workflow is successful listening to webhooks only. @@ -378,17 +43,7 @@ jobs: if: github.event.pusher.name == 'bors' && success() runs-on: ubuntu-22.04 needs: [ - docker_linux_tier1, docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - docs, ] steps: @@ -400,17 +55,7 @@ jobs: if: github.event.pusher.name == 'bors' && (failure() || cancelled()) runs-on: ubuntu-22.04 needs: [ - docker_linux_tier1, docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - docs, ] steps: diff --git a/ci/install-rust.sh b/ci/install-rust.sh index d7e2be8070dc0..3146ace90740c 100644 --- a/ci/install-rust.sh +++ b/ci/install-rust.sh @@ -8,7 +8,7 @@ toolchain= if [ -n "$TOOLCHAIN" ]; then toolchain=$TOOLCHAIN else - toolchain=nightly + toolchain=nightly-2022-10-09 fi if [ "$OS" = "windows" ]; then : "${TARGET?The TARGET environment variable must be set.}" From 1c18214c71bc819a89a43f22cc06bb046c6f5bd0 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 10 Oct 2022 12:57:52 +0900 Subject: [PATCH 2/3] Use Android NDK r25b Signed-off-by: Yuki Okushi --- ci/android-install-ndk.sh | 8 ++++---- ci/docker/i686-linux-android/Dockerfile | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/android-install-ndk.sh b/ci/android-install-ndk.sh index 463565125972f..4131547bbf4fe 100644 --- a/ci/android-install-ndk.sh +++ b/ci/android-install-ndk.sh @@ -2,9 +2,9 @@ set -ex -NDK=android-ndk-r21d -wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip -unzip -q ${NDK}-linux-x86_64.zip +NDK=android-ndk-r25b +wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux.zip +unzip -q ${NDK}-linux.zip case "$1" in arm) @@ -38,4 +38,4 @@ python3 ${NDK}/build/tools/make_standalone_toolchain.py \ --arch "${arch}" \ --api ${api} -rm -rf ./${NDK}-linux-x86_64.zip ./${NDK} +rm -rf ./${NDK}-linux.zip ./${NDK} diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index ed1b2e9fbef0e..705654ad6423c 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -31,6 +31,7 @@ ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \ CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \ CC_i686_linux_android=i686-linux-android-gcc \ + AR=llvm-ar \ HOME=/tmp ADD runtest-android.rs /tmp/runtest.rs From faa6b3bfb7a989df52759e90239894bb2e400be7 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 11 Oct 2022 18:43:23 +0900 Subject: [PATCH 3/3] Ignore some items Signed-off-by: Yuki Okushi --- libc-test/build.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 2fc7cc4540e0f..319892e5617d0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1803,7 +1803,10 @@ fn test_android(target: &str) { // signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet. (struct_ == "signalfd_siginfo" && (field == "ssi_syscall" || field == "ssi_call_addr" || - field == "ssi_arch")) + field == "ssi_arch")) || + // Linux >= 5.11 tweaked the `svm_zero` field of the `sockaddr_vm` struct. + // https://github.com/torvalds/linux/commit/dc8eeef73b63ed8988224ba6b5ed19a615163a7f + (struct_ == "sockaddr_vm" && field == "svm_zero") }); cfg.skip_field(|struct_, field| {