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 --- Changes v1 -> v2 (after review of Denis Kenzior): - Remove SoB - Add reallocarray to missing.h 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 -- 2.33.0