From: thomas@devoogdt.com
To: buildroot@buildroot.org
Cc: Thomas Devoogdt <thomas@devoogdt.com>,
Thomas Devoogdt <thomas.devoogdt@barco.com>
Subject: [Buildroot] [PATCH v2 2/3] package/fluent-bit: add support for non glibc toolchain
Date: Sat, 11 Feb 2023 19:25:44 +0100 [thread overview]
Message-ID: <20230211182546.633728-2-thomas@devoogdt.com> (raw)
In-Reply-To: <20230211182546.633728-1-thomas@devoogdt.com>
From: Thomas Devoogdt <thomas.devoogdt@barco.com>
- require threads and dynamic library support
- require sync_4 support
- provide fts.h trough musl-fts
static_assert is not available if no C++ toolchain or no glibc
is used, so add two patches to fix this
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
v2: rebased the c-ares patch
.../0001-lib-cfl-fixup-static_assert.patch | 33 +++++++++++
.../0002-lib-c-ares-fixup-static_assert.patch | 56 +++++++++++++++++++
package/fluent-bit/Config.in | 10 +++-
package/fluent-bit/fluent-bit.mk | 11 +++-
4 files changed, 105 insertions(+), 5 deletions(-)
create mode 100644 package/fluent-bit/0001-lib-cfl-fixup-static_assert.patch
create mode 100644 package/fluent-bit/0002-lib-c-ares-fixup-static_assert.patch
diff --git a/package/fluent-bit/0001-lib-cfl-fixup-static_assert.patch b/package/fluent-bit/0001-lib-cfl-fixup-static_assert.patch
new file mode 100644
index 0000000000..19dab7cac6
--- /dev/null
+++ b/package/fluent-bit/0001-lib-cfl-fixup-static_assert.patch
@@ -0,0 +1,33 @@
+From e4f825dd9e952f4a056bf89342049e67102ae6bb Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas.devoogdt@barco.com>
+Date: Wed, 1 Feb 2023 11:38:15 +0100
+Subject: [PATCH] lib: cfl: fixup static_assert
+
+"undefined reference to 'static_assert'"
+
+Not defined when using uClibc or if not C++ >= 11.
+
+upstream: https://github.com/Cyan4973/xxHash/commit/6189ecd3d44a693460f86280ccf49d33cb4b18e1
+
+Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+---
+ lib/cfl/lib/xxhash/xxhash.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/lib/cfl/lib/xxhash/xxhash.h b/lib/cfl/lib/xxhash/xxhash.h
+index 08ab79457..511c4d12b 100644
+--- a/lib/cfl/lib/xxhash/xxhash.h
++++ b/lib/cfl/lib/xxhash/xxhash.h
+@@ -1546,8 +1546,7 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
+ /* note: use after variable declarations */
+ #ifndef XXH_STATIC_ASSERT
+ # if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */
+-# include <assert.h>
+-# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
++# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { _Static_assert((c),m); } while(0)
+ # elif defined(__cplusplus) && (__cplusplus >= 201103L) /* C++11 */
+ # define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
+ # else
+--
+2.34.1
+
diff --git a/package/fluent-bit/0002-lib-c-ares-fixup-static_assert.patch b/package/fluent-bit/0002-lib-c-ares-fixup-static_assert.patch
new file mode 100644
index 0000000000..d9b918ea8a
--- /dev/null
+++ b/package/fluent-bit/0002-lib-c-ares-fixup-static_assert.patch
@@ -0,0 +1,56 @@
+From f55f9bf6d9201169d2e5d3782068b03ff17dec90 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas.devoogdt@barco.com>
+Date: Wed, 1 Feb 2023 11:26:56 +0100
+Subject: [PATCH] lib: c-ares: fixup static_assert
+
+"undefined reference to 'static_assert'"
+
+Not defined when using uClibc or if not C++ >= 11.
+
+upstream: https://github.com/c-ares/c-ares/issues/504
+
+Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+---
+ lib/c-ares-1.19.0/configure | 4 ++++
+ lib/c-ares-1.19.0/m4/ax_cxx_compile_stdcxx_11.m4 | 3 +++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/lib/c-ares-1.19.0/configure b/lib/c-ares-1.19.0/configure
+index 4c5e1a966..58712ec34 100755
+--- a/lib/c-ares-1.19.0/configure
++++ b/lib/c-ares-1.19.0/configure
+@@ -6317,6 +6317,8 @@ else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
++#define static_assert _Static_assert
++
+ template <typename T>
+ struct check
+ {
+@@ -6394,6 +6396,8 @@ else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
++#define static_assert _Static_assert
++
+ template <typename T>
+ struct check
+ {
+diff --git a/lib/c-ares-1.19.0/m4/ax_cxx_compile_stdcxx_11.m4 b/lib/c-ares-1.19.0/m4/ax_cxx_compile_stdcxx_11.m4
+index 229de3091..fe4a11c67 100644
+--- a/lib/c-ares-1.19.0/m4/ax_cxx_compile_stdcxx_11.m4
++++ b/lib/c-ares-1.19.0/m4/ax_cxx_compile_stdcxx_11.m4
+@@ -37,6 +37,9 @@
+ #serial 9
+
+ m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [[
++
++#define static_assert _Static_assert
++
+ template <typename T>
+ struct check
+ {
+--
+2.34.1
+
diff --git a/package/fluent-bit/Config.in b/package/fluent-bit/Config.in
index 6c2299e695..f53eacb447 100644
--- a/package/fluent-bit/Config.in
+++ b/package/fluent-bit/Config.in
@@ -1,6 +1,9 @@
config BR2_PACKAGE_FLUENT_BIT
bool "fluent-bit"
- depends on BR2_TOOLCHAIN_USES_GLIBC
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
+ depends on !BR2_STATIC_LIBS # dlfcn.h
+ select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_LIBYAML
help
@@ -29,5 +32,6 @@ config BR2_PACKAGE_FLUENT_BIT_WASM
endif
-comment "fluent-bit needs a glibc toolchain"
- depends on !BR2_TOOLCHAIN_USES_GLIBC
+comment "fluent-bit needs a toolchain w/ threads, dynamic library"
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/fluent-bit/fluent-bit.mk b/package/fluent-bit/fluent-bit.mk
index c10ef613d7..4ecf813511 100644
--- a/package/fluent-bit/fluent-bit.mk
+++ b/package/fluent-bit/fluent-bit.mk
@@ -49,12 +49,19 @@ FLUENT_BIT_CONF_OPTS += \
-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" \
-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -U_FILE_OFFSET_BITS"
+ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),)
+FLUENT_BIT_DEPENDENCIES += musl-fts
+FLUENT_BIT_LDFLAGS += -lfts
+endif
+
# Uses __atomic_compare_exchange_8
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-FLUENT_BIT_CONF_OPTS += \
- -DCMAKE_EXE_LINKER_FLAGS=-latomic
+FLUENT_BIT_LDFLAGS += -latomic
endif
+FLUENT_BIT_CONF_OPTS += \
+ -DCMAKE_EXE_LINKER_FLAGS="$(FLUENT_BIT_LDFLAGS)"
+
define FLUENT_BIT_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/fluent-bit/S99fluent-bit \
$(TARGET_DIR)/etc/init.d/S99fluent-bit
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2023-02-11 18:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-11 18:25 [Buildroot] [PATCH v2 1/3] package/fluent-bit: bump to version 2.0.9 thomas
2023-02-11 18:25 ` thomas [this message]
2023-02-15 9:21 ` [Buildroot] [PATCH v2 2/3] package/fluent-bit: add support for non glibc toolchain Peter Korsgaard
2023-02-15 11:41 ` Thomas Devoogdt
2023-02-15 12:52 ` Peter Korsgaard
2023-02-11 18:25 ` [Buildroot] [PATCH v2 3/3] package/fluent-bit: fix builds on s390x architectures thomas
2023-02-15 9:22 ` Peter Korsgaard
2023-02-15 9:19 ` [Buildroot] [PATCH v2 1/3] package/fluent-bit: bump to version 2.0.9 Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230211182546.633728-2-thomas@devoogdt.com \
--to=thomas@devoogdt.com \
--cc=buildroot@buildroot.org \
--cc=thomas.devoogdt@barco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.