package/log4cplus: fix detection of -latomic
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Wed, 1 Jan 2020 17:54:57 +0000 (18:54 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 2 Jan 2020 08:18:46 +0000 (09:18 +0100)
Fixes:
 - http://autobuild.buildroot.org/results/5451df835e0e96545b322bc9bd74f76273ee3b34

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/log4cplus/0001-configure-ac-check-for-libraries-in-C-mode.patch [new file with mode: 0644]
package/log4cplus/log4cplus.mk

diff --git a/package/log4cplus/0001-configure-ac-check-for-libraries-in-C-mode.patch b/package/log4cplus/0001-configure-ac-check-for-libraries-in-C-mode.patch
new file mode 100644 (file)
index 0000000..6226a62
--- /dev/null
@@ -0,0 +1,62 @@
+From 4446516eb4fc8613d26669f5683f9d5d7c36ee67 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Wed, 18 Dec 2019 21:26:58 +0100
+Subject: [PATCH] configure.ac: check for libraries in C mode
+
+Fixes check for libraries failures, e.g. (from config.log):
+
+  arc-buildroot-linux-uclibc-g++ -o conftest -Os -Wall -fdiagnostics-show-caret -ftrack-macro-expansion -fdiagnostics-color=auto -Wextra -pedantic -Wstrict-aliasing -Wstrict-overflow -Woverloaded-virtual -Wold-style-cast -Wc++14-compat -Wundef -Wshadow -Wformat -Wnoexcept -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wno-variadic-macros -fvisibility=hidden conftest.cpp -latomic
+  conftest.cpp:28:6: error: new declaration 'char __atomic_fetch_and_4()' ambiguates built-in declaration 'unsigned int __atomic_fetch_and_4(volatile void*, unsigned int, int)' [-fpermissive]
+     28 | char __atomic_fetch_and_4 ();
+        |      ^~~~~~~~~~~~~~~~~~~~
+  conftest.cpp: In function 'int main()':
+  conftest.cpp:32:30: error: too few arguments to function 'unsigned int __atomic_fetch_and_4(volatile void*, unsigned int, int)'
+     32 | return __atomic_fetch_and_4 ();
+        |                              ^
+
+Resulting in:
+
+       checking for library containing __atomic_fetch_and_4... no
+
+instead (after the fix applied):
+
+       checking for library containing __atomic_fetch_and_4... -latomic
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+[Retrieved from:
+https://github.com/log4cplus/log4cplus/commit/4446516eb4fc8613d26669f5683f9d5d7c36ee67]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 72fbd870a..64eff1936 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -412,6 +412,7 @@ LOG4CPLUS_DEFINE_MACRO_IF([LOG4CPLUS_HAVE_VAR_ATTRIBUTE_INIT_PRIORITY],
+ dnl Checks for libraries.
++AC_LANG_PUSH([C])
+ AC_SEARCH_LIBS([__atomic_fetch_and_4], [atomic])
+ AC_SEARCH_LIBS([strerror], [cposix])
+ dnl On some systems libcompat exists only as a static library which
+@@ -422,6 +423,7 @@ AC_SEARCH_LIBS([setsockopt], [socket network net])
+ AS_IF([test "x$with_iconv" = "xyes"],
+   [AC_SEARCH_LIBS([iconv_open], [iconv], [],
+      [AC_SEARCH_LIBS([libiconv_open], [iconv])])])
++AC_LANG_POP([C])
+ dnl Windows/MinGW specific.
+@@ -497,7 +499,9 @@ dnl Multi threaded library.
+    AS_VAR_APPEND([LIBS], [" $PTHREAD_LIBS"])
+    dnl required on HP-UX
++   AC_LANG_PUSH([C])
+    AC_SEARCH_LIBS([sem_init], [rt])
++   AC_LANG_POP([C])
+    AS_CASE([$ax_cv_cxx_compiler_vendor],
+      [gnu|clang],
index eadc5ec9489ea273c542ef0c0b7c2859094368e6..8a613efaee77c1eaa171e55493dcbc8c13e0d76a 100644 (file)
@@ -10,6 +10,8 @@ LOG4CPLUS_SITE = http://downloads.sourceforge.net/project/log4cplus/log4cplus-st
 LOG4CPLUS_LICENSE = Apache-2.0, BSD-2-Clause, BSD-like (threadpool)
 LOG4CPLUS_LICENSE_FILES = LICENSE
 LOG4CPLUS_INSTALL_STAGING = YES
+# We're patching configure.ac
+LOG4CPLUS_AUTORECONF = YES
 
 ifeq ($(BR2_GCC_ENABLE_LTO),y)
 LOG4CPLUS_CONF_OPTS += --enable-lto