Skip to content

Is it possible to support arm v7 32-bit compilation? #890

@loverustfs

Description

@loverustfs

Problem:

Is it possible to support arm v7 32-bit compilation?

Relevant details

AWS-LC for Rust versions or commit: v0.31.0.

System information: for linux, below info can be collected by running uname -srvmp

  • CPU architecture: ARMv7
  • CPU name: i don't know, compiled on GitHub Actions
  • OS: Ubuntu 24.04

Build log:

https://github.com/overtrue-forks/rustfs/actions/runs/17933811310/job/50995889315

  • The log tells compiler and version.
   Compiling zstd v0.13.3
warning: aws-lc-sys@0.31.0: Building with: CMake
warning: aws-lc-sys@0.31.0: Symbol Prefix: Some("aws_lc_0_31_0")
warning: aws-lc-sys@0.31.0: Environment Variable found 'CMAKE': 'cmake'
warning: aws-lc-sys@0.31.0: CMAKE environment variable set: cmake
warning: aws-lc-sys@0.31.0: ######
warning: aws-lc-sys@0.31.0: If bindgen is unable to locate a header file, use the BINDGEN_EXTRA_CLANG_ARGS environment variable to specify additional include paths.
warning: aws-lc-sys@0.31.0: See: https://github.com/rust-lang/rust-bindgen?tab=readme-ov-file#environment-variables
warning: aws-lc-sys@0.31.0: ######
error: failed to run custom build command for `aws-lc-sys v0.31.0`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `/home/runner/work/rustfs/rustfs/target/release/build/aws-lc-sys-aba7b9101b141ea6/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_SYS_PREGENERATING_BINDINGS_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_PREGENERATING_BINDINGS
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
  cargo:rerun-if-env-changed=AWS_LC_SYS_CFLAGS_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_CFLAGS
  cargo:rerun-if-env-changed=CFLAGS_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=CFLAGS
  cargo:rerun-if-env-changed=AWS_LC_SYS_PREBUILT_NASM_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_PREBUILT_NASM
  cargo:rerun-if-env-changed=AWS_LC_SYS_C_STD_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_C_STD
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREGENERATED_SRC_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREGENERATED_SRC
  cargo:rerun-if-env-changed=AWS_LC_SYS_EFFECTIVE_TARGET_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_EFFECTIVE_TARGET
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE
  cargo:rerun-if-env-changed=CMAKE_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=CMAKE
  cargo:warning=Building with: CMake
  cargo:warning=Symbol Prefix: Some("aws_lc_0_31_0")
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE
  cargo:rerun-if-env-changed=CMAKE_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=CMAKE
  cargo:warning=Environment Variable found 'CMAKE': 'cmake'
  cargo:warning=CMAKE environment variable set: cmake
  cargo:warning=######
  cargo:warning=If bindgen is unable to locate a header file, use the BINDGEN_EXTRA_CLANG_ARGS environment variable to specify additional include paths.
  cargo:warning=See: https://github.com/rust-lang/rust-bindgen?tab=readme-ov-file#environment-variables
  cargo:warning=######

  --- stderr
  Consider installing the bindgen-cli: `cargo install --force --locked bindgen-cli`
  See our User Guide for more information about bindgen:https://aws.github.io/aws-lc-rs/index.html
  Failure invoking external bindgen! External bindgen command failed.

  thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-sys-0.31.0/builder/main.rs:758:5:
  aws-lc-sys build failed. Please enable the 'bindgen' feature on aws-lc-rs or aws-lc-sys.For more information, see the aws-lc-rs User Guide: https://aws.github.io/aws-lc-rs/index.html
  stack backtrace:
     0: __rustc::rust_begin_unwind
     1: core::panicking::panic_fmt
     2: build_script_main::main
     3: core::ops::function::FnOnce::call_once
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions