Closed zonyitoo closed 1 month ago
It looks like the key issue is:
/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
Why was it not found in this build environment? Shouldn't stdbool.h
always be available for any C compilers?
After installing clang
by apt-get install clang
in the container, build was able to continue, but still failed with the following messages:
Compiling proc-macro2 v1.0.81
Compiling rustix v0.38.34
Compiling prettyplease v0.2.19
Compiling clang-sys v1.7.0
Compiling bindgen v0.69.4
Compiling quote v1.0.36
Compiling syn v2.0.60
Compiling which v4.4.2
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
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-6eb105538bbd3bf5/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0" "-DBUILD_SHARED_LIBS=0" "-DCMAKE_BUILD_TYPE=debug" "-DBORINGSSL_PREFIX=aws_lc_0_15_0_" "-DBORINGSSL_PREFIX_HEADERS=/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=/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/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-6eb105538bbd3bf5/out/build
running: cd "/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build" && MAKEFLAGS="-j --jobserver-fds=7,8 --jobserver-auth=7,8" "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
[ 2%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-xts-avx512.asm.obj
[ 2%] 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/ghash-ssse3-x86_64.asm.obj
[ 2%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.asm.obj
[ 3%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.asm.obj
[ 3%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.asm.obj
[ 3%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.asm.obj
[ 4%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-avx512.asm.obj
[ 4%] Building ASM_NASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.asm.obj
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:132: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-xts-avx512.asm.obj' failed
[ 4%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bitstr.c.obj
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:138: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.asm.obj' failed
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:144: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86_64.asm.obj' failed
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:126: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.asm.obj' failed
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:150: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.asm.obj' failed
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
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:156: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.asm.obj' failed
aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:162: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.asm.obj' failed
[ 5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_bool.c.obj
[ 5%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_d2i_fp.c.obj
[ 6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_gentm.c.obj
[ 6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_dup.c.obj
[ 6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_i2d_fp.c.obj
[ 6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_int.c.obj
[ 6%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_object.c.obj
[ 7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.obj
[ 7%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_strex.c.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_strnid.c.obj
aws-lc/crypto/CMakeFiles/crypto_objects.dir/build.make:181: recipe for target 'aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.obj' failed
[ 9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_time.c.obj
[ 9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_utctm.c.obj
[ 9%] Building C object aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_type.c.obj
CMakeFiles/Makefile2:203: recipe for target 'aws-lc/crypto/CMakeFiles/crypto_objects.dir/all' failed
CMakeFiles/Makefile2:257: recipe for target 'aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all' failed
Makefile:135: recipe for target 'all' failed
--- stderr
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]
Copying platform assembly files from /cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/generated-src/win-x86_64/crypto/ to /target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/aesni-xts-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-xts-avx512.asm.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/aesni-x86_64.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.asm.obj] Error 1
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/ghash-ssse3-x86_64.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86_64.asm.obj] Error 1
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/aesni-gcm-x86_64.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-x86_64.asm.obj] Error 1
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/ghash-x86_64.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.asm.obj] Error 1
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/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
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/md5-x86_64.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.asm.obj] Error 1
/target/x86_64-pc-windows-gnu/debug/build/aws-lc-sys-6eb105538bbd3bf5/out/build/aws-lc/crypto/fipsmodule/p256-x86_64-asm.asm:10: fatal: unable to open include file `openssl/boringssl_prefix_symbols_nasm.inc'
make[2]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.asm.obj] Error 1
/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/asn1/a_mbstr.c: In function 'aws_lc_0_15_0_ASN1_mbstring_ncopy':
/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/asn1/a_mbstr.c:168:37: error: unknown conversion type character 'z' in format [-Werror=format=]
ERR_add_error_dataf("maxsize=%zu", (size_t)maxsize);
^
/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/asn1/a_mbstr.c:168:27: error: too many arguments for format [-Werror=format-extra-args]
ERR_add_error_dataf("maxsize=%zu", (size_t)maxsize);
^~~~~~~~~~~~~
/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/asn1/a_mbstr.c:175:35: error: unknown conversion type character 'z' in format [-Werror=format=]
ERR_add_error_dataf("minsize=%zu", (size_t)minsize);
^
/cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.15.0/aws-lc/crypto/asn1/a_mbstr.c:175:25: error: too many arguments for format [-Werror=format-extra-args]
ERR_add_error_dataf("minsize=%zu", (size_t)minsize);
^~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [aws-lc/crypto/CMakeFiles/crypto_objects.dir/asn1/a_mbstr.c.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [aws-lc/crypto/CMakeFiles/crypto_objects.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
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
Thanks for reporting this build failure. I am able to reproduce it locally.
I'm working on diagnosing it now.
This appears to be related to this issue: https://stackoverflow.com/questions/44382862/how-to-printf-a-size-t-without-warning-in-mingw-w64-gcc-7-1
As of our v1.7.1 release, the cross build for x86_64-pc-windows-gnu
should succeed. Although, I'm still investigating a runtime linking error that arises when attempting to run our tests for the x86_64-pc-windows-gnu
platform via cross-rs.
I fixed the runtime issue by using the latest version of Wine (9.0) into the container: https://github.com/aws/aws-lc-rs/actions/runs/8971663108/job/24637916198. See PR: #414.
Please let us know about any other build issues you find. Thanks!
Problem:
Trying to cross build from Linux host with cross:
Relevant details
aws-lc-sys v0.15.0 (on crates.io).
System information: for linux, below info can be collected by running
uname -srvmp
Build log:
"bindgen"
inCargo.toml
"bindgen"
inCargo.toml