tools/elfutils: use locally declared static reallocarray()
[openwrt/staging/blocktrron.git] / tools / elfutils / Makefile
index 98694beb0effc2acd98d7466f11a9e42952fabab..140250801c9d30bf3379c0f6b403333eb8d00249 100644 (file)
@@ -3,12 +3,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=elfutils
-PKG_VERSION:=0.186
+PKG_VERSION:=0.191
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
-PKG_HASH:=7f6fb9149b1673d38d9178a0d3e0fb8a1ec4f53a9f4c2ff89469609879641177
+PKG_HASH:=df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871
 
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_LICENSE_FILES:=COPYING COPYING-GPLV2 COPYING-LGPLV3
@@ -17,16 +17,77 @@ PKG_CPE_ID:=cpe:/a:elfutils_project:elfutils
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
-HOST_BUILD_DEPENDS:=argp-standalone/host musl-fts/host
+PKG_SUBDIRS := \
+       libgnu \
+       config \
+       lib \
+       libelf \
+       libcpu \
+       backends \
+       libebl \
+       libdwelf \
+       libdwfl \
+       libdw
+
+PKG_GNULIB_BASE:=libgnu
+
+PKG_GNULIB_ARGS = \
+       --dir=$(HOST_BUILD_DIR) \
+       --local-dir=$(STAGING_DIR_HOST)/share/gnulib \
+       --source-base=$(PKG_GNULIB_BASE) \
+       --libtool \
+       --avoid=reallocarray \
+       --import
+
+PKG_GNULIB_MODS = \
+       argp \
+       dirname \
+       fts \
+       obstack \
+       progname \
+       strchrnul \
+       tsearch
 
 include $(INCLUDE_DIR)/host-build.mk
 
+ifeq ($(HOST_OS),Darwin)
+  HOST_CFLAGS += -I/opt/homebrew/include
+endif
+
+HOST_CFLAGS += -Wno-error -fPIC
+
 HOST_CONFIGURE_ARGS += \
+       --without-libintl-prefix \
+       --without-libiconv-prefix \
        --disable-debuginfod \
        --disable-libdebuginfod \
        --disable-nls \
        --disable-shared \
+       --enable-static \
        --without-lzma \
+       --without-bzlib \
        --without-zstd
 
+ifeq ($(HOST_OS),Darwin)
+  HOST_CONFIGURE_ARGS += --disable-symbol-versioning
+endif
+
+Hooks/HostConfigure/Pre := Host/Gnulib $(Hooks/HostConfigure/Pre)
+define Host/Gnulib
+       $(STAGING_DIR_HOST)/bin/gnulib-tool $(PKG_GNULIB_ARGS) $(PKG_GNULIB_MODS);
+       ln -sf ../lib/eu-config.h $(HOST_BUILD_DIR)/libgnu/;
+endef
+
+define Host/Compile
+       $(call Host/Compile/Default,SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
+endef
+
+define Host/Install
+       $(call Host/Compile/Default,install SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))')
+endef
+
+define Host/Uninstall
+       -$(call Host/Compile/Default,uninstall)
+endef
+
 $(eval $(call HostBuild))