Giter Club home page Giter Club logo

aws-lc-rs's Introduction

aws-lc-rs aws-lc-sys aws-lc-fips-sys

AWS Libcrypto for Rust

aws-lc-rs is a cryptographic library using AWS-LC for its cryptographic operations. This library strives to be API-compatible with the popular Rust library named ring (v0.16). It uses either the auto-generated aws-lc-sys or aws-lc-fips-sys Foreign Function Interface (FFI) crates found in this repository for invoking AWS-LC.

Crates

A ring-compatible crypto library using the cryptographic operations provided by AWS-LC using either aws-lc-sys or aws-lc-fips-sys.

Autogenerated Low-level AWS-LC bindings for the Rust programming language. We do not recommend directly relying on these bindings.

Autogenerated Low-level AWS-LC bindings for the Rust programming language, providing FIPS support. We do not recommend directly relying on these bindings. This crate provides bindings to AWS-LC-FIPS 2.x, which has completed FIPS validation testing by an accredited lab and has been submitted to NIST for certification. The static build of AWS-LC-FIPS is used. (See README).

Refer to the NIST Cryptographic Module Validation Program's Modules In Progress List for the latest status of the static or dynamic AWS-LC Cryptographic Module. A complete list of supported operating environments will be made available in the vendor security policy once the validation certificate has been issued. We will also update our release notes and documentation to reflect any changes in FIPS certification status.

Build

Please see the build instructions in the aws-lc-rs crate.

Motivation

Rust developers increasingly need to deploy applications that meet US and Canadian government cryptographic requirements. We evaluated how to deliver FIPS validated cryptography in idiomatic and performant Rust, built around our AWS-LC offering. We found that the popular ring (v0.16) library fulfilled much of the cryptographic needs in the Rust community, but it did not meet the needs of developers with FIPS requirements. Our intention is to contribute a drop-in replacement for ring that provides FIPS support and is compatible with the ring API. Rust developers with prescribed cryptographic requirements can seamlessly integrate aws-lc-rs into their applications and deploy them into AWS Regions.

Questions, Feedback and Contributing

We use GitHub Issues for managing feature requests, bug reports, or questions about aws-lc-rs API usage.

Otherwise, if you think you might have found a security impacting issue, please instead follow our Security Notification Process below.

Security Notification Process

If you discover a potential security issue in AWS-LC or aws-lc-rs, we ask that you notify AWS Security via our vulnerability reporting page. Please do not create a public GitHub issue.

If you package or distribute aws-lc-rs, or use aws-lc-rs as part of a large multi-user service, you may be eligible for pre-notification of future aws-lc-rs releases. Please contact [email protected].

License

This library is licensed under the Apache-2.0 or the ISC License.

aws-lc-rs's People

Contributors

amazon-auto avatar bencivjan avatar camshaft avatar cpu avatar cstyles avatar ctz avatar dependabot[bot] avatar hansonchar avatar justinwsmith avatar justsmth avatar richerfu avatar samuel40791765 avatar skmcgrail avatar theli-ua avatar torben-hansen avatar wesleyrosenblum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-lc-rs's Issues

Support streaming API for CBC

Problem:

I would like to be able to use CBC in a streaming fashion. Unfortunately, currently the CBC encryptor always puts padding after an encryption operation and expects padding during a decryption operation.

OpenSSL solves that problem with finalize methods (for ex. https://docs.rs/openssl/latest/openssl/envelope/struct.Open.html#method.finalize)

Solution:

There are two possible options

  • Add CBC support to EncryptingKey and DecryptingKey types, and have the caveat that the inputs must be divisible by the block size, and leave padding decisions to the caller.

  • Introduce a StreamingPaddedBlockEncryptingKey and StreamingPaddedBlockDecryptingKey that implements the streaming and padding concepts.

The later would be nicer but more work

  • Does this change any public APIs? No it add more APIs
  • Which algorithm(s) will this impact? CBC

Requirements / Acceptance Criteria:

What must a solution address in order to solve the problem? How do we know the solution is complete?

Ideally we can encrypt/decrypt in a streaming fashion.

  • RFC links: N/A
  • Related Issues: None
  • Will the Usage Guide or other documentation need to be updated? Maybe depending on the solution
  • Testing: How will this change be tested? Call out new integration tests, functional tests, or particularly
    interesting/important unit tests. Probably through unit tests

Out of scope:

Is there anything the solution will intentionally NOT address?

aws-lc-sys failed to build for `aarch64-unknown-linux-gnu`

Problem:

aws-lc-sys v0.9.0 failed to build for aarch64-unknown-linux-gnu

build command:

cross build --release --target aarch64-unknown-linux-gnu

Relevant details

AWS-LC for Rust versions or commit: aws-lc-sys v0.9.0

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

  • CPU architecture: aarch64
  • CPU name: (none)
  • OS: Ubuntu

Build log:

  • The log tells compiler and version.
   Compiling aws-lc-sys v0.9.0
error: failed to run custom build command for `aws-lc-sys v0.9.0`

Caused by:
  process didn't exit successfully: `/target/release/build/aws-lc-sys-49ae3abb0baf8cbc/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_aarch64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_aarch64_unknown_linux_gnu = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_aarch64-unknown-linux-gnu = None
  CMAKE_GENERATOR_aarch64_unknown_linux_gnu = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_aarch64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_aarch64_unknown_linux_gnu = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_aarch64-unknown-linux-gnu = None
  CMAKE_aarch64_unknown_linux_gnu = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.9.0" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=release" "-DBORINGSSL_PREFIX=aws_lc_0_9_0" "-DBORINGSSL_PREFIX_HEADERS=/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.9.0/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Linux" "-DCMAKE_SYSTEM_PROCESSOR=aarch64" "-DCMAKE_INSTALL_PREFIX=/target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_ASM_COMPILER=/usr/bin/aarch64-linux-gnu-gcc" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 5.4.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- The ASM compiler identification is GNU
  -- Found assembler: /usr/bin/aarch64-linux-gnu-gcc
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - found
  -- Found Threads: TRUE  
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out/build
  running: cd "/target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out/build" && MAKEFLAGS="-j --jobserver-fds=7,8 --jobserver-auth=7,8" "cmake" "--build" "." "--target" "install" "--config" "Release"
  [  0%] Built target boringssl_prefix_symbols
  Scanning dependencies of target crypto_objects
  [  0%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bitstr.c.o
  [  0%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bool.c.o
  [  1%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_d2i_fp.c.o
  [  1%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_dup.c.o
  [  1%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_gentm.c.o
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_i2d_fp.c.o
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_int.c.o
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_object.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_octet.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strex.c.o
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strnid.c.o
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_time.c.o
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_type.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utctm.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utf8.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_lib.c.o
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_par.c.o
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn_pack.c.o
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_int.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_string.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_dec.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_enc.c.o
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_fre.c.o
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_new.c.o
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_typ.c.o
  [  9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_utl.c.o
  [  9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/posix_time.c.o
  [  9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/base64/base64.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio_mem.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/connect.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/fd.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/file.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/hexdump.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/pair.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/printf.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket_helper.c.o
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/blake2/blake2.c.o
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/bn_asn1.c.o
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/convert.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/buf/buf.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/asn1_compat.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/ber.c.o
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbb.c.o
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbs.c.o
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/unicode.c.o
  [ 16%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/chacha/chacha.c.o
  [ 16%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/cipher_extra.c.o
  [ 16%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/derive_key.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesctrhmac.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesgcmsiv.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_chacha20poly1305.c.o
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha1.c.o
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha256.c.o
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_des.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_null.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc2.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc4.c.o
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_tls.c.o
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/tls_cbc.c.o
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/conf/conf.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/crypto.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519_nohw.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/spake25519.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/des/des.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/params.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/dh_asn1.c.o
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/digest_extra/digest_extra.c.o
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa.c.o
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa_asn1.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdh_extra/ecdh_extra.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdsa_extra/ecdsa_asn1.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_asn1.c.o
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_derive.c.o
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/hash_to_curve.c.o
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err/err.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err_data.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/engine/engine.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/evp_asn1.c.o
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_dsa_asn1.c.o
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ec_asn1.c.o
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519_asn1.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem_asn1.c.o
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_rsa_asn1.c.o
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519.c.o
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519_asn1.c.o
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_methods.c.o
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/print.c.o
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/scrypt.c.o
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/sign.c.o
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ex_data.c.o
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hpke/hpke.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hrss/hrss.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem_methods.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber512r3_ref.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber768r3_ref.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber1024r3_ref.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/pqcrystals_kyber_ref_common/fips.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kem_kyber.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/lhash/lhash.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/mem.c.o
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj.c.o
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj_xref.c.o
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_asn.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_client.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_extension.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_http.c.o
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_lib.c.o
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_print.c.o
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_server.c.o
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_verify.c.o
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_all.c.o
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_info.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_lib.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_oth.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_pk8.c.o
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_pkey.c.o
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_x509.c.o
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_xaux.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs7/pkcs7.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs7/pkcs7_x509.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/pkcs8.c.o
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/pkcs8_x509.c.o
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/p5_pbev2.c.o
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305_arm.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305_vec.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pool/pool.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/deterministic.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/forkunsafe.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/fuchsia.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/rand_extra.c.o
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/pq_custom_randombytes.c.o
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/windows.c.o
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rc4/rc4.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/refcount_c11.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/refcount_lock.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsa_asn1.c.o
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsassa_pss_asn1.c.o
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsa_print.c.o
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/stack/stack.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/siphash/siphash.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_none.c.o
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_pthread.c.o
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_win.c.o
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/pmbtoken.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/trust_token.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/voprf.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_digest.c.o
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_sign.c.o
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_verify.c.o
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/algorithm.c.o
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/asn1_gen.c.o
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/by_dir.c.o
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/by_file.c.o
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/i2d_pr.c.o
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/name_print.c.o
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/policy.c.o
  [ 54%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/rsa_pss.c.o
  [ 54%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_crl.c.o
  [ 54%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_req.c.o
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_x509.c.o
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_x509a.c.o
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509.c.o
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_att.c.o
  [ 56%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_cmp.c.o
  [ 56%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_d2.c.o
  [ 56%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_def.c.o
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_ext.c.o
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_lu.c.o
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_obj.c.o
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_req.c.o
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_set.c.o
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_trs.c.o
  [ 59%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_txt.c.o
  [ 59%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_v3.c.o
  [ 59%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_vfy.c.o
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_vpm.c.o
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509cset.c.o
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509name.c.o
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509rset.c.o
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509spki.c.o
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_algor.c.o
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_all.c.o
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_attrib.c.o
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_crl.c.o
  [ 63%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_exten.c.o
  [ 63%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_info.c.o
  [ 63%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_name.c.o
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_pkey.c.o
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_pubkey.c.o
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_req.c.o
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_sig.c.o
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_spki.c.o
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_val.c.o
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_x509.c.o
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_x509a.c.o
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_akey.c.o
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_akeya.c.o
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_alt.c.o
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_bcons.c.o
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_bitst.c.o
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_conf.c.o
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_cpols.c.o
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_crld.c.o
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_enum.c.o
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_extku.c.o
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_genn.c.o
  [ 70%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ia5.c.o
  [ 70%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_info.c.o
  [ 70%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_int.c.o
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_lib.c.o
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ncons.c.o
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ocsp.c.o
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_pcons.c.o
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_pmaps.c.o
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_prn.c.o
  [ 73%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_purp.c.o
  [ 73%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_skey.c.o
  [ 73%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.o
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/bio/base64_bio.c.o
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/blowfish/blowfish.c.o
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cast/cast.c.o
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cast/cast_tables.c.o
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cfb/cfb.c.o
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/dh/dh_decrepit.c.o
  [ 76%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/evp/evp_do_all.c.o
  [ 76%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/ripemd/ripemd.c.o
  [ 76%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/rsa/rsa_decrepit.c.o
  [ 77%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/x509/x509_decrepit.c.o
  [ 77%] Building ASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/chacha/chacha-armv8.S.o
  [ 77%] Building ASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/test/trampoline-armv8.S.o
  [ 77%] Building ASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/chacha20_poly1305_armv8.S.o
  [ 77%] Built target crypto_objects
  [ 78%] Generating p521/bignum_tolebytes_p521.S.S
  [ 78%] Generating curve19/curve25519_x25519_byte.S.S
  [ 79%] Generating curve25519/curve25519_x25519_byte_alt.S.S
  [ 79%] Generating curve25519/curve25519_x25519base_byte.S.S
  [ 79%] Generating curve25519/curve25519_x25519base_byte_alt.S.S
  [ 80%] Generating p384/bignum_add_p384.S.S
  [ 80%] Generating p384/bignum_deamont_p384.S.S
  [ 80%] Generating p384/bignum_littleendian_6.S.S
  [ 80%] Generating p384/bignum_montmul_p384.S.S
  [ 81%] Generating p384/bignum_montmul_p384_alt.S.S
  [ 81%] Generating p384/bignum_montsqr_p384.S.S
  [ 81%] Generating p384/bignum_montsqr_p384_alt.S.S
  [ 81%] Generating p384/bignum_neg_p384.S.S
  [ 82%] Generating p384/bignum_nonzero_6.S.S
  [ 82%] Generating p384/bignum_sub_p384.S.S
  [ 83%] Generating p384/bignum_tomont_p384.S.S
  [ 83%] Generating p521/bignum_add_p521.S.S
  [ 83%] Generating p521/bignum_fromlebytes_p521.S.S
  [ 83%] Generating p521/bignum_mul_p521.S.S
  [ 84%] Generating p521/bignum_mul_p521_alt.S.S
  [ 84%] Generating p521/bignum_neg_p521.S.S
  [ 84%] Generating p521/bignum_sqr_p521.S.S
  [ 84%] Generating p521/bignum_sqr_p521_alt.S.S
  [ 85%] Generating p521/bignum_sub_p521.S.S
  Scanning dependencies of target fipsmodule
  [ 86%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
  [ 86%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
  [ 86%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/cpucap/cpucap.c.o
  [ 87%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesv8-armx.S.o
  [ 87%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesv8-gcm-armv8.S.o
  [ 87%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesv8-gcm-armv8-unroll8.S.o
  [ 88%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/armv8-mont.S.o
  [ 88%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bn-armv8.S.o
  [ 88%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-neon-armv8.S.o
  [ 88%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghashv8-armx.S.o
  [ 89%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/keccak1600-armv8.S.o
  [ 89%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-armv8.S.o
  [ 89%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-armv8-asm.S.o
  [ 90%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256_beeu-armv8-asm.S.o
  [ 90%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-armv8.S.o
  [ 90%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-armv8.S.o
  [ 91%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-armv8.S.o
  [ 91%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-armv8.S.o
  [ 91%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_add_p384.S.S.o
  [ 92%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_sub_p384.S.S.o
  [ 92%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_neg_p384.S.S.o
  [ 92%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_tomont_p384.S.S.o
  [ 93%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_deamont_p384.S.S.o
  [ 93%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montmul_p384.S.S.o
  [ 93%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montmul_p384_alt.S.S.o
  [ 94%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montsqr_p384.S.S.o
  [ 94%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montsqr_p384_alt.S.S.o
  [ 94%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_nonzero_6.S.S.o
  [ 95%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_littleendian_6.S.S.o
  [ 95%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_add_p521.S.S.o
  [ 95%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_sub_p521.S.S.o
  [ 96%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_neg_p521.S.S.o
  [ 96%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_mul_p521.S.S.o
  [ 96%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_mul_p521_alt.S.S.o
  [ 97%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_sqr_p521.S.S.o
  [ 97%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_sqr_p521_alt.S.S.o
  [ 97%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_tolebytes_p521.S.S.o
  [ 98%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_fromlebytes_p521.S.S.o
  [ 98%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/curve25519/curve25519_x25519_byte.S.S.o
  [ 98%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/curve25519/curve25519_x25519_byte_alt.S.S.o
  [ 99%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/curve25519/curve25519_x25519base_byte.S.S.o
  [ 99%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/curve25519/curve25519_x25519base_byte_alt.S.S.o
  [ 99%] Built target fipsmodule
  [ 99%] Linking C static library ../../artifacts/libaws_lc_0_9_0crypto.a
  [ 99%] Built target crypto
  [ 99%] Building C object CMakeFiles/rust_wrapper.dir/rust_wrapper.c.o
  [100%] Linking C static library artifacts/libaws_lc_0_9_0rust_wrapper.a
  [100%] Built target rust_wrapper
  Install the project...
  -- Install configuration: "release"
  cargo:root=/target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out

  --- stderr
  Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.9.0/aws-lc/generated-src/linux-aarch64/crypto/ to /target/aarch64-unknown-linux-gnu/release/build/aws-lc-sys-24cbd6106098b311/out/build/aws-lc/crypto
  /usr/aarch64-linux-gnu/include/stdio.h:33:11: fatal error: 'stddef.h' file not found
  thread 'main' panicked at '
  A `libclang` function was called that is not supported by the loaded `libclang` instance.

      called function = `clang_getTranslationUnitTargetInfo`
      loaded `libclang` instance = 3.8.x

  This crate only supports `libclang` 3.5 and later.
  The minimum `libclang` requirement for this particular function can be found here:
  https://docs.rs/clang-sys/latest/clang_sys/clang_getTranslationUnitTargetInfo/index.html

  Instructions for installing `libclang` can be found here:
  https://rust-lang.github.io/rust-bindgen/requirements.html
  ', /cargo/registry/src/index.crates.io-6f17d22bba15001f/clang-sys-1.6.1/src/lib.rs:1735:1
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.

Exported symbols conflict with boring-sys crate

Problem:

The libaws_lc_sys crate exports symbols which conflict with other crates, such as libboring_sys.

Relevant details

AWS-LC for Rust versions or commit: (6b1bce0...)

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

  • CPU architecture: x86-64
  • OS: Windows 10

Build log:

= note: libboring_sys-85d2b9b1e2fceefe.rlib(crypto.obj) : error LNK2005: library_init_constructor already defined in libaws_lc_sys-adbe0a2ef2d693b0.rlib(crypto.obj)
          libboring_sys-85d2b9b1e2fceefe.rlib(thread_win.obj) : error LNK2005: p_thread_callback_boringssl already defined in libaws_lc_sys-adbe0a2ef2d693b0.rlib(thread_win.obj)
             ...
          fatal error LNK1169: one or more multiply defined symbols found

Track *ring* 0.17 public API changes

Problem:

"Upstream" ring 0.17 contains some public API changes. This means the ring-compatible API offered by aws-lc-rs has diverged. Ideally aws-lc-rs would track the ring public API changes.

https://crates.io/crates/public-api could be a building block in automatically checking the two APIs do not contain unexpected differences.

aws-lc-sys failed to build for mipsel

Problem:

aws-lc-sys v0.9.0 failed to build for mipsel.

build command:

export OPENWRT_SDK=/home/s2/openwrt-sdk-22.03.5-ramips-mt76x8_gcc-11.2.0_musl.Linux-x86_64
export PATH=$OPENWRT_SDK/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin:$PATH
export CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_LINKER=mipsel-openwrt-linux-gcc
export CC=mipsel-openwrt-linux-gcc
cargo build --release --target mipsel-unknown-linux-musl

Relevant details

AWS-LC commit: aws-lc-sys v0.9.0

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

  • CPU architecture: cross compile for mipsel-unknown-linux-musl
  • CPU name: target CPU: MediaTek MT7621AT
  • OS: target OS: OpenWrt 22.03
  • host: x86_64-unknown-linux-gnu (ArchLinux)

Build log:

  • The log tells compiler and version. It's available when building awslc with CMake.
   Compiling aws-lc-sys v0.9.0
error: failed to run custom build command for `aws-lc-sys v0.9.0`

Caused by:
  process didn't exit successfully: `/home/s2/test/target/release/build/aws-lc-sys-7abcb37ecf1a3586/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_mipsel-unknown-linux-musl = None
  CMAKE_TOOLCHAIN_FILE_mipsel_unknown_linux_musl = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_mipsel-unknown-linux-musl = None
  CMAKE_GENERATOR_mipsel_unknown_linux_musl = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_mipsel-unknown-linux-musl = None
  CMAKE_PREFIX_PATH_mipsel_unknown_linux_musl = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_mipsel-unknown-linux-musl = None
  CMAKE_mipsel_unknown_linux_musl = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/home/s2/test/target/mipsel-unknown-linux-musl/release/build/aws-lc-sys-4c2fa93da43d9497/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=release" "-DBORINGSSL_PREFIX=aws_lc_0_9_0" "-DBORINGSSL_PREFIX_HEADERS=/home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Linux" "-DCMAKE_SYSTEM_PROCESSOR=mips" "-DCMAKE_INSTALL_PREFIX=/home/s2/test/target/mipsel-unknown-linux-musl/release/build/aws-lc-sys-4c2fa93da43d9497/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_C_COMPILER=/home/s2/openwrt-sdk-22.03.5-ramips-mt76x8_gcc-11.2.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin/mipsel-openwrt-linux-gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_CXX_COMPILER=mipsel-linux-musl-g++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC" "-DCMAKE_ASM_COMPILER=/home/s2/openwrt-sdk-22.03.5-ramips-mt76x8_gcc-11.2.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin/mipsel-openwrt-linux-gcc" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 11.2.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /home/s2/openwrt-sdk-22.03.5-ramips-mt76x8_gcc-11.2.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin/mipsel-openwrt-linux-gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- Unknown processor found. Using generic implementations. Processor:mips
  -- The ASM compiler identification is GNU
  -- Found assembler: /home/s2/openwrt-sdk-22.03.5-ramips-mt76x8_gcc-11.2.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/bin/mipsel-openwrt-linux-gcc
  -- Detected generic linux platform. No assembly files will be included.
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE  
  -- Configuring done (1.8s)
  -- Generating done (0.1s)
  -- Build files have been written to: /home/s2/test/target/mipsel-unknown-linux-musl/release/build/aws-lc-sys-4c2fa93da43d9497/out/build
  running: cd "/home/s2/test/target/mipsel-unknown-linux-musl/release/build/aws-lc-sys-4c2fa93da43d9497/out/build" && MAKEFLAGS="-j --jobserver-fds=9,10 --jobserver-auth=9,10" "cmake" "--build" "." "--target" "install" "--config" "Release"
  [  0%] Built target boringssl_prefix_symbols
  [  0%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bitstr.c.o
  [  1%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bool.c.o
  [  2%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_d2i_fp.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_dup.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_gentm.c.o
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_i2d_fp.c.o
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_int.c.o
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_object.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_octet.c.o
  [  5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strex.c.o
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strnid.c.o
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_time.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_type.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utctm.c.o
  [  7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utf8.c.o
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_lib.c.o
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_par.c.o
  [  9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn_pack.c.o
  [  9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_int.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_string.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_dec.c.o
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_enc.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_fre.c.o
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_new.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_typ.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_utl.c.o
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/posix_time.c.o
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/base64/base64.c.o
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio_mem.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/connect.c.o
  [ 14%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/fd.c.o
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/file.c.o
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/hexdump.c.o
  [ 16%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/pair.c.o
  [ 16%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/printf.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket_helper.c.o
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/blake2/blake2.c.o
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/bn_asn1.c.o
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/convert.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/buf/buf.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/asn1_compat.c.o
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/ber.c.o
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbb.c.o
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbs.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/unicode.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/chacha/chacha.c.o
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/cipher_extra.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/derive_key.c.o
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesctrhmac.c.o
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesgcmsiv.c.o
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_chacha20poly1305.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha1.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha256.c.o
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_des.c.o
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_null.c.o
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc2.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc4.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_tls.c.o
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/tls_cbc.c.o
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/conf/conf.c.o
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/crypto.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519_nohw.c.o
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/spake25519.c.o
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/des/des.c.o
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/params.c.o
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/dh_asn1.c.o
  [ 30%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
  [ 31%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/cpucap/cpucap.c.o
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/digest_extra/digest_extra.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa_asn1.c.o
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdh_extra/ecdh_extra.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdsa_extra/ecdsa_asn1.c.o
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_asn1.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_derive.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/hash_to_curve.c.o
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err/err.c.o
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err_data.c.o
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/engine/engine.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/evp_asn1.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_dsa_asn1.c.o
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ec_asn1.c.o
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519.c.o
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519_asn1.c.o
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem.c.o
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem_asn1.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_rsa_asn1.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519.c.o
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519_asn1.c.o
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_methods.c.o
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/print.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/scrypt.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/sign.c.o
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ex_data.c.o
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hpke/hpke.c.o
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hrss/hrss.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem_methods.c.o
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber512r3_ref.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber768r3_ref.c.o
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber1024r3_ref.c.o
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/pqcrystals_kyber_ref_common/fips202.c.o
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kem_kyber.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/lhash/lhash.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/mem.c.o
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj.c.o
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj_xref.c.o
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_asn.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_client.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_extension.c.o
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_http.c.o
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_lib.c.o
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_print.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_server.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_verify.c.o
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_all.c.o
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_info.c.o
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_lib.c.o
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_oth.c.o
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_pk8.c.o

  --- stderr
  CMake Deprecation Warning at CMakeLists.txt:6 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
  /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/pem/pem_lib.c: In function 'aws_lc_0_9_0_PEM_read_bio':
  /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/pem/pem_lib.c:705:11: error: 'strncmp' of strings of length 1 and 9 and bound of 9 evaluates to nonzero [-Werror=string-compare]
    705 |       if (strncmp(buf, "-----END ", 9) == 0) {
        |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cc1: all warnings being treated as errors
  make[2]: *** [aws-lc/crypto/CMakeFiles/crypto_objects.dir/build.make:1742: aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_lib.c.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[1]: *** [CMakeFiles/Makefile2:204: aws-lc/crypto/CMakeFiles/crypto_objects.dir/all] Error 2
  make[1]: *** Waiting for unfinished jobs....
  In file included from /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/fipsmodule/bcm.c:118:
  /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/fipsmodule/modes/cfb.c: In function 'aws_lc_0_9_0_CRYPTO_cfb128_encrypt':
  /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/fipsmodule/modes/cfb.c:120:17: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
    120 |         ivec[n] = c;
        |         ~~~~~~~~^~~
  /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/aws-lc-sys-0.9.0/aws-lc/crypto/fipsmodule/modes/cfb.c:61:56: note: at offset 16 into destination object 'ivec' of size [0, 16]
     61 |                            const AES_KEY *key, uint8_t ivec[16], unsigned *num,
        |                                                ~~~~~~~~^~~~~~~~
  cc1: all warnings being treated as errors
  make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:76: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o] Error 1
  make[1]: *** [CMakeFiles/Makefile2:257: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
  make: *** [Makefile:136: all] Error 2
  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 2

  build script failed, must exit now', /home/s2/.cargo/registry/src/rsproxy.cn-8f6827c7555bfaf8/cmake-0.1.50/src/lib.rs:1098:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Remove CMake requirement for builds

Problem:

CMake is not a ubiquitous build tool; for example it is not automatically installed with the build-essential. By requiring CMake, aws-lc-rs puts additional build requirements on environments, which will potentially hinder adoption.

Solution

Instead, the library should have a build system that uses more ubiquitous tools. I think make would be a step in the right direction, but I think ideally the only requirement should be a C compiler and assembler. This is the approach that was taken in s2n-tls-sys which makes it quite easy to build.

update untrusted dependency to 0.9.0

Problem:

aws-lc-rs uses an older version of the untrusted crate, v0.7.1. This means that when used with software that uses a newer version of untrused (e.g. Rustls) there are two versions of untrusted used.

Solution:

Update to untrusted 0.9.0.

Requirements / Acceptance Criteria:

No change to existing functionality, all tests should pass.

Build failure following instructions under "Contributor Quickstart for Amazon Linux 2023"

Problem:

I launched a new EC2 instance (i3.4xlarge which is x86_64) with the latest AL2023 (6.1.55-75.123.amzn2023.x86_64), pulled the latest aws-lc-rs from main commit fe5d0de and followed the build instructions, but cargo test failed.

Relevant details

AWS-LC for Rust versions or commit: (fe5d0de)

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

  • CPU architecture: (x86-64)
  • CPU name: (Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz)
  • OS: (AL2023)

Build log:

  • The log tells compiler and version.
aws-lc-rs]$ sudo yum install -y cmake3 clang git clang-libs golang openssl-devel
[aws-lc-rs]$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
[aws-lc-rs]$ source "$HOME/.cargo/env"
[aws-lc-rs]$ git clone https://github.com/awslabs/aws-lc-rs.git
[aws-lc-rs]$ cd aws-lc-rs/
[aws-lc-rs]$ git submodule update --init --recursive
[aws-lc-rs]$ cargo test
    Updating crates.io index
  Downloaded anstyle-parse v0.2.2
  Downloaded cast v0.3.0
  Downloaded anstyle-query v1.0.0
  Downloaded anes v0.1.6
  Downloaded anstyle v1.0.4
  Downloaded anstream v0.6.4
  Downloaded autocfg v1.1.0
  Downloaded aho-corasick v1.1.2
  Downloaded cfg-if v1.0.0
  Downloaded ciborium-ll v0.2.1
  Downloaded colorchoice v1.0.0
  Downloaded crossbeam-epoch v0.9.15
  Downloaded foreign-types-shared v0.1.1
  Downloaded errno v0.3.5
  Downloaded crossbeam-utils v0.8.16
  Downloaded pkg-config v0.3.27
  Downloaded proc-macro2 v1.0.69
  Downloaded zeroize v1.6.0
  Downloaded criterion-plot v0.5.0
  Downloaded ring v0.17.5
  Downloaded walkdir v2.4.0
  Downloaded openssl-src v300.1.5+3.1.3
  Downloaded vcpkg v0.2.15
  Downloaded utf8parse v0.2.1
  Downloaded untrusted v0.9.0
  Downloaded untrusted v0.7.1
  Downloaded unicode-ident v1.0.12
  Downloaded tinytemplate v1.2.1
  Downloaded syn v2.0.38
  Downloaded strsim v0.10.0
  Downloaded spin v0.9.8
  Downloaded serde_json v1.0.107
  Downloaded serde_derive v1.0.189
  Downloaded serde v1.0.189
  Downloaded scopeguard v1.2.0
  Downloaded same-file v1.0.6
  Downloaded ryu v1.0.15
  Downloaded rustix v0.38.20
  Downloaded regex-syntax v0.8.2
  Downloaded regex-automata v0.4.3
  Downloaded regex v1.10.2
  Downloaded rayon-core v1.12.0
  Downloaded rayon v1.8.0
  Downloaded quote v1.0.33
  Downloaded plotters-backend v0.3.5
  Downloaded paste v1.0.14
  Downloaded openssl-sys v0.9.93
  Downloaded mirai-annotations v1.12.0
  Downloaded linux-raw-sys v0.4.10
  Downloaded plotters-svg v0.3.5
  Downloaded plotters v0.3.5
  Downloaded openssl-macros v0.1.1
  Downloaded openssl v0.10.57
  Downloaded oorandom v11.1.3
  Downloaded once_cell v1.18.0
  Downloaded memchr v2.6.4
  Downloaded itoa v1.0.9
  Downloaded itertools v0.10.5
  Downloaded hex v0.4.3
  Downloaded half v1.8.2
  Downloaded getrandom v0.2.10
  Downloaded either v1.9.0
  Downloaded criterion v0.5.1
  Downloaded num-traits v0.2.17
  Downloaded memoffset v0.9.0
  Downloaded libc v0.2.149
  Downloaded lazy_static v1.4.0
  Downloaded is-terminal v0.4.9
  Downloaded heck v0.4.1
  Downloaded foreign-types v0.3.2
  Downloaded dunce v1.0.4
  Downloaded csv v1.3.0
  Downloaded crossbeam-deque v0.8.3
  Downloaded cmake v0.1.50
  Downloaded clap_lex v0.5.1
  Downloaded csv-core v0.1.11
  Downloaded clap_builder v4.4.6
  Downloaded clap_derive v4.4.2
  Downloaded clap v4.4.6
  Downloaded ciborium-io v0.2.1
  Downloaded ciborium v0.2.1
  Downloaded cc v1.0.83
  Downloaded bitflags v2.4.1
  Downloaded 83 crates (20.9 MB) in 1.34s (largest was `openssl-src` at 8.8 MB)
   Compiling libc v0.2.149
   Compiling proc-macro2 v1.0.69
   Compiling unicode-ident v1.0.12
   Compiling dunce v1.0.4
   Compiling paste v1.0.14
   Compiling memchr v2.6.4
   Compiling utf8parse v0.2.1
   Compiling anstyle-query v1.0.0
   Compiling anstyle v1.0.4
   Compiling colorchoice v1.0.0
   Compiling regex-syntax v0.8.2
   Compiling clap_lex v0.5.1
   Compiling strsim v0.10.0
   Compiling heck v0.4.1
   Compiling aws-lc-rs v1.3.0 (/local/aws-lc-rs/aws-lc-rs)
   Compiling untrusted v0.7.1
   Compiling anstyle-parse v0.2.2
   Compiling mirai-annotations v1.12.0
   Compiling zeroize v1.6.0
   Compiling lazy_static v1.4.0
   Compiling hex v0.4.3
   Compiling autocfg v1.1.0
   Compiling cfg-if v1.0.0
   Compiling serde v1.0.189
   Compiling anstream v0.6.4
   Compiling crossbeam-utils v0.8.16
   Compiling vcpkg v0.2.15
   Compiling pkg-config v0.3.27
   Compiling scopeguard v1.2.0
   Compiling itoa v1.0.9
   Compiling bitflags v2.4.1
   Compiling clap_builder v4.4.6
   Compiling serde_json v1.0.107
   Compiling memoffset v0.9.0
   Compiling crossbeam-epoch v0.9.15
   Compiling num-traits v0.2.17
   Compiling either v1.9.0
   Compiling aho-corasick v1.1.2
   Compiling rayon-core v1.12.0
   Compiling ryu v1.0.15
   Compiling rustix v0.38.20
   Compiling ciborium-io v0.2.1
   Compiling linux-raw-sys v0.4.10
   Compiling quote v1.0.33
   Compiling plotters-backend v0.3.5
   Compiling syn v2.0.38
   Compiling half v1.8.2
   Compiling cc v1.0.83
   Compiling crossbeam-deque v0.8.3
   Compiling plotters-svg v0.3.5
   Compiling itertools v0.10.5
   Compiling csv-core v0.1.11
   Compiling same-file v1.0.6
   Compiling once_cell v1.18.0
   Compiling cast v0.3.0
   Compiling ciborium-ll v0.2.1
   Compiling openssl v0.10.57
   Compiling foreign-types-shared v0.1.1
   Compiling walkdir v2.4.0
   Compiling getrandom v0.2.10
   Compiling foreign-types v0.3.2
   Compiling oorandom v11.1.3
   Compiling untrusted v0.9.0
   Compiling anes v0.1.6
   Compiling spin v0.9.8
   Compiling cmake v0.1.50
   Compiling openssl-src v300.1.5+3.1.3
   Compiling rayon v1.8.0
   Compiling openssl-sys v0.9.93
   Compiling ring v0.17.5
   Compiling plotters v0.3.5
   Compiling aws-lc-sys v0.11.0 (/local/aws-lc-rs/aws-lc-sys)
   Compiling is-terminal v0.4.9
   Compiling aws-lc-fips-sys v0.11.0 (/local/aws-lc-rs/aws-lc-fips-sys)
   Compiling regex-automata v0.4.3
   Compiling criterion-plot v0.5.0
error: failed to run custom build command for `openssl-sys v0.9.93`
 
Caused by:
  process didn't exit successfully: `/local/aws-lc-rs/target/debug/build/openssl-sys-16a2637b11ea24e5/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR unset
  cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
  OPENSSL_NO_VENDOR unset
  cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
  CC_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
  CC_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
  CFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
  CFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=AR_x86_64-unknown-linux-gnu
  AR_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=AR_x86_64_unknown_linux_gnu
  AR_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_AR
  HOST_AR = None
  cargo:rerun-if-env-changed=AR
  AR = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64-unknown-linux-gnu
  ARFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64_unknown_linux_gnu
  ARFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_ARFLAGS
  HOST_ARFLAGS = None
  cargo:rerun-if-env-changed=ARFLAGS
  ARFLAGS = None
  cargo:rerun-if-env-changed=RANLIB_x86_64-unknown-linux-gnu
  RANLIB_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=RANLIB_x86_64_unknown_linux_gnu
  RANLIB_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_RANLIB
  HOST_RANLIB = None
  cargo:rerun-if-env-changed=RANLIB
  RANLIB = None
  cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64-unknown-linux-gnu
  RANLIBFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64_unknown_linux_gnu
  RANLIBFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_RANLIBFLAGS
  HOST_RANLIBFLAGS = None
  cargo:rerun-if-env-changed=RANLIBFLAGS
  RANLIBFLAGS = None
  running cd "/local/aws-lc-rs/target/debug/build/openssl-sys-772e32caf7aab96d/out/openssl-build/build/src" && AR="ar" CC="cc" RANLIB="ranlib" "perl" "./Configure" "--prefix=/local/aws-lc-rs/target/debug/build/openssl-sys-772e32caf7aab96d/out/openssl-build/install" "--openssldir=/usr/local/ssl" "no-dso" "no-shared" "no-ssl3" "no-tests" "no-comp" "no-zlib" "no-zlib-dynamic" "--libdir=lib" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "linux-x86_64" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64"
 
  --- stderr
  Can't locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Configure line 15.
  BEGIN failed--compilation aborted at ./Configure line 15.
  thread 'main' panicked at /home/ec2-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-src-300.1.5+3.1.3/src/lib.rs:577:9:
 
 
 
  Error configuring OpenSSL build:
      Command: cd "/local/aws-lc-rs/target/debug/build/openssl-sys-772e32caf7aab96d/out/openssl-build/build/src" && AR="ar" CC="cc" RANLIB="ranlib" "perl" "./Configure" "--prefix=/local/aws-lc-rs/target/debug/build/openssl-sys-772e32caf7aab96d/out/openssl-build/install" "--openssldir=/usr/local/ssl" "no-dso" "no-shared" "no-ssl3" "no-tests" "no-comp" "no-zlib" "no-zlib-dynamic" "--libdir=lib" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "linux-x86_64" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64"
      Exit status: exit status: 2
 
 
 
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

Many warnings from cmake and can't build with `cc1.exe: all warnings being treated as errors`

Problem:

I could not successfully build a package that has this crate as a dependency.
Perhaps there is something wrong with the way I have it set up?

Relevant details

[email protected]

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

  • CPU architecture: x86-64
  • CPU name: ?
  • OS: Windows

Build log:

https://github.com/eitsupi/r-glaredb/actions/runs/9234681710/job/25408657673?pr=18#step:11:1086

  make[1]: Leaving directory '/d/a/r-glaredb/r-glaredb/src/rust/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-0c92a44fbc815c4b/out/build'

  --- stderr
  CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  Copying platform assembly files from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/generated-src/win-x86_64/crypto/ to D:/a/r-glaredb/r-glaredb/src/rust/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-0c92a44fbc815c4b/out/build/aws-lc/crypto
  In file included from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/bcm.c:116:
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:111:50: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    111 | MD_TRAMPOLINES_EXPLICIT(MD5, MD5_CTX, MD5_CBLOCK);
        |                                                  ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:112:51: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    112 | MD_TRAMPOLINES_EXPLICIT(SHA1, SHA_CTX, SHA_CBLOCK);
        |                                                   ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:113:59: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    113 | MD_TRAMPOLINES_EXPLICIT(SHA224, SHA256_CTX, SHA256_CBLOCK);
        |                                                           ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:114:59: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    114 | MD_TRAMPOLINES_EXPLICIT(SHA256, SHA256_CTX, SHA256_CBLOCK);
        |                                                           ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:115:59: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    115 | MD_TRAMPOLINES_EXPLICIT(SHA384, SHA512_CTX, SHA512_CBLOCK);
        |                                                           ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:116:59: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    116 | MD_TRAMPOLINES_EXPLICIT(SHA512, SHA512_CTX, SHA512_CBLOCK);
        |                                                           ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:117:63: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    117 | MD_TRAMPOLINES_EXPLICIT(SHA512_224, SHA512_CTX, SHA512_CBLOCK);
        |                                                               ^
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/hmac/hmac.c:118:63: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
    118 | MD_TRAMPOLINES_EXPLICIT(SHA512_256, SHA512_CTX, SHA512_CBLOCK);
        |                                                               ^
  cc1.exe: all warnings being treated as errors
  make[3]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:77: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.obj] Error 1
  make[3]: *** Waiting for unfinished jobs....
  make[2]: *** [CMakeFiles/Makefile2:258: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
  make[2]: *** Waiting for unfinished jobs....
  D:/a/r-glaredb/r-glaredb/src/rust/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-0c92a44fbc815c4b/out/build/aws-lc/crypto/err_data.c:1603:5: error: string length '16178' is greater than the length '4095' ISO C99 compilers are required to support [-Werror=overlength-strings]
   1603 |     "";
        |     ^~
  cc1.exe: all warnings being treated as errors
  make[3]: *** [aws-lc/crypto/CMakeFiles/crypto_objects.dir/build.make:1292: aws-lc/crypto/CMakeFiles/crypto_objects.dir/err_data.c.obj] Error 1
  make[3]: *** Waiting for unfinished jobs....
  make[2]: *** [CMakeFiles/Makefile2:204: aws-lc/crypto/CMakeFiles/crypto_objects.dir/all] Error 2
  make[1]: *** [Makefile:136: all] Error 2
  thread 'main' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.50\src\lib.rs:1098:5:

  command did not execute successfully, got: exit code: 2

  build script failed, must exit now

Please document the licensing of aws-lc

Problem:

aws-lc-rs lists its license as SPDX-License-Identifier: ISC AND (Apache-2.0 OR ISC), which could lead people to assume that it doesn't have code under the old OpenSSL license. However, https://github.com/aws/aws-lc/blob/main/LICENSE gives a clearer picture of the licensing, showing that aws-lc still has code under the old OpenSSL license. Please document this in the license field of aws-lc-rs so that, for instance, people looking to preserve GPL-compatibility are not misled into thinking that aws-lc is just ISC and Apache-2.0.

Solution:

Please modify the license field in Cargo.toml to also include the OpenSSL license as an AND.

Build fails for some targets because of missing _ISOC11_SOURCE preprocessor definition

When trying to build the aws-lc-rs or the dependent project it fails for some targets (in particular x86_64-pc-windows-gnu) with a compiler error around static_assert. Error example:

rust/aws-lc-rs/aws-lc-sys/aws-lc/crypto/refcount_win.c:23:15: error: expected declaration specifiers or '...' before '_Alignof'
     23 | static_assert(alignof(CRYPTO_refcount_t) == alignof(LONG),
        |               ^~~~~~~

This happens because the standard <assert.h> header for MinGW toolchain contains this:

#if (defined _ISOC11_SOURCE \
     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)) \
    && !defined (__cplusplus)
/* Static assertion.  Requires support in the compiler.  */
#undef static_assert
#define static_assert _Static_assert
#endif

The workaround is to use CFLAGS="-D_ISOC11_SOURCE" env variable when building. A better solution to my opinion is to configure the build scripts to include it by default.

Edit: I think it happens because build scripts set "-std=c99", and assert_static is c11 feature.

Linking failures when trying to run on ppc64le architecture due to symbol issues

Problem:

Attempted to build/test aws-lc-rs on ppc64le architecture, as this architecture is technically supported by AWS-LC.
Besides trying to get this build there is still an outstanding question of what the overall performance profile looks like. This might be a challenge as this build is currently being done in a docker container using qemu.

Build Notes

  • Used fedora:38 docker container using the ppc64le platform image.
  • Had to comment out ~4 tests which required use of the ring crate, as ring doesn't appear to support ppc64le?
  • When running tests I get a linker error:
  = note: /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o): in function `aws_lc_0_7_0_AES_encrypt':
          /home/ec2-user/aws-lc-rs/aws-lc-sys/aws-lc/crypto/fipsmodule/aes/aes.c:64: undefined reference to `aws_lc_0_7_0_aes_hw_encrypt'
          /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o): in function `aws_lc_0_7_0_AES_decrypt':
          /home/ec2-user/aws-lc-rs/aws-lc-sys/aws-lc/crypto/fipsmodule/aes/aes.c:74: undefined reference to `aws_lc_0_7_0_aes_hw_decrypt'
          /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o): in function `aws_lc_0_7_0_AES_set_encrypt_key':
          /home/ec2-user/aws-lc-rs/aws-lc-sys/aws-lc/crypto/fipsmodule/aes/aes.c:87: undefined reference to `aws_lc_0_7_0_aes_hw_set_encrypt_key'
          /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o):(.toc+0x0): undefined reference to `aws_lc_0_7_0_aes_hw_ctr32_encrypt_blocks'
          /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o):(.toc+0x8): undefined reference to `aws_lc_0_7_0_aes_hw_encrypt'
          /usr/bin/ld: /home/ec2-user/aws-lc-rs/target/debug/deps/libaws_lc_sys-32d0dce44c55f186.rlib(bcm.c.o): in function `aws_lc_0_7_0_aes_ctr_set_key':
          /home/ec2-user/aws-lc-rs/aws-lc-sys/aws-lc/crypto/fipsmodule/cipher/e_aes.c:297: undefined reference to `aws_lc_0_7_0_aes_hw_set_encrypt_key'
          collect2: error: ld returned 1 exit status

  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

warning: `aws-lc-rs` (lib test) generated 3 warnings
error: could not compile `aws-lc-rs` (lib test) due to previous error; 3 warnings emitted
 nm libaws_lc_0_7_0crypto.a | grep aes_hw_encrypt
                 U aws_lc_0_7_0_aes_hw_encrypt
00000000000004c0 T aes_hw_encrypt

AWS-LCโ€™s libcrypto means, is it support for libcrypto of OpenSSL library added?

Security issue notifications

If you discover a potential security issue in AWS-LC for Rust we ask that you notify AWS Security via our
vulnerability reporting page. Please do not create a
public github issue, if in doubt contact AWS security first.

Problem:

A short description of what the problem is and why we need to fix it. Add reproduction steps if necessary.

Solution:

A description of the possible solution in terms of AWS-LC for Rust architecture. Highlight and explain any potentially
controversial design decisions taken.

  • Does this change any public APIs? If yes, explain.
  • Which algorithm(s) will this impact?

Requirements / Acceptance Criteria:

What must a solution address in order to solve the problem? How do we know the solution is complete?

  • RFC links: Links to relevant RFC(s)
  • Related Issues: Link any relevant issues
  • Will the Usage Guide or other documentation need to be updated?
  • Testing: How will this change be tested? Call out new integration tests, functional tests, or particularly
    interesting/important unit tests.

Out of scope:

Is there anything the solution will intentionally NOT address?

Linux -> Mac cannot cross compile aws-lc-sys

Problem:

On an x86_64 Linux box

cargo new repro
cd repro
cargo add aws-lc-rs
cargo b --target x86_64-apple-darwin

Fails with unknown flag errors.

  --- stderr
  thread 'main' panicked at /home/brong/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/builder/cc_builder.rs:225:9:
  COMPILER: "cc"ARGS: ["-O0", "-ffunction-sections", "-fdata-sections", "-fPIC", "-gdwarf-2", "-fno-omit-frame-pointer", "-m64", "-arch", "x86_64", "-mmacosx-version-min=10.7", "-Wall", "-Wextra", "/home/brong/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/tests/compiler_features_tests/memcmp_invalid_stripped_check.c", "-Wno-unused-parameter", "-o", "/home/brong/ws/repro/target/x86_64-apple-darwin/debug/build/aws-lc-sys-963977ec30e96b4e/out/memcmp_invalid_stripped_check"]EXECUTED: trueERROR: cc: error: unrecognized command-line option โ€˜-archโ€™
  cc: error: unrecognized command-line option โ€˜-mmacosx-version-min=10.7โ€™
  OUTPUT: Failed to compile memcmp_invalid_stripped_check

Relevant details

aws-lc-rs 17

Linux 6.8.6-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Sat, 13 Apr 2024 14:44:53 +0000 x86_64 unknown

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.78.0-nightly (a4472498d 2024-02-15)

feature request: RSA key generation support

Problem:

It looks as though aws-lc-rs shares the same API limitation as ring with respect to key generation being supported for EcdsaKeyPair and Ed25519KeyPair, but not RsaKeyPair.

As we're evaluating using aws-lc-rs as a backend for rcgen it would be really nice if aws-lc-rs supported RSA key generation. There's a class of use-case (e.g. Rustls' integration tests) where we have to use the openssl command line in order to generate RSA keypairs. Having support for this in rcgen would make replacing that usage feasible.

Solution:

aws-lc-rs could augment the RsaKeyPair struct to offer methods for generating a keypair comparable to those offered by Ed25519KeyPair and EcdsaKeyPair.

  • Does this change any public APIs? Yes: the RsaKeyPair struct would gain a generate_pkcs8 and possibly a generate_pkcs1 fns.
  • Which algorithm(s) will this impact? RSA.

Requirements / Acceptance Criteria:

It must be possible to generate an RSA keypair with both the public and private components. It should be convenient to load the serialized private key using the existing RsaKeyPair::from_pkcs8 and RsaKeyPair::from_der methods. Acceptance should look something like an end-to-end test generating a RSA keypair, loading it, using it to produce a signature, and then verifying the signature.

x86_64-pc-windows-gnu build failed

Problem:

Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/generated-src/win-x86_64/crypto/ to /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build/aws-lc/crypto
  /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build/aws-lc/crypto/fipsmodule/aesni-gcm-avx512.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'

It could be reproduced in this project: https://github.com/shadowsocks/shadowsocks-rust by running:

cross build --release --target x86_64-pc-windows-gnu --features "full"

Relevant details

AWS-LC for Rust versions or commit: (crates.io aws-lc-sys v0.17.0)

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

  • CPU architecture: x86_64
  • CPU name: Unknown
  • OS: Windows

Build log:

   Compiling windows_x86_64_gnu v0.52.5
   Compiling windows_x86_64_gnu v0.48.5
   Compiling typenum v1.17.0
   Compiling generic-array v0.14.7
   Compiling ring v0.17.8
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling futures-util v0.3.30
   Compiling der v0.7.9
   Compiling aws-lc-sys v0.17.0
   Compiling rand_chacha v0.3.1
   Compiling rustls-pki-types v1.7.0
   Compiling ff v0.13.0
   Compiling byteorder v1.5.0
   Compiling windows-targets v0.52.5
   Compiling windows-targets v0.48.5
   Compiling winapi v0.3.9
   Compiling base16ct v0.2.0
   Compiling rand v0.8.5
   Compiling windows-sys v0.52.0
   Compiling windows-sys v0.48.0
   Compiling parking_lot_core v0.9.10
   Compiling group v0.13.0
   Compiling opaque-debug v0.3.1
   Compiling mirai-annotations v1.12.0
   Compiling parking_lot v0.12.3
   Compiling syn v1.0.109
   Compiling ring v0.16.20
   Compiling unicode-normalization v0.1.23
   Compiling http v1.1.0
   Compiling signature v2.2.0
   Compiling unicode-bidi v0.3.15
   Compiling spin v0.5.2
   Compiling untrusted v0.7.1
   Compiling percent-encoding v2.3.1
   Compiling rustls v0.21.12
   Compiling ryu v1.0.18
   Compiling crossbeam-utils v0.8.20
   Compiling form_urlencoded v1.2.1
   Compiling futures-executor v0.3.30
   Compiling pin-project v1.1.5
   Compiling http v0.2.12
   Compiling rustc-hash v1.1.0
   Compiling httparse v1.8.0
   Compiling zstd-sys v1.6.2+zstd.1.5.1
   Compiling futures v0.3.30
   Compiling http-body v1.0.0
   Compiling idna v0.5.0
   Compiling fastrand v1.9.0
   Compiling ipnet v2.9.0
   Compiling try-lock v0.2.5
   Compiling rustls-webpki v0.101.7
   Compiling sct v0.7.1
   Compiling base64 v0.21.7
   Compiling atomic-waker v1.1.2
   Compiling serde_json v1.0.117
   Compiling want v0.3.1
   Compiling rustls-pemfile v1.0.4
   Compiling url v2.5.0
   Compiling socket2 v0.5.7
   Compiling schannel v0.1.23
   Compiling winapi-util v0.1.8
   Compiling num-traits v0.2.19
   Compiling spki v0.7.3
   Compiling mio v0.8.11
   Compiling quinn-udp v0.4.1
   Compiling match_cfg v0.1.0
   Compiling ipconfig v0.3.2
   Compiling arrayvec v0.7.4
   Compiling base64 v0.22.1
   Compiling powerfmt v0.2.0
   Compiling httpdate v1.0.3
   Compiling rustls v0.22.4
   Compiling tokio v1.37.0
   Compiling radium v0.7.0
   Compiling deranged v0.3.11
   Compiling quinn-proto v0.10.6
   Compiling parking_lot_core v0.8.6
   Compiling pkcs8 v0.10.2
   Compiling hostname v0.3.1
   Compiling blake3 v1.5.1
   Compiling winreg v0.50.0
   Compiling rustls-native-certs v0.6.3
   Compiling same-file v1.0.6
   Compiling idna v0.4.0
   Compiling ed25519 v2.2.3
   Compiling windows-core v0.51.1
   Compiling aho-corasick v1.1.3
   Compiling instant v0.1.13
   Compiling linked-hash-map v0.5.6
   Compiling tower-service v0.3.2
   Compiling c2rust-bitfields-derive v0.18.0
   Compiling num-conv v0.1.0
   Compiling tap v1.0.1
   Compiling widestring v1.1.0
   Compiling utf8parse v0.2.1
   Compiling regex-syntax v0.8.3
   Compiling constant_time_eq v0.3.0
The following warnings were emitted during compilation:

warning: [email protected]: Generating bindings - external bindgen. Platform: x86_64-pc-windows-gnu

error: failed to run custom build command for `aws-lc-sys v0.17.0`

Caused by:
  process didn't exit successfully: `/target/debug/build/aws-lc-sys-9800ca95c1e3d479/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:warning=Generating bindings - external bindgen. Platform: x86_64-pc-windows-gnu
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES
  cargo:rustc-cfg=use_bindgen_generated
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  CMAKE_TOOLCHAIN_FILE_x86_64-pc-windows-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-pc-windows-gnu = None
  CMAKE_GENERATOR_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-pc-windows-gnu = None
  CMAKE_PREFIX_PATH_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-pc-windows-gnu = None
  CMAKE_x86_64_pc_windows_gnu = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=debug" "-DBORINGSSL_PREFIX=aws_lc_0_17_0_" "-DBORINGSSL_PREFIX_HEADERS=/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Windows" "-DCMAKE_SYSTEM_PROCESSOR=AMD64" "-DCMAKE_INSTALL_PREFIX=/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc-posix" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/x86_64-w64-mingw32-g++-posix" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc-posix" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 7.3.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/x86_64-w64-mingw32-gcc-posix - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- The ASM_NASM compiler identification is NASM
  -- Found assembler: /usr/bin/nasm
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build
  running: cd "/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build" && MAKEFLAGS="-j --jobserver-fds=8,9 --jobserver-auth=8,9" "cmake" "--build" "." "--target" "install" "--config" "Debug"
  [  0%] Built target boringssl_prefix_symbols
  [  1%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.obj
  [  1%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.obj
  [  2%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/cpucap/cpucap.c.obj
  [  2%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-avx512.asm.obj
  aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:120: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-avx512.asm.obj' failed
  CMakeFiles/Makefile2:257: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all' failed
  Makefile:135: recipe for target 'all' failed

  --- stderr
  Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/generated-src/win-x86_64/crypto/ to /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build/aws-lc/crypto
  /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-156e9005524d4eed/out/build/aws-lc/crypto/fipsmodule/aesni-gcm-avx512.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
  make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-avx512.asm.obj] Error 1
  make[1]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
  make: *** [all] Error 2
  thread 'main' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 2

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

arm-unknown-linux-gnueabihf build failed

Problem:

  Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/generated-src/linux-arm/crypto/ to /target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out/build/aws-lc/crypto
  In file included from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/bcm.c:82:
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/cpucap/cpu_arm_linux.c: In function 'aws_lc_0_17_0_OPENSSL_cpuid_setup':
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/cpucap/cpu_arm_linux.c:121:38: error: 'AT_HWCAP2' undeclared (first use in this function); did you mean 'AT_HWCAP'?
       unsigned long hwcap2 = getauxval(AT_HWCAP2);
                                        ^~~~~~~~~
                                        AT_HWCAP

It looks like that AT_HWCAP2 was missing.

It could be reproduced in this project: https://github.com/shadowsocks/shadowsocks-rust by running:

cross build --release --target arm-unknown-linux-gnueabihf --features "full"

Relevant details

AWS-LC for Rust versions or commit: (crates.io aws-lc-sys v0.17.0)

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

  • CPU architecture: ARM
  • CPU name: unknown
  • OS: Ubuntu 20

Build log:

   Compiling libc v0.2.155
   Compiling proc-macro2 v1.0.83
   Compiling unicode-ident v1.0.12
   Compiling cfg-if v1.0.0
   Compiling once_cell v1.19.0
   Compiling autocfg v1.3.0
   Compiling serde v1.0.202
   Compiling quote v1.0.36
   Compiling syn v2.0.66
   Compiling jobserver v0.1.31
   Compiling lock_api v0.4.12
   Compiling cc v1.0.98
   Compiling scopeguard v1.2.0
   Compiling getrandom v0.2.15
   Compiling rand_core v0.6.4
   Compiling pin-project-lite v0.2.14
   Compiling version_check v0.9.4
   Compiling smallvec v1.13.2
   Compiling bytes v1.6.0
   Compiling typenum v1.17.0
   Compiling parking_lot_core v0.9.10
   Compiling generic-array v0.14.7
   Compiling socket2 v0.5.7
   Compiling parking_lot v0.12.3
   Compiling itoa v1.0.11
   Compiling signal-hook-registry v1.4.2
   Compiling num_cpus v1.16.0
   Compiling memchr v2.7.2
   Compiling slab v0.4.9
   Compiling futures-core v0.3.30
   Compiling crypto-common v0.1.6
   Compiling futures-sink v0.3.30
   Compiling thiserror v1.0.61
   Compiling tracing-core v0.1.32
   Compiling fnv v1.0.7
   Compiling futures-channel v0.3.30
   Compiling futures-io v0.3.30
   Compiling subtle v2.5.0
   Compiling futures-task v0.3.30
   Compiling pin-utils v0.1.0
   Compiling equivalent v1.0.1
   Compiling untrusted v0.9.0
   Compiling hashbrown v0.14.5
   Compiling ring v0.17.8
   Compiling tinyvec_macros v0.1.1
   Compiling tinyvec v1.6.0
   Compiling indexmap v2.2.6
   Compiling spin v0.9.8
   Compiling ppv-lite86 v0.2.17
   Compiling inout v0.1.3
   Compiling serde_derive v1.0.202
   Compiling tokio-macros v2.2.0
   Compiling tracing-attributes v0.1.27
   Compiling thiserror-impl v1.0.61
   Compiling futures-macro v0.3.30
   Compiling zeroize_derive v1.4.2
   Compiling futures-util v0.3.30
   Compiling zeroize v1.7.0
   Compiling rand_chacha v0.3.1
   Compiling rand v0.8.5
   Compiling openssl-src v300.3.0+3.3.0
   Compiling cmake v0.1.50
   Compiling byteorder v1.5.0
   Compiling fs_extra v1.3.0
   Compiling openssl-probe v0.1.5
   Compiling pkg-config v0.3.30
   Compiling dunce v1.0.4
   Compiling vcpkg v0.2.15
   Compiling rustls v0.21.12
   Compiling aws-lc-sys v0.17.0
   Compiling openssl-sys v0.9.102
   Compiling log v0.4.21
   Compiling mio v0.8.11
   Compiling tracing v0.1.40
   Compiling cipher v0.4.4
   Compiling tokio v1.37.0
   Compiling ring v0.16.20
   Compiling bitflags v2.5.0
   Compiling tokio-util v0.7.11
   Compiling pin-project-internal v1.1.5
   Compiling unicode-normalization v0.1.23
   Compiling universal-hash v0.5.1
   Compiling http v1.1.0
The following warnings were emitted during compilation:

warning: [email protected]: Generating bindings - external bindgen. Platform: arm-unknown-linux-gnueabihf

error: failed to run custom build command for `aws-lc-sys v0.17.0`

Caused by:
  process didn't exit successfully: `/target/release/build/aws-lc-sys-dae18cecdecec9a6/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:warning=Generating bindings - external bindgen. Platform: arm-unknown-linux-gnueabihf
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES
  cargo:rustc-cfg=use_bindgen_generated
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  CMAKE_TOOLCHAIN_FILE_arm-unknown-linux-gnueabihf = None
  CMAKE_TOOLCHAIN_FILE_arm_unknown_linux_gnueabihf = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_arm-unknown-linux-gnueabihf = None
  CMAKE_GENERATOR_arm_unknown_linux_gnueabihf = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_arm-unknown-linux-gnueabihf = None
  CMAKE_PREFIX_PATH_arm_unknown_linux_gnueabihf = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_arm-unknown-linux-gnueabihf = None
  CMAKE_arm_unknown_linux_gnueabihf = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/cargo/registry/src/index.crates.io-6f17d22bba1[500](https://github.com/shadowsocks/shadowsocks-rust/actions/runs/9237206906/job/25414562078#step:5:501)1f/aws-lc-sys-0.17.0" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=release" "-DBORINGSSL_PREFIX=aws_lc_0_17_0_" "-DBORINGSSL_PREFIX_HEADERS=/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Linux" "-DCMAKE_SYSTEM_PROCESSOR=arm" "-DCMAKE_INSTALL_PREFIX=/target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -march=armv6 -marm -mfpu=vfp" "-DCMAKE_C_COMPILER=/x-tools/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -march=armv6 -marm -mfpu=vfp" "-DCMAKE_CXX_COMPILER=/x-tools/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-g++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -march=armv6 -marm -mfpu=vfp" "-DCMAKE_ASM_COMPILER=/x-tools/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 8.3.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /x-tools/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- The ASM compiler identification is GNU
  -- Found assembler: /x-tools/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - found
  -- Found Threads: TRUE  
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out/build
  running: cd "/target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out/build" && MAKEFLAGS="-j --jobserver-fds=8,9 --jobserver-auth=8,9" "cmake" "--build" "." "--target" "install" "--config" "Release"
  [  0%] Built target boringssl_prefix_symbols
  Scanning dependencies of target fipsmodule
  [  1%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
  aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:75: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o' failed
  CMakeFiles/Makefile2:257: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all' failed
  Makefile:135: recipe for target 'all' failed

  --- stderr
  Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/generated-src/linux-arm/crypto/ to /target/arm-unknown-linux-gnueabihf/release/build/aws-lc-sys-f9c203f2eb6d1229/out/build/aws-lc/crypto
  In file included from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/bcm.c:82:
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/cpucap/cpu_arm_linux.c: In function 'aws_lc_0_17_0_OPENSSL_cpuid_setup':
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/cpucap/cpu_arm_linux.c:121:38: error: 'AT_HWCAP2' undeclared (first use in this function); did you mean 'AT_HWCAP'?
       unsigned long hwcap2 = getauxval(AT_HWCAP2);
                                        ^~~~~~~~~
                                        AT_HWCAP
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.17.0/aws-lc/crypto/fipsmodule/cpucap/cpu_arm_linux.c:121:38: note: each undeclared identifier is reported only once for each function it appears in
  make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o] Error 1
  make[1]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
  make: *** [all] Error 2
  thread 'main' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 2

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 1.

Plans to aws-lc-fips-sys 0.12.11 release

On some Windows machines (specifically Windows-2022 Azure pipeline image), aws-lc-fips-sys fails to compile because the output of vcvarsall.bat isn't fully captured. I have narrowed down the issue to https://github.com/aws/aws-lc-rs/blob/aws-lc-fips-sys/v0.12.10/aws-lc-fips-sys/builder/main.rs#L147.

If I build against my own fork with increased output limit, there are no issues. Seems like @justsmth ran into this as well and updated the max command output limit as part of #452.

Would it be possible to do a v0.12.11 release anytime soon that includes @justsmth's changes?

Support building for aarch64-apple-ios-sim

Problem:

Targeting the iOS device (aarch64-apple-ios) works properly but building for the simulator doesn't. I can generally build aws-lc for iOS simulator, so I suspect that this is a problem between the cmake cargo crate and aws-lc cmake.

Building aws-lc for iOS simulator works with the following cmake command

cmake -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME="iOS" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_SYSROOT="iphonesimulator" -DBUILD_LIBSSL=OFF ..

Relevant details

AWS-LC for Rust versions or commit: latest main

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

  • CPU architecture: aarch64
  • Host OS: MacOS 13.4 (arm) + XCode 14.3.1
  • Compiler: Rust 1.70
  • Target OS: iOS Simulator (aarch64-apple-ios-sim)

Build log:

โฏ cargo build --release -p aws-lc-sys --target aarch64-apple-ios-sim
   Compiling libc v0.2.146
   Compiling memchr v2.5.0
   Compiling regex-syntax v0.7.2
   Compiling syn v2.0.18
   Compiling nom v7.1.3
   Compiling which v4.4.0
   Compiling clang-sys v1.6.1
   Compiling regex v1.8.4
   Compiling cexpr v0.6.0
   Compiling prettyplease v0.2.6
   Compiling bindgen v0.65.1
   Compiling aws-lc-sys v0.7.0 (/Users/tomleavy/git/aws-lc-rs/aws-lc-sys)
error: failed to run custom build command for `aws-lc-sys v0.7.0 (/Users/tomleavy/git/aws-lc-rs/aws-lc-sys)`

Caused by:
  process didn't exit successfully: `/Users/tomleavy/git/aws-lc-rs/target/release/build/aws-lc-sys-e1e4be26c4b092ee/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_aarch64-apple-ios-sim = None
  CMAKE_TOOLCHAIN_FILE_aarch64_apple_ios_sim = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_aarch64-apple-ios-sim = None
  CMAKE_GENERATOR_aarch64_apple_ios_sim = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  running: "xcrun" "--show-sdk-path" "--sdk" "iphonesimulator"
  exit status: 0
  running: "xcrun" "--show-sdk-path" "--sdk" "iphonesimulator"
  exit status: 0
  CMAKE_PREFIX_PATH_aarch64-apple-ios-sim = None
  CMAKE_PREFIX_PATH_aarch64_apple_ios_sim = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_aarch64-apple-ios-sim = None
  CMAKE_aarch64_apple_ios_sim = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/Users/tomleavy/git/aws-lc-rs/target/aarch64-apple-ios-sim/release/build/aws-lc-sys-80b5c96041eaa31f/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/Users/tomleavy/git/aws-lc-rs/aws-lc-sys" "-DCMAKE_BUILD_TYPE=release" "-DBORINGSSL_PREFIX=aws_lc_0_7_0" "-DBORINGSSL_PREFIX_HEADERS=/Users/tomleavy/git/aws-lc-rs/aws-lc-sys/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=iOS" "-DCMAKE_SYSTEM_PROCESSOR=arm64" "-DCMAKE_INSTALL_PREFIX=/Users/tomleavy/git/aws-lc-rs/target/aarch64-apple-ios-sim/release/build/aws-lc-sys-80b5c96041eaa31f/out" "-DCMAKE_C_FLAGS= -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode" "-DCMAKE_C_COMPILER=/usr/bin/clang" "-DCMAKE_CXX_FLAGS= -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode" "-DCMAKE_CXX_COMPILER=/usr/bin/clang++" "-DCMAKE_ASM_FLAGS= -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode" "-DCMAKE_ASM_COMPILER=/usr/bin/clang" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is AppleClang 14.0.3.14030022
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/clang - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- stdalign_check.c probe is negative, NOT enabling AWS_LC_STDALIGN_AVAILABLE:
  --     Change Dir: /Users/tomleavy/git/aws-lc-rs/target/aarch64-apple-ios-sim/release/build/aws-lc-sys-80b5c96041eaa31f/out/build/aws-lc/CMakeFiles/CMakeTmp

  Run Build Command(s):/opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_114e5/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_114e5.dir/build.make CMakeFiles/cmTC_114e5.dir/build
  Building C object CMakeFiles/cmTC_114e5.dir/stdalign_check.c.o
  /usr/bin/clang   -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_114e5.dir/stdalign_check.c.o -MF CMakeFiles/cmTC_114e5.dir/stdalign_check.c.o.d -o CMakeFiles/cmTC_114e5.dir/stdalign_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c
  Linking C executable cmTC_114e5.app/cmTC_114e5
  /opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E cmake_link_script CMakeFiles/cmTC_114e5.dir/link.txt --verbose=1
  /usr/bin/clang  -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk CMakeFiles/cmTC_114e5.dir/stdalign_check.c.o -o cmTC_114e5.app/cmTC_114e5
  ld: building for iOS Simulator, but linking in .tbd file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk/usr/lib/libSystem.tbd) built for iOS, file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk/usr/lib/libSystem.tbd' for architecture arm64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  make[1]: *** [cmTC_114e5.app/cmTC_114e5] Error 1
  make: *** [cmTC_114e5/fast] Error 2


  -- builtin_swap_check.c probe is negative, NOT enabling AWS_LC_BUILTIN_SWAP_SUPPORTED:
  --     Change Dir: /Users/tomleavy/git/aws-lc-rs/target/aarch64-apple-ios-sim/release/build/aws-lc-sys-80b5c96041eaa31f/out/build/aws-lc/CMakeFiles/CMakeTmp

  Run Build Command(s):/opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_44e7d/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_44e7d.dir/build.make CMakeFiles/cmTC_44e7d.dir/build
  Building C object CMakeFiles/cmTC_44e7d.dir/builtin_swap_check.c.o
  /usr/bin/clang   -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_44e7d.dir/builtin_swap_check.c.o -MF CMakeFiles/cmTC_44e7d.dir/builtin_swap_check.c.o.d -o CMakeFiles/cmTC_44e7d.dir/builtin_swap_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c
  Linking C executable cmTC_44e7d.app/cmTC_44e7d
  /opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E cmake_link_script CMakeFiles/cmTC_44e7d.dir/link.txt --verbose=1
  /usr/bin/clang  -fPIC --target=arm64-apple-ios7.0-simulator -arch arm64 -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.4.sdk -fembed-bitcode -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk CMakeFiles/cmTC_44e7d.dir/builtin_swap_check.c.o -o cmTC_44e7d.app/cmTC_44e7d
  ld: building for iOS Simulator, but linking in .tbd file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk/usr/lib/libSystem.tbd) built for iOS, file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk/usr/lib/libSystem.tbd' for architecture arm64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  make[1]: *** [cmTC_44e7d.app/cmTC_44e7d] Error 1
  make: *** [cmTC_44e7d/fast] Error 2


  -- The ASM compiler identification is Clang with GNU-like command-line
  -- Found assembler: /usr/bin/clang
  -- Disabling debug symbols for Clang internal assembler
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - not found
  -- Check if compiler accepts -pthread
  -- Check if compiler accepts -pthread - no
  -- Configuring incomplete, errors occurred!

  --- stderr
  Copying platform assembly files from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/generated-src/ios-aarch64/crypto/ to /Users/tomleavy/git/aws-lc-rs/target/aarch64-apple-ios-sim/release/build/aws-lc-sys-80b5c96041eaa31f/out/build/aws-lc/crypto
  CMake Error at /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
    Could NOT find Threads (missing: Threads_FOUND)
  Call Stack (most recent call first):
    /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
    /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindThreads.cmake:226 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
    aws-lc/crypto/CMakeLists.txt:623 (find_package)


  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 1

  build script failed, must exit now', /Users/tomleavy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Build fails for iOS simulator on x86_64

Problem:

When I try to compile the latest version for iOS simulator on my M1 mac, it will build successfully when targeting the aarch64 simulator but not the x86_64 one. We need the x86_64 simulator slice to be able to run unit tests in our CI. I have also confirmed that AWS-LC does compile for the x86_64 simulator when using standalone CMake on the C library.

Relevant details

AWS-LC for Rust versions or commit: aws-lc-sys/v0.13.3

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

  • CPU architecture: aarch64
  • CPU name: M1 Mac
  • OS: MacOS

Build log:

  • The log tells compiler and version.
โฏ cargo build --target x86_64-apple-ios
warning: use of deprecated type alias `toml_edit::Document`: Replaced with `DocumentMut`
 --> links-testing/build.rs:4:16
  |
4 | use toml_edit::Document;
  |                ^^^^^^^^
  |
  = note: `#[warn(deprecated)]` on by default

warning: use of deprecated type alias `toml_edit::Document`: Replaced with `DocumentMut`
  --> links-testing/build.rs:51:41
   |
51 |     let cargo_toml = cargo_toml.parse::<Document>().unwrap();
   |                                         ^^^^^^^^

warning: `links-testing` (build script) generated 2 warnings
   Compiling aws-lc-sys v0.14.0 (/Users/tomleavy/git/aws-lc-rs/aws-lc-sys)
   Compiling aws-lc-fips-sys v0.12.5 (/Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys)
error: failed to run custom build command for `aws-lc-sys v0.14.0 (/Users/tomleavy/git/aws-lc-rs/aws-lc-sys)`

Caused by:
  process didn't exit successfully: `/Users/tomleavy/git/aws-lc-rs/target/debug/build/aws-lc-sys-9a95abfa6d31adb3/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_x86_64-apple-ios = None
  CMAKE_TOOLCHAIN_FILE_x86_64_apple_ios = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-apple-ios = None
  CMAKE_GENERATOR_x86_64_apple_ios = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-apple-ios = None
  CMAKE_PREFIX_PATH_x86_64_apple_ios = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-apple-ios = None
  CMAKE_x86_64_apple_ios = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-sys-0814bc827fceafc2/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/Users/tomleavy/git/aws-lc-rs/aws-lc-sys" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=debug" "-DBORINGSSL_PREFIX=aws_lc_0_14_0_" "-DBORINGSSL_PREFIX_HEADERS=/Users/tomleavy/git/aws-lc-rs/aws-lc-sys/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=iOS" "-DCMAKE_INSTALL_PREFIX=/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-sys-0814bc827fceafc2/out" "-DCMAKE_C_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_C_COMPILER=/usr/bin/clang" "-DCMAKE_CXX_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_CXX_COMPILER=/usr/bin/clang++" "-DCMAKE_ASM_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_ASM_COMPILER=/usr/bin/clang" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- stdalign_check.c probe is negative, NOT enabling AWS_LC_STDALIGN_AVAILABLE:
  --     Change Dir: '/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-sys-0814bc827fceafc2/out/build/aws-lc/CMakeFiles/CMakeTmp'

  Run Build Command(s): /opt/homebrew/Cellar/cmake/3.28.1/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_477fa/fast
  /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_477fa.dir/build.make CMakeFiles/cmTC_477fa.dir/build
  Building C object CMakeFiles/cmTC_477fa.dir/stdalign_check.c.o
  /usr/bin/clang   -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_477fa.dir/stdalign_check.c.o -MF CMakeFiles/cmTC_477fa.dir/stdalign_check.c.o.d -o CMakeFiles/cmTC_477fa.dir/stdalign_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:32:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/cdefs.h:1010:2: error: Unsupported architecture
  #error Unsupported architecture
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:33:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_dev_t;         /* dev_t */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
  typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types/_uint64_t.h:31:28: note: 'uint64_t' declared here
  typedef unsigned long long uint64_t;
                             ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
  typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
  typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:30:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:32:9: error: unknown type name '__darwin_intptr_t'
  typedef __darwin_intptr_t       intptr_t;
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:10:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdlib.h:64:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_wctype_t;
          ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  make[1]: *** [CMakeFiles/cmTC_477fa.dir/stdalign_check.c.o] Error 1
  make: *** [cmTC_477fa/fast] Error 2


  -- builtin_swap_check.c probe is negative, NOT enabling AWS_LC_BUILTIN_SWAP_SUPPORTED:
  --     Change Dir: '/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-sys-0814bc827fceafc2/out/build/aws-lc/CMakeFiles/CMakeTmp'

  Run Build Command(s): /opt/homebrew/Cellar/cmake/3.28.1/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_3ddee/fast
  /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_3ddee.dir/build.make CMakeFiles/cmTC_3ddee.dir/build
  Building C object CMakeFiles/cmTC_3ddee.dir/builtin_swap_check.c.o
  /usr/bin/clang   -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_3ddee.dir/builtin_swap_check.c.o -MF CMakeFiles/cmTC_3ddee.dir/builtin_swap_check.c.o.d -o CMakeFiles/cmTC_3ddee.dir/builtin_swap_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:32:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/cdefs.h:1010:2: error: Unsupported architecture
  #error Unsupported architecture
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:33:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_dev_t;         /* dev_t */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
  typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types/_uint64_t.h:31:28: note: 'uint64_t' declared here
  typedef unsigned long long uint64_t;
                             ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
  typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
  typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:30:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:32:9: error: unknown type name '__darwin_intptr_t'
  typedef __darwin_intptr_t       intptr_t;
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:9:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdlib.h:64:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_wctype_t;
          ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  make[1]: *** [CMakeFiles/cmTC_3ddee.dir/builtin_swap_check.c.o] Error 1
  make: *** [cmTC_3ddee/fast] Error 2


  -- Configuring incomplete, errors occurred!

  --- stderr
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_RUST_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Error at aws-lc/CMakeLists.txt:703 (elseif):
    given arguments:

      "STREQUAL" "riscv64"

    Unknown arguments specified


  thread 'main' panicked at /Users/tomleavy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 1

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to run custom build command for `aws-lc-fips-sys v0.12.5 (/Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys)`

Caused by:
  process didn't exit successfully: `/Users/tomleavy/git/aws-lc-rs/target/debug/build/aws-lc-fips-sys-021df60f973f7d1f/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_x86_64-apple-ios = None
  CMAKE_TOOLCHAIN_FILE_x86_64_apple_ios = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-apple-ios = None
  CMAKE_GENERATOR_x86_64_apple_ios = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-apple-ios = None
  CMAKE_PREFIX_PATH_x86_64_apple_ios = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-apple-ios = None
  CMAKE_x86_64_apple_ios = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: cd "/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-fips-sys-9e3b325de1149101/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys" "-DBUILD_SHARED_LIBS=1" "-DCMAKE_BUILD_TYPE=debug" "-DBORINGSSL_PREFIX=aws_lc_fips_0_12_5_" "-DBORINGSSL_PREFIX_HEADERS=/Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DCMAKE_SYSTEM_NAME=iOS" "-DFIPS=1" "-DCMAKE_INSTALL_PREFIX=/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-fips-sys-9e3b325de1149101/out" "-DCMAKE_C_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_C_COMPILER=/usr/bin/clang" "-DCMAKE_CXX_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_CXX_COMPILER=/usr/bin/clang++" "-DCMAKE_ASM_FLAGS= -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "-DCMAKE_ASM_COMPILER=/usr/bin/clang" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- stdalign_check.c probe is negative, NOT enabling AWS_LC_STDALIGN_AVAILABLE:
  --     Change Dir: '/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-fips-sys-9e3b325de1149101/out/build/aws-lc/CMakeFiles/CMakeTmp'

  Run Build Command(s): /opt/homebrew/Cellar/cmake/3.28.1/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_37c68/fast
  /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_37c68.dir/build.make CMakeFiles/cmTC_37c68.dir/build
  Building C object CMakeFiles/cmTC_37c68.dir/stdalign_check.c.o
  /usr/bin/clang   -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk -fno-function-sections -fno-data-sections -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_37c68.dir/stdalign_check.c.o -MF CMakeFiles/cmTC_37c68.dir/stdalign_check.c.o.d -o CMakeFiles/cmTC_37c68.dir/stdalign_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:32:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/cdefs.h:1010:2: error: Unsupported architecture
  #error Unsupported architecture
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:33:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_dev_t;         /* dev_t */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
  typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types/_uint64_t.h:31:28: note: 'uint64_t' declared here
  typedef unsigned long long uint64_t;
                             ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
  typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
  typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:30:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:32:9: error: unknown type name '__darwin_intptr_t'
  typedef __darwin_intptr_t       intptr_t;
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/stdalign_check.c:10:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdlib.h:64:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_wctype_t;
          ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  make[1]: *** [CMakeFiles/cmTC_37c68.dir/stdalign_check.c.o] Error 1
  make: *** [cmTC_37c68/fast] Error 2


  -- builtin_swap_check.c probe is negative, NOT enabling AWS_LC_BUILTIN_SWAP_SUPPORTED:
  --     Change Dir: '/Users/tomleavy/git/aws-lc-rs/target/x86_64-apple-ios/debug/build/aws-lc-fips-sys-9e3b325de1149101/out/build/aws-lc/CMakeFiles/CMakeTmp'

  Run Build Command(s): /opt/homebrew/Cellar/cmake/3.28.1/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_fb297/fast
  /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_fb297.dir/build.make CMakeFiles/cmTC_fb297.dir/build
  Building C object CMakeFiles/cmTC_fb297.dir/builtin_swap_check.c.o
  /usr/bin/clang   -fPIC -m64 --target=x86_64-apple-ios -m64 -mios-simulator-version-min=17.4 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk -fno-function-sections -fno-data-sections -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result  -Wvla -Wtype-limits -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wnewline-eof -fcolor-diagnostics -Wstring-concatenation -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk   -Werror -MD -MT CMakeFiles/cmTC_fb297.dir/builtin_swap_check.c.o -MF CMakeFiles/cmTC_fb297.dir/builtin_swap_check.c.o.d -o CMakeFiles/cmTC_fb297.dir/builtin_swap_check.c.o -c /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:32:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/cdefs.h:1010:2: error: Unsupported architecture
  #error Unsupported architecture
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:33:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_dev_t;         /* dev_t */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
  typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types/_uint64_t.h:31:28: note: 'uint64_t' declared here
  typedef unsigned long long uint64_t;
                             ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:52:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
  typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
  typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
  typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
  typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
          ^
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:30:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
  #error architecture not supported
   ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:8:
  In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdint.h:52:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdint.h:53:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/sys/_types/_intptr_t.h:32:9: error: unknown type name '__darwin_intptr_t'
  typedef __darwin_intptr_t       intptr_t;
          ^
  In file included from /Users/tomleavy/git/aws-lc-rs/aws-lc-fips-sys/aws-lc/tests/compiler_features_tests/builtin_swap_check.c:9:
  In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/stdlib.h:64:
  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'
  typedef __uint32_t      __darwin_wctype_t;
          ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  make[1]: *** [CMakeFiles/cmTC_fb297.dir/builtin_swap_check.c.o] Error 1
  make: *** [cmTC_fb297/fast] Error 2


  -- Configuring incomplete, errors occurred!

  --- stderr
  cargo:rerun-if-env-changed=AWS_LC_FIPS_SYS_STATIC
  cargo:rerun-if-env-changed=AWS_LC_RUST_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_FIPS_SYS_INCLUDES
  cargo:rerun-if-env-changed=AWS_LC_FIPS_SYS_STATIC
  CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Error at aws-lc/CMakeLists.txt:711 (elseif):
    given arguments:

      "STREQUAL" "riscv64"

    Unknown arguments specified


  thread 'main' panicked at /Users/tomleavy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 1

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
...

Support for building aws-lc-rs with just rustc

Problem:

We'd love to include aws-lc-rs in the Rust SDK but feel that the current build requirements are too onerous for most customers to use it as the default.

Consider using build.rs to replace CMake to compile aws-lc-rs. Perhaps we could also use the Rust compiler to achieve the static linking achieved with the Go compiler currently?

HPKE base mode support or ephemeral-static ECDH API

Problem:

Over in rustls, we'd like to implement Encrypted Client Hello. This uses HPKE "Base" mode. We've defined traits to generalise over this use, and would like to implement these traits on top of aws-lc-rs. HPKE is a pretty straightforward construction and I think the existing AEAD and HKDF APIs can be reused for this. Unfortunately the ECDH API cannot, because it only supports ephemeral-ephemeral key exchange -- the server key in ECH is static.

Solution:

I think there are two possible solutions:

  1. aws-lc-rs exposes HPKE base mode as a first-class API, and we use this directly.
  2. aws-lc-rs exposes an ephemeral-static ECDH API (and we do the glueing-together and known-answer testing in rustls.)

For reference these have issues/PRs in ring:

  1. briansmith/ring#1462
  2. briansmith/ring#331

Linkage error when cross-compiling for `aarch64-pc-windows-msvc`

Problem:

Originally posted as rustls/rustls-platform-verifier#101, but it turns out it's actually an aws_lc_rs-related issue.

In short, in rust-lang/rustup#3898 we (the Rustup team) are trying to replace the ring backend with aws-lc-rs as a part of Rustup's plan to ship the rustls backend by default (rust-lang/rustup#3806).

When cross-compiling for aarch64-pc-windows-msvc from GitHub's official Windows CI runner however, the following error was generated (see the full error log in the foldable section below):

LINK : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4286: symbol '_wassert' defined in 'libucrt.lib(assert.obj)' is imported by 'libaws_lc_sys-0a41df4d7545123e.rlib(bio.c.obj)'
LINK : warning LNK4286: symbol '_wassert' defined in 'libucrt.lib(assert.obj)' is imported by 'libaws_lc_sys-0a41df4d7545123e.rlib(printf.c.obj)'
[..]
LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(chacha.c.obj)'
[..]
libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_ftell referenced in function file_ctrl
libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp__setmode referenced in function file_ctrl
oldnames.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp__strdup
D:\a\rustup\rustup\target\aarch64-pc-windows-msvc\debug\deps\rustls_platform_verifier-824047c6ba53f86f.dll : fatal error LNK1120: 18 unresolved externals
Full Error log
Compiling rustls-platform-verifier v0.3.1
error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.40.33807\\bin\\HostX64\\arm64\\link.exe" "/DEF:C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\rustcjxMRYi\\lib.def" "/NOLOGO" "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\rustcjxMRYi\\symbols.o" "D:\\a\\rustup\\rustup\\target\\aarch64-pc-windows-msvc\\debug\\deps\\rustls_platform_verifier-824047c6ba53f86f.rustls_platform_verifier.d3754e06d5d23fde-cgu.0.rcgu.o" "D:\\a\\rustup\\rustup\\target\\aarch64-pc-windows-msvc\\debug\\deps\\rustls_platform_verifier-824047c6ba53f86f.2kbvfqg2xu4cad5i.rcgu.o" "/LIBPATH:D:\\a\\rustup\\rustup\\target\\aarch64-pc-windows-msvc\\debug\\deps" "/LIBPATH:D:\\a\\rustup\\rustup\\target\\debug\\deps" "/LIBPATH:D:\\a\\rustup\\rustup\\target\\aarch64-pc-windows-msvc\\debug\\build\\aws-lc-sys-62247e93288e9cb7\\out\\build\\artifacts\\" "/LIBPATH:C:\\Users\\runneradmin\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\aarch64-pc-windows-msvc\\lib" "D:\\a\\rustup\\rustup\\target\\aarch64
  = note:    Creating library D:\a\rustup\rustup\target\aarch64-pc-windows-msvc\debug\deps\rustls_platform_verifier-824047c6ba53f86f.dll.lib and object D:\a\rustup\rustup\target\aarch64-pc-windows-msvc\debug\deps\rustls_platform_verifier-824047c6ba53f86f.dll.exp
          LINK : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(obj.c.obj)'
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(refcount_c11.c.obj)'
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ex_data.c.obj)'
          LINK : warning LNK4217: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function 'aws_lc_0_18_0_bn_mod_exp_mont_small'
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj)'
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(thread_win.c.obj)'
          LINK : warning LNK4286: symbol 'abort' defined in 'libucrt.lib(abort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(windows.c.obj)'
          LINK : warning LNK4217: symbol 'malloc' defined in 'libucrt.lib(malloc.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function 'bn_less_than_word_mask'
          LINK : warning LNK4286: symbol 'malloc' defined in 'libucrt.lib(malloc.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj)'
          LINK : warning LNK4286: symbol 'malloc' defined in 'libucrt.lib(malloc.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj)'
          LINK : warning LNK4286: symbol 'malloc' defined in 'libucrt.lib(malloc.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(thread_win.c.obj)'
          LINK : warning LNK4217: symbol '__acrt_iob_func' defined in 'libucrt.lib(_file.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function 'aws_lc_0_18_0_handle_cpu_env'
          LINK : warning LNK4217: symbol 'free' defined in 'libucrt.lib(free.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function 'ctr32_add'
          LINK : warning LNK4286: symbol 'free' defined in 'libucrt.lib(free.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj)'
          LINK : warning LNK4286: symbol 'free' defined in 'libucrt.lib(free.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj)'
          LINK : warning LNK4286: symbol 'free' defined in 'libucrt.lib(free.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(thread_win.c.obj)'
          LINK : warning LNK4217: symbol 'fflush' defined in 'libucrt.lib(fflush.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function 'check_test'
          LINK : warning LNK4286: symbol 'fflush' defined in 'libucrt.lib(fflush.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(pq_custom_randombytes.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kyber512r3_ref.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kyber768r3_ref.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kyber1024r3_ref.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ml_kem_512_ipd.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kem.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(printf.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kem_methods.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(kem_kyber.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_hmac_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(print.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bio.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_dsa_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_ed25519_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_x25519_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_kem_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_x25519.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_kem.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_rsa_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_ec_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err_data.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(a_object.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(lhash.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_ed25519.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(convert.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(dsa_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(posix_time.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(poly1305.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(rsa_crypt.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(curve25519_nohw.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bn_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(asn1_compat.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(p_methods.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(dsa.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(rsassa_pss_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ripemd.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(refcount_c11.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(engine.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ex_data.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(obj_xref.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(forkunsafe.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(windows.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(obj.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(cpucap.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(e_chacha20poly1305.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(thread_win.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(stack.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(rsa_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(cbs.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(e_aesgcmsiv.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(cbb.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ec_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(evp_asn1.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(crypto.c.obj)'
          LINK : warning LNK4217: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function '_vsnprintf_l'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(chacha.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(curve25519.c.obj)'
          LINK : warning LNK4286: symbol '__stdio_common_vsprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(ecdsa_asn1.c.obj)'
          LINK : warning LNK4217: symbol '__stdio_common_vfprintf' defined in 'libucrt.lib(output.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj)' in function '_vfprintf_l'
          LINK : warning LNK4217: symbol 'qsort' defined in 'libucrt.lib(qsort.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(cbb.c.obj)' in function 'aws_lc_0_18_0_CBB_flush_asn1_set_of'
          LINK : warning LNK4217: symbol '_errno' defined in 'libucrt.lib(errno.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj)' in function 'aws_lc_0_18_0_OPENSSL_vasprintf_internal'
          LINK : warning LNK4286: symbol '_errno' defined in 'libucrt.lib(errno.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj)'
          LINK : warning LNK4286: symbol '_errno' defined in 'libucrt.lib(errno.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj)'
          LINK : warning LNK4217: symbol 'fclose' defined in 'libucrt.lib(fclose.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj)' in function 'aws_lc_0_18_0_BIO_new_file'
          LINK : warning LNK4217: symbol '_fileno' defined in 'libucrt.lib(fileno.obj)' is imported by 'libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj)' in function 'file_ctrl'
          libaws_lc_sys-2799e0ca1159a8ce.rlib(bio.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(printf.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(posix_time.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(poly1305.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(a_object.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(lhash.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(curve25519_nohw.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(asn1_compat.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(convert.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(dsa_asn1.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(stack.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(engine.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(ex_data.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(ripemd.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(cbs.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(e_chacha20poly1305.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(chacha.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(cbb.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(rsa_asn1.c.obj) : error LNK2001: unresolved external symbol __imp__wassert
          libaws_lc_sys-2799e0ca1159a8ce.rlib(bcm.c.obj) : error LNK2019: unresolved external symbol __imp___stdio_common_vsscanf referenced in function _vsscanf_l
          libaws_lc_sys-2799e0ca1159a8ce.rlib(mem.c.obj) : error LNK2019: unresolved external symbol __imp_realloc referenced in function aws_lc_0_18_0_OPENSSL_vasprintf_internal
          libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj) : error LNK2019: unresolved external symbol __imp_strerror referenced in function err_reason_error_string
          libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj) : error LNK2019: unresolved external symbol __imp_fputs referenced in function print_errors_to_file
          libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj) : error LNK2019: unresolved external symbol __imp_strdup referenced in function aws_lc_0_18_0_ERR_set_error_data
          oldnames.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp_strdup
          libaws_lc_sys-2799e0ca1159a8ce.rlib(err.c.obj) : error LNK2019: unresolved external symbol __imp_bsearch referenced in function aws_lc_0_18_0_ERR_restore_state
          libaws_lc_sys-2799e0ca1159a8ce.rlib(obj.c.obj) : error LNK2001: unresolved external symbol __imp_bsearch
          libaws_lc_sys-2799e0ca1159a8ce.rlib(stack.c.obj) : error LNK2019: unresolved external symbol __imp_qsort_s referenced in function aws_lc_0_18_0_OPENSSL_sk_sort
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_fopen referenced in function aws_lc_0_18_0_BIO_new_file
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_fwrite referenced in function file_write
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_fread referenced in function file_read
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_ferror referenced in function file_read
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_fgets referenced in function file_gets
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_fseek referenced in function file_ctrl
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_feof referenced in function file_ctrl
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp_ftell referenced in function file_ctrl
          libaws_lc_sys-2799e0ca1159a8ce.rlib(file.c.obj) : error LNK2019: unresolved external symbol __imp__setmode referenced in function file_ctrl
          oldnames.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp__strdup
          D:\a\rustup\rustup\target\aarch64-pc-windows-msvc\debug\deps\rustls_platform_verifier-824047c6ba53f86f.dll : fatal error LNK1120: 18 unresolved externals
          
error: could not compile `rustls-platform-verifier` (lib) due to 1 previous error

You can also go to https://github.com/rust-lang/rustup/actions/runs/9624188283/job/26547561849 for the full CI log.

In addition, to prove that this actually has nothing to do with rustls-platform-verifier, another build error without the latter was reproduced in rust-lang/rustup#3917 as https://github.com/rust-lang/rustup/actions/runs/9708177268/job/26794554219.

Relevant details

The lockfile includes the following versions for aws-lc-* dependencies:

[[package]]
name = "aws-lc-fips-sys"
version = "0.12.9"

[[package]]
name = "aws-lc-rs"
version = "1.7.3"

[[package]]
name = "aws-lc-sys"
version = "0.18.0"

System information for the official GitHub runner in question:

Current runner version: '2.317.0'
Operating System
  Microsoft Windows Server 2022
  10.0.20348
  Datacenter
Runner Image
  Image: windows-2022
  Version: 20240624.1.0
  Included Software: https://github.com/actions/runner-images/blob/win22/20240624.1/images/windows/Windows2022-Readme.md
  Image Release: https://github.com/actions/runner-images/releases/tag/win22%2F20240624.1
Runner Image Provisioner
  2.0.370.1

Another interesting detail is that this seems to work without issues when compiling natively on an ARM64 Windows machine:

I was able to compile and run the tests for rustls-platform-verifier in an ARM64 Windows 11 VM with the aws_lc_rs backend earlier today. The steps I took to setup the environment were:

  • Installed the latest CMake from their website
  • Installed the latest Ninja from GitHub releases
  • Download the latest Visual Studio 2022 Tools installer
  • Installed these components:
    • Windows 11 SDK
    • MSVC v143 C++ ARM64 build tools

I then:

  • Edited rustls-platform-verifier's main branch to use aws_lc_rs everywhere ring currently is
  • Ran cargo test.

With this setup, I don't get the errors you reported FWIW. @ctz mentioned this in the project Discord but it looks like there isn't a compatible ucrt available to your build since all the missing symbols should be coming from it. I saw the VS installer install a ARM64 ucrt implementation, so maybe that's part of what's missing?
Originally posted by @complexspaces in rustls/rustls-platform-verifier#101 (comment)

Many thanks in advance!

aws-lc-sys leaks source paths bypassing rustc's trim-paths

Repro

[profile.release]
strip = "symbols"
trim-paths = "all"

[dependencies]
aws-lc-rs = "1"
  1. $ cargo build --release
  2. $ strings ./target/release/executable | grep $USER
  3. Encounter similar output:
/home/myusername/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.0/aws-lc/crypto/bytestring/cbb.c
/home/myusername/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.0/aws-lc/crypto/cipher_extra/e_aesgcmsiv.c
/home/myusername/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.0/aws-lc/crypto/cipher_extra/e_chacha20poly1305.c
/home/myusername/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.0/aws-lc/crypto/ecdsa_extra/ecdsa_asn1.c
/home/myusername/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.0/aws-lc/crypto/ec_extra/ec_asn1.c
...

Why this behavior is undesired: Some crates may prefer that their release binaries do not contain any references to source paths on the builder's machine, at least because those will include his username.

I couldn't find out what part of your codegen puts these paths in binaries, but I'm hopeful that someone can.

Bindgen warning about deprecated function: `rustfmt_bindings`

Problem:

During crate generation, the following warning message appears:

warning: use of deprecated associated function `bindgen::options::<impl bindgen::Builder>::rustfmt_bindings`
   --> aws-lc-sys/builder/bindgen.rs:116:10
    |
116 |         .rustfmt_bindings(true)
    |          ^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: `aws-lc-sys` (build script) generated 1 warning

Relevant details

AWS-LC for Rust versions or commit: 1e96011

Run the script:

โฏ ./generate-aws-lc-sys.sh -d -b -u

github actions ubuntu 24 can't build aws-lc

Problem:

github actions with ubuntu 24.04 trying to build aws-lc-sys v0.20.1 fails

Relevant details

AWS-LC for Rust versions or commit: (6b1bce0...)

[[package]]
name = "aws-lc-rs"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae74d9bd0a7530e8afd1770739ad34b36838829d6ad61818f9230f683f5ad77"
dependencies = [
 "aws-lc-sys",
 "mirai-annotations",
 "paste",
 "zeroize",
]

[[package]]
name = "aws-lc-sys"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f0e249228c6ad2d240c2dc94b714d711629d52bad946075d8e9b2f5391f0703"
dependencies = [
 "bindgen",
 "cc",
 "cmake",
 "dunce",
 "fs_extra",
 "libc",
 "paste",
]

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

  • official github's ubuntu-24.04 image with current rust stable

Build log:

  • The log tells compiler and version.
error: failed to run custom build command for `aws-lc-sys v0.20.1`

Caused by:
  process didn't exit successfully: `/target/optimized/build/aws-lc-sys-63b1b5d13166e747/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
  cargo:rustc-cfg=x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  default_for Target: 'x86_64-unknown-linux-gnu'
  cargo:rerun-if-env-changed=CARGO_FEATURE_SSL
  default_for Target: 'x86_64-unknown-linux-gnu'
  cargo:rerun-if-env-changed=CARGO_FEATURE_SSL
  cargo:root=/target/x86_64-unknown-linux-gnu/optimized/build/aws-lc-sys-77b830ae1e41e2b4/out
  default_for Target: 'x86_64-unknown-linux-gnu'
  OPT_LEVEL = Some(3)
  TARGET = Some(x86_64-unknown-linux-gnu)
  OUT_DIR = Some(/target/x86_64-unknown-linux-gnu/optimized/build/aws-lc-sys-77b830ae1e41e2b4/out)
  HOST = Some(x86_64-unknown-linux-gnu)
  cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
  CC_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
  CC_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(false)
  CARGO_CFG_TARGET_FEATURE = Some(fxsr,sse,sse2)
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
  CFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
  CFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None

  --- stderr
  thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba[150](https://github.com/daywalker90/clnrest-rs/actions/runs/10180452926/job/28158349276#step:5:151)01f/aws-lc-sys-0.20.1/builder/cc_builder.rs:244:13:
  Your compiler (cc) is not supported due to a memcmp related bug reported in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95189.We strongly recommend against using this compiler.EXECUTED: true ERROR:  OUTPUT:  
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.

armv7-unknown-linux-gnueabihf build failed.

Problem:

:: error: linking with `cc` failed: exit status: 1
::   |
::   = note: LC_ALL="C" PATH="/root/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/bin:/root/.cargo/bin:/snap/snapcraft/11776/libexec/snapcraft:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "/tmp/rustcELPsaf/symbols.o" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/deps/sslocal-ac1e7497de8e1e58.sslocal.52e1c4b00b93834d-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/deps" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/build/openssl-sys-68014d488782fa34/out/openssl-build/install/lib" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/build/ring-ecb1d7a8df8f72b9/out" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/build/ring-9a34e674bc03c03c/out" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/build/zstd-sys-92f7e55abea1e9fb/out" "-L" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/build/aws-lc-sys-39f3cae645e22220/out/build/artifacts/" "-L" "/root/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-Wl,-Bstatic" "/tmp/rustcELPsaf/libopenssl_sys-3f978028ea6fbef7.rlib" "/tmp/rustcELPsaf/libaws_lc_sys-00c2c15f1e71ac6c.rlib" "/tmp/rustcELPsaf/libzstd_sys-12f3a7842b492974.rlib" "/tmp/rustcELPsaf/libring-d2d9143dfec2ddf3.rlib" "/tmp/rustcELPsaf/libring-627367731f0440a2.rlib" "/root/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libcompiler_builtins-8b56c4287b8a3def.rlib" "-Wl,-Bdynamic" "-latomic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/stable-armv7-unknown-linux-gnueabihf/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-o" "/build/shadowsocks-rust/parts/shadowsocks-rust/build/target/release/deps/sslocal-ac1e7497de8e1e58" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-all" "-nodefaultlibs"
::   = note: /usr/bin/ld: /tmp/rustcELPsaf/libaws_lc_sys-00c2c15f1e71ac6c.rlib(sha256-armv4.S.o): in function `sha256_block_data_order_neon':
::           (.text+0xc90): multiple definition of `sha256_block_data_order_neon'; /tmp/rustcELPsaf/libopenssl_sys-3f978028ea6fbef7.rlib(libcrypto-lib-sha256-armv4.o):(.text+0xc90): first defined here
::           /usr/bin/ld: /tmp/rustcELPsaf/libaws_lc_sys-00c2c15f1e71ac6c.rlib(sha512-armv4.S.o): in function `sha512_block_data_order_neon':
::           (.text+0x710): multiple definition of `sha512_block_data_order_neon'; /tmp/rustcELPsaf/libopenssl_sys-3f978028ea6fbef7.rlib(libcrypto-lib-sha512-armv4.o):(.text+0x710): first defined here
::           collect2: error: ld returned 1 exit status

This is the build on Snap (build log): https://snapcraft.io/shadowsocks-rust/builds/2492790#footer

Relevant details

AWS-LC for Rust versions or commit: (crates.io aws-lc-rs v1.7.2)

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

Statically linking CRT for aws-lc-fips-sys

Problem:

It would greatly simplify some of our Windows build and installer process if aws-lc-fips-sys supported statically-linking CRT with the /MT flag, similar to the aws-lc-sys crate.

In detail, we are distributing aws-lc-fips DLLs that some of the binaries depend on, but they fail to run on systems where VCRUNTIME140.dll is not present.

Attempted Solution:

I did try setting cmake_cfg.static_crt(true) in aws-lc-fips-sys's cmake_builder.rs, but it didn't make a difference. With cargo build -vvv -p aws-lc-fips-sys, I saw

[aws-lc-fips-sys 0.12.11] cl : Command line warning D9025 : overriding '/MT' with '/MD'
[aws-lc-fips-sys 0.12.11] cl : Command line warning D9002 : ignoring unknown option '-fno-function-sections'
[aws-lc-fips-sys 0.12.11] cl : Command line warning D9002 : ignoring unknown option '-fno-data-sections

Something seems to be overriding the /MT flag

Support building using pre-generated sources on windows-x86_64

Problem:

At the minute building on windows-x86_64 gives this output (full log below):

(...)
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- The ASM_NASM compiler identification is NASM
  -- Found assembler: C:/Users/runneradmin/nasm/nasm.exe
  -- C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.9.0/aws-lc/generated-src/win-x86_64/crypto/ assembly files do not exist.
(...)

  CMake Error at aws-lc/crypto/CMakeLists.txt:286 (add_library):
    Cannot find source file:

      chacha/chacha-x86_64.asm

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
    .ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
    .f95 .f03 .hip .ispc

(...)

Relevant details

aws-lc-rs-sys 0.9.0 only contains generated-src for win-aarch64.

https://aws.github.io/aws-lc-rs/requirements/windows.html doesn't mention requirement for Perl or golang.

Build log:

error: failed to run custom build command for `aws-lc-sys v0.9.0`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_TEST_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `D:\a\rustls\rustls\target\debug\build\aws-lc-sys-a3156c0dfbf5[74](https://github.com/rustls/rustls/actions/runs/5963826710/job/16177790487?pr=1414#step:6:75)53\build-script-main` (exit code: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_x86_64-pc-windows-msvc = None
  CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-pc-windows-msvc = None
  CMAKE_GENERATOR_x86_64_pc_windows_msvc = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-pc-windows-msvc = None
  CMAKE_PREFIX_PATH_x86_64_pc_windows_msvc = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-pc-windows-msvc = None
  CMAKE_x86_64_pc_windows_msvc = None
  HOST_CMAKE = None
  CMAKE = Some("cmake")
  running: "cmake" "C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.9.0" "-G" "Visual Studio 17 2022" "-Thost=x64" "-Ax64" "-DBUILD_SHARED_LIBS=0" "-DBORINGSSL_PREFIX=aws_lc_0_9_0" "-DBORINGSSL_PREFIX_HEADERS=C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.9.0\\generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_INSTALL_PREFIX=D:\\a\\rustls\\rustls\\target\\debug\\build\\aws-lc-sys-9cc6c10862390ca0\\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_BUILD_TYPE=Debug" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is MSVC 19.35.32217.1
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.35.32215/bin/HostX64/x64/cl.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- The ASM_NASM compiler identification is NASM
  -- Found assembler: C:/Users/runneradmin/nasm/nasm.exe
  -- C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.9.0/aws-lc/generated-src/win-x86_64/crypto/ assembly files do not exist.
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - not found
  -- Found Threads: TRUE  
  -- Configuring done (122.2s)

  --- stderr
  CMake Deprecation Warning at CMakeLists.txt:6 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Error at aws-lc/crypto/CMakeLists.txt:286 (add_library):
    Cannot find source file:

      chacha/chacha-x86_64.asm

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
    .ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f[77](https://github.com/rustls/rustls/actions/runs/5963826710/job/16177790487?pr=1414#step:6:78) .f90
    .f95 .f03 .hip .ispc


  CMake Error at aws-lc/crypto/fipsmodule/CMakeLists.txt:499 (add_library):
    Cannot find source file:

      aesni-gcm-avx512.asm

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
    .ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
    .f95 .f03 .hip .ispc


  CMake Error at aws-lc/crypto/CMakeLists.txt:286 (add_library):
    No SOURCES given to target: crypto_objects


  CMake Error at aws-lc/crypto/CMakeLists.txt:542 (add_library):
    No SOURCES given to target: crypto
  Call Stack (most recent call first):
    aws-lc/crypto/CMakeLists.txt:633 (build_libcrypto)


  CMake Error at aws-lc/crypto/fipsmodule/CMakeLists.txt:499 (add_library):
    No SOURCES given to target: fipsmodule


  CMake Generate step failed.  Build files cannot be regenerated correctly.
  thread 'main' panicked at '
  command did not execute successfully, got: exit code: 1

  build script failed, must exit now', C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.50\src\lib.rs:1098:5
  stack backtrace:
     0: std::panicking::begin_panic_handler
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:593
     1: core::panicking::panic_fmt
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\core\src\panicking.rs:67
     2: cmake::find_exe::{{closure}}
     3: <cmake::Version as core::default::Default>::default
     4: cmake::Config::build
     5: build_script_main::prepare_cmake_build::{{closure}}
     6: build_script_main::prepare_cmake_build::{{closure}}
     7: core::ops::function::FnOnce::call_once
     8: <hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop
     9: std::rt::lang_start::{{closure}}
    10: std::rt::lang_start_internal::closure$2
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\rt.rs:148
    11: std::panicking::try::do_call
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:500
    12: std::panicking::try
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panicking.rs:464
    13: std::panic::catch_unwind
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\panic.rs:142
    14: std::rt::lang_start_internal
               at /rustc/eb26296b556cef10fb713a38f3d16b9886080f26/library\std\src\rt.rs:148
    15: std::rt::lang_start
    16: main
    17: invoke_main
               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:[78](https://github.com/rustls/rustls/actions/runs/5963826710/job/16177790487?pr=1414#step:6:79)
    18: __scrt_common_main_seh
               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:2[88](https://github.com/rustls/rustls/actions/runs/5963826710/job/16177790487?pr=1414#step:6:89)
    19: BaseThreadInitThunk
    20: RtlUserThreadStart
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Error: Process completed with exit code 1.

https://github.com/rustls/rustls/actions/runs/5963826710/job/16177790487?pr=1414#step:6:74

Support for P521 curve with SHA256/SHA384 hash algorithms.

Problem:

I have a use case where I need to rely on rustls-webpki (with aws-lc-rs as the crypto provider). When the CA is signed with ecdsa-with-SHA512 algorithm and the server certificate is signed with ecdsa-with-sha256/ecdsa-with-sha384, rustls-webpki fails to verify the server certificate.

I opened rustls/webpki#267 for this issue, and ultimately, it looks like support for P521 curve with SHA256/SHA384 hash algorithms needs to be added in both rustls-webpki and aws-lc-rs.

Is this something aws-lc-rs has considered or is willing to?

Supports compresssed octets format in `agreement::agree_ephemeral()`

Problem:

agreement::agree_ephemeral() currently supports the peer public key in uncompressed octets format, but rejects if the peer public key is in compressed octets format.

Solution:

Relax the length check of the peer public key to allow both compressed and uncompressed octets to be supported.

  • Does this change any public APIs? If yes, explain.

No

  • Which algorithm(s) will this impact?

agreement::agree_ephemeral()

Requirements / Acceptance Criteria:

The key agreement should succeed for peer public keys to be specified in either compressed or uncompressed octets format.

  • RFC links: Links to relevant RFC(s)
  • Related Issues: Link any relevant issues
  • Will the Usage Guide or other documentation need to be updated?
  • Testing: How will this change be tested? Call out new integration tests, functional tests, or particularly
    interesting/important unit tests.
    • Will this change trigger AWS LibCrypto Formal Verification changes? Changes to the implementation of verified
      algorithms will require additional changes.
    • Should this change be fuzz tested? Will it handle untrusted input? Create a separate issue to track the fuzzing
      work.

Out of scope:

Is there anything the solution will intentionally NOT address?

Link to guide on bindgen requirement

Problem:

Related: aws/s2n-quic#2149

When compiling for a target outside of the pregenerated bindings, the current build fails with a suggestion to enable the bindgen feature in aws-lc-sys. For someone pulling in s2n-quic, this is quite confusing, since they're not depending on it directly.

I think one way to improve this is to link the guide on how to proceed. Maybe we also need to expand the guide a bit and have a specific section about what to do with the dependency of a dependency situation.

Another slight improvement over taking aws-lc as a dependency would be to have them install the bindgen CLI in their PATH and we could try and detect that and use it instead of the crates.io dependency.

Compilation Errors on `x86_64-pc-windows-gnu` Target due to Uninitialized Variables in `aws-lc`

Problem:

I encountered a compilation issue when building my project that depends on aws-lc-rs v1.7.0 for the x86_64-pc-windows-gnu target. The compilation process fails with errors related to potentially uninitialized variables in the aws-lc C code. I tried to suppress the warnings by setting the CFLAGS=-Wno-maybe-uninitialized variable.

I am using github actions CI for the build process:

jobs:
  windows-release:
    name: release x86_64-pc-windows-gnu
    runs-on: windows-latest
    strategy:
      matrix:
        toolchain: [stable]
        triple:
          - { target: x86_64-pc-windows-gnu, cross: false }
    steps:
      - uses: ilammy/setup-nasm@v1
      - uses: actions/checkout@v2
        with:
          repository: opsfolio/resource-surveillance
          token: ${{ secrets.GH_PAT }}
          ref: 'main' 

      - name: Install toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.toolchain }}
          override: true
          target: ${{ matrix.triple.target }}
          default: true
  
      - name: Get Release Upload URL
        id: get_upload_url
        uses: actions/github-script@v5
        with:
          script: |
              const tag = process.env.GITHUB_REF.split('/').pop();
              const releases = await github.rest.repos.listReleases({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
              });
              const release = releases.data.find(release => release.tag_name === tag);
              if (!release) {
                  throw new Error(`Release not found for tag ${tag}`);
              }
              return release.upload_url;
          result-encoding: string
        env:
              GITHUB_REF: ${{ github.ref }}
      - name: Suppress C warnings
        run: echo "CFLAGS=-Wno-maybe-uninitialized" >> $GITHUB_ENV

      - name: Build with Cargo
        run: |
          cargo build --release --target ${{ matrix.triple.target }}
          .\target\${{ matrix.triple.target }}\release\surveilr.exe --help
          Compress-Archive -Path .\target\${{ matrix.triple.target }}\release\surveilr.exe -DestinationPath resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
  
      - name: Upload To Releases
        uses: actions/upload-release-asset@v1
        env: 
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.get_upload_url.outputs.result }}
          asset_path: resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
          asset_name: resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
          asset_content_type: application/zip

Relevant details

AWS-LC for Rust versions: v1.7.0

System information: Github hosted windows runner

Build log:

error: failed to run custom build command for `aws-lc-sys v0.15.0`
Caused by:
  process didn't exit successfully: `D:\a\releases.opsfolio.com\releases.opsfolio.com\target\release\build\aws-lc-sys-b9f51cce91766728\build-script-main` (exit code: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_RUST_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES
  cargo:rustc-cfg=use_bindgen_generated
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  CMAKE_TOOLCHAIN_FILE_x86_64-pc-windows-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-pc-windows-gnu = None
  CMAKE_GENERATOR_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-pc-windows-gnu = None
  CMAKE_PREFIX_PATH_x86_64_pc_windows_gnu = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-pc-windows-gnu = None
  CMAKE_x86_64_pc_windows_gnu = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: "cmake" "C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.15.0" "-G" "MSYS Makefiles" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=release" "-DBORINGSSL_PREFIX=aws_lc_0_15_0_" "-DBORINGSSL_PREFIX_HEADERS=C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.15.0\\generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Windows" "-DCMAKE_SYSTEM_PROCESSOR=AMD64" "-DCMAKE_INSTALL_PREFIX=D:\\a\\releases.opsfolio.com\\releases.opsfolio.com\\target\\x86_64-pc-windows-gnu\\release\\build\\aws-lc-sys-b313b0142cce05c4\\out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -m64" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 12.2.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/mingw64/bin/gcc.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- The ASM_NASM compiler identification is NASM
  -- Found assembler: C:/Users/runneradmin/nasm/nasm.exe
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE
  -- Configuring done (10.6s)
  -- Generating done (0.2s)
  -- Build files have been written to: D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build
  running: "cmake" "--build" "." "--target" "install" "--config" "Release" "--parallel" "4"
  [  0%] Built target boringssl_prefix_symbols
  [  0%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/cpucap/cpucap.c.obj
  [  0%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.obj
  [  1%] Building C object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.obj
  [  1%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bitstr.c.obj
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bool.c.obj
  [  2%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_d2i_fp.c.obj
  [  3%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-avx512.asm.obj
  [  3%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.asm.obj
  [  3%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_dup.c.obj
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_gentm.c.obj
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_i2d_fp.c.obj
  [  4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_int.c.obj
  [  5%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-xts-avx512.asm.obj
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.obj
  [  5%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.asm.obj
  [  6%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86_64.asm.obj
  [  6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_object.c.obj
  [  7%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.asm.obj
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_octet.c.obj
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strex.c.obj
  [  8%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.asm.obj
  [  8%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.asm.obj
  [  8%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strnid.c.obj
  [  9%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256_beeu-x86_64-asm.asm.obj
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_time.c.obj
  [ 10%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_type.c.obj
  [ 10%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rdrand-x86_64.asm.obj
  [ 11%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rsaz-avx2.asm.obj
  [ 11%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utctm.c.obj
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utf8.c.obj
  [ 12%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_lib.c.obj
  [ 12%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-x86_64.asm.obj
  [ 12%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-x86_64.asm.obj
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn1_par.c.obj
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/asn_pack.c.obj
  [ 13%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_int.c.obj
  [ 14%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-x86_64.asm.obj
  [ 14%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-x86_64.asm.obj
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/f_string.c.obj
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_dec.c.obj
  [ 15%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_enc.c.obj
  [ 15%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont5.asm.obj
  [ 16%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont.asm.obj
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_fre.c.obj
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_new.c.obj
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_typ.c.obj
  [ 17%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/posix_time.c.obj
  [ 18%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/tasn_utl.c.obj
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/base64/base64.c.obj
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio.c.obj
  [ 19%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/bio_mem.c.obj
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/connect.c.obj
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/fd.c.obj
  [ 20%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/errno.c.obj
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/file.c.obj
  [ 21%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/hexdump.c.obj
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/pair.c.obj
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/printf.c.obj
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket.c.obj
  [ 22%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/blake2/blake2.c.obj
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bio/socket_helper.c.obj
  [ 23%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/bn_asn1.c.obj
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bn_extra/convert.c.obj
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/buf/buf.c.obj
  [ 24%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/asn1_compat.c.obj
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/ber.c.obj
  [ 25%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbb.c.obj
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/cbs.c.obj
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/bytestring/unicode.c.obj
  [ 26%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/chacha/chacha.c.obj
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/cipher_extra.c.obj
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/derive_key.c.obj
  [ 27%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesctrhmac.c.obj
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aesgcmsiv.c.obj
  [ 28%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_chacha20poly1305.c.obj
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha1.c.obj
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_aes_cbc_hmac_sha256.c.obj
  [ 29%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_des.c.obj
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_null.c.obj
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc2.c.obj
  [ 30%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_rc4.c.obj
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/e_tls.c.obj
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/tls_cbc.c.obj
  [ 31%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/conf/conf.c.obj
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/crypto.c.obj
  [ 32%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519.c.obj
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519_nohw.c.obj
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/curve25519_s2n_bignum_asm.c.obj
  [ 33%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/curve25519/spake25519.c.obj
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/des/des.c.obj
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/params.c.obj
  [ 34%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dh_extra/dh_asn1.c.obj
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/digest_extra/digest_extra.c.obj
  [ 35%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa.c.obj
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/dsa/dsa_asn1.c.obj
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdh_extra/ecdh_extra.c.obj
  [ 36%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ecdsa_extra/ecdsa_asn1.c.obj
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_asn1.c.obj
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/ec_derive.c.obj
  [ 37%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ec_extra/hash_to_curve.c.obj
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err/err.c.obj
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/err_data.c.obj
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/engine/engine.c.obj
  [ 38%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_dsa_asn1.c.obj
  [ 39%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/evp_asn1.c.obj
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ec_asn1.c.obj
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519.c.obj
  [ 40%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_ed25519_asn1.c.obj
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_hmac_asn1.c.obj
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem.c.obj
  [ 41%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_kem_asn1.c.obj
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_rsa_asn1.c.obj
  [ 42%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519.c.obj
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_x25519_asn1.c.obj
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/p_methods.c.obj
  [ 43%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/print.c.obj
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/scrypt.c.obj
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/evp_extra/sign.c.obj
  [ 44%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ex_data.c.obj
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hpke/hpke.c.obj
  [ 45%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hrss/hrss.c.obj
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem.c.obj
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kem/kem_methods.c.obj
  [ 46%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber512r3_ref.c.obj
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber768r3_ref.c.obj
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kyber1024r3_ref.c.obj
  [ 47%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/pqcrystals_kyber_ref_common/fips202.c.obj
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/kyber/kem_kyber.c.obj
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/lhash/lhash.c.obj
  [ 48%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/mem.c.obj
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj.c.obj
  [ 49%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/obj/obj_xref.c.obj
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_asn.c.obj
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_client.c.obj
  [ 50%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_extension.c.obj
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_http.c.obj
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_lib.c.obj
  [ 51%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_print.c.obj
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_server.c.obj
  [ 52%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/ocsp/ocsp_verify.c.obj
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_all.c.obj
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_info.c.obj
  [ 53%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_lib.c.obj
  [ 54%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_oth.c.obj
  [ 54%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_pk8.c.obj
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_x509.c.obj
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_pkey.c.obj
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pem/pem_xaux.c.obj
  [ 55%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs7/pkcs7.c.obj
  [ 56%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs7/pkcs7_x509.c.obj
  [ 56%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/pkcs8.c.obj
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/pkcs8_x509.c.obj
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pkcs8/p5_pbev2.c.obj
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305_arm.c.obj
  [ 57%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305.c.obj
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/poly1305/poly1305_vec.c.obj
  [ 58%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/pool/pool.c.obj
  [ 59%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/deterministic.c.obj
  [ 59%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/entropy_passive.c.obj
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/forkunsafe.c.obj
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/fuchsia.c.obj
  [ 60%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/rand_extra.c.obj
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/pq_custom_randombytes.c.obj
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/trusty.c.obj
  [ 61%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rand_extra/windows.c.obj
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rc4/rc4.c.obj
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/refcount_c11.c.obj
  [ 62%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/refcount_lock.c.obj
  [ 63%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/refcount_win.c.obj
  [ 63%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsa_asn1.c.obj
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsassa_pss_asn1.c.obj
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsa_crypt.c.obj
  [ 64%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/rsa_extra/rsa_print.c.obj
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/stack/stack.c.obj
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/siphash/siphash.c.obj
  [ 65%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread.c.obj
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_none.c.obj
  [ 66%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_pthread.c.obj
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/thread_win.c.obj
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/pmbtoken.c.obj
  [ 67%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/trust_token.c.obj
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/trust_token/voprf.c.obj
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_digest.c.obj
  [ 68%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_sign.c.obj
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/a_verify.c.obj
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/algorithm.c.obj
  [ 69%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/asn1_gen.c.obj
  [ 70%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/by_dir.c.obj
  [ 70%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/by_file.c.obj
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/i2d_pr.c.obj
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/name_print.c.obj
  [ 71%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/policy.c.obj
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/rsa_pss.c.obj
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_crl.c.obj
  [ 72%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_req.c.obj
  [ 73%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_x509.c.obj
  [ 73%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/t_x509a.c.obj
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509.c.obj
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_att.c.obj
  [ 74%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_cmp.c.obj
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_d2.c.obj
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_def.c.obj
  [ 75%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_ext.c.obj
  [ 76%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_lu.c.obj
  [ 76%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_obj.c.obj
  [ 77%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_req.c.obj
  [ 77%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_set.c.obj
  [ 77%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_v3.c.obj
  [ 77%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_trs.c.obj
  [ 78%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_txt.c.obj
  [ 78%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_vfy.c.obj
  [ 79%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509_vpm.c.obj
  [ 79%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509cset.c.obj
  [ 79%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509name.c.obj
  [ 80%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509rset.c.obj
  [ 81%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_algor.c.obj
  [ 81%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x509spki.c.obj
  [ 81%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_all.c.obj
  [ 81%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_attrib.c.obj
  [ 81%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_exten.c.obj
  [ 82%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_crl.c.obj
  [ 83%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_pubkey.c.obj
  [ 82%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_name.c.obj
  [ 83%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_req.c.obj
  [ 84%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_sig.c.obj
  [ 84%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_spki.c.obj
  [ 84%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_val.c.obj
  [ 85%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_x509.c.obj
  [ 85%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509/x_x509a.c.obj
  [ 85%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_akey.c.obj
  [ 86%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_akeya.c.obj
  [ 86%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_alt.c.obj
  [ 86%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_bcons.c.obj
  [ 87%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_bitst.c.obj
  [ 87%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_conf.c.obj
  [ 88%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_cpols.c.obj
  [ 88%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_crld.c.obj
  [ 88%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_enum.c.obj
  [ 89%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_extku.c.obj
  [ 89%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_genn.c.obj
  [ 89%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ia5.c.obj
  [ 90%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_info.c.obj
  [ 90%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_int.c.obj
  [ 91%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_lib.c.obj
  [ 91%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ncons.c.obj
  [ 91%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_ocsp.c.obj
  [ 92%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_pcons.c.obj
  [ 92%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_pmaps.c.obj
  [ 92%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_prn.c.obj
  [ 93%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_purp.c.obj
  [ 93%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_skey.c.obj
  [ 93%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.obj
  [ 94%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/bio/base64_bio.c.obj
  [ 94%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/blowfish/blowfish.c.obj
  [ 95%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cast/cast.c.obj
  [ 95%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cast/cast_tables.c.obj
  [ 95%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/cfb/cfb.c.obj
  [ 96%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/dh/dh_decrepit.c.obj
  [ 96%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/evp/evp_do_all.c.obj
  [ 97%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/rsa/rsa_decrepit.c.obj
  [ 97%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/ripemd/ripemd.c.obj
  [ 97%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/decrepit/x509/x509_decrepit.c.obj
  [ 98%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/chacha/chacha-x86_64.asm.obj
  [ 98%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/chacha20_poly1305_x86_64.asm.obj
  [ 98%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/aes128gcmsiv-x86_64.asm.obj
  [ 98%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/aesni-sha256-x86_64.asm.obj
  [ 99%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/cipher_extra/aesni-sha1-x86_64.asm.obj
  [ 99%] Building ASM_NASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/test/trampoline-x86_64.asm.obj
  [ 99%] Built target crypto_objects
  --- stderr
  CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  Copying platform assembly files from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/generated-src/win-x86_64/crypto/ to D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/crypto
  In file included from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/base.h:80,
                   from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/crypto.h:18,
                   from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/bcm.c:19:
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h: In function 'aws_lc_0_15_0_ecdsa_digestverify_no_self_test':
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h:20:26: error: 'digest_len' may be used uninitialized [-Werror=maybe-uninitialized]
     20 | #define BORINGSSL_PREFIX aws_lc_0_15_0
        |                          ^~~~~~~~~~~~~
  In file included from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/bcm.c:92:
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c:458:16: note: 'digest_len' was declared here
    458 |   unsigned int digest_len;
        |                ^~~~~~~~~~
  In file included from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/bcm.c:89:
  In function 'aws_lc_0_15_0_EVP_Digest',
      inlined from 'aws_lc_0_15_0_ecdsa_digestsign_no_self_test' at C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c:446:8:
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/digest/digest.c:322:45: error: 'digest_len' may be used uninitialized [-Werror=maybe-uninitialized]
    322 |     ret &= EVP_DigestFinalXOF(&ctx, out_md, *out_size);
        |                                             ^~~~~~~~~
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c: In function 'aws_lc_0_15_0_ecdsa_digestsign_no_self_test':
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c:445:16: note: 'digest_len' declared here
    445 |   unsigned int digest_len;
        |                ^~~~~~~~~~
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h: In function 'aws_lc_0_15_0_rsa_digestsign_no_self_test':
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h:20:26: error: 'digest_len' may be used uninitialized [-Werror=maybe-uninitialized]
     20 | #define BORINGSSL_PREFIX aws_lc_0_15_0
        |                          ^~~~~~~~~~~~~
  In file included from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/bcm.c:134:
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/rsa/rsa.c:695:16: note: 'digest_len' was declared here
    695 |   unsigned int digest_len;
        |                ^~~~~~~~~~
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h: In function 'aws_lc_0_15_0_rsa_digestverify_no_self_test':
  D:/a/releases.opsfolio.com/releases.opsfolio.com/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-b313b0142cce05c4/out/build/aws-lc/symbol_prefix_include/openssl/boringssl_prefix_symbols.h:20:26: error: 'digest_len' may be used uninitialized [-Werror=maybe-uninitialized]
     20 | #define BORINGSSL_PREFIX aws_lc_0_15_0
        |                          ^~~~~~~~~~~~~
  C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/fipsmodule/rsa/rsa.c:763:16: note: 'digest_len' was declared here
    763 |   unsigned int digest_len;
        |                ^~~~~~~~~~
  cc1.exe: all warnings being treated as errors
  make.exe[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:77: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.obj] Error 1
  make.exe[1]: *** [CMakeFiles/Makefile2:258: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
  make.exe[1]: *** Waiting for unfinished jobs....
  make.exe: *** [Makefile:136: all] Error 2
  thread 'main' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.50\src\lib.rs:1098:5:
  command did not execute successfully, got: exit code: 2
  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

Fails to build on Apple Silicon M2

Problem:

Unable to generate bindings.: ClangDiagnostic("/Users/ur20980/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.0/aws-lc/include/openssl/err.h:112:10: fatal error: 'stdio.h' file not found\n")

It happens during build of https://github.com/rustls/rustls.git which tries to build dependencies aws-lc-rs -> aws-lc-sys.

The issue has been reported here and recommended to bring up in this repo, because it appears to be this crate's problem.
Steps to reproduce are shown there.

Relevant details

AWS-LC for Rust versions or commit: v1.6 (as far as I can tell)

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

  • CPU architecture: ARM8
  • CPU name: Apple Silicon M2 Max
  • OS: MacOS Sonoma 14.3.1
  • Xcode: 15.2
  • Rust: 1.76.0 (stable)

Build log:

  • The log tells compiler and version.
$ git clone --recurse-submodules https://github.com/rustls/rustls.git
Cloning into 'rustls'...
remote: Enumerating objects: 26917, done.
remote: Counting objects: 100% (4049/4049), done.
remote: Compressing objects: 100% (1112/1112), done.
remote: Total 26917 (delta 3270), reused 3122 (delta 2912), pack-reused 22868
Receiving objects: 100% (26917/26917), 10.23 MiB | 2.53 MiB/s, done.
Resolving deltas: 100% (18838/18838), done.
$ cd rustls
$ cargo test --release; date                                         
   Compiling libc v0.2.153
   Compiling proc-macro2 v1.0.78
   Compiling unicode-ident v1.0.12
   Compiling glob v0.3.1
   Compiling rustix v0.38.31
   Compiling prettyplease v0.2.16
   Compiling memchr v2.7.1
   Compiling regex-syntax v0.8.2
   Compiling minimal-lexical v0.2.1
   Compiling either v1.10.0
   Compiling cfg-if v1.0.0
   Compiling bitflags v2.4.2
   Compiling libloading v0.8.1
   Compiling bindgen v0.69.4
   Compiling home v0.5.9
   Compiling itertools v0.12.1
   Compiling lazy_static v1.4.0
   Compiling rustc-hash v1.1.0
   Compiling nom v7.1.3
   Compiling clang-sys v1.7.0
   Compiling lazycell v1.3.0
   Compiling shlex v1.3.0
   Compiling log v0.4.20
   Compiling dunce v1.0.4
   Compiling fs_extra v1.3.0
   Compiling paste v1.0.14
   Compiling aho-corasick v1.1.2
   Compiling regex-automata v0.4.5
   Compiling aws-lc-rs v1.6.1
   Compiling untrusted v0.9.0
   Compiling cexpr v0.6.0
   Compiling rustls-pki-types v1.2.0
   Compiling mirai-annotations v1.12.0
   Compiling zeroize v1.7.0
   Compiling base64 v0.21.7
   Compiling rustls v0.23.0-alpha.0 (/Users/ur20980/src/rustls/rustls)
   Compiling once_cell v1.19.0
   Compiling regex v1.10.3
   Compiling is-terminal v0.4.12
   Compiling subtle v2.5.0
   Compiling termcolor v1.4.1
   Compiling humantime v2.1.0
   Compiling quote v1.0.35
   Compiling syn v2.0.48
   Compiling rustls-pemfile v2.0.0
   Compiling webpki-roots v0.26.1
   Compiling autocfg v1.1.0
   Compiling powerfmt v0.2.0
   Compiling bencher v0.1.5
   Compiling deranged v0.3.11
   Compiling num-traits v0.2.18
   Compiling num-bigint v0.4.4
   Compiling time-core v0.1.2
   Compiling cc v1.0.83
   Compiling errno v0.3.8
   Compiling num-conv v0.1.0
   Compiling serde v1.0.196
   Compiling cmake v0.1.50
   Compiling time v0.3.34
   Compiling which v4.4.2
   Compiling getrandom v0.2.12
   Compiling ring v0.17.7
   Compiling spin v0.9.8
   Compiling yasna v0.5.2
   Compiling pem v3.0.3
   Compiling socket2 v0.5.5
   Compiling env_logger v0.10.2
   Compiling num-integer v0.1.46
   Compiling mio v0.8.10
   Compiling pin-project-lite v0.2.13
   Compiling strsim v0.10.0
   Compiling bytes v1.5.0
   Compiling serde_derive v1.0.196
   Compiling tokio-macros v2.2.0
   Compiling tokio v1.36.0
   Compiling aws-lc-sys v0.13.0
   Compiling rcgen v0.12.1
error: failed to run custom build command for `aws-lc-sys v0.13.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: `/Users/ur20980/src/rustls/target/release/build/aws-lc-sys-de27243413207beb/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated

  --- stderr
  /Users/ur20980/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.0/aws-lc/include/openssl/err.h:112:10: fatal error: 'stdio.h' file not found
  thread 'main' panicked at /Users/ur20980/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.0/builder/bindgen.rs:151:10:
  Unable to generate bindings.: ClangDiagnostic("/Users/ur20980/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.0/aws-lc/include/openssl/err.h:112:10: fatal error: 'stdio.h' file not found\n")
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5
     1: core::panicking::panic_fmt
               at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:72:14
     2: core::result::unwrap_failed
               at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/result.rs:1649:5
     3: core::result::Result<T,E>::expect
     4: build_script_main::bindgen::generate_bindings
     5: build_script_main::generate_bindings
     6: build_script_main::main
     7: 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...
Tue Feb 13 16:35:59 EST 2024
$

actions-rs no longer mantained

Problem:

The entire actions-rs organization and repositories has been marked as archived as the projects are no longer maintained. Need to investigate a new set of GitHub actions we can use to replace our existing usage before we inevitably hit some surprise breakage.

aws-lc-sys --features ssl,bindgen failed to build

cargo build -p aws-lc-sys --features ssl,bindgen

failed to compile, the output:

error[E0425]: cannot find function, tuple struct or tuple variant `BIO_ctrl` in this scope
  --> aws-lc-sys/src/lib.rs:82:14
   |
82 |     unsafe { BIO_ctrl(b, BIO_CTRL_INFO, 0, pp.cast::<c_void>()) }
   |              ^^^^^^^^ not found in this scope

error[E0425]: cannot find function, tuple struct or tuple variant `CRYPTO_library_init` in this scope
  --> aws-lc-sys/src/lib.rs:86:14
   |
86 |     unsafe { CRYPTO_library_init() }
   |              ^^^^^^^^^^^^^^^^^^^ not found in this scope

For more information about this error, try `rustc --explain E0425`.
error: could not compile `aws-lc-sys` (lib) due to 2 previous errors

the function name in the bindgen.rs is

extern "C" {
    pub fn aws_lc_0_13_0_CRYPTO_library_init();
}

which is different than the pre-generated one:

extern "C" {
    #[link_name = "\u{1}aws_lc_0_13_0_CRYPTO_library_init"]
    pub fn CRYPTO_library_init();
}

MSRV not respected on aarch64-apple-darwin

Problem:

MSRV is not respected on all platforms. The actual MSRV for aarch64-apple-darwin is 1.70.0.

The CI should check more platforms for MSRV, and should include the "bindgen" (and possibly other) features.

Relevant details

  • Running on an M1 Mac:
โฏ rustc -vV |grep host
host: aarch64-apple-darwin

Build log:

  • The log tells compiler and version.
โฏ cargo msrv
Fetching index
Determining the Minimum Supported Rust Version (MSRV) for toolchain aarch64-apple-darwin
Using check command cargo check
...
โ”‚ error: package `home v0.5.9` cannot be built because it requires rustc 1.70.0 or newer, while the currently active rustc version is 1.66.1                                                                                                                                                                                 โ”‚
โ”‚ Either upgrade to rustc 1.70.0 or newer, or use                                                                                                                                                                                                                                                                            โ”‚
โ”‚ cargo update -p [email protected] --precise ver                                                                                                                                                                                                                                                                                   โ”‚
โ”‚ where `ver` is the latest version of `home` supporting rustc 1.66.1
  • The dependency on home comes via bindgen:
โฏ cargo tree -i home
home v0.5.9
โ””โ”€โ”€ which v4.4.2
    โ””โ”€โ”€ bindgen v0.69.2
        [build-dependencies]
        โ””โ”€โ”€ aws-lc-sys v0.13.0 (/Users/justinsmith/repos/aws-lc-rs/aws-lc-sys)
            โ””โ”€โ”€ aws-lc-rs v1.6.1 (/Users/justinsmith/repos/aws-lc-rs/aws-lc-rs)

How to use this library with aws-rust-sdk for fips compliance?

Problem:

My application talks to AWS S3 using aws-rust-sdk. I need to make it FIPS compliant. How can I make it use aws-lc-rs and enforce FIPS mode?

Solution:

Any guidance and examples would be appreciated. I didn't find any info regarding this on both the aws-rust-sdk and aws-lc-rs repos.

Add support for signature verification using public key in X509 DER encoding format.

Problem:

In addition to Exposing accessors for private/public key on elliptic curve keys, we need signature verification to support public key in X509 DER encoding format. This is similar to the issue addressed by #256 for key agreement, but for signature verification.

Solution:

The proposed solution is to build on top of #259, but add support for signature verification using public key not only in Octet String format, but also X509 DER encoding format.

  • Does this change any public APIs? If yes, explain.

Adding functions:

  • signature::UnparsedPublicKey.new_with_x509()

  • Which algorithm(s) will this impact?
    RSA, ed25519 and EC

Requirements / Acceptance Criteria:

Signature verification works with public key provided in either Octet String format or X509 DER encoding format.

  • Related Issues: Link any relevant issues

  • #259

  • #256

  • Will the Usage Guide or other documentation need to be updated?

Yes

  • Testing: How will this change be tested? Call out new integration tests, functional tests, or particularly
    interesting/important unit tests.

Unit tests added to cover RSA, EC and ed25519 for signature verification using public key in X509 DER encoding format. More unit tests will be added if this proposed pull request looks reasonable enough to be potentially accepted.

Supports peer public key in both Octet String and X509 encoding for key agreement

Problem:

Currently only octet string encoding is supported for the input peer public key for key agreement. This makes it difficult to interoperate with other platforms such as Java where the public key is output in X509 encoding.

Solution:

Support the input of peer public key in both Octet String and X509 encoding for key agreement purposes.

  • Does this change any public APIs? If yes, explain.
    The proposed change should be 100% backward compatible while providing new API to specify the encoding of the peer public key for key agreement purposes.

  • Which algorithm(s) will this impact?
    The encoding specification of the input public key Key agreement for P-256, P-384, P-521 and X22519.

Requirements / Acceptance Criteria:

Providing a peer public key in X509 DER encoding for key agreement works.

  • Will the Usage Guide or other documentation need to be updated?
    Potentially can provide examples on how to specify different encoding scheme for the peer public key.

  • Testing: How will this change be tested? Call out new integration tests, functional tests, or particularly
    interesting/important unit tests.
    Add unit test for key agreement with the peer public key in X509 DER encoding for P-256, P-384, P-521 and X22519.

Out of scope:

Is there anything the solution will intentionally NOT address?

Currently the output bytes of a EC public key from aws-lc-rs is always in octet string encoding. It should also provide the API to output the public key in X509 DER encoding as an option. This is however out of scope for now with respect to this issue.

no_std support?

Hi there ๐Ÿ‘‹ Thanks for the great library :-)

Problem:

The rustls fork of webpki relies on ring for its cryptographic operations, as well as some DER parsing (mostly via ring helpers/re-exports of untrusted).

aws-lc-rs is a very tempting alternative to ring, especially with the amazing API compatibility you've provided. It truly is a near drop-in replacement. The main issue I can see with replacing ring with aws-lc-rs outright in webpki is that we have support for no_std builds via feature flags.

The aws-lc-rs ring compatibility docs note that there is not support for no_std in this crate, meaning if we want to replace ring with aws-lc-rs we would have to drop our no_std support. That would be unfortunate because one of the development priorities we have for the Rustls ecosystem is to support no_std throughout.

I'm filing this issue to find out if no_std support is something that's on your radar to support eventually (and to provide a use-case that would benefit from the work), of if it's a non-goal for the project.

Thanks!

Cross build for target x86_64-pc-windows-gnu failed

Problem:

Trying to cross build from Linux host with cross:

$ cargo new repro
$ cd repro
$ echo '[target.x86_64-pc-windows-gnu]
pre-build = [
    "apt-get update",
    "apt-get install --assume-yes nasm",
]' > Cross.toml
$ cross build --target "x86_64-pc-windows-gnu"

Relevant details

aws-lc-sys v0.15.0 (on crates.io).

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

  • CPU architecture: x86_64
  • CPU name: Intel Core i7
  • OS: macOS

Build log:

  • Build without "bindgen" in Cargo.toml
$ cross build --target "x86_64-pc-windows-gnu"
   Compiling libc v0.2.153
   Compiling once_cell v1.19.0
   Compiling fs_extra v1.3.0
   Compiling dunce v1.0.4
   Compiling paste v1.0.14
   Compiling aws-lc-rs v1.7.0
   Compiling untrusted v0.7.1
   Compiling mirai-annotations v1.12.0
   Compiling zeroize v1.7.0
   Compiling jobserver v0.1.31
   Compiling cc v1.0.95
   Compiling cmake v0.1.50
   Compiling aws-lc-sys v0.15.0
error: failed to run custom build command for `aws-lc-sys v0.15.0`

Caused by:
  process didn't exit successfully: `/target/debug/build/aws-lc-sys-ff13cb9381e767cd/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_RUST_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC

  --- stderr
  thread 'main' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/builder/main.rs:401: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
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  • Build with "bindgen" in Cargo.toml
   Compiling libc v0.2.153
   Compiling proc-macro2 v1.0.81
   Compiling unicode-ident v1.0.12
   Compiling glob v0.3.1
   Compiling rustix v0.38.34
   Compiling prettyplease v0.2.19
   Compiling linux-raw-sys v0.4.13
   Compiling bitflags v2.5.0
   Compiling regex-syntax v0.8.3
   Compiling cfg-if v1.0.0
   Compiling either v1.11.0
   Compiling minimal-lexical v0.2.1
   Compiling memchr v2.7.2
   Compiling libloading v0.8.3
   Compiling bindgen v0.69.4
   Compiling home v0.5.9
   Compiling itertools v0.12.1
   Compiling log v0.4.21
   Compiling rustc-hash v1.1.0
   Compiling clang-sys v1.7.0
   Compiling jobserver v0.1.31
   Compiling shlex v1.3.0
   Compiling nom v7.1.3
   Compiling lazy_static v1.4.0
   Compiling lazycell v1.3.0
   Compiling paste v1.0.14
   Compiling aws-lc-rs v1.7.0
   Compiling regex-automata v0.4.6
   Compiling cc v1.0.95
   Compiling cmake v0.1.50
   Compiling cexpr v0.6.0
   Compiling regex v1.10.4
   Compiling quote v1.0.36
   Compiling which v4.4.2
   Compiling syn v2.0.60
   Compiling aws-lc-sys v0.15.0
error: failed to run custom build command for `aws-lc-sys v0.15.0`

Caused by:
  process didn't exit successfully: `/target/debug/build/aws-lc-sys-c43836429621d40f/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_RUST_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES

  --- stderr
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:174:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:178:48: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:184:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:189:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/err.h:474:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/bio.h:351:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/digest.h:60:10: fatal error: 'stdbool.h' file not found
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:174:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:178:48: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:184:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/mem.h:189:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/err.h:474:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  clang diag: /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/bio.h:351:5: warning: '__format__' attribute argument not supported: ms_printf [-Wignored-attributes]
  thread 'main' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/builder/bindgen.rs:155:10:
  Unable to generate bindings.: ClangDiagnostic("/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/include/openssl/digest.h:60:10: fatal error: 'stdbool.h' file not found\n")
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Consolidate FFI bindings

aws-lc-sys exposes separate bindings for every supported target. These files are huge, totaling almost 8MiB today and growing to 14MiB after #369. They are also almost identical to eachother: e.g. diff -U3 linux_aarch64_crypto.rs linux_x86_64_crypto.rs reveals that the only difference is the representation of the va_list argument to OPENSSL_vasprintf.

Most Rust FFI bindings are able to support diverse platforms using a single in-tree binding file (perhaps generated by bindgen with allowlisted symbols), leaving platform-specific types to be supplied by std::os::raw and/or libc, or at worst a small hand-written helper module. Can aws-lc-sys do similar?

Android build fails

Problem:

Build for Android using cargo ndk fails.

This is the build output:

    Building armeabi-v7a (armv7-linux-androideabi)
   Compiling aws-lc-sys v0.16.0
The following warnings were emitted during compilation:

warning: [email protected]: Generating bindings - internal bindgen. Platform: armv7-linux-androideabi

error: failed to run custom build command for `aws-lc-sys v0.16.0`

Caused by:
  process didn't exit successfully: `/workspaces/.../debug/build/aws-lc-sys-1435ea6682d6bb76/build-script-main` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_PREFIX
  cargo:rerun-if-env-changed=AWS_LC_SYS_INTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_EXTERNAL_BINDGEN
  cargo:rerun-if-env-changed=AWS_LC_SYS_NO_ASM
  cargo:rerun-if-env-changed=AWS_LC_SYS_CMAKE_BUILDER
  cargo:rerun-if-env-changed=AWS_LC_SYS_STATIC
  cargo:warning=Generating bindings - internal bindgen. Platform: armv7-linux-androideabi
  cargo:rerun-if-env-changed=AWS_LC_SYS_INCLUDES

  --- stderr
  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
  thread 'main' panicked at /home/rs/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.16.0/builder/bindgen.rs:104:10:
  Unable to generate bindings.: ClangDiagnostic("/usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found\n")
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
note: If the build failed due to a missing target, you can run this command:
note: 
note:     rustup target install armv7-linux-androideabi

Relevant details

AWS-LC-SYS for Rust versions or commit: 0.16.0

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

  • CPU architecture: armv7-linux-androideabi or aarch64-linux-android
  • OS: Ubuntu 24.04

Build failed at target: aarch64-pc-windows-msvc

Problem:

My application is using tokio-rustls 0.26.0, and tokio-rustls relies on aws_lc_rs. I built my app on github action and it failed to build on aarch64-pc-windows-msvc. Can someone help me?

github action config

  build-aarch64-windows:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: stable
          target: aarch64-pc-windows-msvc

      - name: Install NASM for tokio-rustls(aws-lc-rs) on Windows
        uses: ilammy/setup-nasm@v1

      - name: Install ninja-build tool for tokio-rustls(aws-lc-rs) on Windows
        uses: seanmiddleditch/gha-setup-ninja@v4

      - name: Build aarch64-pc-windows-msvc
        working-directory: ./windSend-rs
        run: cargo build --target aarch64-pc-windows-msvc --verbose

Build log:

error: failed to run custom build command for `aws-lc-sys v0.13.3`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `D:\a\WindSend\WindSend\windSend-rs\target\debug\build\aws-lc-sys-9ef1db5a918cb67b\build-script-main` (exit code: 101)
  --- stdout
  cargo:rustc-cfg=use_bindgen_generated
  CMAKE_TOOLCHAIN_FILE_aarch64-pc-windows-msvc = None
  CMAKE_TOOLCHAIN_FILE_aarch64_pc_windows_msvc = None
  TARGET_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_aarch64-pc-windows-msvc = None
  CMAKE_GENERATOR_aarch64_pc_windows_msvc = None
  TARGET_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_aarch64-pc-windows-msvc = None
  CMAKE_PREFIX_PATH_aarch64_pc_windows_msvc = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_aarch64-pc-windows-msvc = None
  CMAKE_aarch64_pc_windows_msvc = None
  TARGET_CMAKE = None
  CMAKE = Some("cmake")
  running: "cmake" "C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.13.3" "-G" "Visual Studio 17 2022" "-Thost=x64" "-AARM64" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=debug" "-DBORINGSSL_PREFIX=aws_lc_0_13_3_" "-DBORINGSSL_PREFIX_HEADERS=C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.13.3\\generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_SYSTEM_NAME=Windows" "-DCMAKE_SYSTEM_PROCESSOR=ARM64" "-DCMAKE_INSTALL_PREFIX=D:\\a\\WindSend\\WindSend\\windSend-rs\\target\\aarch64-pc-windows-msvc\\debug\\build\\aws-lc-sys-f0fd55ebab3cd7b6\\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS_DEBUG= -nologo -MD -Brepro" "--no-warn-unused-cli"
  Not searching for unused variables given on the command line.
  -- Selecting Windows SDK version 10.0.22621.0 to target Windows .
  -- The C compiler identification is MSVC 19.38.33135.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/HostX64/arm64/cl.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- The ASM compiler identification is MSVC
  -- Found assembler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.38.33130/bin/HostX64/arm64/cl.exe
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - not found
  -- Found Threads: TRUE
  -- Configuring done (41.9s)
  -- Generating done (0.1s)
  -- Build files have been written to: D:/a/WindSend/WindSend/windSend-rs/target/aarch64-pc-windows-msvc/debug/build/aws-lc-sys-f0fd55ebab3cd7b6/out/build
  running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--parallel" "4"
  MSBuild version 17.9.8+b34f75857 for .NET Framework

    1>Checking Build System
    Building Custom Rule C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.3/aws-lc/CMakeLists.txt
    Building Custom Rule C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.3/aws-lc/crypto/CMakeLists.txt
    Building Custom Rule C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.3/aws-lc/crypto/fipsmodule/CMakeLists.txt
    bcm.c
    a_bitstr.c
    a_bool.c
    a_d2i_fp.c
    a_dup.c
    a_gentm.c
    a_i2d_fp.c
    a_int.c
    a_mbstr.c
    fips_shared_support.c
    cpucap.c
    a_object.c
    Generating Code...
    a_octet.c
    a_strex.c
    a_strnid.c
    a_time.c
    a_type.c
    a_utctm.c
    a_utf8.c
    asn1_lib.c
    asn1_par.c
    asn_pack.c
    f_int.c
    Generating Code...
    Compiling...
    f_string.c
    tasn_dec.c
    tasn_enc.c
    tasn_fre.c
    tasn_new.c
    tasn_typ.c
    tasn_utl.c
    posix_time.c
    base64.c
    bio.c
    bio_mem.c
    connect.c
    fd.c
    file.c
    hexdump.c
    pair.c
    printf.c
    socket.c
    fipsmodule.vcxproj -> D:\a\WindSend\WindSend\windSend-rs\target\aarch64-pc-windows-msvc\debug\build\aws-lc-sys-f0fd55ebab3cd7b6\out\build\aws-lc\crypto\fipsmodule\fipsmodule.dir\Debug\fipsmodule.lib
    socket_helper.c
    blake2.c
    Generating Code...
    Compiling...
    bn_asn1.c
    convert.c
    buf.c
    asn1_compat.c
    ber.c
    cbb.c
    cbs.c
    unicode.c
    chacha.c
    cipher_extra.c
    derive_key.c
    e_aesctrhmac.c
    e_aesgcmsiv.c
    e_chacha20poly1305.c
    e_aes_cbc_hmac_sha1.c
    e_aes_cbc_hmac_sha256.c
    e_des.c
    e_null.c
    e_rc2.c
    e_rc4.c
    Generating Code...
    Compiling...
    e_tls.c
    tls_cbc.c
    conf.c
    crypto.c
    curve25519.c
    curve25519_nohw.c
    curve25519_s2n_bignum_asm.c
    spake25519.c
    des.c
    params.c
    dh_asn1.c
    digest_extra.c
    dsa.c
    dsa_asn1.c
    ecdh_extra.c
    ecdsa_asn1.c
    ec_asn1.c
    ec_derive.c
    hash_to_curve.c
    err.c
    Generating Code...
    Compiling...
    err_data.c
    engine.c
    evp_asn1.c
    p_dsa_asn1.c
    p_ec_asn1.c
    p_ed25519.c
    p_ed25519_asn1.c
    p_hmac_asn1.c
    p_kem.c
    p_kem_asn1.c
    p_rsa_asn1.c
    p_x25519.c
    p_x25519_asn1.c
    p_methods.c
    print.c
    scrypt.c
    sign.c
    ex_data.c
    hpke.c
    hrss.c
    Generating Code...
    Compiling...
    kem.c
    kem_methods.c
    kyber512r3_ref.c
    kyber768r3_ref.c
    kyber1024r3_ref.c
    fips202.c
    kem_kyber.c
    lhash.c
    mem.c
    obj.c
    obj_xref.c
    ocsp_asn.c
    ocsp_client.c
    ocsp_extension.c
    ocsp_http.c
    ocsp_lib.c
    ocsp_print.c
    ocsp_server.c
    ocsp_verify.c
    pem_all.c
    Generating Code...
    Compiling...
    pem_info.c
    pem_lib.c
    pem_oth.c
    pem_pk8.c
    pem_pkey.c
    pem_x509.c
    pem_xaux.c
    pkcs7.c
    pkcs7_x509.c
    pkcs8.c
    pkcs8_x509.c
    p5_pbev2.c
    poly1305.c
    poly1305_arm.c
    poly1305_vec.c
    pool.c
    deterministic.c
    entropy_passive.c
    forkunsafe.c
    fuchsia.c
    Generating Code...
    Compiling...
    rand_extra.c
    pq_custom_randombytes.c
    trusty.c
    windows.c
    rc4.c
    refcount_c11.c
    refcount_lock.c
    refcount_win.c
    rsa_asn1.c
    rsassa_pss_asn1.c
    rsa_print.c
    stack.c
    siphash.c
    thread.c
    thread_none.c
    thread_pthread.c
    thread_win.c
    pmbtoken.c
    trust_token.c
    voprf.c
    Generating Code...
    Compiling...
    a_digest.c
    a_sign.c
    a_verify.c
    algorithm.c
    asn1_gen.c
    by_dir.c
    by_file.c
    i2d_pr.c
    name_print.c
    policy.c
    rsa_pss.c
    t_crl.c
    t_req.c
    t_x509.c
    t_x509a.c
    x509.c
    x509_att.c
    x509_cmp.c
    x509_d2.c
    x509_def.c
    Generating Code...
    Compiling...
    x509_ext.c
    x509_lu.c
    x509_obj.c
    x509_req.c
    x509_set.c
    x509_trs.c
    x509_txt.c
    x509_v3.c
    x509_vfy.c
    x509_vpm.c
    x509cset.c
    x509name.c
    x509rset.c
    x509spki.c
    x_algor.c
    x_all.c
    x_attrib.c
    x_crl.c
    x_exten.c
    x_info.c
    Generating Code...
    Compiling...
    x_name.c
    x_pkey.c
    x_pubkey.c
    x_req.c
    x_sig.c
    x_spki.c
    x_val.c
    x_x509.c
    x_x509a.c
    v3_akey.c
    v3_akeya.c
    v3_alt.c
    v3_bcons.c
    v3_bitst.c
    v3_conf.c
    v3_cpols.c
    v3_crld.c
    v3_enum.c
    v3_extku.c
    v3_genn.c
    Generating Code...
    Compiling...
    v3_ia5.c
    v3_info.c
    v3_int.c
    v3_lib.c
    v3_ncons.c
    v3_ocsp.c
    v3_pcons.c
    v3_pmaps.c
    v3_prn.c
    v3_purp.c
    v3_skey.c
    v3_utl.c
    base64_bio.c
    blowfish.c
    cast.c
    cast_tables.c
    cfb.c
    dh_decrepit.c
    evp_do_all.c
    ripemd.c
    Generating Code...
    Compiling...
    rsa_decrepit.c
    x509_decrepit.c
    Generating Code...
    crypto_objects.vcxproj -> D:\a\WindSend\WindSend\windSend-rs\target\aarch64-pc-windows-msvc\debug\build\aws-lc-sys-f0fd55ebab3cd7b6\out\build\aws-lc\crypto\crypto_objects.dir\Debug\crypto_objects.lib
    Building Custom Rule C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.3/aws-lc/crypto/CMakeLists.txt
  LINK : fatal error LNK1181: cannot open input file 'D:\a\WindSend\WindSend\windSend-rs\target\aarch64-pc-windows-msvc\debug\build\aws-lc-sys-f0fd55ebab3cd7b6\out\build\aws-lc\crypto\crypto_objects.dir\Debug\chacha-armv8.obj' [D:\a\WindSend\WindSend\windSend-rs\target\aarch64-pc-windows-msvc\debug\build\aws-lc-sys-f0fd55ebab3cd7b6\out\build\aws-lc\crypto\crypto.vcxproj]

  --- stderr
  CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  CMake Deprecation Warning at aws-lc/CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.

    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.


  Copying platform assembly files from C:/Users/runneradmin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.13.3/aws-lc/generated-src/win-aarch64/crypto/ to D:/a/WindSend/WindSend/windSend-rs/target/aarch64-pc-windows-msvc/debug/build/aws-lc-sys-f0fd55ebab3cd7b6/out/build/aws-lc/crypto
  thread 'main' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.50\src\lib.rs:1098:5:

  command did not execute successfully, got: exit code: 1

  build script failed, must exit now
  stack backtrace:
     0: std::panicking::begin_panic_handler
               at /rustc/aedd173a2c086e558c2b66d3743b344f[977](https://github.com/doraemonkeys/WindSend/actions/runs/8450765895/job/23147643919#step:4:978)621a7/library\std\src\panicking.rs:647
     1: core::panicking::panic_fmt
               at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library\core\src\panicking.rs:72
     2: cmake::find_exe::{{closure}}
     3: <cmake::Version as core::default::Default>::default
     4: cmake::Config::build
     5: build_script_main::cmake_builder::CmakeBuilder::prepare_cmake_build::{{closure}}
     6: <build_script_main::cmake_builder::CmakeBuilder as build_script_main::Builder>::build
     7: build_script_main::target
     8: core::ops::function::FnOnce::call_once
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Error: Process completed with exit code 1.

Failed to build `aws-lc-rs` for FreeBSD x64 due to `rustc` error E0425

@justsmth thank you so much for your investigation and hard work so far! I'll see you again very soon in other follow-up issues ๐Ÿ˜ถ
#453 (comment)

Here we go ๐Ÿคฆโ€โ™€๏ธ

Problem

After merging rust-lang/rustup#3898, Rustup's FreeBSD CI has started failing.

rust-lang/rustup#3979 tries to set up the necessary dependencies for the build, namely cmake-core and llvm-devel-lite (for libclang.so). Since it's internal bindgen by default, bindgen-cli doesn't seem to be required.

But still, Compiling aws-lc-sys v0.20.1 seems to have failed with the following log:

  error[E0425]: cannot find function, tuple struct or tuple variant `ERR_GET_LIB_RUST` in this scope
    --> /home/runner/work/rustup/rustup/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.1/src/lib.rs:74:14
     |
  74 |     unsafe { ERR_GET_LIB_RUST(packed_error) }
     |              ^^^^^^^^^^^^^^^^ not found in this scope
  error[E0425]: cannot find function, tuple struct or tuple variant `ERR_GET_REASON_RUST` in this scope
    --> /home/runner/work/rustup/rustup/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.1/src/lib.rs:80:14
     |
  80 |     unsafe { ERR_GET_REASON_RUST(packed_error) }
     |              ^^^^^^^^^^^^^^^^^^^ not found in this scope
  error[E0425]: cannot find function, tuple struct or tuple variant `ERR_GET_FUNC_RUST` in this scope
    --> /home/runner/work/rustup/rustup/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.1/src/lib.rs:86:14
     |
  86 |     unsafe { ERR_GET_FUNC_RUST(packed_error) }
     |              ^^^^^^^^^^^^^^^^^ not found in this scope
  error[E0425]: cannot find function, tuple struct or tuple variant `BIO_ctrl` in this scope
    --> /home/runner/work/rustup/rustup/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.1/src/lib.rs:91:14
     |
  91 |     unsafe { BIO_ctrl(b, BIO_CTRL_INFO, 0, pp.cast::<c_void>()) }
     |              ^^^^^^^^ not found in this scope
  error[E0425]: cannot find function, tuple struct or tuple variant `CRYPTO_library_init` in this scope
    --> /home/runner/work/rustup/rustup/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.20.1/src/lib.rs:95:14
     |
  95 |     unsafe { CRYPTO_library_init() }
     |              ^^^^^^^^^^^^^^^^^^^ not found in this scope
  For more information about this error, try `rustc --explain E0425`.
  The following warnings were emitted during compilation:
  warning: aws-lc-sys@0.20.1: CMAKE environment variable set: cmake
  warning: aws-lc-sys@0.20.1: Generating bindings - internal bindgen. Platform: x86_64-unknown-freebsd
  error: could not compile `aws-lc-sys` (lib) due to 5 previous errors

https://github.com/rust-lang/rustup/actions/runs/10192459718/job/28195406529?pr=3979

Relevant details

FWIW, we use the following action for our FreeBSD tests:

- uses: vmactions/freebsd-vm@v1
  with:
    release: 13.2
    usesh: true
    copyback: false
    prepare: |
      pkg install -y git gmake bash sudo cmake-core llvm-devel-lite

https://github.com/rust-lang/rustup/blob/8fdc61316891cdb72acf406b2ac929227ceb0068/ci/actions-templates/freebsd-builds-template.yaml

Add `-Z minimal-versions` CI integration test

Per @ctz comment on the recent fs_extra edition for our sys-testing crate:

This should be fs_extra = "1.3" because, for example, CopyOptions::skip_exist [does not exist in version 1](https://docs.rs> /fs_extra/1.0.0/fs_extra/dir/struct.CopyOptions.html).
Ideally the aws-lc-rs would have a -Z minimal-versions job to validate these versions do select usable versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.