elfutils: update to 0.179

Removed sys/cdefs usage. The header is deprecated.

Removed canonicalize_file_name define. It's already fixed upstream.

Added --disable-debuginfod. Seems to be needed.

Modified patch 005 to build more stuff. It was failing before. It still
only builds libraries.

Modified patch 100 to use strerror under non-glibc. It is used under
glibc as strerror is not thread safe. It is under musl and uClibc-ng.
strerror_l is not available under uClibc-ng.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
master
Rosen Penev 2020-04-05 19:02:38 -07:00 committed by Hauke Mehrtens
parent 76d22fc24b
commit d27623b542
6 changed files with 118 additions and 76 deletions

View File

@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=elfutils
PKG_VERSION:=0.177
PKG_RELEASE:=2
PKG_VERSION:=0.179
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://sourceware.org/$(PKG_NAME)/ftp/$(PKG_VERSION)
PKG_HASH:=fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e
PKG_HASH:=25a545566cbacaa37ae6222e58f1c48ea4570f53ba991886e2f5ce96e22a23a2
PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
PKG_LICENSE:=GPL-3.0-or-later
@ -63,6 +63,7 @@ endif
CONFIGURE_ARGS += \
--program-prefix=eu- \
--disable-debuginfod \
--without-lzma
TARGET_CFLAGS += -D_GNU_SOURCE -Wno-unused-result -Wno-format-nonliteral

View File

@ -1,52 +1,3 @@
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -39,6 +39,9 @@
#include <stdio.h>
#include <string.h>
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -35,7 +35,9 @@
#include <libdw.h>
#include <dwarf.h>
-
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -43,6 +43,9 @@
typedef struct Dwfl_Process Dwfl_Process;
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libasm/libasmP.h
+++ b/libasm/libasmP.h
@@ -35,6 +35,9 @@
#include "libdwelf.h"
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/config/libelf.pc.in
+++ b/config/libelf.pc.in
@@ -8,7 +8,7 @@ Description: elfutils libelf library to
@ -60,7 +11,7 @@
Requires.private: zlib
--- a/configure.ac
+++ b/configure.ac
@@ -543,6 +543,9 @@ AC_CONFIG_FILES([config/libelf.pc config
@@ -586,6 +586,9 @@ AC_CONFIG_FILES([config/libelf.pc config
AC_SUBST(USE_NLS, yes)
AM_PO_SUBDIRS
@ -70,3 +21,51 @@
dnl Appended to the config.h file.
dnl We hide all kinds of configuration magic in lib/eu-config.h.
AH_BOTTOM([#include <eu-config.h>])
--- a/libasm/libasmP.h
+++ b/libasm/libasmP.h
@@ -36,6 +36,9 @@
#include "libdwelf.h"
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -37,6 +37,9 @@
#include <dwarf.h>
#include "atomics.h"
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -44,6 +44,9 @@
typedef struct Dwfl_Process Dwfl_Process;
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -39,6 +39,9 @@
#include <stdio.h>
#include <string.h>
+#ifdef _ /* fix libintl-stub */
+#undef _
+#endif
/* gettext helper macros. */
#define _(Str) dgettext ("elfutils", Str)

View File

@ -1,12 +1,11 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,8 +27,7 @@ AM_MAKEFLAGS = --no-print-directory
@@ -27,7 +27,7 @@ AM_MAKEFLAGS = --no-print-directory
pkginclude_HEADERS = version.h
# Add doc back when we have some real content.
-SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
- backends src po tests
+SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libasm
SUBDIRS = config m4 lib libelf libcpu backends libebl libdwelf libdwfl libdw \
- libasm src po doc tests
+ libasm
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
COPYING COPYING-GPLV2 COPYING-LGPLV3
if DEBUGINFOD
SUBDIRS += debuginfod

View File

@ -22,20 +22,9 @@ https://sourceware.org/bugzilla/show_bug.cgi?id=21002
#include <stddef.h>
#include <stdint.h>
#include <sys/param.h>
@@ -38,6 +49,10 @@
#include <byteswap.h>
#include <unistd.h>
+#ifndef __GLIBC__
+#define canonicalize_file_name(name) realpath(name,NULL)
+#endif
+
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define LE32(n) (n)
# define LE64(n) (n)
--- a/libdw/libdw_alloc.c
+++ b/libdw/libdw_alloc.c
@@ -73,5 +73,5 @@ __attribute ((noreturn)) attribute_hidde
@@ -147,5 +147,5 @@ __attribute ((noreturn)) attribute_hidde
__libdw_oom (void)
{
while (1)
@ -44,12 +33,15 @@ https://sourceware.org/bugzilla/show_bug.cgi?id=21002
}
--- a/libdwfl/dwfl_error.c
+++ b/libdwfl/dwfl_error.c
@@ -154,7 +154,7 @@ dwfl_errmsg (int error)
@@ -154,7 +154,11 @@ dwfl_errmsg (int error)
switch (error &~ 0xffff)
{
case OTHER_ERROR (ERRNO):
- return strerror_r (error & 0xffff, "bad", 0);
+ return strerror_l (error & 0xffff, LC_GLOBAL_LOCALE);
+#if defined(__GLIBC__) && !defined(__UCLIBC__)
return strerror_r (error & 0xffff, "bad", 0);
+#else
+ return strerror (error & 0xffff);
+#endif
case OTHER_ERROR (LIBELF):
return elf_errmsg (error & 0xffff);
case OTHER_ERROR (LIBDW):

View File

@ -72,7 +72,7 @@
struct parse_opt *opt = state->hook;
--- a/libdwfl/Makefile.am
+++ b/libdwfl/Makefile.am
@@ -49,7 +49,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
@@ -50,7 +50,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
argp-std.c find-debuginfo.c \
dwfl_build_id_find_elf.c \
dwfl_build_id_find_debuginfo.c \

View File

@ -0,0 +1,51 @@
From e399540ab67ffe83ca3c4cb768a2f0f2f32a9057 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Sun, 5 Apr 2020 15:56:59 -0700
Subject: [PATCH] libelf: remove usage of sys/cdefs
sys/cdefs is a deprecated glibc header that is unavailable with other
libc implementations such as musl.
features.h under glibc includes sys/cdefs whereas it does not under musl.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
lib/fixedsizehash.h | 1 -
libelf/elf.h | 10 ++++++----
2 files changed, 6 insertions(+), 5 deletions(-)
--- a/lib/fixedsizehash.h
+++ b/lib/fixedsizehash.h
@@ -30,7 +30,6 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/cdefs.h>
#include <system.h>
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -19,9 +19,9 @@
#ifndef _ELF_H
#define _ELF_H 1
-#include <features.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/* Standard ELF types. */
@@ -4007,6 +4007,8 @@ enum
#define R_NDS32_TLS_TPOFF 102
#define R_NDS32_TLS_DESC 119
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* elf.h */