From 6a937c5798da384a0ee616431573a88fcf620a9d Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 4 Oct 2023 09:42:09 -0700 Subject: [PATCH] wip --- .github/workflows/ci.yml | 258 --------------------------------------- src/cpu.rs | 8 ++ 2 files changed, 8 insertions(+), 258 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb3720b96d..98e063fdc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -168,22 +168,6 @@ jobs: - # Default target: - - aarch64-apple-ios - - aarch64-apple-darwin - - aarch64-linux-android - - aarch64-pc-windows-msvc - - aarch64-unknown-linux-gnu - - aarch64-unknown-linux-musl - - arm-unknown-linux-gnueabihf - - armv7-linux-androideabi - - armv7-unknown-linux-musleabihf - - i686-pc-windows-msvc - - i686-unknown-linux-gnu - - i686-unknown-linux-musl - - powerpc-unknown-linux-gnu - - powerpc64le-unknown-linux-gnu - - riscv64gc-unknown-linux-gnu - - s390x-unknown-linux-gnu - x86_64-pc-windows-gnu - x86_64-pc-windows-msvc - x86_64-apple-darwin @@ -329,245 +313,3 @@ jobs: !contains(matrix.host_os, 'windows') && (!contains(matrix.host_os, 'macos') || matrix.mode != '--release') }} run: mk/check-symbol-prefixes.sh --target=${{ matrix.target }} - - # XXX: GitHub Actions won't let us test all the combinations of features in - # the "test" matrix because the resultant matrix would be larger than the - # maximum they allow. - test-features: - # Don't run duplicate `push` jobs for the repo owner's PRs. - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository - - runs-on: ${{ matrix.host_os }} - strategy: - matrix: - features: - - --no-default-features - - --no-default-features --features=alloc - - --no-default-features --features=dev_urandom_fallback - - --all-features - - target: - - aarch64-unknown-linux-musl - - i686-pc-windows-msvc - - x86_64-unknown-linux-gnu - - mode: - - --release - - rust_channel: - - stable - - nightly - # Keep in sync with Cargo.toml and similar `rust_channel` sections. - - 1.61.0 # MSRV - - include: - - target: aarch64-unknown-linux-musl - host_os: ubuntu-22.04 - - - target: i686-pc-windows-msvc - host_os: windows-latest - - - target: x86_64-unknown-linux-gnu - host_os: ubuntu-22.04 - - steps: - - if: ${{ contains(matrix.host_os, 'ubuntu') }} - run: sudo apt-get update -y - - - uses: briansmith/actions-checkout@v2 - with: - persist-credentials: false - - - if: ${{ !contains(matrix.host_os, 'windows') }} - run: mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }} - - - if: ${{ contains(matrix.host_os, 'windows') }} - run: ./mk/install-build-tools.ps1 - - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} - - - if: ${{ matrix.target == 'aarch64-pc-windows-msvc' }} - run: | - echo "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin" >> $GITHUB_PATH - shell: bash - - - if: ${{ !contains(matrix.host_os, 'windows') }} - run: | - mk/cargo.sh test -vv --all-targets --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - - - if: ${{ contains(matrix.host_os, 'windows') }} - run: | - cargo test -vv --all-targets --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - - # --all-targets doesn't run doctests: https://github.com/rust-lang/cargo/issues/6669 - # Run doctests only on x86_64 to avoid cross-compilation hassles with `--no-run`. - - if: ${{ !contains(matrix.host_os, 'windows') && contains(matrix.target, 'x86_64') }} - run: | - mk/cargo.sh test -vv --doc --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - - # Check that all the needed symbol renaming was done. - # TODO: Do this check on Windows too. - # TODO: Check iOS too. - # TODO: Do this on Apple-hosted release builds too; currently these fail with: - # Unknown attribute kind (528) - # (Producer: 'LLVM12.0.0-rust-1.54.0-nightly' - # Reader: 'LLVM APPLE_1_1200.0.32.29_0') - - if: ${{ matrix.target != 'aarch64-apple-ios' && - !contains(matrix.host_os, 'windows') && - (!contains(matrix.host_os, 'macos') || matrix.mode != '--release') }} - run: mk/check-symbol-prefixes.sh --target=${{ matrix.target }} - - - # The wasm32-unknown-unknown targets have a different set of feature sets and - # an additional `webdriver` dimension. - test-wasm32: - # Don't run duplicate `push` jobs for the repo owner's PRs. - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository - - runs-on: ${{ matrix.host_os }} - - strategy: - matrix: - features: - - --features=wasm32_unknown_unknown_js - - --no-default-features --features=wasm32_unknown_unknown_js - - host_os: - - ubuntu-22.04 - mode: - - # debug - - --release - rust_channel: - - stable - - beta - - nightly - target: - - wasm32-unknown-unknown - webdriver: - # TODO: Firefox is not in Ubuntu 22.04 images according to - # https://github.com/actions/runner-images/issues/5490 and our - # testing. - # - GECKODRIVER=$GECKOWEBDRIVER/geckodriver - - CHROMEDRIVER=$CHROMEWEBDRIVER/chromedriver - - steps: - - if: ${{ contains(matrix.host_os, 'ubuntu') }} - run: sudo apt-get update -y - - - uses: briansmith/actions-checkout@v2 - with: - persist-credentials: false - - - run: cargo generate-lockfile - - - run: mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }} - - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} - - - run: | - ${{ matrix.webdriver }} mk/cargo.sh test -vv --target=${{ matrix.target }} ${{ matrix.features }} ${{ matrix.mode }} - - # Check that all the needed symbol renaming was done. - # TODO: Do this check on Windows too. - - run: mk/check-symbol-prefixes.sh --target=${{ matrix.target }} - - coverage: - # Don't run duplicate `push` jobs for the repo owner's PRs. - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository - - runs-on: ${{ matrix.host_os }} - - strategy: - matrix: - features: - # Enable all the library features so we can measure all the coverage. - # Don't enable `slow_tests` and other (test suite) features that are - # unuseful, or even counterproductive, for coverage testing. - # `slow_tests` is slow and it is running code that is already intended - # to be covered without it being enabled. - - --features=alloc,dev_urandom_fallback,std - - # TODO: targets - target: - - aarch64-unknown-linux-gnu # Has assembly - - i686-unknown-linux-gnu # Has assembly - # TODO: arm-unknown-linux-gnueabi # Has assembly but doesn't build w/ clang - # TODO: armv7-unknown-linux-gnueabihf # Has assembly but doesn't have profiler builtins - # TODO: powerpc-unknown-linux-gnu No assembly 32-bit big-endian but doesn't have profiler builtins - - powerpc64le-unknown-linux-gnu # No assembly 64-bit little-endian with flags - - riscv64gc-unknown-linux-gnu # No assembly 64-bit little-endian without flags - - s390x-unknown-linux-gnu # No assembly 64-bit big-endian - - x86_64-unknown-linux-musl # Has assembly - - mode: - - # debug - - # Coverage collection is Nightly-only - rust_channel: - - nightly - - # TODO: targets - include: - # TODO: Use the -musl target after - # https://github.com/rust-lang/rust/issues/79556 and - # https://github.com/rust-lang/rust/issues/79555 are fixed. - - target: aarch64-unknown-linux-gnu - host_os: ubuntu-22.04 - - # TODO: Use the -musl target after - # https://github.com/rust-lang/rust/issues/79556 and - # https://github.com/rust-lang/rust/issues/79555 are fixed. - - target: i686-unknown-linux-gnu - host_os: ubuntu-22.04 - - - target: powerpc64le-unknown-linux-gnu - host_os: ubuntu-22.04 - - - target: riscv64gc-unknown-linux-gnu - host_os: ubuntu-22.04 - - - target: s390x-unknown-linux-gnu - host_os: ubuntu-22.04 - - - target: x86_64-unknown-linux-musl - host_os: ubuntu-22.04 - - # TODO: Add an ARM target after - # https://github.com/rust-lang/rust/issues/79555 is fixed. This may - # require https://github.com/rust-lang/rust/issues/79555 to be fixed - # too. - - steps: - - if: ${{ contains(matrix.host_os, 'ubuntu') }} - run: sudo apt-get update -y - - - uses: briansmith/actions-checkout@v2 - with: - persist-credentials: false - - - if: ${{ !contains(matrix.host_os, 'windows') }} - run: RING_COVERAGE=1 mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }} - - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} - - - if: ${{ !contains(matrix.host_os, 'windows') }} - run: | - RING_COVERAGE=1 mk/cargo.sh +${{ matrix.rust_channel }} test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - - - uses: briansmith/codecov-codecov-action@v3 - with: - directory: ./target/${{ matrix.target }}/debug/coverage/reports - fail_ci_if_error: true - verbose: true diff --git a/src/cpu.rs b/src/cpu.rs index e7530baf0d..b23e516a21 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -50,6 +50,14 @@ pub(crate) fn features() -> Features { unsafe { OPENSSL_cpuid_setup(); } + extern crate std; + use std::println; + prefixed_extern! { + static mut OPENSSL_ia32cap_P: [u32; 4]; + } + unsafe { + println!("{:x}, {:x}, {:x}, {:x}", OPENSSL_ia32cap_P[0], OPENSSL_ia32cap_P[1], OPENSSL_ia32cap_P[2],OPENSSL_ia32cap_P[3]) + } } #[cfg(all(