Skip to content

Install fails with CMake Warnings and missing s2n files #3229

Closed
@nabelekt

Description

@nabelekt

Describe the bug

I am trying to do a fresh install of the latest SDK version, on Ubuntu 24.04, with the following script:

version_to_install="1.11.471"

apt update
apt install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev -y

cd ../build
if [ -d "aws-sdk-cpp" ]; then
    rm -rf aws-sdk-cpp
fi
git clone --recurse-submodules -j8 https://github.com/aws/aws-sdk-cpp --branch $version_to_install
mkdir aws_sdk_build
cd aws_sdk_build
# DLEGACY_BUILD=OFF shouldn't be needed for v1.12+
cmake ../aws-sdk-cpp \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_PREFIX_PATH=/usr/local/ \
    -DCMAKE_INSTALL_PREFIX=/usr/local/ \
    -DBUILD_ONLY="core;iot;s3;dynamodb" \
    -DLEGACY_BUILD=ON
    # -DLEGACY_BUILD=OFF
make
make install
cd ..
rm aws-sdk-cpp -rf
rm aws_sdk_build -rf

I get several CMake warnings like this:

CMake Warning at crt/aws-crt-cpp/CMakeLists.txt:284 (add_library):
  Cannot generate a safe runtime search path for target aws-crt-cpp because
  there is a cycle in the constraint graph:

    dir 0 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-mqtt]
    dir 1 is [/root/gateway/build/aws_sdk_build/lib]
      dir 6 must precede it due to runtime library [libs2n.so.1]
    dir 2 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-s3]
    dir 3 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-auth]
    dir 4 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-http]
    dir 5 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-io]
    dir 6 is [/usr/local/lib]
      dir 0 must precede it due to runtime library [libaws-c-mqtt.so.1.0.0]
      dir 1 must precede it due to runtime library [libaws-c-event-stream.so.1.0.0]
      dir 2 must precede it due to runtime library [libaws-c-s3.so.0unstable]
      dir 3 must precede it due to runtime library [libaws-c-auth.so.1.0.0]
      dir 4 must precede it due to runtime library [libaws-c-http.so.1.0.0]
      dir 5 must precede it due to runtime library [libaws-c-io.so.1.0.0]
      dir 7 must precede it due to runtime library [libaws-c-compression.so.1.0.0]
      dir 8 must precede it due to runtime library [libaws-c-cal.so.1.0.0]
      dir 9 must precede it due to runtime library [libaws-c-sdkutils.so.1.0.0]
      dir 10 must precede it due to runtime library [libaws-checksums.so.1.0.0]
      dir 11 must precede it due to runtime library [libaws-c-common.so.1]
    dir 7 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-compression]
    dir 8 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-cal]
    dir 9 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-sdkutils]
    dir 10 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-checksums]
    dir 11 is [/root/gateway/build/aws_sdk_build/crt/aws-crt-cpp/crt/aws-c-common]

  Some of these libraries may not be found correctly.

And then, the build eventually fails with errors:

[ 21%] Building C object crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/source/s2n/s2n_tls_channel_handler.c.o
/root/gateway/build/aws-sdk-cpp/crt/aws-crt-cpp/crt/aws-c-io/source/s2n/s2n_tls_channel_handler.c:26:14: fatal error: s2n/unstable/cleanup.h: No such file or directory
   26 | #    include <s2n/unstable/cleanup.h>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/build.make:356: crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/source/s2n/s2n_tls_channel_handler.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:691: crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
[ 12%] Built target aws-c-common
[ 13%] Built target aws-checksums
[ 15%] Built target aws-c-sdkutils
[ 17%] Built target aws-c-cal
[ 18%] Building C object crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/source/s2n/s2n_tls_channel_handler.c.o
/root/gateway/build/aws-sdk-cpp/crt/aws-crt-cpp/crt/aws-c-io/source/s2n/s2n_tls_channel_handler.c:26:14: fatal error: s2n/unstable/cleanup.h: No such file or directory
   26 | #    include <s2n/unstable/cleanup.h>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/build.make:356: crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/source/s2n/s2n_tls_channel_handler.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:691: crt/aws-crt-cpp/crt/aws-c-io/CMakeFiles/aws-c-io.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

The full build output is attached.

Is there something I should be doing differently to build and install?
Thanks.

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

Build finishes successfully.

Current Behavior

Build errors out.

Reproduction Steps

Run the script given at the top on Ubuntu 24.04. May need to change the ../build path.

Possible Solution

No response

Additional Information/Context

No response

AWS CPP SDK version used

1.11.471

Compiler and Version used

13.2.0

Operating System and version

Ubuntu 24.04.1

Edit: Attaching log
aws_build_failure.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-problemproblems with building this sdkp2This is a standard priority issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions