diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d1ec347c5..1087a80ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -219,20 +219,20 @@ jobs: build: [ubuntu, ubuntu-18.04, i686-linux, aarch64-linux, powerpc64le-linux, riscv64-linux, s390x-linux, arm-linux, ubuntu-stable, ubuntu-1.48, i686-linux-stable, aarch64-linux-stable, riscv64-linux-stable, s390x-linux-stable, mipsel-linux-stable, mips64el-linux-stable, powerpc64le-linux-stable, arm-linux-stable, ubuntu-1.48, i686-linux-1.48, aarch64-linux-1.48, riscv64-linux-1.48, s390x-linux-1.48, mipsel-linux-1.48, mips64el-linux-1.48, powerpc64le-linux-1.48, arm-linux-1.48, macos-latest, macos-10.15, windows, windows-2019] include: - build: ubuntu - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly - build: ubuntu-18.04 os: ubuntu-18.04 rust: nightly - build: i686-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: i686-unknown-linux-gnu gcc_package: gcc-i686-linux-gnu gcc: i686-linux-gnu-gcc libc_package: libc-dev-i386-cross - build: aarch64-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: aarch64-unknown-linux-gnu gcc_package: gcc-aarch64-linux-gnu @@ -241,7 +241,7 @@ jobs: qemu_args: -L /usr/aarch64-linux-gnu qemu_target: aarch64-linux-user - build: powerpc64le-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: powerpc64le-unknown-linux-gnu gcc_package: gcc-powerpc64le-linux-gnu @@ -250,7 +250,7 @@ jobs: qemu_args: -L /usr/powerpc64le-linux-gnu qemu_target: ppc64le-linux-user - build: mips64el-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: mips64el-unknown-linux-gnuabi64 gcc_package: gcc-mips64el-linux-gnuabi64 @@ -259,7 +259,7 @@ jobs: qemu_args: -L /usr/mips64el-linux-gnuabi64 qemu_target: mips64el-linux-user - build: mipsel-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: mipsel-unknown-linux-gnu gcc_package: gcc-mipsel-linux-gnu @@ -268,7 +268,7 @@ jobs: qemu_args: -L /usr/mipsel-linux-gnu qemu_target: mipsel-linux-user - build: riscv64-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: riscv64gc-unknown-linux-gnu gcc_package: gcc-riscv64-linux-gnu @@ -277,7 +277,7 @@ jobs: qemu_args: -L /usr/riscv64-linux-gnu qemu_target: riscv64-linux-user - build: s390x-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: s390x-unknown-linux-gnu gcc_package: gcc-s390x-linux-gnu @@ -286,7 +286,7 @@ jobs: qemu_args: -L /usr/s390x-linux-gnu qemu_target: s390x-linux-user - build: arm-linux - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: nightly target: armv5te-unknown-linux-gnueabi gcc_package: gcc-arm-linux-gnueabi @@ -295,17 +295,17 @@ jobs: qemu_args: -L /usr/arm-linux-gnueabi qemu_target: arm-linux-user - build: ubuntu-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable - build: i686-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: i686-unknown-linux-gnu gcc_package: gcc-i686-linux-gnu gcc: i686-linux-gnu-gcc libc_package: libc-dev-i386-cross - build: aarch64-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: aarch64-unknown-linux-gnu gcc_package: gcc-aarch64-linux-gnu @@ -314,7 +314,7 @@ jobs: qemu_args: -L /usr/aarch64-linux-gnu qemu_target: aarch64-linux-user - build: riscv64-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: riscv64gc-unknown-linux-gnu gcc_package: gcc-riscv64-linux-gnu @@ -323,7 +323,7 @@ jobs: qemu_args: -L /usr/riscv64-linux-gnu qemu_target: riscv64-linux-user - build: s390x-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: s390x-unknown-linux-gnu gcc_package: gcc-s390x-linux-gnu @@ -332,7 +332,7 @@ jobs: qemu_args: -L /usr/s390x-linux-gnu qemu_target: s390x-linux-user - build: powerpc64le-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: powerpc64le-unknown-linux-gnu gcc_package: gcc-powerpc64le-linux-gnu @@ -341,7 +341,7 @@ jobs: qemu_args: -L /usr/powerpc64le-linux-gnu qemu_target: ppc64le-linux-user - build: mips64el-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: mips64el-unknown-linux-gnuabi64 gcc_package: gcc-mips64el-linux-gnuabi64 @@ -350,7 +350,7 @@ jobs: qemu_args: -L /usr/mips64el-linux-gnuabi64 qemu_target: mips64el-linux-user - build: mipsel-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: mipsel-unknown-linux-gnu gcc_package: gcc-mipsel-linux-gnu @@ -359,7 +359,7 @@ jobs: qemu_args: -L /usr/mipsel-linux-gnu qemu_target: mipsel-linux-user - build: arm-linux-stable - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: stable target: armv5te-unknown-linux-gnueabi gcc_package: gcc-arm-linux-gnueabi @@ -368,17 +368,17 @@ jobs: qemu_args: -L /usr/arm-linux-gnueabi qemu_target: arm-linux-user - build: ubuntu-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 - build: i686-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: i686-unknown-linux-gnu gcc_package: gcc-i686-linux-gnu gcc: i686-linux-gnu-gcc libc_package: libc-dev-i386-cross - build: aarch64-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: aarch64-unknown-linux-gnu gcc_package: gcc-aarch64-linux-gnu @@ -387,7 +387,7 @@ jobs: qemu_args: -L /usr/aarch64-linux-gnu qemu_target: aarch64-linux-user - build: riscv64-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: riscv64gc-unknown-linux-gnu gcc_package: gcc-riscv64-linux-gnu @@ -396,7 +396,7 @@ jobs: qemu_args: -L /usr/riscv64-linux-gnu qemu_target: riscv64-linux-user - build: s390x-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: s390x-unknown-linux-gnu gcc_package: gcc-s390x-linux-gnu @@ -405,7 +405,7 @@ jobs: qemu_args: -L /usr/s390x-linux-gnu qemu_target: s390x-linux-user - build: powerpc64le-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: powerpc64le-unknown-linux-gnu gcc_package: gcc-powerpc64le-linux-gnu @@ -414,7 +414,7 @@ jobs: qemu_args: -L /usr/powerpc64le-linux-gnu qemu_target: ppc64le-linux-user - build: mips64el-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: mips64el-unknown-linux-gnuabi64 gcc_package: gcc-mips64el-linux-gnuabi64 @@ -423,7 +423,7 @@ jobs: qemu_args: -L /usr/mips64el-linux-gnuabi64 qemu_target: mips64el-linux-user - build: mipsel-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: mipsel-unknown-linux-gnu gcc_package: gcc-mipsel-linux-gnu @@ -432,7 +432,7 @@ jobs: qemu_args: -L /usr/mipsel-linux-gnu qemu_target: mipsel-linux-user - build: arm-linux-1.48 - os: ubuntu-20.04 # TODO: remove pin when fixed (#483) + os: ubuntu-latest rust: 1.48 target: armv5te-unknown-linux-gnueabi gcc_package: gcc-arm-linux-gnueabi @@ -470,7 +470,7 @@ jobs: with: path: ${{ runner.tool_cache }}/qemu key: qemu-${{ matrix.target }}-${{ env.QEMU_BUILD_VERSION }}-patched - if: matrix.target != '' && matrix.os == 'ubuntu-20.04' # TODO: remove pin when fixed (#483) + if: matrix.target != '' && matrix.os == 'ubuntu-latest' - name: Install cross-compilation tools run: | @@ -479,14 +479,14 @@ jobs: sudo apt-get install -y ${{ matrix.gcc_package }} ninja-build upcase=$(echo ${{ matrix.target }} | awk '{ print toupper($0) }' | sed 's/-/_/g') echo CARGO_TARGET_${upcase}_LINKER=${{ matrix.gcc }} >> $GITHUB_ENV - if: matrix.gcc_package != '' && matrix.os == 'ubuntu-20.04' # TODO: remove pin when fixed (#483) + if: matrix.gcc_package != '' && matrix.os == 'ubuntu-latest' - name: Install cross-compilation libraries run: | set -ex sudo apt-get update sudo apt-get install -y ${{ matrix.libc_package }} - if: matrix.libc_package != '' && matrix.os == 'ubuntu-20.04' # TODO: remove pin when fixed (#483) + if: matrix.libc_package != '' && matrix.os == 'ubuntu-latest' - name: Install qemu run: | @@ -512,7 +512,7 @@ jobs: patch -p1 < $GITHUB_WORKSPACE/ci/s390x-stat-have-nsec.patch ./configure --target-list=${{ matrix.qemu_target }} --prefix=${{ runner.tool_cache }}/qemu --disable-tools --disable-slirp --disable-fdt --disable-capstone --disable-docs ninja -C build install - if: matrix.qemu != '' && matrix.os == 'ubuntu-20.04' # TODO: remove pin when fixed (#483) + if: matrix.qemu != '' && matrix.os == 'ubuntu-latest' - name: Use specific dependency versions for Rust 1.48 compatibility. if: matrix.rust == '1.48' diff --git a/build.rs b/build.rs index 082b31b2c..bc08e63d8 100644 --- a/build.rs +++ b/build.rs @@ -175,7 +175,15 @@ fn link_in_librustix_outline(arch: &str, asm_name: &str) { #[cfg(feature = "cc")] { let out_dir = var("OUT_DIR").unwrap(); - Build::new().file(&asm_name).compile(&name); + // Add `-gdwarf-3` so that we always get the same output, regardless of + // the Rust version we're using. DWARF3 is the version used in + // Rust 1.48 and is entirely adequate for our simple needs here. + let mut build = Build::new(); + if profile == "debug" { + build.flag("-gdwarf-3"); + } + build.file(&asm_name); + build.compile(&name); println!("cargo:rerun-if-changed={}", asm_name); if std::fs::metadata(".git").is_ok() { let from = format!("{}/lib{}.a", out_dir, name); diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_aarch64.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_aarch64.a index 426e499b1..ceea3cd20 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_aarch64.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_aarch64.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_arm.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_arm.a index bff4aa273..07ab58bc5 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_arm.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_arm.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips.a index d1aa5417d..bce8851c4 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips64.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips64.a index 80d4dd973..88ae70b48 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips64.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_mips64.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_powerpc64.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_powerpc64.a index 842b3f9d2..5326f37d6 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_powerpc64.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_powerpc64.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_riscv64.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_riscv64.a index 1ab001d92..e2cbdd72a 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_riscv64.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_riscv64.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86.a index 17b8b6d87..6741a82e9 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86.a differ diff --git a/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86_64.a b/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86_64.a index 78d63559d..c0de84f6f 100644 Binary files a/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86_64.a and b/src/backend/linux_raw/arch/outline/debug/librustix_outline_x86_64.a differ diff --git a/src/backend/linux_raw/arch/outline/release/librustix_outline_riscv64.a b/src/backend/linux_raw/arch/outline/release/librustix_outline_riscv64.a index 26bd74462..5337fbd3a 100644 Binary files a/src/backend/linux_raw/arch/outline/release/librustix_outline_riscv64.a and b/src/backend/linux_raw/arch/outline/release/librustix_outline_riscv64.a differ diff --git a/src/backend/linux_raw/arch/outline/release/librustix_outline_x86.a b/src/backend/linux_raw/arch/outline/release/librustix_outline_x86.a index 9c2fb9eb9..a1e24c130 100644 Binary files a/src/backend/linux_raw/arch/outline/release/librustix_outline_x86.a and b/src/backend/linux_raw/arch/outline/release/librustix_outline_x86.a differ diff --git a/src/backend/linux_raw/arch/outline/release/librustix_outline_x86_64.a b/src/backend/linux_raw/arch/outline/release/librustix_outline_x86_64.a index 77076f69c..659939260 100644 Binary files a/src/backend/linux_raw/arch/outline/release/librustix_outline_x86_64.a and b/src/backend/linux_raw/arch/outline/release/librustix_outline_x86_64.a differ