[Buildroot] [PATCH 1/1] package/iwd: fix build with uclibc-ng

Fabrice Fontaine fontaine.fabrice at gmail.com
Mon Sep 20 16:30:31 UTC 2021


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 at gmail.com>
---
 ...-build-Add-reallocarray-to-missing-h.patch | 55 +++++++++++++++++++
 package/iwd/iwd.mk                            |  2 +
 2 files changed, 57 insertions(+)
 create mode 100644 package/iwd/0001-build-Add-reallocarray-to-missing-h.patch

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
index 0000000000..ef6114f1af
--- /dev/null
+++ b/package/iwd/0001-build-Add-reallocarray-to-missing-h.patch
@@ -0,0 +1,55 @@
+From ec1c348b4fd67619fa0c2f55ae644f6a8014d971 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice at 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 at 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
+
diff --git a/package/iwd/iwd.mk b/package/iwd/iwd.mk
index 9737f2c626..58535b1aa1 100644
--- a/package/iwd/iwd.mk
+++ b/package/iwd/iwd.mk
@@ -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 \
-- 
2.33.0



More information about the buildroot mailing list