Update AWS C++ SDK to 1.10.34
Change-Id: Ibf491d1c3460d3610b0dfd9cf3247540bb4b4ab3
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/WORKSPACE b/WORKSPACE
index c926b0e..5e26090 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1228,7 +1228,7 @@
)
# This one is tricky to get an archive because it has recursive submodules. These semi-automated steps do work though:
-# git clone -b version1.9 --recurse-submodules --depth=1 https://github.com/aws/aws-sdk-cpp
+# git clone -b 1.10.34 --recurse-submodules --depth=1 https://github.com/aws/aws-sdk-cpp
# cd aws-sdk-cpp
# echo bsdtar -a -cf aws_sdk-version.tar.gz --ignore-zeros @\<\(git archive HEAD\) $(git submodule foreach --recursive --quiet 'echo @\<\(cd $displaypath \&\& git archive HEAD --prefix=$displaypath/\)')
# Now run the command that printed, and the output will be at aws_sdk-version.tar.gz.
@@ -1237,8 +1237,8 @@
build_file = "//debian:aws_sdk.BUILD",
patch_args = ["-p1"],
patches = ["//debian:aws_sdk.patch"],
- sha256 = "1a2668722e5b5b2608a6ab21c876c1d98b5fd8c7d613129ced9561f5520817dc",
- url = "https://www.frc971.org/Build-Dependencies/aws_sdk-19.0.0-RC1.tar.gz",
+ sha256 = "de6570d10c246189fd8c02100f7f0d9af8499a3ef94a131eeb85619f3bd6c604",
+ url = "https://www.frc971.org/Build-Dependencies/aws_sdk-1.10.34.tar.gz",
)
# Source code of LZ4 (files under lib/) are under BSD 2-Clause.
diff --git a/debian/aws_sdk.BUILD b/debian/aws_sdk.BUILD
index a77f5bb..46ac375 100644
--- a/debian/aws_sdk.BUILD
+++ b/debian/aws_sdk.BUILD
@@ -50,9 +50,9 @@
"aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/*.h",
]),
copts = [
- "-DAWS_SDK_VERSION_MAJOR=19",
- "-DAWS_SDK_VERSION_MINOR=0",
- "-DAWS_SDK_VERSION_PATCH=\"\\\"0-RC1\"\\\"",
+ "-DAWS_SDK_VERSION_MAJOR=10",
+ "-DAWS_SDK_VERSION_MINOR=34",
+ "-DAWS_SDK_VERSION_PATCH=\"\\\"BRT\"\\\"",
"-DENABLE_OPENSSL_ENCRYPTION",
"-DENABLE_CURL_CLIENT",
"-Wno-cast-align",
@@ -75,7 +75,7 @@
genrule(
name = "gen_Config",
outs = ["crt/aws-crt-cpp/include/aws/crt/Config.h"],
- cmd = "echo '#define AWS_CRT_CPP_VERSION \"19.0.0-RC1\"' > $@",
+ cmd = "echo '#define AWS_CRT_CPP_VERSION \"1.10.34\"' > $@",
target_compatible_with = ["@platforms//os:linux"],
)
@@ -88,15 +88,19 @@
copts = [
"-Wno-sign-compare",
"-Wno-cast-qual",
+ "-Wno-tautological-type-limit-compare",
+ "-Wno-missing-field-initializers",
],
includes = ["crt/aws-crt-cpp/include"],
target_compatible_with = ["@platforms//os:linux"],
+ visibility = ["//visibility:public"],
deps = [
":aws-c-auth",
":aws-c-common",
":aws-c-event-stream",
":aws-c-mqtt",
":aws-c-s3",
+ ":aws-c-sdkutils",
],
)
@@ -109,6 +113,7 @@
"#define AWS_HAVE_GCC_INLINE_ASM 1",
"#undef AWS_HAVE_MSVC_MULX",
"#define AWS_HAVE_EXECINFO 1",
+ "#define AWS_AFFINITY_METHOD 0",
"END",
]),
target_compatible_with = ["@platforms//os:linux"],
@@ -118,6 +123,7 @@
name = "aws-c-common",
srcs = glob([
"crt/aws-crt-cpp/crt/aws-c-common/source/*.c",
+ "crt/aws-crt-cpp/crt/aws-c-common/source/external/*.c",
"crt/aws-crt-cpp/crt/aws-c-common/source/posix/*.c",
]) + [
":gen_config",
@@ -156,6 +162,7 @@
includes = ["crt/aws-crt-cpp/crt/aws-c-common/include"],
target_compatible_with = ["@platforms//os:linux"],
textual_hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-common/include/**/*.inl"]),
+ visibility = ["//visibility:public"],
)
# -march=armv8-a+crc
@@ -209,8 +216,10 @@
]),
hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-cal/include/**/*.h"]),
copts = [
+ "-DOPENSSL_IS_AWSLC",
"-Wno-incompatible-pointer-types",
"-Wno-unused-function",
+ "-Wno-unused-parameter",
"-Wno-cast-align",
"-Wno-cast-qual",
],
@@ -235,6 +244,7 @@
deps = [
":aws-c-auth",
":aws-c-common",
+ ":aws-checksums",
],
)
@@ -242,6 +252,7 @@
name = "aws-c-compression",
srcs = glob(["crt/aws-crt-cpp/crt/aws-c-compression/source/*.c"]),
hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-compression/include/**/*.h"]),
+ copts = ["-Wno-cast-qual"],
includes = ["crt/aws-crt-cpp/crt/aws-c-compression/include"],
target_compatible_with = ["@platforms//os:linux"],
deps = [
@@ -269,6 +280,21 @@
)
cc_library(
+ name = "aws-c-sdkutils",
+ srcs = glob(["crt/aws-crt-cpp/crt/aws-c-sdkutils/source/**/*.c"]),
+ hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-sdkutils/include/**/*.h"]),
+ copts = [
+ "-Wno-cast-align",
+ "-Wno-cast-qual",
+ ],
+ includes = ["crt/aws-crt-cpp/crt/aws-c-sdkutils/include"],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = [
+ ":aws-c-common",
+ ],
+)
+
+cc_library(
name = "aws-c-auth",
srcs = glob(["crt/aws-crt-cpp/crt/aws-c-auth/source/**/*.c"]),
hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-auth/include/**/*.h"]),
@@ -282,6 +308,7 @@
":aws-c-common",
":aws-c-http",
":aws-c-io",
+ ":aws-c-sdkutils",
],
)
@@ -292,11 +319,13 @@
copts = [
"-Wno-cast-qual",
"-Wno-cast-align",
+ "-DAWS_MQTT_WITH_WEBSOCKETS",
],
includes = ["crt/aws-crt-cpp/crt/aws-c-mqtt/include"],
target_compatible_with = ["@platforms//os:linux"],
deps = [
":aws-c-common",
+ ":aws-c-http",
":aws-c-io",
],
)
@@ -309,8 +338,13 @@
"crt/aws-crt-cpp/crt/aws-c-io/source/s2n/*.c",
"crt/aws-crt-cpp/crt/aws-c-io/source/posix/*.c",
]),
- hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-io/include/**/*.h"]),
+ hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-io/include/**/*.h"]) + [
+ "crt/aws-crt-cpp/crt/aws-c-io/source/pkcs11_private.h",
+ ] + glob([
+ "crt/aws-crt-cpp/crt/aws-c-io/source/pkcs11/v2.40/*.h",
+ ]),
copts = [
+ "-DUSE_S2N",
"-DAWS_USE_EPOLL",
"-Wno-cast-align",
"-Wno-cast-qual",
@@ -335,6 +369,7 @@
"crt/aws-crt-cpp/crt/s2n/utils/**/*.c",
"crt/aws-crt-cpp/crt/s2n/stuffer/**/*.c",
"crt/aws-crt-cpp/crt/s2n/crypto/**/*.c",
+ "crt/aws-crt-cpp/crt/s2n/pq-crypto/*.c",
]),
hdrs = ["crt/aws-crt-cpp/crt/s2n/api/s2n.h"],
copts = [
diff --git a/debian/aws_sdk.patch b/debian/aws_sdk.patch
index df613f5..8780e9b 100644
--- a/debian/aws_sdk.patch
+++ b/debian/aws_sdk.patch
@@ -4,89 +4,22 @@
index 761455b..fc434ba 100644
--- a/crt/aws-crt-cpp/crt/aws-c-cal/source/unix/openssl_platform_init.c
+++ b/crt/aws-crt-cpp/crt/aws-c-cal/source/unix/openssl_platform_init.c
-@@ -34,7 +34,7 @@ struct openssl_evp_md_ctx_table *g_aws_openssl_evp_md_ctx_table = NULL;
+@@ -37,7 +37,7 @@ struct openssl_evp_md_ctx_table *g_aws_openssl_evp_md_ctx_table = NULL;
/* 1.1 */
- extern HMAC_CTX *HMAC_CTX_new(void) __attribute__((weak)) __attribute__((used));
- extern void HMAC_CTX_free(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
--extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
-+//extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
-
+ extern HMAC_CTX *HMAC_CTX_new(void) __attribute__((weak, used));
+ extern void HMAC_CTX_free(HMAC_CTX *) __attribute__((weak, used));
+-extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak, used));
++//extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak, used));
+
/* 1.0.2 */
- extern void HMAC_CTX_init(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
-@@ -43,8 +43,8 @@ extern void HMAC_CTX_cleanup(HMAC_CTX *) __attribute__((weak)) __attribute__((us
+ extern void HMAC_CTX_init(HMAC_CTX *) __attribute__((weak, used));
+@@ -46,7 +46,7 @@ extern void HMAC_CTX_cleanup(HMAC_CTX *) __attribute__((weak)) __attribute__((us
/* common */
- extern int HMAC_Update(HMAC_CTX *, const unsigned char *, size_t) __attribute__((weak)) __attribute__((used));
- extern int HMAC_Final(HMAC_CTX *, unsigned char *, unsigned int *) __attribute__((weak)) __attribute__((used));
--extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak))
--__attribute__((used));
-+//extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak))
-+//__attribute__((used));
-
+ extern int HMAC_Update(HMAC_CTX *, const unsigned char *, size_t) __attribute__((weak, used));
+ extern int HMAC_Final(HMAC_CTX *, unsigned char *, unsigned int *) __attribute__((weak, used));
+-extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak, used));
++//extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak, used));
+
/* libcrypto 1.1 stub for init */
static void s_hmac_ctx_init_noop(HMAC_CTX *ctx) {
-@@ -393,9 +393,9 @@ void aws_cal_platform_init(struct aws_allocator *allocator) {
- }
- }
-
-- if (!CRYPTO_get_id_callback()) {
-- CRYPTO_set_id_callback(s_id_fn);
-- }
-+ //if (!CRYPTO_get_id_callback()) {
-+ //CRYPTO_set_id_callback(s_id_fn);
-+ //}
- }
-
- void aws_cal_platform_clean_up(void) {
-@@ -408,9 +408,9 @@ void aws_cal_platform_clean_up(void) {
- aws_mem_release(s_libcrypto_allocator, s_libcrypto_locks);
- }
-
-- if (CRYPTO_get_id_callback() == s_id_fn) {
-- CRYPTO_set_id_callback(NULL);
-- }
-+ //if (CRYPTO_get_id_callback() == s_id_fn) {
-+ //CRYPTO_set_id_callback(NULL);
-+ //}
- }
- #if !defined(__GNUC__) || (__GNUC__ >= 4 && __GNUC_MINOR__ > 1)
- # pragma GCC diagnostic pop
Submodule crt/s2n contains modified content
-diff --git a/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c b/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-index 84dbc6df..d3566b81 100755
---- a/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-+++ b/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-@@ -46,7 +46,7 @@ typedef enum parser_state {
- } parser_state;
-
- static inline long get_gmt_offset(struct tm *t) {
--#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__ANDROID__) || defined(ANDROID) || defined(__APPLE__) && defined(__MACH__)
-+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__ANDROID__) || defined(ANDROID) || defined(__APPLE__) && defined(__MACH__) || defined(__USE_MISC)
- return t->tm_gmtoff;
- #else
- return t->__tm_gmtoff;
-diff --git a/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c b/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-index 0f79f959..ae8122fb 100644
---- a/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-+++ b/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-@@ -45,7 +45,7 @@ int s2n_init(void)
- GUARD_POSIX(s2n_security_policies_init());
- GUARD_POSIX(s2n_config_defaults_init());
- GUARD_POSIX(s2n_extension_type_init());
-- GUARD_AS_POSIX(s2n_pq_init());
-+ //GUARD_AS_POSIX(s2n_pq_init());
-
- S2N_ERROR_IF(atexit(s2n_cleanup_atexit) != 0, S2N_ERR_ATEXIT);
-
-diff --git a/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl b/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-index 0f79f959..ae8122fb 100644
---- a/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-+++ b/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-@@ -533,7 +533,7 @@
- * "CPROVER check pop". The masking trick does make the hash noticably
- * faster for short strings (like English words).
- */
--#ifndef VALGRIND
-+#if !defined(VALGRIND) && !__has_feature(address_sanitizer) && !__has_feature(memory_sanitizer)
- #ifdef CBMC
- # pragma CPROVER check push
- # pragma CPROVER check disable "pointer"