Git Product home page Git Product logo

aws / aws-lc Goto Github PK

View Code? Open in Web Editor NEW
245.0 20.0 96.0 288.08 MB

AWS-LC is a general-purpose cryptographic library maintained by the AWS Cryptography team for AWS and their customers. It іs based on code from the Google BoringSSL project and the OpenSSL project.

License: Other

CMake 0.15% Shell 0.23% Go 1.93% Python 0.13% Dockerfile 0.07% PowerShell 0.01% Batchfile 0.01% C++ 69.33% C 9.11% Perl 3.03% Assembly 15.99% Raku 0.01% CSS 0.01% Makefile 0.01% Rust 0.01%

aws-lc's Introduction

AWS libcrypto (AWS-LC)

AWS-LC is a general-purpose cryptographic library maintained by the AWS Cryptography team for AWS and their customers. It іs based on code from the Google BoringSSL project and the OpenSSL project.

AWS-LC contains portable C implementations of algorithms needed for TLS and common applications. For performance critical algorithms, optimized assembly versions are included for x86 and ARM.

Quickstart for Amazon Linux 2

AWS-LC’s libcrypto is a C library and needs a C compiler. AWS-LC's libssl is a C++ library and needs a C++ compiler.

Fork AWS-LC on GitHub and run the following commands to build AWS-LC with optimizations and debug info, run all tests, and install it:

sudo yum install cmake3 ninja-build clang perl golang
git clone https://github.com/${YOUR_GITHUB_ACCOUNT_NAME}/aws-lc.git
mkdir aws-lc-build && cd aws-lc-build
cmake3 -GNinja \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DCMAKE_INSTALL_PREFIX=../aws-lc-install \
    ../aws-lc
ninja-build run_tests && ninja-build install
cd ../aws-lc-install/
ls *

See Building.md for more information about required dependencies and build options. If you’re interested in getting involved open an issue to discuss your plan. Contributing.md has info for how to specifically make the change and get it reviewed by AWS-LC maintainers. If you just want to use AWS-LC see our existing documentation in the public header files, if you’re moving your application from OpenSSL see Porting_to_AWS-LC.md for more information.

Why AWS-LC?

AWS-LC's goal is to maintain a secure libcrypto that is compatible with software and applications used at AWS. AWS-LC also serves as the new home for the AWS Cryptography team to publish open source contributions and enhancements that are submitted to other libcrypto projects.

AWS-LC features

API Compatibility

AWS-LC is compatible with the majority of OpenSSL’s APIs to make it easy to use with existing applications. We’re open to discussing adding missing functionality and understanding your use case in an issue.

Algorithm optimization support

A portable C implementation of all algorithms is included and optimized assembly implementations of select algorithms is included for some x86 and Arm CPUs. We use AWS Graviton processors to test ARMv8 optimizations and Intel CPUs to test x86 and x86-64 optimizations.

The Intel Software Development Emulator is used to run tests on many different x86 processors.

If you use another CPU and would like to make sure we test it or discuss adding an assembly optimized algorithm implementation, please open an issue to discuss adding it to our CI.

Platform Support

AWS-LC correctness is tested on a variety of platforms (i.e., OS/CPU combinations).
The following is an overview of the platforms we actively support or are known to be of interest to our community.

If you use a platform not listed below and would like to request it be added to our CI, please open an issue for discussion. Regardless of our support level for a particular platform, we will gladly consider contributions that improve or extend our support.

Supported Platforms

The following platforms are actively tested in our CI pipeline. A few of these platforms are tested across multiple compilers or compiler versions. For each pull request, the proposed change is validated to confirm that it successfully builds and tests pass for these platform. A more complete description of our test setup can be found in the CI README.

OS CPU
Linux x86
Linux x86-64
Linux aarch64
Windows x86-64
macOS x86-64
macOS aarch64
Android aarch64
Linux ppc
Linux ppc64
Linux ppc64le

Other platforms

The platforms listed below are of interest to us or to our community. However, problems reported against them might not be prioritized for immediate action by our team. We welcome contributions that improve the experience for consumers on these platforms.

OS CPU
Android arm32
iOS aarch64
Linux arm32
Linux loongarch64
Linux risc-v64
Linux s390x
Windows aarch64
OpenBSD x86-64
FreeBSD x86-64

AWS-LC safety mechanisms

Automated testing

Every change is tested with our CI that includes positive and negative unit tests, fuzz tests, Sanitizers (Address, Memory, Control flow integrity, Thread, and Undefined behavior), Valgrind, and Formal Verification.

Formal Verification

Portions of AWS-LC have been formally verified in AWS-LC Formal Verification, the checks are run in AWS-LC’s CI on every change. The algorithms that have been verified on certain platforms with caveats include:

  • SHA-2
  • HMAC
  • AES-KWP
  • ECDH & ECDSA with curve P-384
  • HKDF

Have a Question?

We use GitHub Issues for managing feature requests, bug reports, or questions about AWS-LC API usage.

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

Security issue notifications

If you discover a potential security issue in AWS-LC, 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, or use AWS-LC as part of a large multi-user service, you may be eligible for pre-notification of future AWS-LC releases. Please contact [email protected].

aws-lc's People

Contributors

achernya avatar agl avatar andrew-kaufman avatar andrewhop avatar aqjune-aws avatar billbo-yang avatar briansmith avatar bryce-shang avatar codebytere avatar darylmartin100 avatar davidben avatar dkostic avatar dmcardle avatar dvorak42 avatar ghedo avatar haavardmolland avatar jargh avatar justsmth avatar kreichgauer avatar nebeid avatar nharper avatar nopsledder avatar piotrsikora avatar prbprbprb avatar samuel40791765 avatar shishkander avatar skmcgrail avatar taffer avatar torben-hansen avatar willchilds-klein 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-lc's Issues

Add soname

Problem:

Would like to package this for Fedora. For shared libraries, it is helpful to have a soname. Would a pull request to add a soname be required.

Solution:

Add soname in CMake configuration for shared library builds

  • Does this change any public APIs?* If yes, explain.
    Does not change any APIs, though when using shared library, linking to an explicit version will be made easier.

  • Which algorithm(s) will this impact?
    Does not change any algorithms.

Requirements / Acceptance Criteria:

What must a solution address in order to solve the problem? How do we know the solution is complete?
Shared libraries should have sonames, should generate .so, .so.x and .so.x.x.x - may want to use the sonames used for libssl and libcrypto used by the associated boringssl library if expect to keep compatibility, otherwise use sonames based on aws-lc releases

  • RFC links: No relevant RFCs
  • Related Issues: Link any relevant issues
  • Will the Usage Guide or other documentation need to be updated? No changes needed
  • Testing: No changes to tests needed.
    • Will this change trigger AWS LibCrypto Formal Verification changes? No changes needed
    • Should this change be fuzz tested? No changes needed

Out of scope:

Is there anything the solution will intentionally NOT address?

redundant redeclaration of X509_OBJECT_new and X509_OBJECT_free

Problem:

X509_OBJECT_new and ‘X509_OBJECT_free are declared twice which causes compile error

aws-lc/include/openssl/x509.h

Lines 3282 to 3293 in c25dc2a

// X509_OBJECT_new allocates an |X509_OBJECT| on the heap.
OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_new(void);
// X509_OBJECT_free frees an |X509_OBJECT| from the heap.
OPENSSL_EXPORT void X509_OBJECT_free(X509_OBJECT *a);
// X509_OBJECT_new returns a newly-allocated, empty |X509_OBJECT| or NULL on
// error.
OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_new(void);
// X509_OBJECT_free releases memory associated with |obj|.
OPENSSL_EXPORT void X509_OBJECT_free(X509_OBJECT *obj);

Relevant details

AWS-LC commit: v1.25.0

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

  • CPU architecture: x86-64
  • CPU name: N/A
  • OS: Ubuntu 22.04

Build log:

In file included from /home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/pem.h:67,
                 from /home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/ssl.h:149,
                 from /home/runner/work/ngtcp2/ngtcp2/ngtcp2-1.5.0-DEV/crypto/boringssl/../../crypto/includes/ngtcp2/ngtcp2_crypto_boringssl.h:30,
                 from /home/runner/work/ngtcp2/ngtcp2/ngtcp2-1.5.0-DEV/crypto/boringssl/boringssl.c:33:
/home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/x509.h:3080:29: error: redundant redeclaration of ‘X509_OBJECT_new’ [-Werror=redundant-decls]
 3080 | OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_new(void);
      |                             ^~~~~~~~~~~~~~~
/home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/x509.h:3073:29: note: previous declaration of ‘X509_OBJECT_new’ with type ‘X509_OBJECT *(void)’ {aka ‘struct x509_object_st *(void)’}
 3073 | OPENSSL_EXPORT X[50](https://github.com/ngtcp2/ngtcp2/actions/runs/8867065534/job/24345229180#step:26:51)9_OBJECT *X509_OBJECT_new(void);
      |                             ^~~~~~~~~~~~~~~
/home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/x509.h:3083:21: error: redundant redeclaration of ‘X509_OBJECT_free’ [-Werror=redundant-decls]
 3083 | OPENSSL_EXPORT void X509_OBJECT_free(X509_OBJECT *obj);
      |                     ^~~~~~~~~~~~~~~~
/home/runner/work/ngtcp2/ngtcp2/aws-lc/include/openssl/x509.h:3076:21: note: previous declaration of ‘X509_OBJECT_free’ with type ‘void(X509_OBJECT *)’ {aka ‘void(struct x509_object_st *)’}
 3076 | OPENSSL_EXPORT void X509_OBJECT_free(X509_OBJECT *a);
      |                     ^~~~~~~~~~~~~~~~

make fail with warnings

Problem:

pi@raspberrypi:~/aws-lc/build $ make
[ 0%] Built target boringssl_gtest
[ 1%] Built target crypto_test_data
[ 1%] Built target global_target
[ 2%] Built target test_support_lib
[ 7%] Built target fipsmodule
[ 62%] Built target crypto
[ 63%] Built target urandom_test
[ 63%] Built target boringssl_gtest_main
[ 63%] Building CXX object crypto/CMakeFiles/crypto_test.dir/cipher_extra/aead_test.cc.o
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc: In member function ‘virtual void PerAEADTest_UnalignedInput_Test::TestBody()’:
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:622:54: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t key[EVP_AEAD_MAX_KEY_LENGTH + 1];
^
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:623:58: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t nonce[EVP_AEAD_MAX_NONCE_LENGTH + 1];
^
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:624:39: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t plaintext[32 + 1];
^
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:625:32: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t ad[32 + 1];
^
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:644:75: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t ciphertext[sizeof(plaintext) + EVP_AEAD_MAX_OVERHEAD];
^
/home/pi/aws-lc/crypto/cipher_extra/aead_test.cc:652:45: error: requested alignment 16 is larger than 8 [-Werror=attributes]
alignas(16) uint8_t out[sizeof(ciphertext)];
^
cc1plus: all warnings being treated as errors
make[2]: *** [crypto/CMakeFiles/crypto_test.dir/build.make:167: crypto/CMakeFiles/crypto_test.dir/cipher_extra/aead_test.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:456: crypto/CMakeFiles/crypto_test.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Relevant details

CPU architecture: Linux raspberrypi 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
CPU name: (Xeon Platinum 8000, AMD EPYC 7000...)
OS: raspberry pi light
Compiler: cmake version 3.16.3
AWS-LC commit: 7095a4b

Licensing

Problem:

License file refers to licenses for Go and Chromium as Go License and Chromium License. These are BSD-3-Clause licenses:

Solution:

Consider also referring to them as BSD-3-Clause licenses to enable easy recognition of them.

  • Does this change any public APIs? No
  • Which algorithm(s) will this impact? None

Requirements / Acceptance Criteria:

  • RFC links: None
  • Related Issues: None
  • Will the Usage Guide or other documentation need to be updated? No
  • Testing: No testing changes
    • Will this change trigger AWS LibCrypto Formal Verification changes? No verification changes
    • Should this change be fuzz tested? No

Out of scope:

Error during Cross-Compiling aws-iot-device-sdk-python-v2 with make

Problem:

I am trying to cross-compile aws-iot-device-sdk-python-v2 which requires aws-crt-python. I am working on building a custom Linux distribution using Buildroot for aarch64. But during make I am getting below errors from asm

Build log:

>>> python-awscrt 0.16.10 Building
(cd [...]output/build/python-awscrt-0.16.10//; _PYTHON_HOST_PLATFORM="linux-aarch64" _PYTHON_PROJECT_BASE="[...]output/build/python3-3.10.8" _PYTHON_SYSCONFIGDATA_NAME="`{ [ -e [...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10//_sysconfigdata__linux_*.py ] && basename [...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10//_sysconfigdata__linux_*.py .py; } || true`" PATH="[...]output/host/bin:[...]output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" PATH="[...]output/host/bin:[...]output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" AR="[...]output/host/bin/aarch64-linux-gcc-ar" AS="[...]output/host/bin/aarch64-linux-as" LD="[...]output/host/bin/aarch64-linux-ld" NM="[...]output/host/bin/aarch64-linux-gcc-nm" CC="[...]output/host/bin/aarch64-linux-gcc" GCC="[...]output/host/bin/aarch64-linux-gcc" CPP="[...]output/host/bin/aarch64-linux-cpp" CXX="[...]output/host/bin/aarch64-linux-g++" FC="[...]output/host/bin/aarch64-linux-gfortran" F77="[...]output/host/bin/aarch64-linux-gfortran" RANLIB="[...]output/host/bin/aarch64-linux-gcc-ranlib" READELF="[...]output/host/bin/aarch64-linux-readelf" STRIP="[...]output/host/bin/aarch64-linux-strip" OBJCOPY="[...]output/host/bin/aarch64-linux-objcopy" OBJDUMP="[...]output/host/bin/aarch64-linux-objdump" AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as" CC_FOR_BUILD="/usr/bin/gcc" GCC_FOR_BUILD="/usr/bin/gcc" CXX_FOR_BUILD="/usr/bin/g++" LD_FOR_BUILD="/usr/bin/ld" CPPFLAGS_FOR_BUILD="-I[...]output/host/include" CFLAGS_FOR_BUILD="-O2 -I[...]output/host/include" CXXFLAGS_FOR_BUILD="-O2 -I[...]output/host/include" LDFLAGS_FOR_BUILD="-L[...]output/host/lib -Wl,-rpath,[...]output/host/lib" FCFLAGS_FOR_BUILD="" DEFAULT_ASSEMBLER="[...]output/host/bin/aarch64-linux-as" DEFAULT_LINKER="[...]output/host/bin/aarch64-linux-ld" CPPFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g0 -D_FORTIFY_SOURCE=1" CXXFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g0 -D_FORTIFY_SOURCE=1" LDFLAGS="" FCFLAGS=" -Os -g0" FFLAGS=" -Os -g0" PKG_CONFIG="[...]output/host/bin/pkg-config" STAGING_DIR="[...]output/host/aarch64-buildroot-linux-gnu/sysroot" INTLTOOL_PERL=/usr/bin/perl PYTHONPATH="[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/" PYTHONNOUSERSITE=1 SETUPTOOLS_USE_DISTUTILS=stdlib _python_sysroot=[...]output/host/aarch64-buildroot-linux-gnu/sysroot _python_prefix=/usr _python_exec_prefix=/usr  [...]output/host/bin/python setup.py build  )
[...]output/build/python-awscrt-0.16.10/setup.py:5: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  import distutils.ccompiler
running build
running build_py
running build_ext
> /usr/bin/cmake -H[...]output/build/python-awscrt-0.16.10/crt -Bbuild/temp.linux-aarch64-3.10/deps -DCMAKE_INSTALL_PREFIX=build/temp.linux-aarch64-3.10/deps/install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=arm
-- Checking for module 'libunwind-generic'
--   Package 'libunwind-generic', required by 'virtual:world', not found
libunwind not found. Disabling unwind tests.
-- 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 '-O2 -g -DNDEBUG'.
CMake Warning at aws-lc/CMakeLists.txt:240 (message):
  Currently, GCC 10.3.0 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 the GCC 10.3.0 compiler.


-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
Copying platform assembly files from [...]output/build/python-awscrt-0.16.10/crt/aws-lc/generated-src/linux-x86_64/crypto/ to [...]output/build/python-awscrt-0.16.10/build/temp.linux-aarch64-3.10/deps/aws-lc/crypto
-- Detected CMAKE_SYSTEM_PROCESSOR as x86_64
-- Detected 64-Bit system
-- madvise() support detected
-- clone() support detected
-- S2N found target: crypto
-- CMAKE_AR found: /usr/bin/ar
-- CMake 3.16.3
-- Packaging currently only supported on Fedora.
-- Using libcrypto from AWS-LC
-- Configuring done
-- Generating done
-- Build files have been written to: [...]output/build/python-awscrt-0.16.10/build/temp.linux-aarch64-3.10/deps
> /usr/bin/cmake --build build/temp.linux-aarch64-3.10/deps --config RelWithDebInfo --target install
[  0%] Built target global_target
[  8%] Built target aws-c-common
[  8%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_add_p384.S.S.o
[  8%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_sub_p384.S.S.o
[  8%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_tomont_p384.S.S.o
[  9%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_deamont_p384.S.S.o
[  9%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_neg_p384.S.S.o
[  9%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montsqr_p384.S.S.o
[  9%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_nonzero_6.S.S.o
[ 10%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_littleendian_6.S.S.o
[ 10%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montmul_p384.S.S.o
[ 10%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montsqr_p384_alt.S.S.o
[ 10%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montmul_p384_alt.S.S.o
[ 10%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_add_p521.S.S.o
[ 11%] Built target aws-c-compression
[ 12%] Built target aws-checksums
[ 13%] Built target aws-c-sdkutils
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S: Assembler messages:
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S:67: Error: unknown mnemonic `movq' -- `movq (%rsi),%rax'
.
.
.
make[4]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:337: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_littleendian_6.S.S.o] Error 1
make[4]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:312: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p384/bignum_montmul_p384.S.S.o] Error 1
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S: Assembler messages:
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:66: Error: unknown mnemonic `pushq' -- `pushq %rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:67: Error: unknown mnemonic `pushq' -- `pushq %r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:72: Error: unknown mnemonic `stc' -- `stc'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:73: Error: unknown mnemonic `movq' -- `movq (%rsi),%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:74: Error: unknown mnemonic `adcq' -- `adcq (%rdx),%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:75: Error: unknown mnemonic `movq' -- `movq 8(%rsi),%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:76: Error: unknown mnemonic `adcq' -- `adcq 8(%rdx),%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:77: Error: unknown mnemonic `movq' -- `movq 16(%rsi),%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:78: Error: unknown mnemonic `adcq' -- `adcq 16(%rdx),%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:79: Error: unknown mnemonic `movq' -- `movq 24(%rsi),%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:80: Error: unknown mnemonic `adcq' -- `adcq 24(%rdx),%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:81: Error: unknown mnemonic `movq' -- `movq 32(%rsi),%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:82: Error: unknown mnemonic `adcq' -- `adcq 32(%rdx),%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:83: Error: unknown mnemonic `movq' -- `movq 40(%rsi),%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:84: Error: unknown mnemonic `adcq' -- `adcq 40(%rdx),%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:85: Error: unknown mnemonic `movq' -- `movq 48(%rsi),%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:86: Error: unknown mnemonic `adcq' -- `adcq 48(%rdx),%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:87: Error: unknown mnemonic `movq' -- `movq 56(%rsi),%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:88: Error: unknown mnemonic `adcq' -- `adcq 56(%rdx),%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:89: Error: unknown mnemonic `movq' -- `movq 64(%rsi),%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:90: Error: unknown mnemonic `adcq' -- `adcq 64(%rdx),%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:95: Error: unknown mnemonic `movq' -- `movq $512,%rdx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:96: Error: unknown mnemonic `andq' -- `andq %rsi,%rdx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:103: Error: unknown mnemonic `cmpq' -- `cmpq $512,%rdx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:105: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:106: Error: unknown mnemonic `movq' -- `movq %rax,(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:107: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:108: Error: unknown mnemonic `movq' -- `movq %rcx,8(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:109: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:110: Error: unknown mnemonic `movq' -- `movq %r8,16(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:111: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:112: Error: unknown mnemonic `movq' -- `movq %r9,24(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:113: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:114: Error: unknown mnemonic `movq' -- `movq %r10,32(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:115: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:116: Error: unknown mnemonic `movq' -- `movq %r11,40(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:117: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:118: Error: unknown mnemonic `movq' -- `movq %r12,48(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:119: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:120: Error: unknown mnemonic `movq' -- `movq %rbx,56(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:121: Error: unknown mnemonic `sbbq' -- `sbbq %rdx,%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:122: Error: unknown mnemonic `movq' -- `movq %rsi,64(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:126: Error: unknown mnemonic `popq' -- `popq %r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S:127: Error: unknown mnemonic `popq' -- `popq %rbx'
[ 13%] Building ASM object aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_sub_p521.S.S.o
make[4]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:342: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_add_p521.S.S.o] Error 1
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S: Assembler messages:
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:65: Error: unknown mnemonic `pushq' -- `pushq %rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:66: Error: unknown mnemonic `pushq' -- `pushq %r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:70: Error: unknown mnemonic `movq' -- `movq (%rsi),%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:71: Error: unknown mnemonic `subq' -- `subq (%rdx),%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:72: Error: unknown mnemonic `movq' -- `movq 8(%rsi),%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:73: Error: unknown mnemonic `sbbq' -- `sbbq 8(%rdx),%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:74: Error: unknown mnemonic `movq' -- `movq 16(%rsi),%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:75: Error: unknown mnemonic `sbbq' -- `sbbq 16(%rdx),%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:76: Error: unknown mnemonic `movq' -- `movq 24(%rsi),%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:77: Error: unknown mnemonic `sbbq' -- `sbbq 24(%rdx),%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:78: Error: unknown mnemonic `movq' -- `movq 32(%rsi),%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:79: Error: unknown mnemonic `sbbq' -- `sbbq 32(%rdx),%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:80: Error: unknown mnemonic `movq' -- `movq 40(%rsi),%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:81: Error: unknown mnemonic `sbbq' -- `sbbq 40(%rdx),%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:82: Error: unknown mnemonic `movq' -- `movq 48(%rsi),%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:83: Error: unknown mnemonic `sbbq' -- `sbbq 48(%rdx),%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:84: Error: unknown mnemonic `movq' -- `movq 56(%rsi),%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:85: Error: unknown mnemonic `sbbq' -- `sbbq 56(%rdx),%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:86: Error: unknown mnemonic `movq' -- `movq 64(%rsi),%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:87: Error: unknown mnemonic `sbbq' -- `sbbq 64(%rdx),%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:94: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:95: Error: unknown mnemonic `movq' -- `movq %rax,(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:96: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rcx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:97: Error: unknown mnemonic `movq' -- `movq %rcx,8(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:98: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:99: Error: unknown mnemonic `movq' -- `movq %r8,16(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:100: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:101: Error: unknown mnemonic `movq' -- `movq %r9,24(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:102: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:103: Error: unknown mnemonic `movq' -- `movq %r10,32(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:104: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:105: Error: unknown mnemonic `movq' -- `movq %r11,40(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:106: Error: unknown mnemonic `sbbq' -- `sbbq $0,%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:107: Error: unknown mnemonic `movq' -- `movq %r12,48(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:108: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rbx'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:109: Error: unknown mnemonic `movq' -- `movq %rbx,56(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:110: Error: unknown mnemonic `sbbq' -- `sbbq $0,%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:111: Error: unknown mnemonic `andq' -- `andq $0x1FF,%rsi'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:112: Error: unknown mnemonic `movq' -- `movq %rsi,64(%rdi)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:116: Error: unknown mnemonic `popq' -- `popq %r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S:117: Error: unknown mnemonic `popq' -- `popq %rbx'
make[4]: *** [aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:347: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p521/bignum_sub_p521.S.S.o] Error 1
make[3]: *** [CMakeFiles/Makefile2:1296: aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
[ 13%] Building ASM object aws-lc/crypto/CMakeFiles/crypto_objects.dir/hrss/asm/poly_rq_mul.S.o
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S: Assembler messages:
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:304: Error: unknown pseudo-op: `.att_syntax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:307: Error: unknown mnemonic `push' -- `push %rbp'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:309: Error: bad register expression
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:310: Error: unknown mnemonic `movq' -- `movq %rsp,%rbp'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:311: Error: bad register expression
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:312: Error: unknown mnemonic `push' -- `push %r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:313: Error: bad register expression
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:321: Error: operand 1 must be an integer register -- `mov %rcx,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:322: Error: unknown mnemonic `addq' -- `addq $6144+12288+512+9408+32,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:323: Error: operand 1 must be an integer register -- `mov %r8,%rax'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:324: Error: unknown mnemonic `subq' -- `subq $6144,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:325: Error: operand 1 must be an integer register -- `mov %r8,%r11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:326: Error: unknown mnemonic `subq' -- `subq $12288,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:327: Error: operand 1 must be an integer register -- `mov %r8,%r12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:328: Error: unknown mnemonic `subq' -- `subq $512,%r8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:329: Error: unknown mnemonic `vmovdqa' -- `vmovdqa const3(%rip),%ymm3'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:330: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 0(%rsi),%ymm0'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:331: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 88(%rsi),%ymm1'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:332: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 176(%rsi),%ymm2'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:333: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 264(%rsi),%ymm12'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:334: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 1056(%rsi),%ymm4'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:335: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 1144(%rsi),%ymm5'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:336: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 1232(%rsi),%ymm6'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:337: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 1320(%rsi),%ymm7'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:338: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 352(%rsi),%ymm8'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:339: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 440(%rsi),%ymm9'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:340: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 528(%rsi),%ymm10'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:341: Error: unknown mnemonic `vmovdqu' -- `vmovdqu 616(%rsi),%ymm11'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:342: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm0,0(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:343: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm1,96(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:344: Error: unknown mnemonic `vpaddw' -- `vpaddw %ymm0,%ymm1,%ymm14'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:345: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm14,192(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:346: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm2,288(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:347: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm12,384(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:348: Error: unknown mnemonic `vpaddw' -- `vpaddw %ymm2,%ymm12,%ymm14'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:349: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm14,480(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:350: Error: unknown mnemonic `vpaddw' -- `vpaddw %ymm0,%ymm2,%ymm14'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:351: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm14,576(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:352: Error: unknown mnemonic `vpaddw' -- `vpaddw %ymm1,%ymm12,%ymm15'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:353: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm15,672(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:354: Error: unknown mnemonic `vpaddw' -- `vpaddw %ymm14,%ymm15,%ymm14'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:355: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm14,768(%rax)'
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:356: Error: unknown mnemonic `vmovdqa' -- `vmovdqa %ymm4,5184(%rax)'
.
.
.
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:8483: Error: bad register expression
[...]output/build/python-awscrt-0.16.10/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S:8484: Error: bad register expression
make[4]: *** [aws-lc/crypto/CMakeFiles/crypto_objects.dir/build.make:3083: aws-lc/crypto/CMakeFiles/crypto_objects.dir/hrss/asm/poly_rq_mul.S.o] Error 1
make[3]: *** [CMakeFiles/Makefile2:1269: aws-lc/crypto/CMakeFiles/crypto_objects.dir/all] Error 2
make[2]: *** [Makefile:141: all] Error 2
Traceback (most recent call last):
  File "[...]output/build/python-awscrt-0.16.10/setup.py", line 348, in <module>
    setuptools.setup(
  File "[...]output/host/lib/python3.10/site-packages/setuptools/__init__.py", line 155, in setup
    return distutils.core.setup(**attrs)
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "[...]output/build/python-awscrt-0.16.10/setup.py", line 255, in run
    self._build_dependencies(dep_build_dir, dep_install_path)
  File "[...]output/build/python-awscrt-0.16.10/setup.py", line 247, in _build_dependencies
    self._build_dependencies_impl(build_dir, install_path)
  File "[...]output/build/python-awscrt-0.16.10/setup.py", line 204, in _build_dependencies_impl
    run_cmd(build_cmd)
  File "[...]output/build/python-awscrt-0.16.10/setup.py", line 37, in run_cmd
    subprocess.check_call(args)
  File "[...]output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/cmake', '--build', 'build/temp.linux-aarch64-3.10/deps', '--config', 'RelWithDebInfo', '--target', 'install']' returned non-zero exit status 2.
make[1]: *** [package/pkg-generic.mk:293: [...]output/build/python-awscrt-0.16.10/.stamp_built] Error 1

I have no idea what it is complaining about. Can anyone please let me know how to reslove this?

Thanks in advance

ssl_transfer_supported for client SSL connection

Problem:

I am using AWS-LC SSL_to_bytes and SSL_from_bytes API in my application. I found that SSL_to_bytes is not supported for non server SSL connections only. Is there any specific reason for same?
Are we working on this feature?

AddressSanitizer SEGV when x509_name_ex_d2i() calls sk_STACK_OF_X509_NAME_ENTRY_pop_free()

Problem:

When running AddressSanitizer on a software project that relies on aws-lc, I see a SEGV when function x509_name_ex_d2i() tries to pop-free an element off the intname stack. It looks like either intname or the element to which it points might be nullptr.

Offending call stack (allocator is jemalloc):

==56357==ERROR: AddressSanitizer: SEGV on unknown address 0x0000000002f8 (pc 0x7fb82ae5e57e bp 0x7ffc55760e40 sp 0x7ffc55760ad0 T0)
==56357==The signal is caused by a READ memory access.
==56357==Hint: address points to the zero page.
    #0 0x7fb82ae5e57e in atomic_load_p include/jemalloc/internal/atomic.h:83
    #1 0x7fb82ae5e57e in rtree_leaf_elm_bits_read include/jemalloc/internal/rtree.h:182
    #2 0x7fb82ae5e57e in rtree_leaf_elm_read include/jemalloc/internal/rtree.h:242
    #3 0x7fb82ae5e57e in emap_edata_lookup_batch include/jemalloc/internal/emap.h:341
    #4 0x7fb82ae5e57e in tcache_bin_flush_edatas_lookup src/tcache.c:288
    #5 0x7fb82ae5eefa in tcache_bin_flush_impl src/tcache.c:331
    #6 0x7fb82ae5eefa in tcache_bin_flush_bottom src/tcache.c:519
    #7 0x7fb82ae5eefa in je_tcache_bin_flush_small src/tcache.c:529
    #8 0x7fb82ade6027 in tcache_dalloc_small include/jemalloc/internal/tcache_inlines.h:161
    #9 0x7fb82ade6027 in arena_sdalloc include/jemalloc/internal/arena_inlines_b.h:418
    #10 0x7fb82ade6027 in isdalloct include/jemalloc/internal/jemalloc_internal_inlines_c.h:133
    #11 0x7fb82ade6027 in isfree src/jemalloc.c:2998
    #12 0x7fb82ade6027 in je_sdallocx_default src/jemalloc.c:3988
    #13 0x7fb829707911 in sk_pop_free_ex .../src/crypto/stack/stack.c:144
    #14 0x7fb829707911 in sk_pop_free_ex .../src/crypto/stack/stack.c:136
    #15 0x7fb8297256aa in sk_STACK_OF_X509_NAME_ENTRY_pop_free .../src/crypto/x509/x_name.c:75
    #16 0x7fb8297256aa in x509_name_ex_d2i .../src/crypto/x509/x_name.c:246

Solution:

None currently known.

Requirements / Acceptance Criteria:

AddressSanitizer should no longer SEGV.

FIPS branch fips-2022-11-02 failed to build on AL2 aarch64

Problem:

I am trying to build the FIPS branch fips-2022-11-02 on an AL2 aarch64 environment, but the build failed.

Steps to reproduce:

git clone [email protected]:awslabs/aws-lc.git -b fips-2022-11-02
mkdir aws-lc-build && cd aws-lc-build
cmake3 -GNinja \
    -DFIPS=1 \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DCMAKE_INSTALL_PREFIX=../aws-lc-install \
    ../aws-lc
ninja-build run_tests && ninja-build install

[336/493] Generating bcm-delocated.S
FAILED: crypto/fipsmodule/bcm-delocated.S
cd /home/hchar/tmp/aws-lc-build/crypto/fipsmodule && ./delocate -a /home/hchar/tmp/aws-lc-build/crypto/fipsmodule/libbcm_c_generated_asm.a -o bcm-delocated.S aesv8-armx.S.s armv8-mont.S.s ghash-neon-armv8.S.s ghashv8-armx.S.s keccak1600-armv8.S.s md5-armv8.S.s p256-armv8-asm.S.s p256_beeu-armv8-asm.S.s sha1-armv8.S.s sha256-armv8.S.s sha512-armv8.S.s vpaes-armv8.S.s p384/bignum_add_p384.S.S.s p384/bignum_sub_p384.S.S.s p384/bignum_neg_p384.S.S.s p384/bignum_tomont_p384.S.S.s p384/bignum_deamont_p384.S.S.s p384/bignum_montmul_p384.S.S.s p384/bignum_montmul_p384_alt.S.S.s p384/bignum_montsqr_p384.S.S.s p384/bignum_montsqr_p384_alt.S.S.s p384/bignum_nonzero_6.S.S.s p384/bignum_littleendian_6.S.S.s p521/bignum_add_p521.S.S.s p521/bignum_sub_p521.S.S.s p521/bignum_neg_p521.S.S.s p521/bignum_mul_p521.S.S.s p521/bignum_mul_p521_alt.S.S.s p521/bignum_sqr_p521.S.S.s p521/bignum_sqr_p521_alt.S.S.s p521/bignum_tolebytes_p521.S.S.s p521/bignum_fromlebytes_p521.S.S.s
error while parsing "/home/hchar/tmp/aws-lc-build/crypto/fipsmodule/libbcm_c_generated_asm.a":
parse error near WS (line 1084 symbol 21 - line 1084 symbol 22):
" "

ninja: build stopped: subcommand failed.

Relevant details

AWS-LC branch: fips-2022-11-02
AWS-LC commit: a630ce0

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

  • CPU architecture: aarch64
  • OS: AL2
Linux 5.4.225-139.416.amzn2int.aarch64 #1 SMP Tue Dec 6 22:20:29 UTC 2022 aarch64 aarch64

Build log:

  • The log tells compiler and version. It's available when building awslc with CMake.

Sample build log

$ cmake3 -GNinja \
>     -DFIPS=1 \
>     -DCMAKE_BUILD_TYPE=RelWithDebInfo \
>     -DCMAKE_INSTALL_PREFIX=../aws-lc-install \
>     ../aws-lc
-- The C compiler identification is GNU 7.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 7.3.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Perl: /usr/bin/perl (found version "5.16.3")
-- Checking for module 'libunwind-generic'
--   No package 'libunwind-generic' found
libunwind not found. Disabling unwind tests.
-- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O2 -g -DNDEBUG'.
-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- Test linux_u32.c passed, enabling AWS_LC_URANDOM_U32
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- 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
-- Generating test executable mem_test.
-- Generating test executable mem_set_test.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hchar/tmp/aws-lc-build

$ ninja-build run_tests && ninja-build install
[336/493] Generating bcm-delocated.S
FAILED: crypto/fipsmodule/bcm-delocated.S
cd /home/hchar/tmp/aws-lc-build/crypto/fipsmodule && ./delocate -a /home/hchar/tmp/aws-lc-build/crypto/fipsmodule/libbcm_c_generated_asm.a -o bcm-delocated.S aesv8-armx.S.s armv8-mont.S.s ghash-neon-armv8.S.s ghashv8-armx.S.s keccak1600-armv8.S.s md5-armv8.S.s p256-armv8-asm.S.s p256_beeu-armv8-asm.S.s sha1-armv8.S.s sha256-armv8.S.s sha512-armv8.S.s vpaes-armv8.S.s p384/bignum_add_p384.S.S.s p384/bignum_sub_p384.S.S.s p384/bignum_neg_p384.S.S.s p384/bignum_tomont_p384.S.S.s p384/bignum_deamont_p384.S.S.s p384/bignum_montmul_p384.S.S.s p384/bignum_montmul_p384_alt.S.S.s p384/bignum_montsqr_p384.S.S.s p384/bignum_montsqr_p384_alt.S.S.s p384/bignum_nonzero_6.S.S.s p384/bignum_littleendian_6.S.S.s p521/bignum_add_p521.S.S.s p521/bignum_sub_p521.S.S.s p521/bignum_neg_p521.S.S.s p521/bignum_mul_p521.S.S.s p521/bignum_mul_p521_alt.S.S.s p521/bignum_sqr_p521.S.S.s p521/bignum_sqr_p521_alt.S.S.s p521/bignum_tolebytes_p521.S.S.s p521/bignum_fromlebytes_p521.S.S.s
error while parsing "/home/hchar/tmp/aws-lc-build/crypto/fipsmodule/libbcm_c_generated_asm.a":
parse error near WS (line 1084 symbol 21 - line 1084 symbol 22):
" "

ninja: build stopped: subcommand failed.

Unknown processor:mipsel when cross-compiling for MIPS

Problem:

CMake Error at _deps/aws-iot-device-sdk-cpp-v2-src/crt/aws-crt-cpp/crt/aws-lc/CMakeLists.txt:629 (message):
  Unknown processor:mipsel

Relevant details

AWS-LC commit: commit 11b50d3 (HEAD, tag: v1.0.2)

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

  • CPU architecture: cross-compiling for MIPS32
  • CPU name: target: Ingenic X2000
  • OS: buildroot

Build log:

-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /project/out/product/halley5.v30_nand_5.10-eng/obj/buildroot-intermediate/host/bin/mips-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /project/out/product/halley5.v30_nand_5.10-eng/obj/buildroot-intermediate/host/bin/mips-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_FIND_ROOT_PATH=/project/out/product/halley5.v30_nand_5.10-eng/obj/buildroot-intermediate/host/mipsel-buildroot-linux-gnu/sysroot
-- AWS CRT C++ v0.17.30
-- CMake 3.18.6
-- Performing Test AWS_HAVE_WINAPI_DESKTOP
-- Performing Test AWS_HAVE_WINAPI_DESKTOP - Failed
-- Performing Test AWS_ARCH_INTEL
-- Performing Test AWS_ARCH_INTEL - Failed
-- Performing Test AWS_ARCH_ARM64
-- Performing Test AWS_ARCH_ARM64 - Failed
-- Performing Test AWS_ARCH_ARM32
-- Performing Test AWS_ARCH_ARM32 - Failed
-- Performing Test AWS_HAVE_GCC_INLINE_ASM
-- Performing Test AWS_HAVE_GCC_INLINE_ASM - Success
-- Performing Test AWS_HAVE_AUXV
-- Performing Test AWS_HAVE_AUXV - Success
-- Performing Test AWS_HAVE_EXECINFO
-- Performing Test AWS_HAVE_EXECINFO - Success
-- Performing Test AWS_HAVE_LINUX_IF_LINK_H
-- Performing Test AWS_HAVE_LINUX_IF_LINK_H - Success
-- Performing Test HAVE_M_AVX2_FLAG
-- Performing Test HAVE_M_AVX2_FLAG - Failed
-- Performing Test HAVE_AVX2_INTRINSICS
-- Performing Test HAVE_AVX2_INTRINSICS - Failed
-- Performing Test HAVE_MM256_EXTRACT_EPI64
-- Performing Test HAVE_MM256_EXTRACT_EPI64 - Failed
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Performing Test HAS_FPIC_FLAG
-- Performing Test HAS_FPIC_FLAG - Success
-- Performing Test HAS_MOUTLINE_ATOMICS
-- Performing Test HAS_MOUTLINE_ATOMICS - Failed
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT - Success
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Performing Test HAS_WGNU
-- Performing Test HAS_WGNU - Failed
-- Performing Test HAVE_SYSCONF
-- Performing Test HAVE_SYSCONF - Success
-- Looking for pthread_attr_setaffinity_np
-- Looking for pthread_attr_setaffinity_np - found
-- Performing Test HAS_SANITIZERS
-- Performing Test HAS_SANITIZERS - Failed
-- Packaging currently only supported on Fedora.
-- Performing Test HAS_WNO_STRINGOP_OVERFLOW
-- Performing Test HAS_WNO_STRINGOP_OVERFLOW - Success
-- Performing Test HAS_WNO_ARRAY_PARAMETER
-- Performing Test HAS_WNO_ARRAY_PARAMETER - Success
-- 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 ' -DNDEBUG'.
-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
CMake Error at _deps/aws-iot-device-sdk-cpp-v2-src/crt/aws-crt-cpp/crt/aws-lc/CMakeLists.txt:629 (message):
 Unknown processor:mipsel

-- Configuring incomplete, errors occurred!

Compiling with zig for x86_64-windows-gnu fails due to X509_NAME and wincrypt.h

Problem:

When I tried to compile aws-lc using a build.zig file instead of cmake, for a x86_64-windows-gnu target, It fails due to conflicting symbols from wincrypt.h. Curl seems to have worked around it by using #undef but I'd have to keep a maintained fork of aws-lc to make those changes myself here...

See curl/curl@4c46c82

Reproduction

Git clone the aws-lc zig build repository and extract the latest zig master tarball. Run zig build -Dtarget=x86_64-windows-gnu - it should fail with a bunch of X509_NAME errors...

Relevant details

AWS-LC commit: 56def5a253d27280f3b7bd6564cfa5a11211aee8

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

  • CPU architecture: (x86-64)
  • CPU name: (Intel i5-2430M)
  • OS: (Arch Linux)

Build log:

/home/theo/.cache/zig/p/1220b404f239d0911665e3328c7574d8bf6b0f6bd2b0af9761cb2af7ea0eada6c6df/ssl/ssl_file.cc:146:26: error: expected ')'
    int (*old_cmp)(const X509_NAME *const *, const X509_NAME *const *);
                         ^
/home/theo/dev/zig.git/expidus/build/stage3/lib/zig/libc/include/any-windows-any/wincrypt.h:1515:29: note: expanded from macro 'X509_NAME'
#define X509_NAME ((LPCSTR) 7)

Uninitialised variable in `ec_GFp_mont_batch_get_window`

Problem:

When building v1.15.0 targeting 32-bit ARM architectures like armv6l or armv7l I get:

[00:20:47] In file included from /workspace/srcdir/aws-lc/crypto/fipsmodule/bcm.c:96:0:
[00:20:47] /workspace/srcdir/aws-lc/crypto/fipsmodule/ec/simple_mul.c: In function ‘ec_GFp_mont_batch_get_window’:
[00:20:47] /workspace/srcdir/aws-lc/crypto/fipsmodule/ec/felem.c:65:19: error: ‘neg_Y.words[0]’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
[00:20:47]      out->words[i] &= mask;
[00:20:47]                    ^~
[00:20:47] cc1: all warnings being treated as errors

Relevant details

AWS-LC commit: (aa90e50)

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

  • target CPU architecture: armv6l or armv7l
  • CPU name: N/A
  • OS: Linux

Build log:

[00:20:24]  ---> cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DDISABLE_GO=ON -DBUILD_SHARED_LIBS=OFF -GNinja ..
[00:20:24] -- The C compiler identification is GNU 7.1.0
[00:20:24] -- Detecting C compiler ABI info
[00:20:25] -- Detecting C compiler ABI info - done
[00:20:25] -- Check for working C compiler: /opt/bin/armv6l-linux-gnueabihf-libgfortran4-cxx11/arm-linux-gnueabihf-gcc - skipped
[00:20:25] -- Detecting C compile features
[00:20:25] -- Detecting C compile features - done
[00:20:25] -- The CXX compiler identification is GNU 7.1.0
[00:20:25] -- Detecting CXX compiler ABI info
[00:20:25] -- Detecting CXX compiler ABI info - done
[00:20:25] -- Check for working CXX compiler: /opt/bin/armv6l-linux-gnueabihf-libgfortran4-cxx11/arm-linux-gnueabihf-g++ - skipped
[00:20:25] -- Detecting CXX compile features
[00:20:25] -- Detecting CXX compile features - done
[00:20:25] -- Found Perl: /usr/bin/perl (found version "5.34.0")
[00:20:25] -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
[00:20:25] -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
[00:20:25] -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
[00:20:25] -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
[00:20:25] -- The ASM compiler identification is GNU
[00:20:25] -- Found assembler: /opt/bin/armv6l-linux-gnueabihf-libgfortran4-cxx11/arm-linux-gnueabihf-gcc
[00:20:25] -- Looking for pthread.h
[00:20:25] -- Looking for pthread.h - found
[00:20:25] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
[00:20:25] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
[00:20:25] -- Looking for pthread_create in pthreads
[00:20:25] -- Looking for pthread_create in pthreads - not found
[00:20:25] -- Looking for pthread_create in pthread
[00:20:26] -- Looking for pthread_create in pthread - found
[00:20:26] -- Found Threads: TRUE
[00:20:26] -- Configuring done
[00:20:26] -- Generating done
[00:20:26] -- Build files have been written to: /workspace/srcdir/aws-lc/build

Side note, it'd be very much appreciated if -Werror wasn't enforced, or at very least if it was possible to easily disable it without having to manually hack the CMake file.

Android FIPS compatibility?

Problem:

When -FIPS=ON is set for Android it results in a build failure

Relevant details

AWS-LC commit: 7ada846

Host Platform:

  • Arch: x86_64
  • OS: Ubuntu 18.04 (docker)

Target Platform:

  • Arch: x86_64 + armv8a
  • OS: Android NDK 20

Build log:

-- Check for working C compiler: /usr/opt/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
-- Check for working C compiler: /usr/opt/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/opt/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-- Check for working CXX compiler: /usr/opt/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- The ASM compiler identification is Clang
-- Found assembler: /usr/opt/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/share/build/build_android/build_android_armeabi-v7a/third-party/openssl/aws-lc/openssl-prefix/src/openssl-build
[ 29%] Performing build step for 'openssl'
[  1%] Generating crypto_test_data.cc
Scanning dependencies of target crypto_test_data
[  1%] Building CXX object CMakeFiles/crypto_test_data.dir/crypto_test_data.cc.o
[  1%] Built target crypto_test_data
Scanning dependencies of target boringssl_gtest
[  1%] Building CXX object CMakeFiles/boringssl_gtest.dir/third_party/googletest/src/gtest-all.cc.o
[  2%] Linking CXX static library libboringssl_gtest.a
[  2%] Built target boringssl_gtest
Scanning dependencies of target global_target
[  2%] Built target global_target
Scanning dependencies of target test_support_lib
[  2%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/abi_test.cc.o
[  2%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/file_test.cc.o
[  2%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/malloc.cc.o
[  3%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/test_util.cc.o
[  3%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/wycheproof_util.cc.o
[  3%] Linking CXX static library libtest_support_lib.a
[  3%] Built target test_support_lib
Scanning dependencies of target fipsmodule
[  3%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[  3%] Built target fipsmodule
Scanning dependencies of target bcm_c_generated_asm
[  3%] Building C object crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/bcm.c.o
clang: error: argument unused during compilation: '-Wa,--noexecstack' [-Werror,-Wunused-command-line-argument]
crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/build.make:62: recipe for target 'crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/bcm.c.o' failed

Unable to build aws-lc on Fedora 33, 34, rawhide

Problem:

I'm trying to package awscrt on Fedora 33/34/Rawhide, but the compilation of aws-lc fails. However, a quick test with CentOS 8, RHEL 8, or CentOS 8 Stream works fine.

Relevant details

AWS-LC commit: 690175ef955ae633a336d3647d74202610e01246

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

  • CPU architecture: x86_64
  • CPU name: AMD Ryzen 7 3700X
  • OS: Fedora 34 (cmake 3.19.7, gcc 11.1.1)

Build log:

  • The log tells compiler and version. It's available when building awslc with CMake.
-- The C compiler identification is GNU 11.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking for module 'libunwind-generic'
--   Found libunwind-generic, version 1.4.0
-- 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 GNU
-- Found assembler: /usr/bin/cc
Copying platform assembly files from /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/generated-src/linux-x86_64/crypto/ to /builddir/build/BUILD/awscrt-0.11.22/build/deps/aws-lc/crypto
-- Configuring done
-- Generating done
-- Build files have been written to: /builddir/build/BUILD/awscrt-0.11.22/build/deps/aws-lc
[  0%] Built target global_target
Scanning dependencies of target fipsmodule
[  0%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.S.o
[  1%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[  1%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.S.o
[  1%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.S.o
[  2%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
[  2%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-x86_64.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rdrand-x86_64.S.o
[  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86_64.S.o
[  4%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.S.o
[  5%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-x86_64.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256_beeu-x86_64-asm.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-x86_64.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rsaz-avx2.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont5.S.o
[  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-x86_64.S.o
[  7%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont.S.o
In file included from /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/bcm.c:104:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c: In function ‘SHA224_Final’:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: error: ‘SHA256_Final’ accessing 32 bytes in a region of size 28 [-Werror=stringop-overflow=]
  122 |   return SHA256_Final(out, ctx);
      |          ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: note: referencing argument 1 of type ‘uint8_t *’
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:171:20: note: in a call to function ‘SHA256_Final’
  171 | #define HASH_FINAL SHA256_Final
      |                    ^~~~~~~~~~~~
In function ‘SHA224_Final’,
    inlined from ‘SHA224’ at /builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:100:3:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: error: ‘SHA256_Final’ accessing 32 bytes in a region of size 28 [-Werror=stringop-overflow=]
  122 |   return SHA256_Final(out, ctx);
      |          ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c: In function ‘SHA224’:
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:122:10: note: referencing argument 1 of type ‘uint8_t *’
/builddir/build/BUILD/awscrt-0.11.22/crt/aws-lc/crypto/fipsmodule/sha/sha256.c:171:20: note: in a call to function ‘SHA256_Final’
  171 | #define HASH_FINAL SHA256_Final
      |                    ^~~~~~~~~~~~
cc1: all warnings being treated as errors
gmake[2]: *** [crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:76: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:223: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Fails to compile with clang 17

Problem:

AWS-LC fails to compile with clang 17 due to two issues. One issue is an alignas error, and the other is a warning that is an issue due to Werror.

According to https://lists.llvm.org/pipermail/llvm-bugs/2018-July/066920.html it seems like gcc doesn't detect the alignas issue as a problem.

Relevant details

AWS-LC commit: 7f76c04

  • CPU architecture: x86_64
  • CPU name: AMD Ryzen 5600x
  • OS: NixOS

Build log:

/home/theo/Documents/theos/build/_deps/aws-lc-src/crypto/bio/errno.c:89:25: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
   89 |       errno == EALREADY ||
/home/theo/Documents/theos/build/_deps/aws-lc-src/crypto/poly1305/poly1305_vec.c:32:14: error: 'alignas' attribute cannot be applied to types
   32 | static const alignas(16) uint32_t poly1305_x64_sse2_message_mask[4] = {
      |              ^
/home/theo/Documents/theos/build/_deps/aws-lc-src/crypto/poly1305/poly1305_vec.c:34:14: error: 'alignas' attribute cannot be applied to types
   34 | static const alignas(16) uint32_t poly1305_x64_sse2_5[4] = {5, 0, 5, 0};
      |              ^
/home/theo/Documents/theos/build/_deps/aws-lc-src/crypto/poly1305/poly1305_vec.c:35:14: error: 'alignas' attribute cannot be applied to types
   35 | static const alignas(16) uint32_t poly1305_x64_sse2_1shl128[4] = {
/home/theo/Documents/theos/build/_deps/aws-lc-src/crypto/fipsmodule/ec/p256-nistz-table.h:25:14: error: 'alignas' attribute cannot be applied to types
   25 | static const alignas(4096) PRECOMP256_ROW ecp_nistz256_precomputed[37] = {
      |              ^

This is offtopic, but since this is based on openssl code does that mean it has to be relinked with every program or can it be used a drop in replacement for OpenSSL in existing prebuilt programs (assuming they don't rely on 3.0+ APIs)?

timespec has incomplete element type

Problem:

When cross compile aws-lc with arm-linux-gcc-4.8 and uClibc-1.0.14, I encounter the below issue, could you give some suggestions? thanks in advance!

cd /root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc/crypto && /root/INOS/VG9/compiler/ipq4029-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/bin/arm-linux-gcc  -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -I/root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/../include  -lpthread -ldl -I/root/INOS/VG9/system/python3/Include -L/root/INOS/VG9/system/python3  -std=c99 -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/crypto.dir/bio/printf.c.o   -c /root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/bio/printf.c
[ 23%] Building C object crypto/CMakeFiles/crypto.dir/bio/socket.c.o
cd /root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc/crypto && /root/INOS/VG9/compiler/ipq4029-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/bin/arm-linux-gcc  -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -I/root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/../include  -lpthread -ldl -I/root/INOS/VG9/system/python3/Include -L/root/INOS/VG9/system/python3  -std=c99 -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/crypto.dir/bio/socket.c.o   -c /root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/bio/socket.c
[ 23%] Building C object crypto/CMakeFiles/crypto.dir/bio/socket_helper.c.o
cd /root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc/crypto && /root/INOS/VG9/compiler/ipq4029-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/bin/arm-linux-gcc  -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -I/root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/../include  -lpthread -ldl -I/root/INOS/VG9/system/python3/Include -L/root/INOS/VG9/system/python3  -std=c99 -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/crypto.dir/bio/socket_helper.c.o   -c /root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/bio/socket_helper.c
In file included from /root/INOS/VG9/compiler/ipq4029-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/include/fcntl.h:37:0,
                 from /root/INOS/VG9/system/aws-crt-python-0.11.8/crt/aws-lc/crypto/bio/socket_helper.c:23:
/root/INOS/VG9/compiler/ipq4029-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/include/sys/stat.h:371:54: error: array type has incomplete element type
 extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
                                                      ^
crypto/CMakeFiles/crypto.dir/build.make:1046: recipe for target 'crypto/CMakeFiles/crypto.dir/bio/socket_helper.c.o' failed
make[3]: *** [crypto/CMakeFiles/crypto.dir/bio/socket_helper.c.o] Error 1
make[3]: Leaving directory '/root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc'
CMakeFiles/Makefile2:120: recipe for target 'crypto/CMakeFiles/crypto.dir/all' failed
make[2]: *** [crypto/CMakeFiles/crypto.dir/all] Error 2
make[2]: Leaving directory '/root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc'
Makefile:127: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/root/INOS/VG9/system/aws-crt-python-0.11.8/build/deps/aws-lc'

Relevant details

TARGET CPU architecture: (ARMv7)
TARGET OS: (Linux)
BUILD OS: (Ubuntu 16.04)
Compiler: (arm-linux-gcc-4.8, uClibc-1.0.14)
AWS-LC commit: (v0.11.8)

FIPS build error on MacOS 11

Problem:

The current codebase produces an error when attempting to build the FIPS version of the library on MacOS 11

Relevant details

AWS-LC commit: f951bdb

  • MacBook Pro (x86_64)
  • MacOS 11
  • XCode 12.5.1
  • CMake 3.20.5

Build log:

❯ mkdir build && cd build && cmake -DFIPS=ON .. && make -j8
-- The C compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Perl: /usr/bin/perl (found version "5.30.2") 
-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- The ASM compiler identification is Clang
-- Found assembler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Configuring done
-- Generating done
-- Build files have been written to: aws-lc/build
[  0%] Generating crypto_test_data.cc
[  0%] Building CXX object CMakeFiles/boringssl_gtest.dir/third_party/googletest/src/gtest-all.cc.o
[  0%] Built target global_target
[  0%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/abi_test.cc.o
[  0%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/file_test.cc.o
[  0%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/malloc.cc.o
[  0%] Building C object crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/bcm.c.o
[  1%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[  1%] Building CXX object crypto/test/CMakeFiles/boringssl_gtest_main.dir/gtest_main.cc.o
[  1%] Built target fipsmodule
[  2%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/test_util.cc.o
[  2%] Building CXX object crypto/test/CMakeFiles/test_support_lib.dir/wycheproof_util.cc.o
In file included from aws-lc/crypto/fipsmodule/bcm.c:95:
aws-lc/crypto/fipsmodule/rand/urandom.c:280:9: error: implicit declaration of function 'ioctl' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    if (ioctl(fd, RNDGETENTCNT, &entropy_bits)) {
        ^
aws-lc/crypto/fipsmodule/rand/urandom.c:280:19: error: use of undeclared identifier 'RNDGETENTCNT'
    if (ioctl(fd, RNDGETENTCNT, &entropy_bits)) {
                  ^
2 errors generated.
make[2]: *** [crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/bcm.c.o] Error 1
make[1]: *** [crypto/fipsmodule/CMakeFiles/bcm_c_generated_asm.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  2%] Building CXX object CMakeFiles/crypto_test_data.dir/crypto_test_data.cc.o
[  2%] Built target boringssl_gtest_main
[  2%] Linking CXX static library libtest_support_lib.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libtest_support_lib.a(malloc.cc.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libtest_support_lib.a(malloc.cc.o) has no symbols
[  2%] Built target test_support_lib
[  2%] Built target crypto_test_data
[  2%] Linking CXX static library libboringssl_gtest.a
[  2%] Built target boringssl_gtest
make: *** [all] Error 2

You can reproduce this build by running the following from the current main branch:

mkdir build && cd build && cmake -DFIPS=ON .. && make -j8

Packages for RPM and DEB

Problem:

By providing your own OpenSSL implementation in source only, you make it very hard for end-users to integrate your library in their own tooling. For example, I would have to manually compile the project multiple times for different architectures, since my company uses quite a few containers. In the end we all run it on EC2, but this just adds unnecessary hoops just to have ACCP support.

Solution:

It would be great if you can provide .rpm and .deb packages with repositories. Preferably tested for RHEL, CentOS Stream, and Ubuntu. Ideally down-streamed and integrated with their respective ecosystems.

  • Does this change any public APIs? No
  • Which algorithm(s) will this impact? None

Requirements / Acceptance Criteria:

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

  • Auto-build system for .rpm and .deb packages
    • Validation on selected platforms
  • Repository for distribution
    • GPG signed and all
  • Upstream specs
    • Fedora Linux and Debian Sid preferably
  • Update documentation

Bootnote

OpenSSL, BoringSSL, GnuTLS and WolfSSL all have their packages for major distributions, which provides a whole series of benefits:

  • Users can get their security updates from a single source,
  • it's integrated with existing tooling,
  • it works on more architectures,
  • and more feedback can be gathered from the entire user base.

Don't deny yourself those benefits

Error Cross Compiling aws-iot-device-sdk-cpp-v2 with MUSL ARM

Problem:

I am trying to cross compile aws-iot-device-sdk-cpp-v2 using ARM MUSL toolchain. But the compilation is failing at aws-lc. When executing the Cmake command before the actual build, noticed that it is detecting the CMAKE_SYSTEM_PROCESSOR as x86_64. I think this maybe the reason for the failure, as the file at which it is failing is assembly code for x86 (crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o)

Also tried setting CMAKE_SYSTEM_PROCESSOR to arm by doing export and by passing it as set argument for cmake.

There is an issue flagged for GCC compiler version (current one in use in this toolchain is 11.2.1)

Similar issue was already logged (aws/aws-iot-device-sdk-cpp-v2#293)
Created this new issue as that one is already closed due to staleness.

Thanks in advance. Any help is appreciated.

Relevant details

ARM MUSL toolchain : (http://musl.cc/armv7l-linux-musleabihf-cross.tgz)
AWS-LC commit: 7e7f06c (HEAD, tag: v0.0.2)
aws-iot-device-sdk-cpp-v2 commit : bc51b8a97e2590b03f0118107ee19c85f281c1e3 (v1.15.2)

System information: for linux, below info can be collected by running uname -srvmp
Building it on an Alpine 3.13 docker container
Linux 5.4.0-91-generic #102~18.04.1-Ubuntu SMP Thu Nov 11 14:46:36 UTC 2021 x86_64 unknown
Same results on a Ubuntu 18.04 VM as well.

Build log:

bash-5.1# pwd
/Code/aws-iot-device-sdk-cpp-v2/BUILD
bash-5.1#
bash-5.1# cmake --version
cmake version 3.18.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).
bash-5.1#
bash-5.1#
bash-5.1# /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc --version
armv7l-linux-musleabihf-gcc (GCC) 11.2.1 20211120
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

bash-5.1#
bash-5.1# export LD_LIBRARY_PATH="/armv7l-linux-musleabihf-cross/usr/local/lib" 
bash-5.1# export CC="/armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc"
bash-5.1# export CXX="/armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-g++"
bash-5.1# export PATH=$PATH:/armv7l-linux-musleabihf-cross/usr/local
bash-5.1# 
bash-5.1# cmake -DCMAKE_INSTALL_PREFIX=/armv7l-linux-musleabihf-cross/usr/local -DCMAKE_PREFIX_PATH=/armv7l-linux-musleabihf-cross/usr/local -DBUILD_SHARED_LIBS=ON -DBUILD_DEPS=ON -DCMAKE_BUILD_TYPE="Release" -DCMAKE_VERBOSE_MAKEFILE=ON ../
-- The C compiler identification is GNU 11.2.1
-- The CXX compiler identification is GNU 11.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- AWS CRT C++ v1.15.2-1-gbc51b8a
-- CMake 3.18.4
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS - Failed
-- Performing Test AWS_HAVE_MSVC_MULX
-- Performing Test AWS_HAVE_MSVC_MULX - Failed
-- Performing Test AWS_HAVE_WINAPI_DESKTOP
-- Performing Test AWS_HAVE_WINAPI_DESKTOP - Failed
-- Performing Test AWS_ARCH_INTEL
-- Performing Test AWS_ARCH_INTEL - Failed
-- Performing Test AWS_ARCH_ARM64
-- Performing Test AWS_ARCH_ARM64 - Failed
-- Performing Test AWS_ARCH_ARM32
-- Performing Test AWS_ARCH_ARM32 - Success
-- Performing Test AWS_HAVE_GCC_INLINE_ASM
-- Performing Test AWS_HAVE_GCC_INLINE_ASM - Success
-- Performing Test AWS_HAVE_AUXV
-- Performing Test AWS_HAVE_AUXV - Success
-- Performing Test AWS_HAVE_EXECINFO
-- Performing Test AWS_HAVE_EXECINFO - Failed
-- Performing Test HAVE_M_AVX2_FLAG
-- Performing Test HAVE_M_AVX2_FLAG - Failed
-- Performing Test HAVE_AVX2_INTRINSICS
-- Performing Test HAVE_AVX2_INTRINSICS - Failed
-- Performing Test HAVE_MM256_EXTRACT_EPI64
-- Performing Test HAVE_MM256_EXTRACT_EPI64 - Failed
-- 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  
-- Performing Test HAS_FPIC_FLAG
-- Performing Test HAS_FPIC_FLAG - Success
-- Performing Test HAS_MOUTLINE_ATOMICS
-- Performing Test HAS_MOUTLINE_ATOMICS - Failed
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT - Success
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Performing Test HAS_WGNU
-- Performing Test HAS_WGNU - Failed
-- Performing Test HAVE_SYSCONF
-- Performing Test HAVE_SYSCONF - Success
-- Looking for pthread_attr_setaffinity_np
-- Looking for pthread_attr_setaffinity_np - not found
-- Looking for pthread_setaffinity_np
-- Looking for pthread_setaffinity_np - found
-- Performing Test HAS_SANITIZERS
-- Performing Test HAS_SANITIZERS - Failed
-- Packaging currently only supported on Fedora.
-- Performing Test HAS_WNO_STRINGOP_OVERFLOW
-- Performing Test HAS_WNO_STRINGOP_OVERFLOW - Success
-- Performing Test HAS_WNO_ARRAY_PARAMETER
-- Performing Test HAS_WNO_ARRAY_PARAMETER - Success
-- Checking for module 'libunwind-generic'
--   Package 'libunwind-generic', required by 'virtual:world', not found
libunwind not found. Disabling unwind tests.
-- 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'.
CMake Warning at crt/aws-crt-cpp/crt/aws-lc/CMakeLists.txt:210 (message):
  Currently, GCC 11.2.1 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 the GCC 11.2.1 compiler.


-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- The ASM compiler identification is GNU
-- Found assembler: /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc
Copying platform assembly files from /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/generated-src/linux-x86/crypto/ to /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto
-- Detected CMAKE_SYSTEM_PROCESSOR as x86_64
-- Detected 32-Bit system - disabling PQ crypto assembly optimizations
-- S2N_NO_PQ_ASM flag was detected - disabling PQ crypto assembly code
-- S2N found target: crypto
-- Using libcrypto from AWS-LC
-- Performing Test AWS_ARM32_CRC
-- Performing Test AWS_ARM32_CRC - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: /Code/aws-iot-device-sdk-cpp-v2/BUILD
bash-5.1# 
bash-5.1# 
bash-5.1# 
bash-5.1# cmake --build . --target install 
/usr/bin/cmake -S/Code/aws-iot-device-sdk-cpp-v2 -B/Code/aws-iot-device-sdk-cpp-v2/BUILD --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /Code/aws-iot-device-sdk-cpp-v2/BUILD/CMakeFiles /Code/aws-iot-device-sdk-cpp-v2/BUILD//CMakeFiles/progress.marks
/usr/bin/make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/build.make crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/depend
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /Code/aws-iot-device-sdk-cpp-v2 /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common /Code/aws-iot-device-sdk-cpp-v2/BUILD /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/DependInfo.cmake --color=
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/DependInfo.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/depend.internal".
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/depend.internal".
Scanning dependencies of target aws-c-common
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/build.make crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/build
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/allocator.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/allocator.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/allocator.c
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/allocator_sba.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/allocator_sba.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/allocator_sba.c
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/arch/arm/asm/cpuid.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/arch/arm/asm/cpuid.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/arch/arm/asm/cpuid.c
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/array_list.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/array_list.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/array_list.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/assert.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/assert.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/assert.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/bus.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/bus.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/bus.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/byte_buf.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/byte_buf.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/byte_buf.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/cache.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/cache.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/cache.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/codegen.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/codegen.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/codegen.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/command_line_parser.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/command_line_parser.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/command_line_parser.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/common.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/common.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/common.c
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/condition_variable.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/condition_variable.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/condition_variable.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/date_time.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/date_time.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/date_time.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/device_random.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/device_random.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/device_random.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/encoding.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/encoding.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/encoding.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/error.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/error.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/error.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/fifo_cache.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/fifo_cache.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/fifo_cache.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/file.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/file.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/file.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/hash_table.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/hash_table.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/hash_table.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/lifo_cache.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/lifo_cache.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/lifo_cache.c
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/linked_hash_table.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/linked_hash_table.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/linked_hash_table.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_channel.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/log_channel.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/log_channel.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_formatter.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/log_formatter.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/log_formatter.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_writer.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/log_writer.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/log_writer.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/logging.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/logging.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/logging.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/lru_cache.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/lru_cache.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/lru_cache.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/math.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/math.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/math.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/memtrace.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/memtrace.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/memtrace.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/clock.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/clock.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/clock.c
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/condition_variable.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/condition_variable.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/condition_variable.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/device_random.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/device_random.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/device_random.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/environment.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/environment.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/environment.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/file.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/file.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/file.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/mutex.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/mutex.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/mutex.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/process.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/process.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/process.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/rw_lock.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/rw_lock.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/rw_lock.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/system_info.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/system_info.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/system_info.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/thread.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/thread.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/thread.c
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/time.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/posix/time.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/posix/time.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/priority_queue.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/priority_queue.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/priority_queue.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/process_common.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/process_common.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/process_common.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/promise.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/promise.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/promise.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/ref_count.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/ref_count.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/ref_count.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/ring_buffer.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/ring_buffer.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/ring_buffer.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/statistics.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/statistics.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/statistics.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/string.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/string.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/string.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/task_scheduler.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/task_scheduler.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/task_scheduler.c
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/thread_scheduler.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/thread_scheduler.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/thread_scheduler.c
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/thread_shared.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/thread_shared.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/thread_shared.c
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/uuid.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/uuid.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/uuid.c
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/xml_parser.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD -DAWS_COMMON_EXPORTS -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -Daws_c_common_EXPORTS -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/include -I/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common/generated/include -O3 -DNDEBUG -fPIC -Wall -Wstrict-prototypes -pedantic -Wno-long-long -fPIC -fvisibility=hidden -std=gnu99 -o CMakeFiles/aws-c-common.dir/source/xml_parser.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-c-common/source/xml_parser.c
[  6%] Linking C shared library libaws-c-common.so
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /usr/bin/cmake -E cmake_link_script CMakeFiles/aws-c-common.dir/link.txt --verbose=1
/armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libaws-c-common.so.1 -o libaws-c-common.so.1.0.0 CMakeFiles/aws-c-common.dir/source/allocator.c.o CMakeFiles/aws-c-common.dir/source/allocator_sba.c.o CMakeFiles/aws-c-common.dir/source/arch/arm/asm/cpuid.c.o CMakeFiles/aws-c-common.dir/source/array_list.c.o CMakeFiles/aws-c-common.dir/source/assert.c.o CMakeFiles/aws-c-common.dir/source/bus.c.o CMakeFiles/aws-c-common.dir/source/byte_buf.c.o CMakeFiles/aws-c-common.dir/source/cache.c.o CMakeFiles/aws-c-common.dir/source/codegen.c.o CMakeFiles/aws-c-common.dir/source/command_line_parser.c.o CMakeFiles/aws-c-common.dir/source/common.c.o CMakeFiles/aws-c-common.dir/source/condition_variable.c.o CMakeFiles/aws-c-common.dir/source/date_time.c.o CMakeFiles/aws-c-common.dir/source/device_random.c.o CMakeFiles/aws-c-common.dir/source/encoding.c.o CMakeFiles/aws-c-common.dir/source/error.c.o CMakeFiles/aws-c-common.dir/source/fifo_cache.c.o CMakeFiles/aws-c-common.dir/source/file.c.o CMakeFiles/aws-c-common.dir/source/hash_table.c.o CMakeFiles/aws-c-common.dir/source/lifo_cache.c.o CMakeFiles/aws-c-common.dir/source/linked_hash_table.c.o CMakeFiles/aws-c-common.dir/source/log_channel.c.o CMakeFiles/aws-c-common.dir/source/log_formatter.c.o CMakeFiles/aws-c-common.dir/source/log_writer.c.o CMakeFiles/aws-c-common.dir/source/logging.c.o CMakeFiles/aws-c-common.dir/source/lru_cache.c.o CMakeFiles/aws-c-common.dir/source/math.c.o CMakeFiles/aws-c-common.dir/source/memtrace.c.o CMakeFiles/aws-c-common.dir/source/posix/clock.c.o CMakeFiles/aws-c-common.dir/source/posix/condition_variable.c.o CMakeFiles/aws-c-common.dir/source/posix/device_random.c.o CMakeFiles/aws-c-common.dir/source/posix/environment.c.o CMakeFiles/aws-c-common.dir/source/posix/file.c.o CMakeFiles/aws-c-common.dir/source/posix/mutex.c.o CMakeFiles/aws-c-common.dir/source/posix/process.c.o CMakeFiles/aws-c-common.dir/source/posix/rw_lock.c.o CMakeFiles/aws-c-common.dir/source/posix/system_info.c.o CMakeFiles/aws-c-common.dir/source/posix/thread.c.o CMakeFiles/aws-c-common.dir/source/posix/time.c.o CMakeFiles/aws-c-common.dir/source/priority_queue.c.o CMakeFiles/aws-c-common.dir/source/process_common.c.o CMakeFiles/aws-c-common.dir/source/promise.c.o CMakeFiles/aws-c-common.dir/source/ref_count.c.o CMakeFiles/aws-c-common.dir/source/ring_buffer.c.o CMakeFiles/aws-c-common.dir/source/statistics.c.o CMakeFiles/aws-c-common.dir/source/string.c.o CMakeFiles/aws-c-common.dir/source/task_scheduler.c.o CMakeFiles/aws-c-common.dir/source/thread_scheduler.c.o CMakeFiles/aws-c-common.dir/source/thread_shared.c.o CMakeFiles/aws-c-common.dir/source/uuid.c.o CMakeFiles/aws-c-common.dir/source/xml_parser.c.o  -ldl -lm -lrt -ldl -lm -lrt 
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-c-common && /usr/bin/cmake -E cmake_symlink_library libaws-c-common.so.1.0.0 libaws-c-common.so.1 libaws-c-common.so
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
[  6%] Built target aws-c-common
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/build.make crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/depend
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /Code/aws-iot-device-sdk-cpp-v2 /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc /Code/aws-iot-device-sdk-cpp-v2/BUILD /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/DependInfo.cmake --color=
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/DependInfo.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/depend.internal".
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/depend.internal".
Scanning dependencies of target global_target
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/build.make crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/build
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
make[2]: Nothing to be done for 'crt/aws-crt-cpp/crt/aws-lc/CMakeFiles/global_target.dir/build'.
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
[  6%] Built target global_target
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/depend
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /Code/aws-iot-device-sdk-cpp-v2 /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule /Code/aws-iot-device-sdk-cpp-v2/BUILD /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/DependInfo.cmake --color=
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/DependInfo.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/depend.internal".
Dependee "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/depend.internal".
Scanning dependencies of target fipsmodule
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
/usr/bin/make  -f crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build
make[2]: Entering directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
[  6%] Building C object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -DBORINGSSL_SHARED_LIBRARY -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/../include -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/../../include -Wno-stringop-overflow -Wno-array-parameter -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result -Wno-cast-function-type  -DAWS_LC_STDALIGN_AVAILABLE -DAWS_LC_BUILTIN_SWAP_SUPPORTED -Wvla -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -O3 -DNDEBUG -fPIC -o CMakeFiles/fipsmodule.dir/bcm.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/bcm.c
[  7%] Building C object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -DBORINGSSL_SHARED_LIBRARY -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/../include -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/../../include -Wno-stringop-overflow -Wno-array-parameter -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result -Wno-cast-function-type  -DAWS_LC_STDALIGN_AVAILABLE -DAWS_LC_BUILTIN_SWAP_SUPPORTED -Wvla -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -O3 -DNDEBUG -fPIC -o CMakeFiles/fipsmodule.dir/fips_shared_support.c.o -c /Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/fips_shared_support.c
[  7%] Building ASM object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o
cd /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule && /armv7l-linux-musleabihf-cross/bin/armv7l-linux-musleabihf-gcc -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_RELEASE_BUILD -DBORINGSSL_SHARED_LIBRARY -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/../include -I/Code/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/../../include -Wa,--noexecstack -Wa,-g -O3 -DNDEBUG -fPIC -o CMakeFiles/fipsmodule.dir/aesni-x86.S.o -c /Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/aesni-x86.S
/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/aesni-x86.S: Assembler messages:
/Code/aws-iot-device-sdk-cpp-v2/BUILD/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/aesni-x86.S:2513: Error: junk at end of line, first unrecognized character is `,'
make[2]: *** [crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:111: crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o] Error 1
make[2]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
make[1]: *** [CMakeFiles/Makefile2:1707: crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
make[1]: Leaving directory '/Code/aws-iot-device-sdk-cpp-v2/BUILD'
make: *** [Makefile:163: all] Error 2
bash-5.1# 

cross compile error

Problem:

CMakeError.log
stops when cmaking aws-iot-device-sdk-cpp-v2

Relevant details

AWS-LC commit: (6b1bce0...)

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

  • CPU architecture: ARM A7
  • CPU name: NXP imx6
  • OS: ubuntu16

Build log:
root@xxylin-virtual-machine:/home/wildwindy/NFS/AWSSDK/sdkv2/build# cmake -DCMAKE_INSTALL_PREFIX="/home/wildwindy/NFS/AWSSDK/sdkv2/install" -DBUILD_DEPS=ON ../aws-iot-device-sdk-cpp-v2
-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Check for working C compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
-- Check for working C compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
-- Check for working CXX compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- AWS CRT C++ v0.13.8
-- CMake 3.15.2
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS - Failed
-- Performing Test AWS_HAVE_MSVC_MULX
-- Performing Test AWS_HAVE_MSVC_MULX - Failed
-- Performing Test AWS_HAVE_WINAPI_DESKTOP
-- Performing Test AWS_HAVE_WINAPI_DESKTOP - Failed
-- Performing Test AWS_ARCH_INTEL
-- Performing Test AWS_ARCH_INTEL - Failed
-- Performing Test AWS_ARCH_ARM64
-- Performing Test AWS_ARCH_ARM64 - Failed
-- Performing Test AWS_ARCH_ARM32
-- Performing Test AWS_ARCH_ARM32 - Success
-- Performing Test AWS_HAVE_GCC_INLINE_ASM
-- Performing Test AWS_HAVE_GCC_INLINE_ASM - Success
-- Performing Test AWS_HAVE_AUXV
-- Performing Test AWS_HAVE_AUXV - Success
-- Performing Test AWS_HAVE_EXECINFO
-- Performing Test AWS_HAVE_EXECINFO - Success
-- Performing Test AWS_SHOULD_DISABLE_STRINGOP_OVERFLOW
-- Performing Test AWS_SHOULD_DISABLE_STRINGOP_OVERFLOW - Failed
-- Performing Test HAVE_M_AVX2_FLAG
-- Performing Test HAVE_M_AVX2_FLAG - Failed
-- Performing Test HAVE_AVX2_INTRINSICS
-- Performing Test HAVE_AVX2_INTRINSICS - Failed
-- Performing Test HAVE_MM256_EXTRACT_EPI64
-- Performing Test HAVE_MM256_EXTRACT_EPI64 - Failed
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Performing Test HAS_MOUTLINE_ATOMICS
-- Performing Test HAS_MOUTLINE_ATOMICS - Failed
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Performing Test HAS_WGNU
-- Performing Test HAS_WGNU - Failed
-- Performing Test HAVE_SYSCONF
-- Performing Test HAVE_SYSCONF - Success
-- Looking for pthread_attr_setaffinity_np
-- Looking for pthread_attr_setaffinity_np - found
-- Performing Test HAS_SANITIZERS
-- Performing Test HAS_SANITIZERS - Failed
-- Packaging currently only supported on Fedora.
-- The C compiler identification is GNU 4.9.1
-- Check for working C compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
-- Check for working C compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -- broken
CMake Error at /usr/local/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake:60 (message):
The C compiler

"/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc"

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_a657f/fast && /usr/bin/make -f CMakeFiles/cmTC_a657f.dir/build.make CMakeFiles/cmTC_a657f.dir/build
make[1]: Entering directory '/home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_a657f.dir/testCCompiler.c.o
/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc   -O2 -pipe -g -feliminate-unused-debug-types  -fPIE   -o CMakeFiles/cmTC_a657f.dir/testCCompiler.c.o   -c /home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMak-- Configuring incomplete, errors occurred!

See also "/home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMakeOutput.log".
See also "/home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMakeError.log".
eTmp/testCCompiler.c
Linking C executable cmTC_a657f
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a657f.dir/link.txt --verbose=1
/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -O2 -pipe -g -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -rdynamic CMakeFiles/cmTC_a657f.dir/testCCompiler.c.o -o cmTC_a657f
/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: error: cmTC_a657f uses VFP register arguments, CMakeFiles/cmTC_a657f.dir/testCCompiler.c.o does not
/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: failed to merge target specific data of file CMakeFiles/cmTC_a657f.dir/testCCompiler.c.o
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_a657f.dir/build.make:86: recipe for target 'cmTC_a657f' failed
make[1]: *** [cmTC_a657f] Error 1
make[1]: Leaving directory '/home/wildwindy/NFS/AWSSDK/sdkv2/build/crt/aws-crt-cpp/aws-lc/CMakeFiles/CMakeTmp'
Makefile:121: recipe for target 'cmTC_a657f/fast' failed
make: *** [cmTC_a657f/fast] Error 2

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:23 (enable_language)

CMake Error at crt/aws-crt-cpp/crt/aws-c-cal/cmake/modules/aws-lc.cmake:25 (message):
Failed to configure aws-lc
Call Stack (most recent call first):
crt/aws-crt-cpp/CMakeLists.txt:105 (include)

-- Configuring incomplete, errors occurred!
See also "/home/wildwindy/NFS/AWSSDK/sdkv2/build/CMakeFiles/CMakeOutput.log".
See also "/home/wildwindy/NFS/AWSSDK/sdkv2/build/CMakeFiles/CMakeError.log".

Plans to replace code under the OpenSSL license?

OpenSSL 3.0 has relicensed under Apache-2.0. aws-lc is a fork of BoringSSL which is a fork of pre-3.0 OpenSSL, so it inherits the old incompatible OpenSSL license. Do you have any plans to replace the code inherited from BoringSSL with code from OpenSSL 3.0, so that users of aws-lc can have the compatibility of Apache-2.0 without dealing with OpenSSL license incompatibilities?

GCC12 support for Yocto Linux

Problem:

Yocto mainline switched from GCC11 to GCC12 and now aws-lc is not buildable anymore in meta-aws
Wondering if this is a real bug or just a false positive.
When are you planning to support GCC12?

Relevant details

AWS-LC commit: 0.0.2 to 1.1.0

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

  • CPU architecture: x86-64

Build log:

| FAILED: crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.o
| /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc -DBORINGSSL_DISPATCH_TEST -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_SHARED_LIBRARY -I/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/git/crypto/../include -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security  --sysroot=/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0=/usr/src/debug/aws-lc/1.1.0-r0                      -fdebug-prefix-map=/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0=/usr/src/debug/aws-lc/1.1.0-r0                      -fdebug-prefix-map=/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot=                      -fdebug-prefix-map=/home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot-native=  -std=c99 -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Werror -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wwrite-strings -Wformat-security -Wunused-result -Wno-cast-function-type  -DAWS_LC_STDALIGN_AVAILABLE -DAWS_LC_BUILTIN_SWAP_SUPPORTED -Wvla -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wformat-signedness -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -D_XOPEN_SOURCE=700 -fPIC -MD -MT crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.o -MF crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.o.d -o crypto/CMakeFiles/crypto_objects.dir/x509v3/v3_utl.c.o -c /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/git/crypto/x509v3/v3_utl.c
| In file included from /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot/usr/include/string.h:535,
|                  from /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/git/crypto/x509v3/v3_utl.c:63:
| In function 'memset',
|     inlined from 'OPENSSL_memset' at /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/git/crypto/x509v3/../internal.h:845:10,
|     inlined from 'ipv6_from_asc' at /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/git/crypto/x509v3/v3_utl.c:1282:9:
| /home/ubuntu/yocto/build/tmp/work/core2-64-poky-linux/aws-lc/1.1.0-r0/recipe-sysroot/usr/include/bits/string_fortified.h:59:10: error: '__builtin_memset' forming offset 16 is out of the bounds [0, 16] [-Werror=array-bounds]
|    59 |   return __builtin___memset_chk (__dest, __ch, __len,
|       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|    60 |                                  __glibc_objsize0 (__dest));
|       |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~
| cc1: all warnings being treated as errors

QUIC support

I am planning to add aws-lc support to ngtcp2. Does aws-lc support quic ?

Not able to crosscompile for armv7l

Problem:

Hello!

I'm trying to crosscompile the aws-iot-device-sdk-cpp-v2 code (main branch) for an armv7l

To start, I was following the instructions, and with the following script I compiled ir for x86_64 with no problems:

#!/bin/sh

WORKSPACE=/home/jose/repos/sdk-cpp-workspace
BUILD_TYPE="Debug"

cmake -DCMAKE_INSTALL_PREFIX=$WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_DEPS=ON ../aws-iot-device-sdk-cpp-v2
cmake --build . --target install --config $BUILD_TYPE

So then, I created a new script to crosscompile using a toolchain that I'm already using to crosscompile another projects:

#!/bin/sh

WORKSPACE=/home/jose/repos/sdk-cpp-workspace
BUILD_TYPE="Debug"

. /opt/poky/2.2.2/environment-setup-cortexa7hf-neon-vfpv4-poky-linux-gnueabi
cmake -DCMAKE_PREFIX_PATH=$WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_TOOLCHAIN_FILE=TRUE -DDISCARD_USER_INCLUDE=TRUE ../aws-iot-device-sdk-cpp-v2 
cmake --build . --target install

And doing it it seems that the aws-lc submodule is trying to compile an x86 assembly file.

Am I doing something wrong?

Thank you very much!

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

  • CPU architecture: ARMv7
  • CPU name: ARMv7 Processor rev 4
  • OS: Poky (Yocto Project Reference Distro) 2.2.2 (morty) - Linux 4.9.30

Build log:

-- The C compiler identification is GNU 6.2.0
-- The CXX compiler identification is GNU 6.2.0
-- Check for working C compiler: /opt/poky/2.2.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
-- Check for working C compiler: /opt/poky/2.2.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/poky/2.2.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
-- Check for working CXX compiler: /opt/poky/2.2.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- AWS CRT C++ v0.14.1
-- CMake 3.16.3
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS
-- Performing Test AWS_HAVE_GCC_OVERFLOW_MATH_EXTENSIONS - Failed
-- Performing Test AWS_HAVE_MSVC_MULX
-- Performing Test AWS_HAVE_MSVC_MULX - Failed
-- Performing Test AWS_HAVE_WINAPI_DESKTOP
-- Performing Test AWS_HAVE_WINAPI_DESKTOP - Failed
-- Performing Test AWS_ARCH_INTEL
-- Performing Test AWS_ARCH_INTEL - Failed
-- Performing Test AWS_ARCH_ARM64
-- Performing Test AWS_ARCH_ARM64 - Failed
-- Performing Test AWS_ARCH_ARM32
-- Performing Test AWS_ARCH_ARM32 - Success
-- Performing Test AWS_HAVE_GCC_INLINE_ASM
-- Performing Test AWS_HAVE_GCC_INLINE_ASM - Success
-- Performing Test AWS_HAVE_AUXV
-- Performing Test AWS_HAVE_AUXV - Success
-- Performing Test AWS_HAVE_EXECINFO
-- Performing Test AWS_HAVE_EXECINFO - Success
-- Performing Test AWS_SHOULD_DISABLE_STRINGOP_OVERFLOW
-- Performing Test AWS_SHOULD_DISABLE_STRINGOP_OVERFLOW - Failed
-- Performing Test HAVE_M_AVX2_FLAG
-- Performing Test HAVE_M_AVX2_FLAG - Failed
-- Performing Test HAVE_AVX2_INTRINSICS
-- Performing Test HAVE_AVX2_INTRINSICS - Failed
-- Performing Test HAVE_MM256_EXTRACT_EPI64
-- Performing Test HAVE_MM256_EXTRACT_EPI64 - Failed
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Performing Test HAS_MOUTLINE_ATOMICS
-- Performing Test HAS_MOUTLINE_ATOMICS - Failed
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT
-- Performing Test HAS_64BIT_FILE_OFFSET_BY_DEFAULT - Failed
-- Performing Test HAS_64BIT_FILE_OFFSET_VIA_DEFINES
-- Performing Test HAS_64BIT_FILE_OFFSET_VIA_DEFINES - Success
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Performing Test HAS_WGNU
-- Performing Test HAS_WGNU - Failed
-- Performing Test HAVE_SYSCONF
-- Performing Test HAVE_SYSCONF - Success
-- Looking for pthread_attr_setaffinity_np
-- Looking for pthread_attr_setaffinity_np - found
-- Performing Test HAS_SANITIZERS
-- Performing Test HAS_SANITIZERS - Failed
-- Packaging currently only supported on Fedora.
-- Checking for module 'libunwind-generic'
--   No package 'libunwind-generic' found
libunwind not found. Disabling unwind tests.
-- 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/
-- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
-- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- The ASM compiler identification is GNU
-- Found assembler: /opt/poky/2.2.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
Copying platform assembly files from /home/jose/repos/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2/crt/aws-crt-cpp/crt/aws-lc/generated-src/linux-x86/crypto/ to /home/jose/repos/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2-cross-build/crt/aws-crt-cpp/crt/aws-lc/crypto
-- S2N found target: crypto
-- Using libcrypto from AWS-LC
-- Performing Test AWS_ARM32_CRC
-- Performing Test AWS_ARM32_CRC - Failed
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    DISCARD_USER_INCLUDE
    USE_TOOLCHAIN_FILE


-- Build files have been written to: /home/jose/repos/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2-cross-build
Scanning dependencies of target aws-c-common
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/allocator.c.o
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/allocator_sba.c.o
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/arch/arm/asm/cpuid.c.o
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/array_list.c.o
[  0%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/assert.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/byte_buf.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/cache.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/codegen.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/command_line_parser.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/common.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/condition_variable.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/date_time.c.o
[  1%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/device_random.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/encoding.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/error.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/fifo_cache.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/hash_table.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/lifo_cache.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/linked_hash_table.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_channel.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_formatter.c.o
[  2%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/log_writer.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/logging.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/lru_cache.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/math.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/memtrace.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/clock.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/condition_variable.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/device_random.c.o
[  3%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/environment.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/file.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/mutex.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/process.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/rw_lock.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/system_info.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/thread.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/posix/time.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/priority_queue.c.o
[  4%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/process_common.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/promise.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/ref_count.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/resource_name.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/ring_buffer.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/statistics.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/string.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/task_scheduler.c.o
[  5%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/thread_scheduler.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/thread_shared.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/uuid.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-common/CMakeFiles/aws-c-common.dir/source/xml_parser.c.o
[  6%] Linking C static library libaws-c-common.a
[  6%] Built target aws-c-common
Scanning dependencies of target aws-c-compression
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-compression/CMakeFiles/aws-c-compression.dir/source/compression.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-compression/CMakeFiles/aws-c-compression.dir/source/huffman.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-c-compression/CMakeFiles/aws-c-compression.dir/source/huffman_testing.c.o
[  6%] Linking C static library libaws-c-compression.a
[  6%] Built target aws-c-compression
Scanning dependencies of target global_target
[  6%] Built target global_target
Scanning dependencies of target fipsmodule
[  6%] Building C object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
[  6%] Building C object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[  6%] Building ASM object crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o
/home/jose/repos/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2-cross-build/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/aesni-x86.S: Assembler messages:
/home/jose/repos/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2-cross-build/crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/aesni-x86.S:2513: Error: junk at end of line, first unrecognized character is `,'
make[2]: *** [crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:89: crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1621: crt/aws-crt-cpp/crt/aws-lc/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

No release build on 32bit with gcc11+

Hello,

I've tried opening an issue on aws-crt-python that it fails to build with the latest release of aws-lc, but looking at their issues it looks like nobody's monitoring them as none are getting replies so I'm trying my luck here. Perhaps you have a way to reach out?

Either way a new release of aws-lc would be appreciated so they can have a chance to upgrade, as the commit mentioned below is not present in any release right now (it's not in v1.1.0 either); the first thing to do would probably be a new tag here.

Here's the original report: awslabs/aws-crt-python#382
I've copied the content below for convenience:

it was brought to my attention that aws-crt-python fails to build on 32 bit alpine 3.16 (with gcc 11)

This fails on fips headers in aws-lc, which was fixed in 01ae506 but is not present in the 1.0.2 release currently used by aws-crt-python
(see #509 and #487 )

Would it be possible to coordinate some backporting for it (I've checked the commit cleanly applies on cherry-pick to 1.0.2 tag and project build with just that) and update the submodule here for pip?

Thanks!

For reference here's the error with pip along with reproducing steps with a container

$ podman run -ti docker.io/i386/alpine:3.16 sh
/ # apk add python3-dev py3-pip make cmake gcc g++
...
/ # pip3 install awsiotsdk 
Collecting awsiotsdk
  Downloading awsiotsdk-1.11.5-py3-none-any.whl (59 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.2/59.2 kB 794.3 kB/s eta 0:00:00
Collecting awscrt==0.14.0
  Downloading awscrt-0.14.0.tar.gz (20.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 20.0/20.0 MB 18.0 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for awscrt, since package 'wheel' is not installed.
Installing collected packages: awscrt, awsiotsdk
  Running setup.py install for awscrt ... error
  error: subprocess-exited-with-error
  
  × Running setup.py install for awscrt did not run successfully.
  │ exit code: 1
  ╰─> [308 lines of output]
      running install
      /usr/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.10
      creating build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/__init__.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/_test.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/auth.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/checksums.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/common.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/crypto.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/exceptions.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/http.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/io.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/mqtt.py -> build/lib.linux-x86_64-3.10/awscrt
      copying awscrt/s3.py -> build/lib.linux-x86_64-3.10/awscrt
      creating build/lib.linux-x86_64-3.10/awscrt/eventstream
      copying awscrt/eventstream/__init__.py -> build/lib.linux-x86_64-3.10/awscrt/eventstream
      copying awscrt/eventstream/rpc.py -> build/lib.linux-x86_64-3.10/awscrt/eventstream
      running build_ext
      --- Building dependency: aws-lc ---
      > /usr/bin/cmake -H/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc -Bbuild/temp.linux-x86_64-3.10/deps/aws-lc -DCMAKE_C_FLAGS=-m32 -DCMAKE_PREFIX_PATH=/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/build/temp.linux-x86_64-3.10/deps/install -DCMAKE_INSTALL_PREFIX=build/temp.linux-x86_64-3.10/deps/install -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_LIBSSL=OFF -DDISABLE_PERL=ON -DDISABLE_GO=ON
      -- The C compiler identification is GNU 11.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Checking for module 'libunwind-generic'
      --   Package 'libunwind-generic', required by 'virtual:world', not found
      libunwind not found. Disabling unwind tests.
      -- 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 '-O2 -g -DNDEBUG'.
      -- Test stdalign_check.c passed, enabling AWS_LC_STDALIGN_AVAILABLE
      -- Test builtin_swap_check.c passed, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
      -- The ASM compiler identification is GNU
      -- Found assembler: /usr/bin/cc
      Copying platform assembly files from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/generated-src/linux-x86/crypto/ to /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/build/temp.linux-x86_64-3.10/deps/aws-lc/crypto
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/build/temp.linux-x86_64-3.10/deps/aws-lc
      > /usr/bin/cmake --build build/temp.linux-x86_64-3.10/deps/aws-lc --config RelWithDebInfo --target install
      [  0%] Built target global_target
      Scanning dependencies of target fipsmodule
      [  1%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
      [  1%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86.S.o
      [  1%] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
      [  2%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bn-586.S.o
      [  2%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/co-586.S.o
      [  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-ssse3-x86.S.o
      [  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86.S.o
      [  3%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-586.S.o
      [  4%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-586.S.o
      [  5%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-586.S.o
      [  5%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-586.S.o
      [  5%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-x86.S.o
      [  6%] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86-mont.S.o
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: error: argument 1 of type 'uint32_t[12]' {aka 'unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:27:51: note: previously declared as 'uint32_t[6]' {aka 'unsigned int[6]'}
         27 | OPENSSL_UNUSED static void fiat_p384_opp(uint32_t out1[6], const uint32_t arg1[6]);
            |                                          ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: error: argument 2 of type 'const uint32_t[12]' {aka 'const unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:27:75: note: previously declared as 'const uint32_t[6]' {aka 'const unsigned int[6]'}
         27 | OPENSSL_UNUSED static void fiat_p384_opp(uint32_t out1[6], const uint32_t arg1[6]);
            |                                                            ~~~~~~~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9430:40: error: argument 1 of type 'uint32_t[12]' {aka 'unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       9430 | static void fiat_p384_set_one(uint32_t out1[12]) {
            |                               ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:28:55: note: previously declared as 'uint32_t[6]' {aka 'unsigned int[6]'}
         28 | OPENSSL_UNUSED static void fiat_p384_set_one(uint32_t out1[6]);
            |                                              ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9455:37: error: argument 1 of type 'uint32_t[13]' {aka 'unsigned int[13]'} with mismatched bound [-Werror=array-parameter=]
       9455 | static void fiat_p384_msat(uint32_t out1[13]) {
            |                            ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:29:52: note: previously declared as 'uint32_t[7]' {aka 'unsigned int[7]'}
         29 | OPENSSL_UNUSED static void fiat_p384_msat(uint32_t out1[7]);
            |                                           ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:56: error: argument 2 of type 'uint32_t[13]' {aka 'unsigned int[13]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                               ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:71: note: previously declared as 'uint32_t[7]' {aka 'unsigned int[7]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                              ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:75: error: argument 3 of type 'uint32_t[13]' {aka 'unsigned int[13]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                  ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:89: note: previously declared as 'uint32_t[7]' {aka 'unsigned int[7]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:94: error: argument 4 of type 'uint32_t[12]' {aka 'unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                     ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:107: note: previously declared as 'uint32_t[6]' {aka 'unsigned int[6]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                  ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:113: error: argument 5 of type 'uint32_t[12]' {aka 'unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                                        ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:125: note: previously declared as 'uint32_t[6]' {aka 'unsigned int[6]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                                    ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:153: error: argument 7 of type 'const uint32_t[13]' {aka 'const unsigned int[13]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                                                                          ~~~~~~~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:164: note: previously declared as 'const uint32_t[7]' {aka 'const unsigned int[7]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                                                                     ~~~~~~~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:178: error: argument 8 of type 'const uint32_t[13]' {aka 'const unsigned int[13]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                                                                                                   ~~~~~~~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:188: note: previously declared as 'const uint32_t[7]' {aka 'const unsigned int[7]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                                                                                             ~~~~~~~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:203: error: argument 9 of type 'const uint32_t[12]' {aka 'const unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                                                                                                                            ~~~~~~~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:212: note: previously declared as 'const uint32_t[6]' {aka 'const unsigned int[6]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                                                                                                                     ~~~~~~~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:9500:228: error: argument 10 of type 'const uint32_t[12]' {aka 'const unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
       9500 | static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[13], uint32_t out3[13], uint32_t out4[12], uint32_t out5[12], uint32_t arg1, const uint32_t arg2[13], const uint32_t arg3[13], const uint32_t arg4[12], const uint32_t arg5[12]) {
            |                                                                                                                                                                                                                     ~~~~~~~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:30:236: note: previously declared as 'const uint32_t[6]' {aka 'const unsigned int[6]'}
         30 | OPENSSL_UNUSED static void fiat_p384_divstep(uint32_t* out1, uint32_t out2[7], uint32_t out3[7], uint32_t out4[6], uint32_t out5[6], uint32_t arg1, const uint32_t arg2[7], const uint32_t arg3[7], const uint32_t arg4[6], const uint32_t arg5[6]);
            |                                                                                                                                                                                                                             ~~~~~~~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:10129:48: error: argument 1 of type 'uint32_t[12]' {aka 'unsigned int[12]'} with mismatched bound [-Werror=array-parameter=]
      10129 | static void fiat_p384_divstep_precomp(uint32_t out1[12]) {
            |                                       ~~~~~~~~~^~~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:31:63: note: previously declared as 'uint32_t[6]' {aka 'unsigned int[6]'}
         31 | OPENSSL_UNUSED static void fiat_p384_divstep_precomp(uint32_t out1[6]);
            |                                                      ~~~~~~~~~^~~~~~~
      In file included from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/p384.c:47,
                       from /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/bcm.c:89:
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h: In function 'fiat_p384_opp':
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5551:3: error: array subscript 6 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5551 |   fiat_p384_subborrowx_u32(&x13, &x14, x12, 0x0, (arg1[6]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5552:3: error: array subscript 7 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5552 |   fiat_p384_subborrowx_u32(&x15, &x16, x14, 0x0, (arg1[7]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5553:3: error: array subscript 8 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5553 |   fiat_p384_subborrowx_u32(&x17, &x18, x16, 0x0, (arg1[8]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5554:3: error: array subscript 9 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5554 |   fiat_p384_subborrowx_u32(&x19, &x20, x18, 0x0, (arg1[9]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5555:3: error: array subscript 10 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5555 |   fiat_p384_subborrowx_u32(&x21, &x22, x20, 0x0, (arg1[10]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5556:3: error: array subscript 11 is outside array bounds of 'const uint32_t[6]' {aka 'const unsigned int[6]'} [-Werror=array-bounds]
       5556 |   fiat_p384_subborrowx_u32(&x23, &x24, x22, 0x0, (arg1[11]));
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:61: note: while referencing 'arg1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                                              ~~~~~~~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5576:7: error: array subscript 6 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5576 |   out1[6] = x38;
            |   ~~~~^~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5577:7: error: array subscript 7 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5577 |   out1[7] = x40;
            |   ~~~~^~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5578:7: error: array subscript 8 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5578 |   out1[8] = x42;
            |   ~~~~^~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5579:7: error: array subscript 9 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5579 |   out1[9] = x44;
            |   ~~~~^~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5580:7: error: array subscript 10 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5580 |   out1[10] = x46;
            |   ~~~~^~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5581:7: error: array subscript 11 is outside array bounds of 'uint32_t[6]' {aka 'unsigned int[6]'} [-Werror=array-bounds]
       5581 |   out1[11] = x48;
            |   ~~~~^~~~
      /tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/crt/aws-lc/crypto/fipsmodule/ec/../../../third_party/fiat/p384_32.h:5495:36: note: while referencing 'out1'
       5495 | static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) {
            |                           ~~~~~~~~~^~~~~~~~
      cc1: all warnings being treated as errors
      make[2]: *** [crypto/fipsmodule/CMakeFiles/fipsmodule.dir/build.make:76: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o] Error 1
      make[1]: *** [CMakeFiles/Makefile2:205: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/all] Error 2
      make: *** [Makefile:136: all] Error 2
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/setup.py", line 343, in <module>
          setuptools.setup(
        File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 153, in setup
          return distutils.core.setup(**attrs)
        File "/usr/lib/python3.10/distutils/core.py", line 148, in setup
          dist.run_commands()
        File "/usr/lib/python3.10/distutils/dist.py", line 966, in run_commands
          self.run_command(cmd)
        File "/usr/lib/python3.10/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/usr/lib/python3.10/site-packages/setuptools/command/install.py", line 68, in run
          return orig.install.run(self)
        File "/usr/lib/python3.10/distutils/command/install.py", line 568, in run
          self.run_command('build')
        File "/usr/lib/python3.10/distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/usr/lib/python3.10/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/usr/lib/python3.10/distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
        File "/usr/lib/python3.10/distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/usr/lib/python3.10/distutils/dist.py", line 985, in run_command
          cmd_obj.run()
        File "/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/setup.py", line 266, in run
          self._build_dependency(lib, dep_build_dir, dep_install_path)
        File "/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/setup.py", line 259, in _build_dependency
          self._build_dependency_impl(aws_lib, build_dir, install_path)
        File "/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/setup.py", line 218, in _build_dependency_impl
          run_cmd(build_cmd)
        File "/tmp/pip-install-7v56nple/awscrt_ba9ceee58b334292977263bfff6d428b/setup.py", line 29, in run_cmd
          subprocess.check_call(args)
        File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/usr/bin/cmake', '--build', 'build/temp.linux-x86_64-3.10/deps/aws-lc', '--config', 'RelWithDebInfo', '--target', 'install']' returned non-zero exit status 2.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> awscrt

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Warnings when building for Arm under gcc11

Problem:

While building for arm using gcc11, we are running into several warnings. We can disable them locally in order to stay unblocked, but it would be ideal if they could get cleaned up eventually.

Relevant details

This is possibly not Arm-specific, but that may be the only CI build using gcc 11 at the moment.

AWS-LC commit: d0a5455

stringop-overflow warning:
https://github.com/awslabs/aws-crt-java/runs/2958051434#step:2:401

array-parameter warning:
https://github.com/awslabs/aws-crt-java/runs/2964997874#step:2:423

System information: ubuntu 18 cross compiling Aws-crt-java for arm v6, v7, and v8

Build log:
See links per-warning.

Android ignores the "-Wa, --noexecstack" flag so remove or suppress warnings.

Problem:

This commit (#299) removed "-Wa, --noexecstack" from Android builds in fips but doesn't cover the CMake flag in other areas. This causes a significant number of warnings to be printed during Android builds using aws-lc.

Proposing we either apply this logic individually to other areas and CMakeLists across aws-lc, or we could suppress this specific unused argument warning instead of stripping it from Android because the warning is expected and the argument is ignored by Android builds. Ignoring can be accomplished by adding

    # Since "--Wa,--noexecstack" is not used during the preprocessor step of Android (because assembler is not invoked),
    # Clang reports that argument as unused. We quiet the unused argument warning for Android as it's expected behavior.
    if(ANDROID)
      set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Qunused-arguments")
    endif()

on line 33 of aws-lc->crypto->CMakeLists.txt just after

set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")

This would suppress this expected unused argument warning on Android builds.

Failed to build AWS-LC on Ubuntu

Problem:

Dockerfile.txt
The VM was created with m5.2xlarge and enclave enable. nitro-cli was built and installed successfully and verified by docker hello.
Built the docker and stopped by the error below:
[117/430] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
[118/430] Generating err_data.c
FAILED: crypto/err_data.c
cd /aws-lc/crypto/err && /usr/local/go/bin/go run err_data_generate.go > /aws-lc/build/crypto/err_data.c
go: github.com/ethereum/[email protected] requires
github.com/getsentry/[email protected] requires
github.com/kataras/iris/[email protected]: reading github.com/kataras/iris/go.mod at revision v12.2.0-beta5: unknown revision v12.2.0-beta5
ninja: build stopped: subcommand failed.
The command '/bin/bash -c cmake --build aws-lc/build --parallel $(nproc) --target install' returned a non-zero code: 1

Relevant details

AWS-LC commit: (6b1bce0...)

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

  • CPU architecture: ( x86-64)
  • CPU name: (not sure)
  • OS: (Ubuntu 20.04)
  • Instance type:m5.2xlarge
    Build log:
  • The log tells compiler and version. It's available when building awslc with CMake.
 ---> Running in fcab28798f3e
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 9.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Perl: /usr/bin/perl (found version "5.30.0")
-- Checking for module 'libunwind-generic'
--   Found libunwind-generic, version 1.21
-- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
-- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- 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: /aws-lc/build

getrandom is not used on FreeBSD >= 12

Problem:

This commit added support RNG for FreeBSD c953ee4
FreeBSD version check isn't working. It always returns /dev/urandom in crypto/fipsmodule/rand/urandom.c;
During build my projects with crate rustls and aws-lc I found that the value __FreeBSD__ is 8 and I don't know why.

FreeBSD 14.0
predefined version looks OK:

$ > cc -dM -E -</dev/null | grep -i freebsd
#define __FreeBSD__ 14
...

A simple code to check what is actually used urandom or getrandom:

use std::sync::Arc;

  fn main() {
      let host = "www.rust-lang.org".try_into().unwrap();

      let roots = rustls::RootCertStore::empty();
      let config = rustls::ClientConfig::builder()
          .with_root_certificates(roots)
          .with_no_client_auth();

      // Enter capability mode
      // see https://man.freebsd.org/cgi/man.cgi?capsicum
      unsafe {
          libc::cap_enter();
      }

      // Fail, because we can't open /dev/urandom in capability mode,
      // but this must works with getrandom.
      rustls::ClientConnection::new(Arc::new(config), host).unwrap();
  }

Output:

 ...
failed to open /dev/urandom: Not permitted in capability mode
...

Solution:

something like that solves my problem:

--- a/crypto/fipsmodule/rand/urandom.c
+++ b/crypto/fipsmodule/rand/urandom.c
@@ -71,7 +71,8 @@

 #if defined(OPENSSL_FREEBSD)
 #define URANDOM_BLOCKS_FOR_ENTROPY
-#if __FreeBSD__ >= 12
+#include "sys/param.h"
+#if __FreeBSD_version >= 1200000
 // getrandom is supported in FreeBSD 12 and up.
 #define FREEBSD_GETRANDOM
 #include <sys/random.h>

Remove NASM requirement for windows builds

Problem:

When attempting to switch s2n-quic to use aws-lc-rs on all platforms, I ran into an issue for windows where NASM is required to be installed in the environment (see ci build).

While I see the aws-lc-rs CI has worked around this issue by installing NASM, this is an additional dependency that ring doesn't require, and could be considered an additional hurdle to aws-lc-rs being a drop-in ring replacement. Looking at the ring build script, it looks like they've pre-generated files to avoid the NASM dependency. I think it would be best to do the same in aws-lc-rs.

Build output

  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.12.0" "-G" "Visual Studio 17 2022" "-Thost=x64" "-Ax64" "-DBUILD_SHARED_LIBS=0" "-DBORINGSSL_PREFIX=aws_lc_0_12_0_" "-DBORINGSSL_PREFIX_HEADERS=C:\\Users\\runneradmin\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\aws-lc-sys-0.12.0\\generated-include" "-DBUILD_TESTING=OFF" "-DBUILD_LIBSSL=OFF" "-DDISABLE_PERL=ON" "-DDISABLE_GO=ON" "-DCMAKE_INSTALL_PREFIX=D:\\a\\s2n-quic\\s2n-quic\\target\\debug\\build\\aws-lc-sys-47a8a1f3d5620838\\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.37.32825.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.37.32822/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 unknown
  -- Didn't find assembler
  -- Configuring incomplete, errors occurred!

  --- 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:72 (enable_language):
    No CMAKE_ASM_NASM_COMPILER could be found.



  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/79e9716c980570bfd1f666e3b16ac583f0168962/library\std\src\panicking.rs:597
     1: core::panicking::panic_fmt
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/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::prepare_cmake_build::{{closure}}
     6: build_script_main::prepare_cmake_build::{{closure}}
     7: core::ops::function::FnOnce::call_once
     8: <core::result::Result<T,F> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible,E>>>::from_residual
     9: std::rt::lang_start
    10: std::rt::lang_start_internal::closure$2
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library\std\src\rt.rs:148
    11: std::panicking::try::do_call
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library\std\src\panicking.rs:504
    12: std::panicking::try
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library\std\src\panicking.rs:468
    13: std::panic::catch_unwind
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library\std\src\panic.rs:142
    14: std::rt::lang_start_internal
               at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/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
    18: __scrt_common_main_seh
               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
    19: BaseThreadInitThunk
    20: RtlUserThreadStart
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...

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.