From 071eea24aa38f6d15de3041320c52784897183dc Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 20 Sep 2021 18:30:31 +0200 Subject: [PATCH] package/iwd: fix build with uclibc-ng 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 Reviewed-by: Peter Seiderer Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- ...-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 +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 +--- + 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.30.2