diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4fc023abd..37879946f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,11 @@ env: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: us-east-1 +# cancel in-progress builds after a new commit +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: linux-compat-use-openssl: runs-on: ubuntu-22.04 # latest @@ -128,12 +133,15 @@ jobs: linux-shared-libs: runs-on: ubuntu-22.04 # latest + strategy: + matrix: + compiler: [gcc-4.8, gcc-11] # oldest, latest steps: # We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages - name: Build ${{ env.PACKAGE_NAME }} run: | aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh - ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON + ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DBUILD_SHARED_LIBS=ON linux-openssl-static: runs-on: ubuntu-22.04 # latest diff --git a/CMakeLists.txt b/CMakeLists.txt index 560ed5259..9f062caa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,8 +83,8 @@ if(BUILD_DEPS) add_subdirectory(crt/aws-c-common) if(UNIX AND NOT APPLE AND NOT BYO_CRYPTO) - include(AwsPrebuildDependency) if(NOT USE_OPENSSL) + include(AwsPrebuildDependency) set(AWSLC_CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") @@ -116,14 +116,8 @@ if(BUILD_DEPS) ) endif() - # prebuild s2n-tls. - aws_prebuild_dependency( - DEPENDENCY_NAME S2N - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/crt/s2n - CMAKE_ARGUMENTS - -DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF - -DBUILD_TESTING=OFF - ) + set(UNSAFE_TREAT_WARNINGS_AS_ERRORS OFF CACHE BOOL "Disable warnings-as-errors when building S2N") + add_subdirectory(crt/s2n) endif() add_subdirectory(crt/aws-c-sdkutils) @@ -302,7 +296,13 @@ endif() set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD ${CMAKE_CXX_STANDARD}) -set_target_properties(${PROJECT_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON) + +# Hide symbols by default +# Except for ancient GCC, because it leads to crashes in shared-lib builds +# see: https://github.com/awslabs/aws-crt-cpp/pull/675 +if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0")) + set_target_properties(${PROJECT_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON) +endif() aws_prepare_symbol_visibility_args(${PROJECT_NAME} "AWS_CRT_CPP") @@ -348,7 +348,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS}) install(FILES ${AWS_CRT_HEADERS} DESTINATION "include/aws/crt" COMPONENT Development) install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include/aws/crt/auth" COMPONENT Development) -install(FILES ${AWS_CRT_CHECKSUM_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development) +install(FILES ${AWS_CRT_CHECKSUM_HEADERS} DESTINATION "include/aws/crt/checksum" COMPONENT Development) install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development) install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "include/aws/crt/io" COMPONENT Development) install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "include/aws/iot" COMPONENT Development) diff --git a/VERSION b/VERSION index ae6dd4e20..5540b6e00 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.29.0 +0.29.3 diff --git a/crt/aws-c-io b/crt/aws-c-io index fe93d0afc..e247ef89c 160000 --- a/crt/aws-c-io +++ b/crt/aws-c-io @@ -1 +1 @@ -Subproject commit fe93d0afcc1cede32ac9569abd8669ed011b1b8c +Subproject commit e247ef89cdf170cadcb4c665fb0146e82cd6e135 diff --git a/crt/s2n b/crt/s2n index ffe0bf42d..9f4baecc7 160000 --- a/crt/s2n +++ b/crt/s2n @@ -1 +1 @@ -Subproject commit ffe0bf42da8f139eff8fd2237f47fbde40b478fb +Subproject commit 9f4baecc753d6fe01c13e4f422d2e327c64d06b8