From: Michael Pratt Date: Mon, 8 Apr 2024 03:28:51 +0000 (-0400) Subject: tools/elfutils: use locally declared static reallocarray() X-Git-Url: http://git.openwrt.org/openwrt/openwrt.git;lede-17.01?a=commitdiff_plain;h=20ed56ec8b80936132d3dd66e3a7b82dd1d2ed89;p=openwrt%2Fstaging%2Fstintel.git tools/elfutils: use locally declared static reallocarray() On macOS, stdlib.h in the standard include paths does not provide reallocarray() while both elfutils and gnulib do, however they are declared differently, leading to an error: ./system.h:101:1: error: static declaration of 'reallocarray' follows non-static declaration reallocarray (void *ptr, size_t nmemb, size_t size) A normal "configure && make" build cycle results in both declarations being enabled as a result of both elfutils and gnulib having completely separate configure checks where gnulib uses an internal placeholder symbol HAVE_REALLOCARRAY, and elfutils uses a standard autoconf macro HAVE_DECL_REALLOCARRAY. Fix this by excluding the import of the reallocarray module which causes gnulib checks in the configure stage to not even consider whether to declare reallocarray later on, so the decision is only between the standard include stdlib.h and the elfutils header. Tested-by: Georgi Valkov # MacOS Signed-off-by: Michael Pratt Signed-off-by: Tony Ambardar --- diff --git a/tools/elfutils/Makefile b/tools/elfutils/Makefile index c7d94d2a47..140250801c 100644 --- a/tools/elfutils/Makefile +++ b/tools/elfutils/Makefile @@ -36,6 +36,7 @@ PKG_GNULIB_ARGS = \ --local-dir=$(STAGING_DIR_HOST)/share/gnulib \ --source-base=$(PKG_GNULIB_BASE) \ --libtool \ + --avoid=reallocarray \ --import PKG_GNULIB_MODS = \