building the programs against uClibc causes several issues (lack of
obstack_printf() in uClibc for example).
+Based on the former patch by Thomas Petazzoni.
+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Index: b/Makefile.am
-===================================================================
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -22,9 +22,13 @@
-
- pkginclude_HEADERS = version.h
-
-+if ENABLE_PROGS
-+PROGS_SUBDIR = src
-+endif
-+
- # Add doc back when we have some real content.
- SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
-- src po tests
-+ $(PROGS_SUBDIR) po tests
-
- EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
- COPYING COPYING-GPLV2 COPYING-LGPLV3
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -263,6 +263,12 @@
+diff -rup a/configure.ac b/configure.ac
+--- a/configure.ac 2014-11-07 14:54:32.859360779 +0000
++++ b/configure.ac 2014-11-07 14:47:44.847376394 +0000
+@@ -253,6 +253,12 @@ AC_SUBST([LIBEBL_SUBDIR])
AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR")
AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.])
-
+
+AC_ARG_ENABLE([progs],
+ AS_HELP_STRING([--enable-progs], [enable progs]),
+ enable_progs=$enableval,
dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am
dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
save_LIBS="$LIBS"
+diff -rup a/Makefile.am b/Makefile.am
+--- a/Makefile.am 2014-08-27 10:25:17.000000000 +0100
++++ b/Makefile.am 2014-11-07 14:51:38.081368550 +0000
+@@ -22,9 +22,13 @@ ACLOCAL_AMFLAGS = -I m4
+
+ pkginclude_HEADERS = version.h
+
++if ENABLE_PROGS
++PROGS_SUBDIR = src
++endif
++
+ # Add doc back when we have some real content.
+ SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
+- backends src po tests
++ backends $(PROGS_SUBDIR) po tests
+
+ EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
+ COPYING COPYING-GPLV2 COPYING-LGPLV3
This allows to build elfutils against uClibc with an external argp
library.
+Based on the former patch by Thomas Petazzoni.
+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -269,6 +269,13 @@
- enable_progs=yes)
+diff -rup a/configure.ac b/configure.ac
+--- a/configure.ac 2014-11-07 15:00:38.663627402 +0000
++++ b/configure.ac 2014-11-07 15:02:30.233539737 +0000
+@@ -259,6 +259,13 @@ AC_ARG_ENABLE([progs],
+ enable_progs=yes)
AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes)
-
+
+AC_CHECK_FUNC([argp_parse])
+if test "$ac_cv_func_argp_parse" != yes; then
-+ AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp,
++ AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp,
+ AC_MSG_ERROR([No argp_parse function available.]))
+fi
+AC_SUBST(ARGP_LIBS)
dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am
dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
save_LIBS="$LIBS"
-Index: b/src/Makefile.am
-===================================================================
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -98,26 +98,29 @@
- # Buggy old compilers.
- readelf_no_Werror = yes
-
--readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
-+readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
-+ $(ARGP_LIBS)
- nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+diff -rup a/libdw/Makefile.am b/libdw/Makefile.am
+--- a/libdw/Makefile.am 2014-08-27 10:25:17.000000000 +0100
++++ b/libdw/Makefile.am 2014-11-07 15:09:32.804794962 +0000
+@@ -110,7 +110,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l
+ -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
+ -Wl,--version-script,$<,--no-undefined \
+ -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
+- -ldl $(zip_LIBS)
++ -ldl $(zip_LIBS) $(ARGP_LIBS)
+ if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
+ ln -fs $@ $@.$(VERSION)
+
+diff -rup a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2014-11-07 15:00:35.867579484 +0000
++++ b/src/Makefile.am 2014-11-07 15:08:47.380013980 +0000
+@@ -94,27 +94,29 @@ readelf_no_Werror = yes
+ strings_no_Werror = yes
+ addr2line_no_Wformat = yes
+
+-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
++readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS)
+ nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \
- $(demanglelib)
--size_LDADD = $(libelf) $(libeu) $(libmudflap)
--strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
--ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+-size_LDADD = $(libelf) $(libeu)
+-strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl
+-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl
+ $(demanglelib) $(ARGP_LIBS)
-+size_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
-+strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
-+ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
++size_LDADD = $(libelf) $(libeu) $(ARGP_LIBS)
++strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS)
++ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS)
if NATIVE_LD
# -ldl is always needed for libebl.
ld_LDADD += libld_elf.a
endif
ld_LDFLAGS = -rdynamic
--elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
--findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap)
--addr2line_LDADD = $(libdw) $(libelf) $(libmudflap)
--elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl
--objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
--ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
--strings_LDADD = $(libelf) $(libeu) $(libmudflap)
--ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
--unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl
-+elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
-+findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
-+addr2line_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
-+elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl $(ARGP_LIBS)
-+objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
-+ $(ARGP_LIBS)
-+ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
-+strings_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
-+ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
-+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl \
+-elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl
+-findtextrel_LDADD = $(libdw) $(libelf)
+-addr2line_LDADD = $(libdw) $(libelf)
+-elfcmp_LDADD = $(libebl) $(libelf) -ldl
+-objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl
+-ranlib_LDADD = libar.a $(libelf) $(libeu)
+-strings_LDADD = $(libelf) $(libeu)
+-ar_LDADD = libar.a $(libelf) $(libeu)
+-unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl
+-stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(demanglelib)
++elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS)
++findtextrel_LDADD = $(libdw) $(libelf) $(ARGP_LIBS)
++addr2line_LDADD = $(libdw) $(libelf) $(ARGP_LIBS)
++elfcmp_LDADD = $(libebl) $(libelf) -ldl $(ARGP_LIBS)
++objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl \
+ $(ARGP_LIBS)
-
++ranlib_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS)
++strings_LDADD = $(libelf) $(libeu) $(ARGP_LIBS)
++ar_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS)
++unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(ARGP_LIBS)
++stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl \
++ $(demanglelib) $(ARGP_LIBS)
+
ldlex.o: ldscript.c
ldlex_no_Werror = yes
-Index: b/libdw/Makefile.am
-===================================================================
---- a/libdw/Makefile.am
-+++ b/libdw/Makefile.am
-@@ -111,7 +111,7 @@
- -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
- -Wl,--version-script,$<,--no-undefined \
- -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
-- -ldl $(zip_LIBS)
-+ -ldl $(zip_LIBS) $(ARGP_LIBS)
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
- ln -fs $@ $@.$(VERSION)
-
doesn't exist in uClibc. Add a manual alias so that the build can
proceed with uClibc.
+Based on the former patch by Thomas Petazzoni.
+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Index: b/libelf/libelf.h
-===================================================================
---- a/libelf/libelf.h
-+++ b/libelf/libelf.h
+diff -rup a/libelf/libelf.h b/libelf/libelf.h
+--- a/libelf/libelf.h 2014-08-27 10:25:17.000000000 +0100
++++ b/libelf/libelf.h 2014-11-07 15:13:08.743508221 +0000
@@ -34,6 +34,11 @@
/* Get the ELF types. */
#include <elf.h>
-
+
+#ifndef _LIBC
+#ifndef __mempcpy
+#define __mempcpy mempcpy
+#endif
+#endif
-
+
/* Known translation types. */
typedef enum
Of course, the fts_*() functions are only built if they are not
already provided by the C library.
+Based on the former patch by Thomas Petazzoni.
+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -276,6 +276,10 @@
+diff -Nrup a/configure.ac b/configure.ac
+--- a/configure.ac 2014-11-07 15:14:42.402119092 +0000
++++ b/configure.ac 2014-11-07 15:16:50.161316781 +0000
+@@ -266,6 +266,10 @@ if test "$ac_cv_func_argp_parse" != yes;
fi
AC_SUBST(ARGP_LIBS)
-
+
+AC_CHECK_HEADER([fts.h],
+ AC_DEFINE([HAVE_FTS_H], [], [Define if <fts.h> is available in C library]))
+AM_CONDITIONAL(HAVE_FTS, test "$ac_cv_header_fts_h" = yes)
dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am
dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
save_LIBS="$LIBS"
-Index: b/libdwfl/Makefile.am
-===================================================================
---- a/libdwfl/Makefile.am
-+++ b/libdwfl/Makefile.am
-@@ -79,6 +79,9 @@
- if LZMA
- libdwfl_a_SOURCES += lzma.c
- endif
-+if !HAVE_FTS
-+libdwfl_a_SOURCES += fts.c
-+endif
-
- if MUDFLAP
- libdwfl = libdwfl.a $(libdw) $(libebl) $(libelf) $(libeu)
-Index: b/libdwfl/fts.c
-===================================================================
---- /dev/null
-+++ b/libdwfl/fts.c
+diff -Nrup a/libdwfl/fts.c b/libdwfl/fts.c
+--- a/libdwfl/fts.c 1970-01-01 01:00:00.000000000 +0100
++++ b/libdwfl/fts.c 2014-11-07 15:25:08.325879956 +0000
@@ -0,0 +1,1095 @@
+/*-
+ * Copyright (c) 1990, 1993, 1994
+ errno = oerrno;
+ return (ret);
+}
-Index: b/libdwfl/fts_.h
-===================================================================
---- /dev/null
-+++ b/libdwfl/fts_.h
+diff -Nrup a/libdwfl/fts_.h b/libdwfl/fts_.h
+--- a/libdwfl/fts_.h 1970-01-01 01:00:00.000000000 +0100
++++ b/libdwfl/fts_.h 2014-11-07 15:26:00.806777392 +0000
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 1989, 1993
+__END_DECLS
+
+#endif /* fts.h */
-Index: b/libdwfl/linux-kernel-modules.c
-===================================================================
---- a/libdwfl/linux-kernel-modules.c
-+++ b/libdwfl/linux-kernel-modules.c
+diff -Nrup a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
+--- a/libdwfl/linux-kernel-modules.c 2014-08-27 10:25:17.000000000 +0100
++++ b/libdwfl/linux-kernel-modules.c 2014-11-07 15:27:10.783974209 +0000
@@ -29,7 +29,11 @@
/* We include this before config.h because it can't handle _FILE_OFFSET_BITS.
Everything we need here is fine if its declarations just come first. */
-
+
+#ifdef HAVE_FTS_H
#include <fts.h>
+#else
+#include "fts_.h"
+#endif
-
+
#include <config.h>
-
+
+diff -Nrup a/libdwfl/Makefile.am b/libdwfl/Makefile.am
+--- a/libdwfl/Makefile.am 2014-08-27 10:25:17.000000000 +0100
++++ b/libdwfl/Makefile.am 2014-11-07 15:17:57.682478408 +0000
+@@ -79,6 +79,9 @@ endif
+ if LZMA
+ libdwfl_a_SOURCES += lzma.c
+ endif
++if !HAVE_FTS
++libdwfl_a_SOURCES += fts.c
++endif
+
+ libdwfl = $(libdw)
+ libdw = ../libdw/libdw.so
Buildroot. Since we don't care that much about po files anyway, just
disable the build of this directory.
+Based on the former patch by Thomas Petazzoni.
+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+diff -rup a/Makefile.am b/Makefile.am
+--- a/Makefile.am 2014-11-07 15:14:39.018060884 +0000
++++ b/Makefile.am 2014-11-07 15:30:02.864918229 +0000
+@@ -28,7 +28,7 @@ endif
-Index: b/Makefile.am
-===================================================================
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -28,7 +28,7 @@
-
# Add doc back when we have some real content.
- SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
-- $(PROGS_SUBDIR) po tests
-+ $(PROGS_SUBDIR) tests
-
+ SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
+- backends $(PROGS_SUBDIR) po tests
++ backends $(PROGS_SUBDIR) tests
+
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
- COPYING COPYING-GPLV2 COPYING-LGPLV3
+ COPYING COPYING-GPLV2 COPYING-LGPLV3
--- /dev/null
+Really make -Werror conditional to BUILD_WERROR
+
+Otherwise it will fail with an error message like this one:
+
+elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this
+function [-Werror=maybe-uninitialized]
+ arsym[n].as_name = NULL;
+ ^
+cc1: all warnings being treated as errors
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+diff -rup a/config/eu.am b/config/eu.am
+--- a/config/eu.am 2014-11-10 16:19:14.356031479 +0000
++++ b/config/eu.am 2014-11-10 16:21:11.702072011 +0000
+@@ -35,7 +35,6 @@ LD_AS_NEEDED = @LD_AS_NEEDED@
+ DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+ AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
+- $(if $($(*F)_no_Werror),,-Werror) \
+ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
+ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
+ $($(*F)_CFLAGS)
--- /dev/null
+# Locally calculated
+sha256 741b556863c069ceab2d81eb54aeda8c34f46728859704eaf9baef8503e9a9d1 elfutils-0.160.tar.bz2
+sha256 feb307acf472598ea7af4e4b439251613a8f5d81e804b4abf9aeca195a5d4254 elfutils-portability.patch
#
################################################################################
-ELFUTILS_VERSION = 0.155
+ELFUTILS_VERSION = 0.160
ELFUTILS_SOURCE = elfutils-$(ELFUTILS_VERSION).tar.bz2
ELFUTILS_SITE = https://fedorahosted.org/releases/e/l/elfutils/$(ELFUTILS_VERSION)
ELFUTILS_LICENSE = GPLv3 GPLv2 LGPLv3
# The tarball does not have a generated configure script
ELFUTILS_AUTORECONF = YES
ELFUTILS_CONF_OPTS += --disable-werror
-ELFUTILS_PATCH = \
- elfutils-portability.patch \
- elfutils-robustify.patch
+ELFUTILS_PATCH = elfutils-portability.patch
ELFUTILS_INSTALL_STAGING = YES