fluentbit: Upgrade recipe to 3.1.9

According to https://fluentbit.io/announcements/older-versions/

  Security Policy: support for current series ends three months after a new series is released.

Fluent Bit v1.9 Series has beel EOL since Dec 5, 2022, so upgrade the
recipe to currently supported / newest available version.

Relevant changelogs since previous 1.9.9 version of the component
 - https://fluentbit.io/announcements/v2.0.0/
 - https://fluentbit.io/announcements/v2.1.0/
 - https://fluentbit.io/announcements/v2.2.0/
 - https://fluentbit.io/announcements/v3.0.0/
 - https://fluentbit.io/announcements/v3.1.0/
 - https://fluentbit.io/announcements/v3.1.1/
 - https://fluentbit.io/announcements/v3.1.2/
 - https://fluentbit.io/announcements/v3.1.3/
 - https://fluentbit.io/announcements/v3.1.4/
 - https://fluentbit.io/announcements/v3.1.5/
 - https://fluentbit.io/announcements/v3.1.6/
 - https://fluentbit.io/announcements/v3.1.7/
 - https://fluentbit.io/announcements/v3.1.8/
 - https://fluentbit.io/announcements/v3.1.9/

Associated added PACKAGECONFIG knobs are described for the most part in
https://github.com/fluent/fluent-bit/blob/v3.1.9/CMakeLists.txt#L107-L167

The PACKAGECONFIG knobs are named according to the constant names used
in upstream source code. Please note that here the 'yaml' PACKAGECONFIG
option has changed to 'config-yaml', and instead of 'kafka' there is
now 'out-kafka'.

As a related side note, the plugin options are now defined in
https://github.com/fluent/fluent-bit/blob/v3.1.9/cmake/plugins_options.cmake

I have tested this change briefly against "qemuarm64" and "qemuppc"
machines that the fluent-bit systemd service starts successfully in
current master based core-image-minimal, and against "qemuarm" machine
using yoe/meta-clang based core-image-minimal. Also tested using an
i.MX6 board that the new Fluent Bit version seems to work as well as
it did with the old 1.9.9 version with respect to logging in a Yocto
Scarthgap based image.

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Niko Mauno 2024-10-10 08:46:24 +00:00 committed by Khem Raj
parent 27d756a030
commit 1e0a0a6d5d
No known key found for this signature in database
GPG Key ID: BB053355919D3314
18 changed files with 298 additions and 554 deletions

View File

@ -333,6 +333,7 @@ RDEPENDS:packagegroup-meta-oe-extended = "\
dumb-init \
enscript \
figlet \
fluentbit \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "gnuplot", "", d)} \
haveged \
hexedit \

View File

@ -1,64 +0,0 @@
From 6a704ab7bf69cd5d6970b3a7d3ae7798b26027c1 Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Thu, 28 Jul 2022 11:28:41 +0200
Subject: [PATCH] CMakeLists.txt Do not use private makefile $< target
$< is a private detail from the Makefile generated by CMakefile and
are not under control or to be used at the CMakeLists level. In 3.20
that private generation changed pre-requisite targets[1] and now logs
contain the path compiler_depend.ts instead of the actual file.
Upstream-Status: Pending [https://github.com/fluent/fluent-bit/issues/5492]
---
CMakeLists.txt | 6 +-----
lib/chunkio/CMakeLists.txt | 7 +------
lib/cmetrics/CMakeLists.txt | 7 +------
3 files changed, 3 insertions(+), 17 deletions(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,11 +46,7 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -latomic")
--- a/lib/chunkio/CMakeLists.txt
+++ b/lib/chunkio/CMakeLists.txt
@@ -14,12 +14,7 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall ")
endif()
-# Set __FILENAME__
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
include(cmake/macros.cmake)
--- a/lib/cmetrics/CMakeLists.txt
+++ b/lib/cmetrics/CMakeLists.txt
@@ -34,12 +34,7 @@ set(CMT_VERSION_MINOR 3)
set(CMT_VERSION_PATCH 7)
set(CMT_VERSION_STR "${CMT_VERSION_MAJOR}.${CMT_VERSION_MINOR}.${CMT_VERSION_PATCH}")
-# Define __CMT_FILENAME__ consistently across Operating Systems
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__=__FILE__")
-endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__=__FILE__")
# Configuration options
option(CMT_DEV "Enable development mode" No)

View File

@ -1,34 +0,0 @@
From f645128082117a0152a95b3dccd869a184b7513f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 Aug 2022 01:23:48 -0700
Subject: [PATCH 1/2] Use posix strerror_r with musl
Default with glibc is GNU extention of strerror_r
where as musl uses posix variant, call that out
Upstream-Status: Inappropriate [Need wider porting beyond linux/musl/glibc]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/flb_network.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/flb_network.c b/src/flb_network.c
index 992eb1d..5d7a337 100644
--- a/src/flb_network.c
+++ b/src/flb_network.c
@@ -506,7 +506,12 @@ static int net_connect_async(int fd,
}
/* Connection is broken, not much to do here */
+#ifdef __GLIBC__
str = strerror_r(error, so_error_buf, sizeof(so_error_buf));
+#else
+ strerror_r(error, so_error_buf, sizeof(so_error_buf));
+ str = so_error_buf;
+#endif
flb_error("[net] TCP connection failed: %s:%i (%s)",
u->tcp_host, u->tcp_port, str);
return -1;
--
2.37.1

View File

@ -0,0 +1,106 @@
From 940a4e270bb8879a78c0eac4daf997cb77e25b4b Mon Sep 17 00:00:00 2001
From: Niko Mauno <niko.mauno@vaisala.com>
Date: Sun, 29 Sep 2024 12:00:00 +0000
Subject: [PATCH] lib: Do not use private makefile targets in CMakelists.txt
By extending the scope of changes introduced in commit
fc325524d50fe179b76f127243ab9e03ddbdaaa4
("build: CMakeLists.txt Do not use private makefile targets (#5819)")
we mitigate the following error produced by BitBake in Yocto
ERROR: fluentbit-3.1.9-r0 do_package_qa: QA Issue: File /usr/bin/fluent-bit in package fluentbit contains reference to TMPDIR [buildpaths]
ERROR: fluentbit-3.1.9-r0 do_package_qa: Fatal QA errors were found, failing task.
stemming from
$ strings packages-split/fluentbit/usr/bin/fluent-bit
...
$(subst /yocto/upstream/build/tmp/work/cortexa57-poky-linux/fluentbit/3.1.9/git/,,$(abspath $<))
...
Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
Upstream-Status: Submitted [https://github.com/fluent/fluent-bit/pull/9450]
---
lib/cfl/CMakeLists.txt | 8 ++------
lib/cmetrics/CMakeLists.txt | 8 ++------
lib/ctraces/CMakeLists.txt | 8 ++------
lib/monkey/CMakeLists.txt | 4 ----
4 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/lib/cfl/CMakeLists.txt b/lib/cfl/CMakeLists.txt
index 2193cb29c..e2a5cba37 100644
--- a/lib/cfl/CMakeLists.txt
+++ b/lib/cfl/CMakeLists.txt
@@ -40,12 +40,8 @@ if(NOT MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
-# Define __FILENAME__ consistently across Operating Systems
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$$(subst ${CMAKE_SOURCE_DIR}/,,$$(abspath $$<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+# Define __FILENAME__
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
diff --git a/lib/cmetrics/CMakeLists.txt b/lib/cmetrics/CMakeLists.txt
index 4f2989106..9c40dadf4 100644
--- a/lib/cmetrics/CMakeLists.txt
+++ b/lib/cmetrics/CMakeLists.txt
@@ -60,12 +60,8 @@ if(NOT MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif()
-# Define __CMT_FILENAME__ consistently across Operating Systems
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__='\"$$(subst ${CMAKE_SOURCE_DIR}/,,$$(abspath $$<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__=__FILE__")
-endif()
+# Define __CMT_FILENAME__
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__CMT_FILENAME__=__FILE__")
# Configuration options
option(CMT_DEV "Enable development mode" No)
diff --git a/lib/ctraces/CMakeLists.txt b/lib/ctraces/CMakeLists.txt
index e92834e06..5cebb3b73 100644
--- a/lib/ctraces/CMakeLists.txt
+++ b/lib/ctraces/CMakeLists.txt
@@ -30,12 +30,8 @@ set(CTR_VERSION_MINOR 5)
set(CTR_VERSION_PATCH 6)
set(CTR_VERSION_STR "${CTR_VERSION_MAJOR}.${CTR_VERSION_MINOR}.${CTR_VERSION_PATCH}")
-# Define __FILENAME__ consistently across Operating Systems
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$$(subst ${CMAKE_SOURCE_DIR}/,,$$(abspath $$<))\"'")
-else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
-endif()
+# Define __FILENAME__
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
# Configuration options
option(CTR_DEV "Enable development mode" No)
diff --git a/lib/monkey/CMakeLists.txt b/lib/monkey/CMakeLists.txt
index 95d8cc1e6..8c66887da 100644
--- a/lib/monkey/CMakeLists.txt
+++ b/lib/monkey/CMakeLists.txt
@@ -15,10 +15,8 @@ include(GNUInstallDirs)
# Set default compiler options
if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$$(subst ${CMAKE_SOURCE_DIR}/,,$$(abspath \$$<))\"'")
-else()
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
endif()
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
# Monkey Version
set(MK_VERSION_MAJOR 1)
--
2.39.2

View File

@ -1,28 +0,0 @@
From 0d22024c5defba7007e3e633753790e20209c6f6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
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 <string.h>
int main() {
char haystack[] = \"1234\";
--
2.37.1

View File

@ -1,40 +0,0 @@
From c7b969d1a2a6b61bd179214ee2516b7b6cd55b27 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
Upstream-Status: Pending
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

View File

@ -0,0 +1,40 @@
From c3b891eeec691753fccdf8e0a4541dcba244ec6b Mon Sep 17 00:00:00 2001
From: Niko Mauno <niko.mauno@vaisala.com>
Date: Thu, 10 Oct 2024 11:06:07 +0300
Subject: [PATCH] Disable installing systemd service file
With this we avoid the the following BitBake error when using some
other init manager than SystemD:
ERROR: fluentbit-3.1.9-r0 do_package: QA Issue: fluentbit: Files/directories were installed but not shipped in any package:
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/fluent-bit.service
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
fluentbit: 4 installed and not shipped files. [installed-vs-shipped]
ERROR: fluentbit-3.1.9-r0 do_package: Fatal QA errors were found, failing task.
Upstream-Status: Inappropriate [hack]
Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
---
src/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e24666484..c102806d0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -534,7 +534,7 @@ if(FLB_BINARY)
set(SYSTEMD_UNITDIR /lib/systemd/system)
endif()
- if(SYSTEMD_UNITDIR)
+ if(FALSE)
set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
configure_file(
"${PROJECT_SOURCE_DIR}/init/systemd.in"
--
2.39.2

View File

@ -1,32 +0,0 @@
From 2d12629f768d2459b1fc8a8ca0c38024d84bc195 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
Upstream-Status: Pending
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

View File

@ -1,34 +0,0 @@
From 8486b912281ae85db0c9fc05bb546f16872e114c Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Thu, 28 Jul 2022 14:37:18 +0200
Subject: [PATCH] mbedtls: Do not overwrite CFLAGS
bitbake passes CFLAGS that are often in conflict with the ones set
in mbedtls' CMakeLists.txt. Such conflicts are the inability to use
FORTIFY_SOURCE=2 except in release mode
Upstream-Status: Inappropriate [due to fluent-bit having it's own Release flags that also overwrite bitbake ones.]
---
lib/mbedtls-2.28.0/CMakeLists.txt | 2 --
1 file changed, 2 deletions(-)
--- 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)
if (GCC_VERSION VERSION_GREATER 7.0 OR GCC_VERSION VERSION_EQUAL 7.0)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation")
endif()
- 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")
@@ -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")

View File

@ -1,45 +0,0 @@
From a797b79483940ed4adcaa5fe2c40dd0487c7c2c7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
Upstream-Status: Pending
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

View File

@ -1,63 +0,0 @@
From 7a792624925d46690c1f07fe4b194b5f4c510db6 Mon Sep 17 00:00:00 2001
From: Paulo Neves <ptsneves@gmail.com>
Date: Tue, 2 Aug 2022 09:57:05 +0200
Subject: [PATCH 1/1] build: Make systemd init systemd detection contingent on
pkgconfig
Use pkg-config to get systemd.pc variables and systemdunitdir. Those
variable ensure that .service files are installed in the correct paths
and only when systemd is detected.
Upstream-Status: Pending [https://github.com/fluent/fluent-bit/pull/5818]
---
cmake/FindJournald.cmake | 4 ++++
src/CMakeLists.txt | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/cmake/FindJournald.cmake b/cmake/FindJournald.cmake
index f5a3a832b..9e6657a29 100644
--- a/cmake/FindJournald.cmake
+++ b/cmake/FindJournald.cmake
@@ -5,6 +5,8 @@
# JOURNALD_INCLUDE_DIR - the Journald include directory
# JOURNALD_LIBRARIES - Link these to use Journald
# JOURNALD_DEFINITIONS - Compiler switches required for using Journald
+# SYSTEMD_UNITDIR - The systemd units' directory
+#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
@@ -16,7 +18,9 @@
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_JOURNALD QUIET systemd)
+pkg_get_variable(PC_SYSTEMD_UNITDIR systemd "systemdsystemunitdir")
+set(SYSTEMD_UNITDIR ${PC_SYSTEMD_UNITDIR})
set(JOURNALD_FOUND ${PC_JOURNALD_FOUND})
set(JOURNALD_DEFINITIONS ${PC_JOURNALD_CFLAGS_OTHER})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 522bbf9bd..30743d8d6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -480,13 +480,13 @@ if(FLB_BINARY)
endif()
# Detect init system, install upstart, systemd or init.d script
- if(IS_DIRECTORY /lib/systemd/system)
+ if(DEFINED SYSTEMD_UNITDIR)
set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
configure_file(
"${PROJECT_SOURCE_DIR}/init/systemd.in"
${FLB_SYSTEMD_SCRIPT}
)
- install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION /lib/systemd/system)
+ install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
elseif(IS_DIRECTORY /usr/share/upstart)
set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
--
2.25.1

View File

@ -1,7 +1,7 @@
From 63dbbad5978e5f5b0e7d42614999cb6b4ebcce10 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 Aug 2022 01:27:16 -0700
Subject: [PATCH 2/2] chunkio: Link with fts library with musl
Subject: [PATCH] chunkio: Link with fts library with musl
Fixes
cio_utils.c:(.text+0x64): undefined reference to `fts_read'
@ -27,4 +27,3 @@ index a4fc2d3..4244eb8 100644
set(src
--
2.37.1

View File

@ -0,0 +1,28 @@
From f645128082117a0152a95b3dccd869a184b7513f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 Aug 2022 01:23:48 -0700
Subject: [PATCH] Use posix strerror_r with musl
Default with glibc is GNU extention of strerror_r
where as musl uses posix variant, call that out
Upstream-Status: Inappropriate [Need wider porting beyond linux/musl/glibc]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Resolved conflicts while upgrading recipe from v1.9.9 to v3.1.9.
Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
diff --git a/src/flb_network.c b/src/flb_network.c
index d183209fd..41e0281b5 100644
--- a/src/flb_network.c
+++ b/src/flb_network.c
@@ -553,7 +553,7 @@ static int net_connect_async(int fd,
/* Connection is broken, not much to do here */
#if ((defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || \
(defined(_XOPEN_SOURCE) || _XOPEN_SOURCE - 0L >= 600L)) && \
- (!defined(_GNU_SOURCE))
+ (!defined(_GNU_SOURCE)) || (!defined(__GLIBC__))
ret = strerror_r(error, so_error_buf, sizeof(so_error_buf));
if (ret == 0) {
str = so_error_buf;

View File

@ -1,33 +0,0 @@
From 27f0bd5a3339612e03112e6b490900a9fabc3337 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
Upstream-Status: Pending
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

View File

@ -1,36 +0,0 @@
From f88d9b82e8bd8ae38fba666b5825ffb41769f81a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
Upstream-Status: Pending
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 <sys/types.h>
+ extern void *__tls_get_addr(size_t *v);
__thread int a;
int main() {
__tls_get_addr(0);
--
2.37.1

View File

@ -1,46 +0,0 @@
From c41653e856d05ed430d22f8b311714ff756a0e0b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 23 Mar 2023 18:05:27 -0700
Subject: [PATCH] cmake: Do not check for upstart on build host
Some ubuntu distros might have this directory /usr/share/upstart around
and yocto based distros not using systemd will process this piece of
code and falsely assume that target supports upstart, which may not be
true in case of cross-compilation.
This also can end up in configure errors e.g.
| CMake Error at src/CMakeLists.txt:496 (install):
| install DIRECTORY given unknown argument "/etc/td-agent-bit/".
|
|
| -- Configuring incomplete, errors occurred!
Upstream-Status: Inappropriate [ Cross-compile Specific ]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/CMakeLists.txt | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bb30b2a..c63b6d8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -486,14 +486,6 @@ if(FLB_BINARY)
)
install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
- elseif(IS_DIRECTORY /usr/share/upstart)
- set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
- configure_file(
- "${PROJECT_SOURCE_DIR}/init/upstart.in"
- ${FLB_UPSTART_SCRIPT}
- )
- install(FILES ${FLB_UPSTART_SCRIPT} COMPONENT binary DESTINATION /etc/init)
- install(DIRECTORY DESTINATION COMPONENT binary ${FLB_INSTALL_CONFDIR})
else()
# FIXME: should we support Sysv init script ?
endif()
--
2.40.0

View File

@ -1,97 +0,0 @@
SUMMARY = "Fast Log processor and Forwarder"
DESCRIPTION = "Fluent Bit is a data collector, processor and \
forwarder for Linux. It supports several input sources and \
backends (destinations) for your data. \
"
HOMEPAGE = "http://fluentbit.io"
BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SECTION = "net"
SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-bit-${PV};downloadfilename=${BPN}-${PV}.tar.gz \
file://0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch \
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 \
file://0007-cmake-Do-not-check-for-upstart-on-build-host.patch \
"
SRC_URI:remove:x86 = "file://0002-mbedtls-Remove-unused-variable.patch"
SRC_URI:append:libc-musl = "\
file://0001-Use-posix-strerror_r-with-musl.patch \
file://0002-chunkio-Link-with-fts-library-with-musl.patch \
"
SRC_URI[sha256sum] = "3f6cd4bd1894cda16b465aef6ffec7e920d54c4209b3e2320fcffe7ae345700e"
S = "${WORKDIR}/fluent-bit-${PV}"
DEPENDS = "zlib bison-native flex-native openssl"
DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[yaml] = "-DFLB_CONFIG_YAML=On,-DFLB_CONFIG_YAML=Off,libyaml"
PACKAGECONFIG[kafka] = "-DFLB_OUT_KAFKA=On,-DFLB_OUT_KAFKA=Off,librdkafka"
PACKAGECONFIG[examples] = "-DFLB_EXAMPLES=On,-DFLB_EXAMPLES=Off"
PACKAGECONFIG[jemalloc] = "-DFLB_JEMALLOC=On,-DFLB_JEMALLOC=Off,jemalloc"
#TODO add more fluentbit options to PACKAGECONFIG[]
DEPENDS:append:libc-musl = " fts "
# flex hardcodes the input file in #line directives leading to TMPDIR contamination of debug sources.
do_compile:append() {
find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|${TARGET_DBGSRC_DIR}/|g'
}
PACKAGECONFIG ?= "yaml"
LTO = ""
# Use CMake 'Unix Makefiles' generator
OECMAKE_GENERATOR ?= "Unix Makefiles"
# Fluent Bit build options
# ========================
# Host related setup
EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_TD=1"
# Disable LuaJIT and filter_lua support
EXTRA_OECMAKE += "-DFLB_LUAJIT=Off -DFLB_FILTER_LUA=Off "
# Disable Library and examples
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"
# musl needs these options
EXTRA_OECMAKE:append:libc-musl = ' -DFLB_JEMALLOC_OPTIONS="--with-jemalloc-prefix=je_ --with-lg-quantum=3" -DFLB_CORO_STACK_SIZE=24576'
EXTRA_OECMAKE:append:riscv64 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:riscv32 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:mips = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:powerpc = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:x86 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
CFLAGS:append:x86 = " -DMBEDTLS_HAVE_SSE2"
# Fixes build with GCC-14
CFLAGS += "-Wno-error=incompatible-pointer-types"
inherit cmake systemd pkgconfig
SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=${TARGET_DBGSRC_DIR}/"
TARGET_CC_ARCH += " ${SELECTED_OPTIMIZATION}"
SKIP_RECIPE[fluentbit] ?= "It is not reproducible. QA Issue: File /usr/bin/.debug/td-agent-bit in package fluentbit-dbg contains reference to TMPDIR [buildpaths]"

View File

@ -0,0 +1,122 @@
SUMMARY = "Fast Log Processor and Forwarder"
DESCRIPTION = "Fluent Bit allows to collect log events or metrics from \
different sources, process them and deliver them to different backends \
such as Fluentd, Elasticsearch, Splunk, DataDog, Kafka, New Relic, Azure \
services, AWS services, Google services, NATS, InfluxDB or any custom \
HTTP end-point."
HOMEPAGE = "http://fluentbit.io"
BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
SECTION = "net"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
DEPENDS = "\
bison-native \
flex-native \
openssl \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
"
DEPENDS:append:libc-musl = " fts"
SRCREV = "431fa79ae27edaef8d050a7af6f038f4400193a1"
SRC_URI = "\
git://github.com/fluent/fluent-bit.git;branch=3.1;protocol=https \
file://0001-lib-Do-not-use-private-makefile-targets-in-CMakelist.patch \
file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0003-Disable-installing-systemd-service-file.patch', d)} \
"
SRC_URI:append:libc-musl = "\
file://0004-chunkio-Link-with-fts-library-with-musl.patch \
file://0005-Use-posix-strerror_r-with-musl.patch \
"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= "\
aws \
binary \
config-yaml \
custom-calyptia \
http-server \
inotify \
metrics \
parser \
proxy-go \
record-accessor \
regex \
release \
signv4 \
sqldb \
stream-processor \
tls \
utf8-encoder \
"
PACKAGECONFIG[all] = "-DFLB_ALL=Yes,-DFLB_ALL=No"
PACKAGECONFIG[arrow] = "-DFLB_ARROW=Yes,-DFLB_ARROW=No"
PACKAGECONFIG[avro-encoder] = "-DFLB_AVRO_ENCODER=Yes,-DFLB_AVRO_ENCODER=No"
PACKAGECONFIG[aws-error-reporter] = "-DFLB_AWS_ERROR_REPORTER=Yes,-DFLB_AWS_ERROR_REPORTER=No"
PACKAGECONFIG[aws] = "-DFLB_AWS=Yes,-DFLB_AWS=No"
PACKAGECONFIG[backtrace] = "-DFLB_BACKTRACE=Yes,-DFLB_BACKTRACE=No"
PACKAGECONFIG[binary] = "-DFLB_BINARY=Yes,-DFLB_BINARY=No"
PACKAGECONFIG[chunk-trace] = "-DFLB_CHUNK_TRACE=Yes,-DFLB_CHUNK_TRACE=No"
PACKAGECONFIG[config-yaml] = "-DFLB_CONFIG_YAML=Yes,-DFLB_CONFIG_YAML=No,libyaml"
PACKAGECONFIG[coverage] = "-DFLB_COVERAGE=Yes,-DFLB_COVERAGE=No"
PACKAGECONFIG[custom-calyptia] = "-DFLB_CUSTOM_CALYPTIA=Yes,-DFLB_CUSTOM_CALYPTIA=No"
PACKAGECONFIG[debug] = "-DFLB_DEBUG=Yes,-DFLB_DEBUG=No"
PACKAGECONFIG[enforce-alignment] = "-DFLB_ENFORCE_ALIGNMENT=Yes,-DFLB_ENFORCE_ALIGNMENT=No"
PACKAGECONFIG[examples] = "-DFLB_EXAMPLES=Yes,-DFLB_EXAMPLES=No"
PACKAGECONFIG[http-client-debug] = "-DFLB_HTTP_CLIENT_DEBUG=Yes,-DFLB_HTTP_CLIENT_DEBUG=No"
PACKAGECONFIG[http-server] = "-DFLB_HTTP_SERVER=Yes,-DFLB_HTTP_SERVER=No"
PACKAGECONFIG[inotify] = "-DFLB_INOTIFY=Yes,-DFLB_INOTIFY=No"
PACKAGECONFIG[jemalloc] = "-DFLB_JEMALLOC=Yes,-DFLB_JEMALLOC=No,jemalloc"
PACKAGECONFIG[luajit] = "-DFLB_LUAJIT=Yes,-DFLB_LUAJIT=No"
PACKAGECONFIG[metrics] = "-DFLB_METRICS=Yes,-DFLB_METRICS=No"
PACKAGECONFIG[mtrace] = "-DFLB_MTRACE=Yes,-DFLB_MTRACE=No"
PACKAGECONFIG[parser] = "-DFLB_PARSER=Yes,-DFLB_PARSER=No"
PACKAGECONFIG[posix-tls] = "-DFLB_POSIX_TLS=Yes,-DFLB_POSIX_TLS=No"
PACKAGECONFIG[proxy-go] = "-DFLB_PROXY_GO=Yes,-DFLB_PROXY_GO=No"
PACKAGECONFIG[record-accessor] = "-DFLB_RECORD_ACCESSOR=Yes,-DFLB_RECORD_ACCESSOR=No"
PACKAGECONFIG[regex] = "-DFLB_REGEX=Yes,-DFLB_REGEX=No"
PACKAGECONFIG[release] = "-DFLB_RELEASE=Yes,-DFLB_RELEASE=No"
PACKAGECONFIG[run-ldconfig] = "-DFLB_RUN_LDCONFIG=Yes,-DFLB_RUN_LDCONFIG=No"
PACKAGECONFIG[shared-lib] = "-DFLB_SHARED_LIB=Yes,-DFLB_SHARED_LIB=No"
PACKAGECONFIG[signv4] = "-DFLB_SIGNV4=Yes,-DFLB_SIGNV4=No"
PACKAGECONFIG[small] = "-DFLB_SMALL=Yes,-DFLB_SMALL=No"
PACKAGECONFIG[sqldb] = "-DFLB_SQLDB=Yes,-DFLB_SQLDB=No"
PACKAGECONFIG[stream-processor] = "-DFLB_STREAM_PROCESSOR=Yes,-DFLB_STREAM_PROCESSOR=No"
PACKAGECONFIG[tests-runtime] = "-DFLB_TESTS_RUNTIME=Yes,-DFLB_TESTS_RUNTIME=No"
PACKAGECONFIG[tls] = "-DFLB_TLS=Yes,-DFLB_TLS=No"
PACKAGECONFIG[trace] = "-DFLB_TRACE=Yes,-DFLB_TRACE=No"
PACKAGECONFIG[utf8-encoder] = "-DFLB_UTF8_ENCODER=Yes,-DFLB_UTF8_ENCODER=No"
PACKAGECONFIG[valgrind] = "-DFLB_VALGRIND=Yes,-DFLB_VALGRIND=No"
PACKAGECONFIG[wamrc] = "-DFLB_WAMRC=Yes,-DFLB_WAMRC=No"
PACKAGECONFIG[wasm-stack-protect] = "-DFLB_WASM_STACK_PROTECT=Yes,-DFLB_WASM_STACK_PROTECT=No"
PACKAGECONFIG[wasm] = "-DFLB_WASM=Yes,-DFLB_WASM=No"
PACKAGECONFIG[windows-defaults] = "-DFLB_WINDOWS_DEFAULTS=Yes,-DFLB_WINDOWS_DEFAULTS=No"
# Option to disable all Fluent Bit plugins by default. See cmake/plugins_options.cmake which
# individual plugins then to enable (e.g. using EXTRA_OECMAKE:append = " -DFLB_FOOBAR=ON")
PACKAGECONFIG[minimal] = "-DFLB_MINIMAL=Yes,-DFLB_MINIMAL=No"
# Without zstd dependency, kafka plugin build fails at link attempt against native libzstd.so
PACKAGECONFIG[in-kafka] = "-DFLB_IN_KAFKA=ON,-DFLB_IN_KAFKA=OFF,librdkafka zstd"
PACKAGECONFIG[out-kafka] = "-DFLB_OUT_KAFKA=ON,-DFLB_OUT_KAFKA=OFF,librdkafka zstd"
SYSTEMD_SERVICE:${PN} = "fluent-bit.service"
inherit cmake systemd pkgconfig
FULL_OPTIMIZATION:remove = "${@'-O2' if bb.data.inherits_class('clang', d) else ''}"
TARGET_CC_ARCH += "${SELECTED_OPTIMIZATION}"
TARGET_CC_ARCH:remove = "-D_FORTIFY_SOURCE=2"
EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=${TARGET_DBGSRC_DIR}/"
EXTRA_OECMAKE:append:mips = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:powerpc = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:riscv32 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:riscv64 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:x86 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
# flex hardcodes the input file in #line directives leading to TMPDIR contamination of debug sources.
do_compile:append() {
find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|${TARGET_DBGSRC_DIR}/|g'
}