From 0f8dced8c7b76a41af211d57add34f5284e9733e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 9 Aug 2022 12:30:00 -0700 Subject: fluentbit: Fix build with clang Fix build using clang-15 which is even stricter then clang-14 These patches are worth upstream too Signed-off-by: Khem Raj Cc: Paulo Neves --- ...y-Define-_GNU_SOURCE-for-memmem-API-check.patch | 28 ++++++++++++++ .../0002-mbedtls-Remove-unused-variable.patch | 38 +++++++++++++++++++ ...able-documentation-warning-as-error-with-.patch | 30 +++++++++++++++ .../0003-mbedtls-Do-not-overwrite-CFLAGS.patch | 11 +++++- ...-type-to-store-return-from-flb_kv_item_cr.patch | 43 ++++++++++++++++++++++ ...0005-stackdriver-Fix-return-type-mismatch.patch | 31 ++++++++++++++++ .../0006-monkey-Fix-TLS-detection-testcase.patch | 34 +++++++++++++++++ .../recipes-extended/fluentbit/fluentbit_1.9.6.bb | 9 +++++ 8 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch create mode 100644 meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch new file mode 100644 index 0000000000..e70664031b --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch @@ -0,0 +1,28 @@ +From 0d22024c5defba7007e3e633753790e20209c6f6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 09:59:41 -0700 +Subject: [PATCH 1/5] monkey: Define _GNU_SOURCE for memmem API check + +This define is necessary to get this API on glibc based systems + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + lib/monkey/mk_core/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/monkey/mk_core/CMakeLists.txt b/lib/monkey/mk_core/CMakeLists.txt +index 0e74f8d..739fff3 100644 +--- a/lib/monkey/mk_core/CMakeLists.txt ++++ b/lib/monkey/mk_core/CMakeLists.txt +@@ -62,6 +62,7 @@ set(src "${src}" + ) + + check_c_source_compiles(" ++ #define _GNU_SOURCE + #include + int main() { + char haystack[] = \"1234\"; +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch new file mode 100644 index 0000000000..d4451bcaef --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch @@ -0,0 +1,38 @@ +From c7b969d1a2a6b61bd179214ee2516b7b6cd55b27 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 11:21:57 -0700 +Subject: [PATCH 2/5] mbedtls: Remove unused variable + +Fixes +library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable] + +Signed-off-by: Khem Raj +--- + lib/mbedtls-2.28.0/library/bignum.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/lib/mbedtls-2.28.0/library/bignum.c b/lib/mbedtls-2.28.0/library/bignum.c +index 62e7f76..9c256ae 100644 +--- a/lib/mbedtls-2.28.0/library/bignum.c ++++ b/lib/mbedtls-2.28.0/library/bignum.c +@@ -1392,7 +1392,7 @@ void mpi_mul_hlp( size_t i, + mbedtls_mpi_uint *d, + mbedtls_mpi_uint b ) + { +- mbedtls_mpi_uint c = 0, t = 0; ++ mbedtls_mpi_uint c = 0; + + #if defined(MULADDC_HUIT) + for( ; i >= 8; i -= 8 ) +@@ -1443,8 +1443,6 @@ void mpi_mul_hlp( size_t i, + } + #endif /* MULADDC_HUIT */ + +- t++; +- + while( c != 0 ) + { + *d += c; c = ( *d < c ); d++; +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch new file mode 100644 index 0000000000..2d7b4efda7 --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch @@ -0,0 +1,30 @@ +From 2d12629f768d2459b1fc8a8ca0c38024d84bc195 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 11:32:12 -0700 +Subject: [PATCH 3/5] mbedtls: Disable documentation warning as error with + clang + +There are shortcomings with doxygen info which clang-15+ flags, dont +treat them as errors + +Signed-off-by: Khem Raj +--- + lib/mbedtls-2.28.0/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/mbedtls-2.28.0/CMakeLists.txt b/lib/mbedtls-2.28.0/CMakeLists.txt +index b33c088..c5f886f 100644 +--- a/lib/mbedtls-2.28.0/CMakeLists.txt ++++ b/lib/mbedtls-2.28.0/CMakeLists.txt +@@ -212,7 +212,7 @@ if(CMAKE_COMPILER_IS_GNU) + endif(CMAKE_COMPILER_IS_GNU) + + if(CMAKE_COMPILER_IS_CLANG) +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wno-error=documentation") + set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") + set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3") + set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls") +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch index a7d7dc8897..af31b436db 100644 --- a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch @@ -13,8 +13,6 @@ flags that also overwrite bitbake ones. lib/mbedtls-2.28.0/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) -diff --git a/lib/mbedtls-2.28.0/CMakeLists.txt b/lib/mbedtls-2.28.0/CMakeLists.txt -index d76bddc..e717846 100644 --- a/lib/mbedtls-2.28.0/CMakeLists.txt +++ b/lib/mbedtls-2.28.0/CMakeLists.txt @@ -204,8 +204,6 @@ if(CMAKE_COMPILER_IS_GNU) @@ -26,3 +24,12 @@ index d76bddc..e717846 100644 set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3") set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls") +@@ -215,8 +213,6 @@ endif(CMAKE_COMPILER_IS_GNU) + + if(CMAKE_COMPILER_IS_CLANG) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral") +- set(CMAKE_C_FLAGS_RELEASE "-O2") +- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3") + set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") + set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3") + set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls") diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch new file mode 100644 index 0000000000..224b8ccf1b --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch @@ -0,0 +1,43 @@ +From a797b79483940ed4adcaa5fe2c40dd0487c7c2c7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 11:39:08 -0700 +Subject: [PATCH 4/5] Use correct type to store return from flb_kv_item_create + +Fix +error: incompatible pointer to integer conversion assigning to 'int' from 'struct flb_kv *' + +Signed-off-by: Khem Raj +--- + plugins/out_stackdriver/stackdriver_conf.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/out_stackdriver/stackdriver_conf.c b/plugins/out_stackdriver/stackdriver_conf.c +index a9a8eb0..e4f969e 100644 +--- a/plugins/out_stackdriver/stackdriver_conf.c ++++ b/plugins/out_stackdriver/stackdriver_conf.c +@@ -176,12 +176,12 @@ static int read_credentials_file(const char *cred_file, struct flb_stackdriver * + + static int parse_configuration_labels(struct flb_stackdriver *ctx) + { +- int ret; + char *p; + flb_sds_t key; + flb_sds_t val; + struct mk_list *head; + struct flb_slist_entry *entry; ++ struct flb_kv *ret; + msgpack_object_kv *kv = NULL; + + if (ctx->labels) { +@@ -216,7 +216,7 @@ static int parse_configuration_labels(struct flb_stackdriver *ctx) + flb_sds_destroy(key); + flb_sds_destroy(val); + +- if (ret == -1) { ++ if (!ret) { + return -1; + } + } +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch new file mode 100644 index 0000000000..cdbbb6b2c1 --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch @@ -0,0 +1,31 @@ +From 27f0bd5a3339612e03112e6b490900a9fabc3337 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 11:44:25 -0700 +Subject: [PATCH 5/5] stackdriver: Fix return type mismatch + +Fix +error: incompatible integer to pointer conversion returning 'int' from a function with result type 'flb_sds_t' (aka 'char *') [-Wint-conversion] + return -1; + ^~ + +Signed-off-by: Khem Raj +--- + plugins/out_stackdriver/stackdriver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/out_stackdriver/stackdriver.c b/plugins/out_stackdriver/stackdriver.c +index ae66bf2..e01755c 100644 +--- a/plugins/out_stackdriver/stackdriver.c ++++ b/plugins/out_stackdriver/stackdriver.c +@@ -2033,7 +2033,7 @@ static flb_sds_t stackdriver_format(struct flb_stackdriver *ctx, + flb_sds_destroy(operation_producer); + msgpack_unpacked_destroy(&result); + msgpack_sbuffer_destroy(&mp_sbuf); +- return -1; ++ return NULL; + } + + /* Number of parsed labels */ +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch new file mode 100644 index 0000000000..eef1a56ba7 --- /dev/null +++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch @@ -0,0 +1,34 @@ +From f88d9b82e8bd8ae38fba666b5825ffb41769f81a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Aug 2022 12:25:22 -0700 +Subject: [PATCH] monkey: Fix TLS detection testcase + +Clang15 errors out on compiling the check and disables TLS + +Fixes errors like + +error: call to undeclared function '__tls_get_addr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + __tls_get_addr(0); + ^ + +Signed-off-by: Khem Raj +--- + lib/monkey/CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/lib/monkey/CMakeLists.txt b/lib/monkey/CMakeLists.txt +index 15e62e8..96ac2bd 100644 +--- a/lib/monkey/CMakeLists.txt ++++ b/lib/monkey/CMakeLists.txt +@@ -178,6 +178,8 @@ endif() + # Use old Pthread TLS + if(NOT MK_PTHREAD_TLS) + check_c_source_compiles(" ++ #include ++ extern void *__tls_get_addr(size_t *v); + __thread int a; + int main() { + __tls_get_addr(0); +-- +2.37.1 + diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.6.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.6.bb index f98d416b24..2b1c4ca19c 100644 --- a/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.6.bb +++ b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.6.bb @@ -16,6 +16,12 @@ SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-b file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \ file://0003-mbedtls-Do-not-overwrite-CFLAGS.patch \ file://0004-build-Make-systemd-init-systemd-detection-contingent.patch \ + file://0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch \ + file://0002-mbedtls-Remove-unused-variable.patch \ + file://0003-mbedtls-Disable-documentation-warning-as-error-with-.patch \ + file://0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch \ + file://0005-stackdriver-Fix-return-type-mismatch.patch \ + file://0006-monkey-Fix-TLS-detection-testcase.patch \ " SRC_URI[sha256sum] = "5ef7dd97e10936269fe5f4e5d3ebf16559333066f7d6757ba12464a9d6186570" @@ -61,6 +67,9 @@ EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off" # Enable systemd iff systemd is in DISTRO_FEATURES EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','-DFLB_SYSTEMD=Off',d)}" +# Enable release builds +EXTRA_OECMAKE += "-DFLB_RELEASE=On" + EXTRA_OECMAKE:append:riscv64 = " -DFLB_DEPS='atomic'" EXTRA_OECMAKE:append:riscv32 = " -DFLB_DEPS='atomic'" -- cgit 1.2.3-korg