diff --git a/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch new file mode 100644 index 0000000000..c8d1c89901 --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch @@ -0,0 +1,1163 @@ +From 4b0fe80b3951f044c1c1b14d1d7f5f0b8ab67507 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Dec 2015 06:35:34 +0000 +Subject: [PATCH] build: Provide alternatives for glibc assumptions helps + compiling it on musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + Makefile.am | 2 +- + lib/color.c | 2 +- + lib/crc32_file.c | 4 +++- + lib/fixedsizehash.h | 4 ++-- + lib/system.h | 11 +++++++++++ + lib/xmalloc.c | 2 +- + libasm/asm_end.c | 2 +- + libasm/asm_newscn.c | 2 +- + libcpu/i386_gendis.c | 2 +- + libcpu/i386_lex.c | 2 +- + libcpu/i386_parse.c | 2 +- + libdw/Makefile.am | 2 +- + libdw/libdw_alloc.c | 3 ++- + libdwfl/Makefile.am | 2 ++ + libdwfl/dwfl_build_id_find_elf.c | 3 ++- + libdwfl/dwfl_error.c | 4 +++- + libdwfl/dwfl_module_getdwarf.c | 1 + + libdwfl/find-debuginfo.c | 2 +- + libdwfl/libdwfl_crc32_file.c | 10 ++++++++++ + libdwfl/linux-kernel-modules.c | 1 + + libebl/eblopenbackend.c | 2 +- + libebl/eblwstrtab.c | 2 +- + libelf/elf.h | 9 ++++++--- + libelf/libelf.h | 1 + + libelf/libelfP.h | 1 + + src/addr2line.c | 2 +- + src/ar.c | 2 +- + src/arlib.c | 2 +- + src/arlib2.c | 2 +- + src/elfcmp.c | 2 +- + src/elflint.c | 2 +- + src/findtextrel.c | 2 +- + src/i386_ld.c | 2 +- + src/ld.c | 2 +- + src/ldgeneric.c | 2 +- + src/ldlex.c | 2 +- + src/ldscript.c | 2 +- + src/nm.c | 2 +- + src/objdump.c | 2 +- + src/ranlib.c | 2 +- + src/readelf.c | 2 +- + src/size.c | 2 +- + src/stack.c | 2 +- + src/strings.c | 2 +- + src/strip.c | 2 +- + src/unstrip.c | 2 +- + tests/addrscopes.c | 2 +- + tests/allregs.c | 2 +- + tests/backtrace-data.c | 2 +- + tests/backtrace-dwarf.c | 2 +- + tests/backtrace.c | 2 +- + tests/buildid.c | 2 +- + tests/debugaltlink.c | 2 +- + tests/debuglink.c | 2 +- + tests/deleted.c | 2 +- + tests/dwfl-addr-sect.c | 2 +- + tests/dwfl-bug-addr-overflow.c | 2 +- + tests/dwfl-bug-fd-leak.c | 2 +- + tests/dwfl-bug-getmodules.c | 2 +- + tests/dwfl-report-elf-align.c | 2 +- + tests/dwfllines.c | 2 +- + tests/dwflmodtest.c | 2 +- + tests/dwflsyms.c | 2 +- + tests/early-offscn.c | 2 +- + tests/ecp.c | 2 +- + tests/find-prologues.c | 2 +- + tests/funcretval.c | 2 +- + tests/funcscopes.c | 2 +- + tests/getsrc_die.c | 2 +- + tests/line2addr.c | 2 +- + tests/low_high_pc.c | 2 +- + tests/md5-sha1-test.c | 2 +- + tests/rdwrmmap.c | 2 +- + tests/saridx.c | 2 +- + tests/sectiondump.c | 2 +- + tests/varlocs.c | 2 +- + tests/vdsosyms.c | 2 +- + 77 files changed, 109 insertions(+), 73 deletions(-) + +Index: elfutils-0.164/Makefile.am +=================================================================== +--- elfutils-0.164.orig/Makefile.am ++++ elfutils-0.164/Makefile.am +@@ -24,7 +24,7 @@ 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 ++ backends po tests + + EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ + COPYING COPYING-GPLV2 COPYING-LGPLV3 +Index: elfutils-0.164/lib/color.c +=================================================================== +--- elfutils-0.164.orig/lib/color.c ++++ elfutils-0.164/lib/color.c +@@ -32,7 +32,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/lib/crc32_file.c +=================================================================== +--- elfutils-0.164.orig/lib/crc32_file.c ++++ elfutils-0.164/lib/crc32_file.c +@@ -30,12 +30,14 @@ + # include + #endif + +-#include "system.h" + #include + #include ++#include + #include + #include + ++#include "system.h" ++ + int + crc32_file (int fd, uint32_t *resp) + { +Index: elfutils-0.164/lib/fixedsizehash.h +=================================================================== +--- elfutils-0.164.orig/lib/fixedsizehash.h ++++ elfutils-0.164/lib/fixedsizehash.h +@@ -30,12 +30,12 @@ + #include + #include + #include +-#include + #include + + #include + +-#define CONCAT(t1,t2) __CONCAT (t1,t2) ++#define CONCAT1(x,y) x##y ++#define CONCAT(x,y) CONCAT1(x,y) + + /* Before including this file the following macros must be defined: + +Index: elfutils-0.164/lib/system.h +=================================================================== +--- elfutils-0.164.orig/lib/system.h ++++ elfutils-0.164/lib/system.h +@@ -49,6 +49,16 @@ + #else + # error "Unknown byte order" + #endif ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ ++#define error(status, errno, ...) err(status, __VA_ARGS__) + + extern void *xmalloc (size_t) __attribute__ ((__malloc__)); + extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__)); +Index: elfutils-0.164/lib/xmalloc.c +=================================================================== +--- elfutils-0.164.orig/lib/xmalloc.c ++++ elfutils-0.164/lib/xmalloc.c +@@ -30,7 +30,7 @@ + # include + #endif + +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libasm/asm_end.c +=================================================================== +--- elfutils-0.164.orig/libasm/asm_end.c ++++ elfutils-0.164/libasm/asm_end.c +@@ -32,7 +32,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libasm/asm_newscn.c +=================================================================== +--- elfutils-0.164.orig/libasm/asm_newscn.c ++++ elfutils-0.164/libasm/asm_newscn.c +@@ -32,7 +32,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libcpu/i386_gendis.c +=================================================================== +--- elfutils-0.164.orig/libcpu/i386_gendis.c ++++ elfutils-0.164/libcpu/i386_gendis.c +@@ -31,7 +31,7 @@ + # include + #endif + +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libcpu/i386_lex.c +=================================================================== +--- elfutils-0.164.orig/libcpu/i386_lex.c ++++ elfutils-0.164/libcpu/i386_lex.c +@@ -571,7 +571,7 @@ char *i386_text; + #endif + + #include +-#include ++#include + #include + + #include +Index: elfutils-0.164/libcpu/i386_parse.c +=================================================================== +--- elfutils-0.164.orig/libcpu/i386_parse.c ++++ elfutils-0.164/libcpu/i386_parse.c +@@ -107,7 +107,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libdw/Makefile.am +=================================================================== +--- elfutils-0.164.orig/libdw/Makefile.am ++++ elfutils-0.164/libdw/Makefile.am +@@ -117,7 +117,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 $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS) ++ -ldl $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS) -lfts -largp + @$(textrel_check) + $(AM_V_at)ln -fs $@ $@.$(VERSION) + +Index: elfutils-0.164/libdw/libdw_alloc.c +=================================================================== +--- elfutils-0.164.orig/libdw/libdw_alloc.c ++++ elfutils-0.164/libdw/libdw_alloc.c +@@ -31,11 +31,12 @@ + # include + #endif + +-#include ++#include + #include + #include + #include + #include "libdwP.h" ++#include "system.h" + + + void * +Index: elfutils-0.164/libdwfl/Makefile.am +=================================================================== +--- elfutils-0.164.orig/libdwfl/Makefile.am ++++ elfutils-0.164/libdwfl/Makefile.am +@@ -86,6 +86,8 @@ libelf = ../libelf/libelf.so + libebl = ../libebl/libebl.a + libeu = ../lib/libeu.a + ++LDADD = -lfts ++ + libdwfl_pic_a_SOURCES = + am_libdwfl_pic_a_OBJECTS = $(libdwfl_a_SOURCES:.c=.os) + +Index: elfutils-0.164/libdwfl/dwfl_build_id_find_elf.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/dwfl_build_id_find_elf.c ++++ elfutils-0.164/libdwfl/dwfl_build_id_find_elf.c +@@ -27,6 +27,7 @@ + not, see . */ + + #include "libdwflP.h" ++#include "system.h" + #include + #include + #include +@@ -94,7 +95,7 @@ __libdwfl_open_by_build_id (Dwfl_Module + { + if (*file_name != NULL) + free (*file_name); +- *file_name = canonicalize_file_name (name); ++ *file_name = realpath (name, NULL); + if (*file_name == NULL) + { + *file_name = name; +Index: elfutils-0.164/libdwfl/dwfl_error.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/dwfl_error.c ++++ elfutils-0.164/libdwfl/dwfl_error.c +@@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error) + const char * + dwfl_errmsg (int error) + { ++ static __thread char s[64] = ""; + if (error == 0 || error == -1) + { + int last_error = global_error; +@@ -154,7 +155,8 @@ dwfl_errmsg (int error) + switch (error &~ 0xffff) + { + case OTHER_ERROR (ERRNO): +- return strerror_r (error & 0xffff, "bad", 0); ++ strerror_r (error & 0xffff, s, sizeof(s)); ++ return s; + case OTHER_ERROR (LIBELF): + return elf_errmsg (error & 0xffff); + case OTHER_ERROR (LIBDW): +Index: elfutils-0.164/libdwfl/dwfl_module_getdwarf.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/dwfl_module_getdwarf.c ++++ elfutils-0.164/libdwfl/dwfl_module_getdwarf.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include "system.h" + #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ + #include "../libelf/libelfP.h" + +Index: elfutils-0.164/libdwfl/find-debuginfo.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/find-debuginfo.c ++++ elfutils-0.164/libdwfl/find-debuginfo.c +@@ -372,7 +372,7 @@ dwfl_standard_find_debuginfo (Dwfl_Modul + /* If FILE_NAME is a symlink, the debug file might be associated + with the symlink target name instead. */ + +- char *canon = canonicalize_file_name (file_name); ++ char *canon = realpath (file_name, NULL); + if (canon != NULL && strcmp (file_name, canon)) + fd = find_debuginfo_in_path (mod, canon, + debuglink_file, debuglink_crc, +Index: elfutils-0.164/libdwfl/libdwfl_crc32_file.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/libdwfl_crc32_file.c ++++ elfutils-0.164/libdwfl/libdwfl_crc32_file.c +@@ -31,6 +31,16 @@ + + #define crc32_file attribute_hidden __libdwfl_crc32_file + #define crc32 __libdwfl_crc32 ++ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + #define LIB_SYSTEM_H 1 + #include + #include "../lib/crc32_file.c" +Index: elfutils-0.164/libdwfl/linux-kernel-modules.c +=================================================================== +--- elfutils-0.164.orig/libdwfl/linux-kernel-modules.c ++++ elfutils-0.164/libdwfl/linux-kernel-modules.c +@@ -34,6 +34,7 @@ + #include + + #include "libdwflP.h" ++#include "system.h" + #include + #include + #include +Index: elfutils-0.164/libebl/eblopenbackend.c +=================================================================== +--- elfutils-0.164.orig/libebl/eblopenbackend.c ++++ elfutils-0.164/libebl/eblopenbackend.c +@@ -32,7 +32,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libebl/eblwstrtab.c +=================================================================== +--- elfutils-0.164.orig/libebl/eblwstrtab.c ++++ elfutils-0.164/libebl/eblwstrtab.c +@@ -305,7 +305,7 @@ copystrings (struct Ebl_WStrent *nodep, + + /* Process the current node. */ + nodep->offset = *offsetp; +- *freep = wmempcpy (*freep, nodep->string, nodep->len); ++ *freep = wmemcpy (*freep, nodep->string, nodep->len) + nodep->len; + *offsetp += nodep->len * sizeof (wchar_t); + + for (subs = nodep->next; subs != NULL; subs = subs->next) +Index: elfutils-0.164/libelf/elf.h +=================================================================== +--- elfutils-0.164.orig/libelf/elf.h ++++ elfutils-0.164/libelf/elf.h +@@ -21,7 +21,9 @@ + + #include + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /* Standard ELF types. */ + +@@ -3552,7 +3554,8 @@ enum + + #define R_TILEGX_NUM 130 + +- +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* elf.h */ +Index: elfutils-0.164/libelf/libelf.h +=================================================================== +--- elfutils-0.164.orig/libelf/libelf.h ++++ elfutils-0.164/libelf/libelf.h +@@ -29,6 +29,7 @@ + #ifndef _LIBELF_H + #define _LIBELF_H 1 + ++#include + #include + #include + +Index: elfutils-0.164/libelf/libelfP.h +=================================================================== +--- elfutils-0.164.orig/libelf/libelfP.h ++++ elfutils-0.164/libelf/libelfP.h +@@ -36,6 +36,7 @@ + + #include + #include ++#include + + #include + #include +Index: elfutils-0.164/src/addr2line.c +=================================================================== +--- elfutils-0.164.orig/src/addr2line.c ++++ elfutils-0.164/src/addr2line.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ar.c +=================================================================== +--- elfutils-0.164.orig/src/ar.c ++++ elfutils-0.164/src/ar.c +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/arlib.c +=================================================================== +--- elfutils-0.164.orig/src/arlib.c ++++ elfutils-0.164/src/arlib.c +@@ -21,7 +21,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/arlib2.c +=================================================================== +--- elfutils-0.164.orig/src/arlib2.c ++++ elfutils-0.164/src/arlib2.c +@@ -20,7 +20,7 @@ + # include + #endif + +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/elfcmp.c +=================================================================== +--- elfutils-0.164.orig/src/elfcmp.c ++++ elfutils-0.164/src/elfcmp.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/elflint.c +=================================================================== +--- elfutils-0.164.orig/src/elflint.c ++++ elfutils-0.164/src/elflint.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/findtextrel.c +=================================================================== +--- elfutils-0.164.orig/src/findtextrel.c ++++ elfutils-0.164/src/findtextrel.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/i386_ld.c +=================================================================== +--- elfutils-0.164.orig/src/i386_ld.c ++++ elfutils-0.164/src/i386_ld.c +@@ -20,7 +20,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ld.c +=================================================================== +--- elfutils-0.164.orig/src/ld.c ++++ elfutils-0.164/src/ld.c +@@ -21,7 +21,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ldgeneric.c +=================================================================== +--- elfutils-0.164.orig/src/ldgeneric.c ++++ elfutils-0.164/src/ldgeneric.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ldlex.c +=================================================================== +--- elfutils-0.164.orig/src/ldlex.c ++++ elfutils-0.164/src/ldlex.c +@@ -1099,7 +1099,7 @@ char *ldtext; + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ldscript.c +=================================================================== +--- elfutils-0.164.orig/src/ldscript.c ++++ elfutils-0.164/src/ldscript.c +@@ -95,7 +95,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/nm.c +=================================================================== +--- elfutils-0.164.orig/src/nm.c ++++ elfutils-0.164/src/nm.c +@@ -26,7 +26,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/objdump.c +=================================================================== +--- elfutils-0.164.orig/src/objdump.c ++++ elfutils-0.164/src/objdump.c +@@ -21,7 +21,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/ranlib.c +=================================================================== +--- elfutils-0.164.orig/src/ranlib.c ++++ elfutils-0.164/src/ranlib.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/readelf.c +=================================================================== +--- elfutils-0.164.orig/src/readelf.c ++++ elfutils-0.164/src/readelf.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/size.c +=================================================================== +--- elfutils-0.164.orig/src/size.c ++++ elfutils-0.164/src/size.c +@@ -21,7 +21,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/stack.c +=================================================================== +--- elfutils-0.164.orig/src/stack.c ++++ elfutils-0.164/src/stack.c +@@ -18,7 +18,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/strings.c +=================================================================== +--- elfutils-0.164.orig/src/strings.c ++++ elfutils-0.164/src/strings.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/strip.c +=================================================================== +--- elfutils-0.164.orig/src/strip.c ++++ elfutils-0.164/src/strip.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/src/unstrip.c +=================================================================== +--- elfutils-0.164.orig/src/unstrip.c ++++ elfutils-0.164/src/unstrip.c +@@ -31,7 +31,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/addrscopes.c +=================================================================== +--- elfutils-0.164.orig/tests/addrscopes.c ++++ elfutils-0.164/tests/addrscopes.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + + +Index: elfutils-0.164/tests/allregs.c +=================================================================== +--- elfutils-0.164.orig/tests/allregs.c ++++ elfutils-0.164/tests/allregs.c +@@ -21,7 +21,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/backtrace-data.c +=================================================================== +--- elfutils-0.164.orig/tests/backtrace-data.c ++++ elfutils-0.164/tests/backtrace-data.c +@@ -27,7 +27,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #if defined(__x86_64__) && defined(__linux__) +Index: elfutils-0.164/tests/backtrace-dwarf.c +=================================================================== +--- elfutils-0.164.orig/tests/backtrace-dwarf.c ++++ elfutils-0.164/tests/backtrace-dwarf.c +@@ -22,7 +22,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/backtrace.c +=================================================================== +--- elfutils-0.164.orig/tests/backtrace.c ++++ elfutils-0.164/tests/backtrace.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #ifdef __linux__ +Index: elfutils-0.164/tests/buildid.c +=================================================================== +--- elfutils-0.164.orig/tests/buildid.c ++++ elfutils-0.164/tests/buildid.c +@@ -23,7 +23,7 @@ + #include ELFUTILS_HEADER(elf) + #include ELFUTILS_HEADER(dwelf) + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/debugaltlink.c +=================================================================== +--- elfutils-0.164.orig/tests/debugaltlink.c ++++ elfutils-0.164/tests/debugaltlink.c +@@ -23,7 +23,7 @@ + #include ELFUTILS_HEADER(dw) + #include ELFUTILS_HEADER(dwelf) + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/debuglink.c +=================================================================== +--- elfutils-0.164.orig/tests/debuglink.c ++++ elfutils-0.164/tests/debuglink.c +@@ -21,7 +21,7 @@ + #include + #include ELFUTILS_HEADER(dwelf) + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/deleted.c +=================================================================== +--- elfutils-0.164.orig/tests/deleted.c ++++ elfutils-0.164/tests/deleted.c +@@ -21,7 +21,7 @@ + #include + #include + #include +-#include ++#include + #include + #ifdef __linux__ + #include +Index: elfutils-0.164/tests/dwfl-addr-sect.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfl-addr-sect.c ++++ elfutils-0.164/tests/dwfl-addr-sect.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include ELFUTILS_HEADER(dwfl) +Index: elfutils-0.164/tests/dwfl-bug-addr-overflow.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfl-bug-addr-overflow.c ++++ elfutils-0.164/tests/dwfl-bug-addr-overflow.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + #include ELFUTILS_HEADER(dwfl) + +Index: elfutils-0.164/tests/dwfl-bug-fd-leak.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfl-bug-fd-leak.c ++++ elfutils-0.164/tests/dwfl-bug-fd-leak.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/dwfl-bug-getmodules.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfl-bug-getmodules.c ++++ elfutils-0.164/tests/dwfl-bug-getmodules.c +@@ -18,7 +18,7 @@ + #include + #include ELFUTILS_HEADER(dwfl) + +-#include ++#include + + static const Dwfl_Callbacks callbacks = + { +Index: elfutils-0.164/tests/dwfl-report-elf-align.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfl-report-elf-align.c ++++ elfutils-0.164/tests/dwfl-report-elf-align.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/dwfllines.c +=================================================================== +--- elfutils-0.164.orig/tests/dwfllines.c ++++ elfutils-0.164/tests/dwfllines.c +@@ -27,7 +27,7 @@ + #include + #include + #include +-#include ++#include + + int + main (int argc, char *argv[]) +Index: elfutils-0.164/tests/dwflmodtest.c +=================================================================== +--- elfutils-0.164.orig/tests/dwflmodtest.c ++++ elfutils-0.164/tests/dwflmodtest.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include ELFUTILS_HEADER(dwfl) +Index: elfutils-0.164/tests/dwflsyms.c +=================================================================== +--- elfutils-0.164.orig/tests/dwflsyms.c ++++ elfutils-0.164/tests/dwflsyms.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + + static const char * +Index: elfutils-0.164/tests/early-offscn.c +=================================================================== +--- elfutils-0.164.orig/tests/early-offscn.c ++++ elfutils-0.164/tests/early-offscn.c +@@ -19,7 +19,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/ecp.c +=================================================================== +--- elfutils-0.164.orig/tests/ecp.c ++++ elfutils-0.164/tests/ecp.c +@@ -20,7 +20,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/find-prologues.c +=================================================================== +--- elfutils-0.164.orig/tests/find-prologues.c ++++ elfutils-0.164/tests/find-prologues.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +Index: elfutils-0.164/tests/funcretval.c +=================================================================== +--- elfutils-0.164.orig/tests/funcretval.c ++++ elfutils-0.164/tests/funcretval.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +Index: elfutils-0.164/tests/funcscopes.c +=================================================================== +--- elfutils-0.164.orig/tests/funcscopes.c ++++ elfutils-0.164/tests/funcscopes.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +Index: elfutils-0.164/tests/getsrc_die.c +=================================================================== +--- elfutils-0.164.orig/tests/getsrc_die.c ++++ elfutils-0.164/tests/getsrc_die.c +@@ -19,7 +19,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/line2addr.c +=================================================================== +--- elfutils-0.164.orig/tests/line2addr.c ++++ elfutils-0.164/tests/line2addr.c +@@ -26,7 +26,7 @@ + #include + #include + #include +-#include ++#include + + + static void +Index: elfutils-0.164/tests/low_high_pc.c +=================================================================== +--- elfutils-0.164.orig/tests/low_high_pc.c ++++ elfutils-0.164/tests/low_high_pc.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +Index: elfutils-0.164/tests/md5-sha1-test.c +=================================================================== +--- elfutils-0.164.orig/tests/md5-sha1-test.c ++++ elfutils-0.164/tests/md5-sha1-test.c +@@ -19,7 +19,7 @@ + #endif + + #include +-#include ++#include + + #include "md5.h" + #include "sha1.h" +Index: elfutils-0.164/tests/rdwrmmap.c +=================================================================== +--- elfutils-0.164.orig/tests/rdwrmmap.c ++++ elfutils-0.164/tests/rdwrmmap.c +@@ -19,7 +19,7 @@ + #endif + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/saridx.c +=================================================================== +--- elfutils-0.164.orig/tests/saridx.c ++++ elfutils-0.164/tests/saridx.c +@@ -17,7 +17,7 @@ + + #include + +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/sectiondump.c +=================================================================== +--- elfutils-0.164.orig/tests/sectiondump.c ++++ elfutils-0.164/tests/sectiondump.c +@@ -18,7 +18,7 @@ + #include + + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/varlocs.c +=================================================================== +--- elfutils-0.164.orig/tests/varlocs.c ++++ elfutils-0.164/tests/varlocs.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/tests/vdsosyms.c +=================================================================== +--- elfutils-0.164.orig/tests/vdsosyms.c ++++ elfutils-0.164/tests/vdsosyms.c +@@ -18,7 +18,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +Index: elfutils-0.164/libelf/elf_getarsym.c +=================================================================== +--- elfutils-0.164.orig/libelf/elf_getarsym.c ++++ elfutils-0.164/libelf/elf_getarsym.c +@@ -302,7 +302,7 @@ elf_getarsym (Elf *elf, size_t *ptr) + arsym[cnt].as_off = (*u32)[cnt]; + + arsym[cnt].as_hash = _dl_elf_hash (str_data); +- str_data = rawmemchr (str_data, '\0') + 1; ++ str_data = memchr (str_data, '\0', SIZE_MAX) + 1; + } + + /* At the end a special entry. */ diff --git a/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch b/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch new file mode 100644 index 0000000000..38dc57befc --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch @@ -0,0 +1,47 @@ +Fix build on aarch64/musl + +Errors + +invalid operands to binary & (have 'long double' and 'unsigned int') + +error: redefinition + of 'struct iovec' + struct iovec { void *iov_base; size_t iov_len; }; + ^ +Upstream-Status: Pending +Signed-off-by: Khem Raj +Index: elfutils-0.163/backends/aarch64_initreg.c +=================================================================== +--- elfutils-0.163.orig/backends/aarch64_initreg.c ++++ elfutils-0.163/backends/aarch64_initreg.c +@@ -33,7 +33,7 @@ + #include "system.h" + #include + #ifdef __aarch64__ +-# include ++# include + # include + # include + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ +@@ -82,7 +82,7 @@ aarch64_set_initial_registers_tid (pid_t + + Dwarf_Word dwarf_fregs[32]; + for (int r = 0; r < 32; r++) +- dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF; ++ dwarf_fregs[r] = (unsigned int)fregs.vregs[r] & 0xFFFFFFFF; + + if (! setfunc (64, 32, dwarf_fregs, arg)) + return false; +Index: elfutils-0.163/backends/arm_initreg.c +=================================================================== +--- elfutils-0.163.orig/backends/arm_initreg.c ++++ elfutils-0.163/backends/arm_initreg.c +@@ -37,7 +37,7 @@ + #endif + + #ifdef __aarch64__ +-# include ++# include + # include + # include + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ diff --git a/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch b/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch new file mode 100644 index 0000000000..d31961f94f --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch @@ -0,0 +1,23 @@ +Fix control path where we have str as uninitialized string + +| /home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c: In function 'i386_disasm': +| /home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c:310:5: error: 'str' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| memcpy (buf + bufcnt, _str, _len); \ +| ^ +| /home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c:709:17: note: 'str' was declared here +| const char *str; + +Signed-off-by: Khem Raj +Upstream-Status: Pending +Index: elfutils-0.164/libcpu/i386_disasm.c +=================================================================== +--- elfutils-0.164.orig/libcpu/i386_disasm.c ++++ elfutils-0.164/libcpu/i386_disasm.c +@@ -821,6 +821,7 @@ i386_disasm (const uint8_t **startp, con + } + + default: ++ str = ""; + assert (! "INVALID not handled"); + } + } diff --git a/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch b/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch new file mode 100644 index 0000000000..966b70fcc4 --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch @@ -0,0 +1,129 @@ +From 3daec2dd11a04955f95e8f65a48820103d84dbec Mon Sep 17 00:00:00 2001 +From: Junling Zheng +Date: Thu, 9 Apr 2015 12:12:49 +0000 +Subject: [PATCH] uclibc support for elfutils 0.161 + +on uclibc systems libintl and libuargp are separate from libc. +so they need to be specified on commandline when we use proxy-libintl +then libintl is a static archive so it should be listed last since +elfutils does not respect disable-nls we need to link in libintl + +We add a new option --enable-uclibc which will be used to control +the uclibc specific configurations during build. + +Upstream-Status: Inappropriate [uclibc specific] + +Signed-off-by: Khem Raj +Signed-off-by: Junling Zheng +[Junling Zheng: + - adjust context +] +--- + configure.ac | 8 ++++++++ + libcpu/Makefile.am | 4 ++++ + libdw/Makefile.am | 7 ++++++- + libelf/Makefile.am | 5 +++++ + 4 files changed, 23 insertions(+), 1 deletion(-) + +Index: elfutils-0.164/configure.ac +=================================================================== +--- elfutils-0.164.orig/configure.ac ++++ elfutils-0.164/configure.ac +@@ -66,6 +66,14 @@ AS_IF([test "$use_locks" = yes], + + AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.]) + ++AC_ARG_ENABLE([uclibc], ++AS_HELP_STRING([--enable-uclibc], [Use uclibc for system libraries]), ++use_uclibc=yes, use_uclibc=no) ++AM_CONDITIONAL(USE_UCLIBC, test "$use_uclibc" = yes) ++AS_IF([test "$use_uclibc" = yes], [AC_DEFINE(USE_UCLIBC)]) ++ ++AH_TEMPLATE([USE_UCLIBC], [Defined if uclibc libraries are used.]) ++ + AC_PROG_CC + AC_PROG_RANLIB + AC_PROG_YACC +@@ -291,18 +299,13 @@ AC_LINK_IFELSE( + ) + + dnl If our libc doesn't provide argp, then test for libargp +-if test "$libc_has_argp" = "false" ; then +- AC_MSG_WARN("libc does not have argp") +- AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) +- +- if test "$have_argp" = "false"; then +- AC_MSG_ERROR("no libargp found") +- else +- argp_LDADD="-largp" +- fi +-else +- argp_LDADD="" +-fi ++AS_IF([test "x$libc_has_argp" = "xfalse"], ++ [AC_MSG_WARN("libc does not have argp") ++ AC_CHECK_LIB([argp], [argp_parse], [have_argp="true" argp_LDADD="-largp"], [have_argp="false"])], [argp_LDADD=""]) ++ ++AS_IF([test "x$libc_has_argp" = "xfalse" -a "x$have_argp" = "xfalse"], ++ AC_CHECK_LIB([uargp], [argp_parse], [have_uargp="true" argp_LDADD="-luargp"], [have_uargp="false"])], [argp_LDADD=""]) ++ + AC_SUBST([argp_LDADD]) + + dnl The directories with content. +Index: elfutils-0.164/libcpu/Makefile.am +=================================================================== +--- elfutils-0.164.orig/libcpu/Makefile.am ++++ elfutils-0.164/libcpu/Makefile.am +@@ -80,6 +80,10 @@ i386_parse_CFLAGS = -DNMNES="`wc -l < i3 + i386_lex.o: i386_parse.h + i386_gendis_LDADD = $(libeu) -lm + ++if USE_UCLIBC ++i386_gendis_LDADD += -lintl ++endif ++ + i386_parse.h: i386_parse.c ; + + EXTRA_DIST = defs/i386 +Index: elfutils-0.164/libdw/Makefile.am +=================================================================== +--- elfutils-0.164.orig/libdw/Makefile.am ++++ elfutils-0.164/libdw/Makefile.am +@@ -102,6 +102,11 @@ endif + libdw_pic_a_SOURCES = + am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os) + ++libdw_so_LDLIBS = ++if USE_UCLIBC ++libdw_so_LDLIBS += -lintl ++endif ++ + libdw_so_SOURCES = + libdw.so$(EXEEXT): $(srcdir)/libdw.map libdw_pic.a ../libdwelf/libdwelf_pic.a \ + ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \ +@@ -112,7 +117,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 $(argp_LDADD) $(zip_LIBS) ++ -ldl $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS) + @$(textrel_check) + $(AM_V_at)ln -fs $@ $@.$(VERSION) + +Index: elfutils-0.164/libelf/Makefile.am +=================================================================== +--- elfutils-0.164.orig/libelf/Makefile.am ++++ elfutils-0.164/libelf/Makefile.am +@@ -93,7 +93,12 @@ libelf_a_SOURCES = elf_version.c elf_has + libelf_pic_a_SOURCES = + am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) + ++ + libelf_so_LDLIBS = ++if USE_UCLIBC ++libelf_so_LDLIBS += -lintl ++endif ++ + if USE_LOCKS + libelf_so_LDLIBS += -lpthread + endif diff --git a/meta/recipes-devtools/elfutils/elfutils/mempcpy.patch b/meta/recipes-devtools/elfutils/elfutils/mempcpy.patch deleted file mode 100644 index 24e31fa5b3..0000000000 --- a/meta/recipes-devtools/elfutils/elfutils/mempcpy.patch +++ /dev/null @@ -1,24 +0,0 @@ - -uclibc does not export __mempcpy like glibc so we alias it here. -This patch may make sense for upstream but elfutils uses more -glibc specific features like obstack_printf which are missing in -uclibc they need to be fixed along to make it work all the way - -Upstream-Status: Inappropriate[Elfutils uses more glibc specific features] - -Signed-off-by: Khem Raj - -Index: elfutils-0.148/libelf/elf_begin.c -=================================================================== ---- elfutils-0.148.orig/libelf/elf_begin.c -+++ elfutils-0.148/libelf/elf_begin.c -@@ -68,6 +68,9 @@ - #include "libelfP.h" - #include "common.h" - -+#ifdef __UCLIBC__ -+#define __mempcpy mempcpy -+#endif - - /* Create descriptor for archive in memory. */ - static inline Elf * diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb index 0d8490dee2..ff5325734b 100644 --- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb +++ b/meta/recipes-devtools/elfutils/elfutils_0.148.bb @@ -27,7 +27,6 @@ SRC_URI += "\ file://elf_additions.diff \ file://elfutils-fsize.patch \ file://remove-unused.patch \ - file://mempcpy.patch \ file://fix_for_gcc-4.7.patch \ file://dso-link-change.patch \ file://nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch \ diff --git a/meta/recipes-devtools/elfutils/elfutils_0.164.bb b/meta/recipes-devtools/elfutils/elfutils_0.164.bb index c27635dda3..4964c05078 100644 --- a/meta/recipes-devtools/elfutils/elfutils_0.164.bb +++ b/meta/recipes-devtools/elfutils/elfutils_0.164.bb @@ -4,6 +4,7 @@ SECTION = "base" LICENSE = "(GPLv3 & Elfutils-Exception)" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" DEPENDS = "libtool bzip2 zlib virtual/libintl" +DEPENDS_append_libc-musl = " argp-standalone fts " SRC_URI = "https://fedorahosted.org/releases/e/l/elfutils/${PV}/${BP}.tar.bz2" @@ -11,13 +12,14 @@ SRC_URI[md5sum] = "2e4536c1c48034f188a80789a59114d8" SRC_URI[sha256sum] = "9683c025928a12d06b7fe812928aa6235249e22d197d086f7084606a48165900" SRC_URI += "\ - file://mempcpy.patch \ file://dso-link-change.patch \ file://Fix_elf_cvt_gunhash.patch \ file://fixheadercheck.patch \ file://0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch \ file://0001-remove-the-unneed-checking.patch \ file://0001-fix-a-stack-usage-warning.patch \ + file://aarch64_uio.patch \ + file://shadow.patch \ " # pick the patch from debian @@ -33,10 +35,9 @@ SRC_URI += "\ file://0001-Ignore-differences-between-mips-machine-identifiers.patch \ file://0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ file://0003-Add-mips-n64-relocation-format-hack.patch \ + file://uclibc-support.patch \ " - -# Only apply when building uclibc based target recipe -SRC_URI_append_libc-uclibc = " file://uclibc-support-for-elfutils-0.161.patch" +SRC_URI_append_libc-musl = " file://0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch " # The buildsystem wants to generate 2 .h files from source using a binary it just built, # which can not pass the cross compiling, so let's work around it by adding 2 .h files @@ -50,7 +51,7 @@ EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc" do_install_append() { if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then - rm ${D}${bindir}/eu-objdump + rm -f ${D}${bindir}/eu-objdump fi } @@ -62,6 +63,8 @@ EXTRA_OEMAKE_libc-uclibc = "-C libelf" EXTRA_OEMAKE_class-native = "" EXTRA_OEMAKE_class-nativesdk = "" +ALLOW_EMPTY_${PN}_libc-musl = "1" + BBCLASSEXTEND = "native nativesdk" # Package utilities separately