Browse Source

use elfutils systemwide

libelf is deprecated and does not build with gcc-14.
Use elfutils instead as drop-in replacement.
Add patches from Buildroot to disable progs, which use glibc
specific functions.
Waldemar Brodkorb 3 months ago
parent
commit
12db3c8436

+ 12 - 10
package/elfutils/Makefile

@@ -4,16 +4,16 @@
 include $(ADK_TOPDIR)/rules.mk
 
 PKG_NAME:=		elfutils
-PKG_VERSION:=		0.161
+PKG_VERSION:=		0.189
 PKG_RELEASE:=		1
-PKG_HASH:=		570c91a1783fa5386aaa2dfdd08dda1de777c2b63bf3b9c1437d635ffdd7a070
+PKG_HASH:=		39bd8f1a338e2b7cd4abc3ff11a0eddc6e690f69578a57478d8179b4148708c8
 PKG_DESCR:=		libraries/utilities to handle elf objects (drop in replacement for libelf)
 PKG_SECTION:=		base/libs
-PKG_URL:=		https://fedorahosted.org/elfutils/
-PKG_SITES:=		https://fedorahosted.org/releases/e/l/elfutils/$(PKG_VERSION)/
+PKG_NEEDS:=		intl
+PKG_SITES:=		https://sourceware.org/elfutils/ftp/$(PKG_VERSION)/
 
 # require argp()
-PKG_LIBC_DEPENDS:=	glibc
+PKG_LIBC_DEPENDS:=	glibc uclibc-ng
 
 DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
@@ -24,14 +24,16 @@ $(eval $(call PKG_template,ELFUTILS,elfutils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG
 # not only because we pass -DNDEBUG, this package won't build with -Werror
 TARGET_CFLAGS+=		-Wno-error
 
+AUTOTOOL_STYLE:=	autoreconf
+CONFIGURE_ARGS+=	--disable-symbol-versioning \
+			--disable-debuginfod \
+			--disable-libdebuginfod \
+			--disable-demangler \
+			--disable-progs
+
 elfutils-install:
 	$(INSTALL_DIR) $(IDIR_ELFUTILS)/usr/lib/elfutils
 	$(CP) $(WRKINST)/usr/lib/lib{asm,dw,elf}*.so* \
 		$(IDIR_ELFUTILS)/usr/lib
-	$(CP) $(WRKINST)/usr/lib/elfutils/libebl*.so \
-		$(IDIR_ELFUTILS)/usr/lib/elfutils
-	$(INSTALL_DIR) $(IDIR_ELFUTILS)/usr/bin
-	$(INSTALL_BIN) $(WRKINST)/usr/bin/* \
-		$(IDIR_ELFUTILS)/usr/bin
 
 include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 16 - 0
package/elfutils/patches/patch-Makefile_am

@@ -0,0 +1,16 @@
+--- elfutils-0.189.orig/Makefile.am	2023-03-03 16:42:26.000000000 +0100
++++ elfutils-0.189/Makefile.am	2025-01-08 20:12:14.302360288 +0100
+@@ -26,8 +26,12 @@ AM_MAKEFLAGS = --no-print-directory
+ 
+ pkginclude_HEADERS = version.h
+ 
++if ENABLE_PROGS
++PROGS_SUBDIR = src
++endif
++
+ SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \
+-	  libasm debuginfod src po doc tests
++	  libasm debuginfod $(PROGS_SUBDIR) po doc tests
+ 
+ EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
+ 	     COPYING COPYING-GPLV2 COPYING-LGPLV3

+ 24 - 0
package/elfutils/patches/patch-configure_ac

@@ -0,0 +1,24 @@
+--- elfutils-0.189.orig/configure.ac	2023-03-03 16:42:26.000000000 +0100
++++ elfutils-0.189/configure.ac	2025-01-08 20:12:14.302360288 +0100
+@@ -422,6 +422,12 @@ AS_HELP_STRING([--enable-tests-rpath],[b
+ 	       [tests_use_rpath=$enableval], [tests_use_rpath=no])
+ AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes)
+ 
++AC_ARG_ENABLE([progs],
++	AS_HELP_STRING([--enable-progs], [enable progs]),
++	enable_progs=$enableval,
++	enable_progs=yes)
++AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes)
++
+ dnl zlib is mandatory.
+ save_LIBS="$LIBS"
+ LIBS=
+@@ -659,7 +665,7 @@ saved_LIBS="$LIBS"
+ AC_SEARCH_LIBS([_obstack_free], [obstack])
+ LIBS="$saved_LIBS"
+ case "$ac_cv_search__obstack_free" in
+-        no) AC_MSG_FAILURE([failed to find _obstack_free]) ;;
++        no) obstack_LIBS= ;;
+         -l*) obstack_LIBS="$ac_cv_search__obstack_free" ;;
+         *) obstack_LIBS= ;;
+ esac

+ 0 - 31
package/libelf/Makefile

@@ -1,31 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:=		libelf
-PKG_VERSION:=		0.8.13
-PKG_RELEASE:=		1
-PKG_HASH:=		591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d
-PKG_DESCR:=		elf library
-PKG_SECTION:=		libs/misc
-PKG_SITES:=		http://www.mr511.de/software/
-PKG_OPTS:=		dev
-
-DISTFILES:=		$(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,LIBELF,libelf,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-
-CONFIGURE_ENV+=		mr_cv_target_elf=yes \
-			ac_cv_sizeof_long_long=8
-CONFIGURE_ARGS+=	--enable-elf64=yes \
-			--disable-sanity-checks
-FAKE_FLAGS+=		instroot="${WRKINST}"
-
-libelf-install:
-	${INSTALL_DIR} ${IDIR_LIBELF}/usr/lib
-	${CP} ${WRKINST}/usr/lib/libelf.so* ${IDIR_LIBELF}/usr/lib/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk

+ 0 - 11
package/libelf/patches/patch-lib_Makefile_in

@@ -1,11 +0,0 @@
---- libelf-0.8.13.orig/lib/Makefile.in	2009-11-01 14:04:19.000000000 +0100
-+++ libelf-0.8.13/lib/Makefile.in	2011-01-15 21:55:08.000000000 +0100
-@@ -158,7 +158,7 @@ libelf.a: $(OBJS) $(LIBOBJS)
- 
- $(SHLIB): libelf.a
- 	@$(RM) $(SHLIB)
--	$(LINK_SHLIB) -o $(SHLIB) $(OBJS:.o=.os) $(LIBOBJS:.o=.os) $(DEPSHLIBS)
-+	$(LINK_SHLIB) $(LDFLAGS) -o $(SHLIB) $(OBJS:.o=.os) $(LIBOBJS:.o=.os) $(DEPSHLIBS)
- 	if test "$(SONAME)" = "$(SHLIB)"; then true; else \
- 	  $(RM) $(SONAME) && $(LN_S) $(SHLIB) $(SONAME); \
- 	fi

+ 2 - 2
package/ltrace/Makefile

@@ -9,8 +9,8 @@ PKG_RELEASE:=		1
 PKG_HASH:=		0e6f8c077471b544c06def7192d983861ad2f8688dd5504beae62f0c5f5b9503
 PKG_DESCR:=		intercepts and records dynamic library calls 
 PKG_SECTION:=		app/debug
-PKG_DEPENDS:=		libelf
-PKG_BUILDDEP:=		libelf
+PKG_DEPENDS:=		elfutils
+PKG_BUILDDEP:=		elfutils
 PKG_NEEDS:=		c++
 PKG_URL:=		http://ltrace.org/
 PKG_SITES:=		http://www.ltrace.org/

+ 2 - 2
package/make/Makefile

@@ -9,8 +9,8 @@ PKG_RELEASE:=		1
 PKG_HASH:=		dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3
 PKG_DESCR:=		c/c++ code buildtool
 PKG_SECTION:=		dev/tools
-PKG_DEPENDS:=		libelf
-PKG_BUILDDEP:=		libelf
+PKG_DEPENDS:=		elfutils
+PKG_BUILDDEP:=		elfutils
 PKG_URL:=		http://www.gnu.org/software/make
 PKG_SITES:=		${MASTER_SITE_GNU:=make/}
 

+ 4 - 4
package/net-snmp/Makefile

@@ -9,8 +9,8 @@ PKG_RELEASE:=		1
 PKG_HASH:=		b2fc3500840ebe532734c4786b0da4ef0a5f67e51ef4c86b3345d697e4976adf
 PKG_DESCR:=		snmp agent
 PKG_SECTION:=		net/misc
-PKG_DEPENDS:=		libnetsnmp libelf libnl
-PKG_BUILDDEP:=		libelf libnl
+PKG_DEPENDS:=		libnetsnmp elfutils libnl
+PKG_BUILDDEP:=		elfutils libnl
 PKG_URL:=		http://www.net-snmp.org/
 PKG_SITES:=		$(MASTER_SITE_SOURCEFORGE:=net-snmp/)
 PKG_NOPARALLEL:=	1
@@ -21,9 +21,9 @@ DISTFILES:=		$(PKG_NAME)-$(PKG_VERSION).tar.gz
 
 PKG_SUBPKGS:=		SNMPD SNMP_UTILS LIBNETSNMP
 PKGSD_SNMP_UTILS:=	snmp utilities
-PKGSS_SNMP_UTILS:=	libnetsnmp libelf
+PKGSS_SNMP_UTILS:=	libnetsnmp elfutils
 PKGSD_LIBNETSNMP:=	snmp library
-PKGSS_LIBNETSNMP:=	libelf
+PKGSS_LIBNETSNMP:=	elfutils
 PKGSC_LIBNETSNMP:=	libs/net
 
 PKG_FLAVOURS_SNMPD:=	WITH_IPV6

+ 2 - 2
package/screen/Makefile

@@ -9,8 +9,8 @@ PKG_RELEASE:=		1
 PKG_HASH:=		f04a39d00a0e5c7c86a55338808903082ad5df4d73df1a2fd3425976aed94971
 PKG_DESCR:=		window manager for the terminal session
 PKG_SECTION:=		sys/utils
-PKG_DEPENDS:=		libncurses libelf
-PKG_BUILDDEP:=		ncurses libelf
+PKG_DEPENDS:=		libncurses elfutils
+PKG_BUILDDEP:=		ncurses elfutils
 PKG_NEEDS:=		mmu
 PKG_URL:=		http://www.gnu.org/software/screen/
 PKG_SITES:=		${MASTER_SITE_GNU:=screen/}