package/iwd: fix build with uclibc-ng
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Mon, 20 Sep 2021 16:30:31 +0000 (18:30 +0200)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Wed, 22 Sep 2021 19:14:04 +0000 (21:14 +0200)
Fix the following build failure with uclibc-ng raised since bump to
version 1.17 in commit 9badccc9d4887aa2365d7350e3b26bd4250dad48:

/home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: src/sae.o: in function `sae_rx_authenticate':
sae.c:(.text+0xd74): undefined reference to `reallocarray'

Fixes:
 - http://autobuild.buildroot.org/results/c6d3f86282c44645b4f1c61882dc63ccfc8eb35a

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Reviewed-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/iwd/0001-build-Add-reallocarray-to-missing-h.patch [new file with mode: 0644]
package/iwd/iwd.mk

diff --git a/package/iwd/0001-build-Add-reallocarray-to-missing-h.patch b/package/iwd/0001-build-Add-reallocarray-to-missing-h.patch
new file mode 100644 (file)
index 0000000..ef6114f
--- /dev/null
@@ -0,0 +1,55 @@
+From ec1c348b4fd67619fa0c2f55ae644f6a8014d971 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 19 Sep 2021 21:17:44 +0200
+Subject: build: Add reallocarray to missing.h
+
+reallocarray has been added to glibc relatively recently (version 2.26,
+from 2017) and apparently not all users run new enough glibc. Moreover,
+reallocarray is not available with uclibc-ng. So use realloc if
+reallocarray is not available to avoid the following build failure
+raised since commit 891b78e9e892a3bcd800eb3a298e6380e9a15dd1:
+
+/home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/10.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: src/sae.o: in function `sae_rx_authenticate':
+sae.c:(.text+0xd74): undefined reference to `reallocarray'
+
+Fixes:
+ - http://autobuild.buildroot.org/results/c6d3f86282c44645b4f1c61882dc63ccfc8eb35a
+
+[Retrieved from:
+https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=ec1c348b4fd67619fa0c2f55ae644f6a8014d971]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac  | 1 +
+ src/missing.h | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index c6250401..51d9da93 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -129,6 +129,7 @@ AC_DEFINE_UNQUOTED(WIRED_STORAGEDIR, "${wired_storagedir}",
+ AC_CHECK_FUNCS(explicit_bzero)
+ AC_CHECK_FUNCS(rawmemchr)
++AC_CHECK_FUNCS(reallocarray)
+ AC_CHECK_HEADERS(linux/types.h linux/if_alg.h)
+diff --git a/src/missing.h b/src/missing.h
+index 2cc80aee..a5b92952 100644
+--- a/src/missing.h
++++ b/src/missing.h
+@@ -37,3 +37,10 @@ _Pragma("GCC diagnostic ignored \"-Wstringop-overflow=\"")
+ _Pragma("GCC diagnostic pop")
+ }
+ #endif
++
++#ifndef HAVE_REALLOCARRAY
++static inline void *reallocarray(void *ptr, size_t nmemb, size_t size)
++{
++      return realloc(ptr, nmemb * size);
++}
++#endif
+-- 
+cgit 1.2.3-1.el7
+
index 9737f2c6266e744776927aa4940ff872e4a335f4..58535b1aa116c4291ae534600d0641a540f827a2 100644 (file)
@@ -12,6 +12,8 @@ IWD_LICENSE_FILES = COPYING
 IWD_CPE_ID_VENDOR = intel
 IWD_CPE_ID_PRODUCT = inet_wireless_daemon
 IWD_SELINUX_MODULES = networkmanager
+# We're patching configure.ac
+IWD_AUTORECONF = YES
 
 IWD_CONF_OPTS = \
        --disable-manual-pages \