diff options
Diffstat (limited to 'meta/recipes-devtools/elfutils/files')
14 files changed, 651 insertions, 0 deletions
diff --git a/meta/recipes-devtools/elfutils/files/0001-PR29926-debuginfod-Fix-usage-of-deprecated-CURLINFO_.patch b/meta/recipes-devtools/elfutils/files/0001-PR29926-debuginfod-Fix-usage-of-deprecated-CURLINFO_.patch new file mode 100644 index 0000000000..ee192e3581 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-PR29926-debuginfod-Fix-usage-of-deprecated-CURLINFO_.patch @@ -0,0 +1,49 @@ +From d2bf497b12fbd49b4996ccf0744303ffd67735b1 Mon Sep 17 00:00:00 2001 +From: Andrew Paprocki <andrew@ishiboo.com> +Date: Wed, 21 Dec 2022 11:15:00 -0500 +Subject: [PATCH] PR29926: debuginfod: Fix usage of deprecated CURLINFO_* + +The `CURLINFO_SIZE_DOWNLOAD_T` and `CURLINFO_CONTENT_LENGTH_DOWNLOAD_T` +identifiers are `enum`s, not pre-processor definitions, so the current +`#ifdef` logic is not selecting the newer API. This results in the +older identifiers being used and they now generate errors when compiled +against Curl 7.87, which has silently deprecated them, causing GCC to +emit `-Werror=deprecated-declarations`. + +Instead, the newer identifiers were added in Curl 7.55, so explicitly +check for `CURL_AT_LEAST_VERSION(7, 55, 0)` instead of the current +logic. This eliminates the error when compiling against Curl 7.87. + +Ref: https://github.com/curl/curl/pull/1511 + +Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=d2bf497b12fbd49b4996ccf0744303ffd67735b1] +Signed-off-by: Andrew Paprocki <andrew@ishiboo.com> +--- + debuginfod/debuginfod-client.c | 4 ++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c +index 8873fcc8..692aecce 100644 +--- a/debuginfod/debuginfod-client.c ++++ b/debuginfod/debuginfod-client.c +@@ -1456,7 +1456,7 @@ debuginfod_query_server (debuginfod_client *c, + deflate-compressing proxies, this number is likely to be + unavailable, so -1 may show. */ + CURLcode curl_res; +-#ifdef CURLINFO_CONTENT_LENGTH_DOWNLOAD_T ++#if CURL_AT_LEAST_VERSION(7, 55, 0) + curl_off_t cl; + curl_res = curl_easy_getinfo(target_handle, + CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, +@@ -1491,7 +1491,7 @@ debuginfod_query_server (debuginfod_client *c, + if (target_handle) /* we've committed to a server; report its download progress */ + { + CURLcode curl_res; +-#ifdef CURLINFO_SIZE_DOWNLOAD_T ++#if CURL_AT_LEAST_VERSION(7, 55, 0) + curl_off_t dl; + curl_res = curl_easy_getinfo(target_handle, + CURLINFO_SIZE_DOWNLOAD_T, +-- +2.39.1 + diff --git a/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch b/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch new file mode 100644 index 0000000000..6acc036406 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch @@ -0,0 +1,50 @@ +From c5fb59ac0819b5b6d8244c613cbcf92cb09840c1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 15 Aug 2017 17:10:57 +0800 +Subject: [PATCH] dso link change + +Upstream-Status: Pending + +This patch makes the link to the dependencies of libdw explicit, as +recent ld no longer implicitly links them. See +http://lists.fedoraproject.org/pipermail/devel/2010-March/133601.html +as a similar example of the error message you can encounter without this +patch, and https://fedoraproject.org/wiki/UnderstandingDSOLinkChange and +https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking for +more details. + +Rebase to 0.170 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + src/Makefile.am | 2 +- + tests/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 88d0ac8..c28d81f 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -45,7 +45,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread + libelf = ../libelf/libelf.a -lz + else + libasm = ../libasm/libasm.so +-libdw = ../libdw/libdw.so ++libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl + libelf = ../libelf/libelf.so + endif + libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a +diff --git a/tests/Makefile.am b/tests/Makefile.am +index c145720..72afd0e 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -554,7 +554,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread + libelf = ../libelf/libelf.a -lz + libasm = ../libasm/libasm.a + else +-libdw = ../libdw/libdw.so ++libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl + libelf = ../libelf/libelf.so + libasm = ../libasm/libasm.so + endif diff --git a/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch b/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch new file mode 100644 index 0000000000..09c9d3ea24 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch @@ -0,0 +1,36 @@ +From ed1975deeaa47f98d212fd144c8bda075b1a5d36 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 4 Oct 2017 22:30:46 -0700 +Subject: [PATCH] libasm may link with libbz2 if found + +This can fail to link binaries like objdump +where indirect libraries may be not found by linker + +| /mnt/a/oe/build/tmp/work/riscv64-bec-linux/elfutils/0.170-r0/recipe-sysroot/usr/lib/libbz2.so.1: error adding symbols: DSO missing from command line +| collect2: error: ld returned 1 exit status + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + src/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index c28d81f..951e978 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -40,11 +40,11 @@ EXTRA_DIST += make-debug-archive.in + CLEANFILES += make-debug-archive + + if BUILD_STATIC +-libasm = ../libasm/libasm.a ++libasm = ../libasm/libasm.a $(zip_LIBS) + libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread + libelf = ../libelf/libelf.a -lz + else +-libasm = ../libasm/libasm.so ++libasm = ../libasm/libasm.so $(zip_LIBS) + libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl + libelf = ../libelf/libelf.so + endif diff --git a/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch b/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch new file mode 100644 index 0000000000..c8d55d583a --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch @@ -0,0 +1,44 @@ +From f40cbd43acdb1fefef4fa53a6034296d83cbff7d Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Thu, 16 Aug 2018 09:58:26 +0800 +Subject: [PATCH] libelf/elf_end.c: check data_list.data.d.d_buf before free it + +The one which actually saves the data is data_list.data.d.d_buf, so check it +before free rawdata_base. + +This can fix a segmentation fault when prelink libqb_1.0.3: +prelink: /usr/lib/libqb.so.0.18.2: Symbol section index outside of section numbers + +The segmentation fault happens when prelink call elf_end(). + +Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2018-q3/msg00085.html] + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + +--- + libelf/elf_end.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libelf/elf_end.c b/libelf/elf_end.c +index 160f0b8..5280a70 100644 +--- a/libelf/elf_end.c ++++ b/libelf/elf_end.c +@@ -160,14 +160,16 @@ elf_end (Elf *elf) + architecture doesn't require overly stringent + alignment the raw data buffer is the same as the + one used for presenting to the caller. */ +- if (scn->data_base != scn->rawdata_base) ++ if ((scn->data_base != scn->rawdata_base) ++ && (scn->data_list.data.d.d_buf != NULL)) + free (scn->data_base); + + /* The section data is allocated if we couldn't mmap + the file. Or if we had to decompress. */ +- if (elf->map_address == NULL ++ if ((elf->map_address == NULL + || scn->rawdata_base == scn->zdata_base + || (scn->flags & ELF_F_MALLOCED) != 0) ++ && (scn->data_list.data.d.d_buf != NULL)) + free (scn->rawdata_base); + + /* Free the list of data buffers for the section. diff --git a/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch b/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch new file mode 100644 index 0000000000..0e6bf5573c --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch @@ -0,0 +1,71 @@ +From 2fa52d61b1abdf4a3f3b153c771fb2081666430c Mon Sep 17 00:00:00 2001 +From: Mingli Yu <Mingli.Yu@windriver.com> +Date: Tue, 21 May 2019 15:20:34 +0800 +Subject: [PATCH] skip the test when gcc not deployed + +Skip the tests which depend on gcc when +gcc not deployed. + +Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html] + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> + +--- + tests/run-disasm-x86-64.sh | 2 ++ + tests/run-disasm-x86.sh | 2 ++ + tests/run-strip-g.sh | 2 ++ + tests/run-strip-nothing.sh | 2 ++ + 4 files changed, 8 insertions(+) + +diff --git a/tests/run-disasm-x86-64.sh b/tests/run-disasm-x86-64.sh +index 07b612b..7a32996 100755 +--- a/tests/run-disasm-x86-64.sh ++++ b/tests/run-disasm-x86-64.sh +@@ -22,6 +22,8 @@ case "`uname -m`" in + x86_64) + tempfiles testfile45.o + testfiles testfile45.S testfile45.expect ++ # skip the case if no gcc deployed ++ which gcc || exit 77 + ${CC} -m64 -c -o testfile45.o testfile45.S + testrun_compare ${abs_top_builddir}/src/objdump -d testfile45.o < testfile45.expect + ;; +diff --git a/tests/run-disasm-x86.sh b/tests/run-disasm-x86.sh +index 7ac73ad..f0d4796 100755 +--- a/tests/run-disasm-x86.sh ++++ b/tests/run-disasm-x86.sh +@@ -22,6 +22,8 @@ case "`uname -m`" in + x86_64 | i?86 ) + tempfiles testfile44.o + testfiles testfile44.S testfile44.expect ++ # skip the case if no gcc deployed ++ which gcc || exit 77 + ${CC} -m32 -c -o testfile44.o testfile44.S + testrun_compare ${abs_top_builddir}/src/objdump -d testfile44.o < testfile44.expect + ;; +diff --git a/tests/run-strip-g.sh b/tests/run-strip-g.sh +index 1592121..9b8157e 100755 +--- a/tests/run-strip-g.sh ++++ b/tests/run-strip-g.sh +@@ -24,6 +24,8 @@ + + tempfiles a.out strip.out debug.out readelf.out + ++# skip the test if gcc deployed ++which gcc || exit 77 + echo Create debug a.out. + echo "int main() { return 1; }" | ${CC} -g -xc - + +diff --git a/tests/run-strip-nothing.sh b/tests/run-strip-nothing.sh +index 710c200..3a81d8e 100755 +--- a/tests/run-strip-nothing.sh ++++ b/tests/run-strip-nothing.sh +@@ -22,6 +22,8 @@ + + tempfiles a.out strip.out debug.out + ++# skip the case if no gcc deployed ++which gcc || exit 77 + # Create no-debug a.out. + echo "int main() { return 1; }" | ${CC} -s -xc - + diff --git a/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch b/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch new file mode 100644 index 0000000000..a2c0b90227 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch @@ -0,0 +1,28 @@ +From e355ca3b8ddcc6e73ee140f53d25634afdaec0da Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 23 Jun 2020 07:49:35 +0000 +Subject: [PATCH] tests/Makefile.am: compile test_nlist with standard CFLAGS + +Otherwise, it will contain build paths in it and wont +be reproducible. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 2ade5d9..f85cdba 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -98,7 +98,7 @@ endif + test-nlist$(EXEEXT): test-nlist.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD) ++ $(CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD) + + TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ + run-ar-N.sh \ diff --git a/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch b/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch new file mode 100644 index 0000000000..be48ef010b --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch @@ -0,0 +1,40 @@ +From 1643d793761216252bb654e28aaa5b8eb1536bca Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 15 Aug 2017 17:13:59 +0800 +Subject: [PATCH] Fix elf_cvt_gunhash if dest and src are same. + +Upstream-Status: Pending + +The 'dest' and 'src' can be same, we need to save the value of src32[2] +before swaping it. + +Signed-off-by: Baoshan Pang <BaoShan.Pang@windriver.com> + +Rebase to 0.170 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + libelf/gnuhash_xlate.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libelf/gnuhash_xlate.h b/libelf/gnuhash_xlate.h +index 6faf113..04d9ca1 100644 +--- a/libelf/gnuhash_xlate.h ++++ b/libelf/gnuhash_xlate.h +@@ -40,6 +40,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode) + words. We must detangle them here. */ + Elf32_Word *dest32 = dest; + const Elf32_Word *src32 = src; ++ Elf32_Word save_src32_2 = src32[2]; // dest could be equal to src + + /* First four control words, 32 bits. */ + for (unsigned int cnt = 0; cnt < 4; ++cnt) +@@ -50,7 +51,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode) + len -= 4; + } + +- Elf32_Word bitmask_words = encode ? src32[2] : dest32[2]; ++ Elf32_Word bitmask_words = encode ? save_src32_2 : dest32[2]; + + /* Now the 64 bit words. */ + Elf64_Xword *dest64 = (Elf64_Xword *) &dest32[4]; diff --git a/meta/recipes-devtools/elfutils/files/0002-debuginfod-client-Use-CURLOPT_PROTOCOLS_STR-for-libc.patch b/meta/recipes-devtools/elfutils/files/0002-debuginfod-client-Use-CURLOPT_PROTOCOLS_STR-for-libc.patch new file mode 100644 index 0000000000..2d4c912e82 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0002-debuginfod-client-Use-CURLOPT_PROTOCOLS_STR-for-libc.patch @@ -0,0 +1,34 @@ +From 6560fb26a62ef135a804357ef4f15a47de3e49b3 Mon Sep 17 00:00:00 2001 +From: Mark Wielaard <mark@klomp.org> +Date: Tue, 10 Jan 2023 23:20:41 +0100 +Subject: [PATCH] debuginfod-client: Use CURLOPT_PROTOCOLS_STR for libcurl >= 7.85.0 + +https://sourceware.org/bugzilla/show_bug.cgi?id=29926 + +Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=6560fb26a62ef135a804357ef4f15a47de3e49b3] +Signed-off-by: Mark Wielaard <mark@klomp.org> +--- + debuginfod/debuginfod-client.c | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c +index a16165bd..1ce45632 100644 +--- a/debuginfod/debuginfod-client.c ++++ b/debuginfod/debuginfod-client.c +@@ -1336,8 +1336,13 @@ debuginfod_query_server (debuginfod_client *c, + + /* Only allow http:// + https:// + file:// so we aren't being + redirected to some unsupported protocol. */ ++#if CURL_AT_LEAST_VERSION(7, 85, 0) ++ curl_easy_setopt_ck(data[i].handle, CURLOPT_PROTOCOLS_STR, ++ "http,https,file"); ++#else + curl_easy_setopt_ck(data[i].handle, CURLOPT_PROTOCOLS, + (CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE)); ++#endif + curl_easy_setopt_ck(data[i].handle, CURLOPT_URL, data[i].url); + if (vfd >= 0) + curl_easy_setopt_ck(data[i].handle, CURLOPT_ERRORBUFFER, +-- +2.39.1 + diff --git a/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch b/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch new file mode 100644 index 0000000000..212b358dc2 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch @@ -0,0 +1,38 @@ +From 7e1f91c42ef5b0bf10afefec10dd08588df3ab1f Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 15 Aug 2017 17:17:20 +0800 +Subject: [PATCH] fixheadercheck + +For some binaries we can get a invalid section alignment, for example if +sh_align = 1 and sh_addralign is 0. In the case of a zero size section +like +".note.GNU-stack", this is irrelavent as far as I can tell and we +shouldn't +error in this case. + +RP 2014/6/11 + +Upstream-Status: Pending + +Rebase to 0.170 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + libelf/elf32_updatenull.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c +index d0d4d1e..4ecf5a5 100644 +--- a/libelf/elf32_updatenull.c ++++ b/libelf/elf32_updatenull.c +@@ -354,8 +354,8 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) + we test for the alignment of the section being large + enough for the largest alignment required by a data + block. */ +- if (unlikely (! powerof2 (shdr->sh_addralign)) +- || unlikely ((shdr->sh_addralign ?: 1) < sh_align)) ++ if (shdr->sh_size && (unlikely (! powerof2 (shdr->sh_addralign)) ++ || unlikely ((shdr->sh_addralign ?: 1) < sh_align))) + { + __libelf_seterrno (ELF_E_INVALID_ALIGN); + return -1; diff --git a/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch new file mode 100644 index 0000000000..1c7cde6d7d --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch @@ -0,0 +1,96 @@ +From 81da32c3404b58cbad7b3af00854e0cf2dc3dbf1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Fri, 23 Aug 2019 10:19:48 +0800 +Subject: [PATCH] musl-utils + +Provide missing defines which otherwise are available on glibc system headers + +Alter the error API to match posix version +use qsort instead of qsort_r which is glibc specific API + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + src/arlib.h | 6 ++++++ + src/elfcompress.c | 7 +++++++ + src/strip.c | 7 +++++++ + src/unstrip.c | 9 +++++++++ + 4 files changed, 29 insertions(+) + +diff --git a/src/arlib.h b/src/arlib.h +index e117166..8326f6c 100644 +--- a/src/arlib.h ++++ b/src/arlib.h +@@ -29,6 +29,12 @@ + #include <stdint.h> + #include <sys/types.h> + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(DEFFILEMODE) ++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ ++#endif + + /* State of -D/-U flags. */ + extern bool arlib_deterministic_output; +diff --git a/src/elfcompress.c b/src/elfcompress.c +index 92f2fac..0b037a5 100644 +--- a/src/elfcompress.c ++++ b/src/elfcompress.c +@@ -37,6 +37,13 @@ + #include "libeu.h" + #include "printversion.h" + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +diff --git a/src/strip.c b/src/strip.c +index 30a1f9d..e89a7f0 100644 +--- a/src/strip.c ++++ b/src/strip.c +@@ -46,6 +46,13 @@ + #include <system.h> + #include <printversion.h> + ++#if !defined(ACCESSPERMS) ++# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + typedef uint8_t GElf_Byte; + + /* Name and version of program. */ +diff --git a/src/unstrip.c b/src/unstrip.c +index 3472637..40c73f3 100644 +--- a/src/unstrip.c ++++ b/src/unstrip.c +@@ -52,6 +52,15 @@ + #include "libeu.h" + #include "printversion.h" + ++#ifndef strndupa ++#define strndupa(s, n) \ ++ ({const char *__in = (s); \ ++ size_t __len = strnlen (__in, (n)) + 1; \ ++ char *__out = (char *) alloca (__len); \ ++ __out[__len-1] = '\0'; \ ++ (char *) memcpy (__out, __in, __len-1);}) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + diff --git a/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch b/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch new file mode 100644 index 0000000000..8942ad7828 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch @@ -0,0 +1,59 @@ +From 2396fd67d81e54e18fbad67a5ff67d5684a01013 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 15 Aug 2017 17:27:30 +0800 +Subject: [PATCH] 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 <raj.khem@gmail.com> + +Rebase to 0.170 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + backends/aarch64_initreg.c | 4 ++-- + backends/arm_initreg.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/backends/aarch64_initreg.c b/backends/aarch64_initreg.c +index daf6f37..6445276 100644 +--- a/backends/aarch64_initreg.c ++++ b/backends/aarch64_initreg.c +@@ -33,7 +33,7 @@ + #include "system.h" + #include <assert.h> + #if defined(__aarch64__) && defined(__linux__) +-# include <linux/uio.h> ++# include <sys/uio.h> + # include <sys/user.h> + # include <sys/ptrace.h> + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ +@@ -82,7 +82,7 @@ aarch64_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + + 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; +diff --git a/backends/arm_initreg.c b/backends/arm_initreg.c +index efcabaf..062bb9e 100644 +--- a/backends/arm_initreg.c ++++ b/backends/arm_initreg.c +@@ -38,7 +38,7 @@ + #endif + + #ifdef __aarch64__ +-# include <linux/uio.h> ++# include <sys/uio.h> + # include <sys/user.h> + # include <sys/ptrace.h> + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ diff --git a/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch new file mode 100644 index 0000000000..a7715587db --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch @@ -0,0 +1,37 @@ +From ff6ab57ba5dd37947ef1ffe5de7af5dbebfeb4e9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 22 Jun 2020 21:35:16 +0000 +Subject: [PATCH] config/eu.am: do not use -Werror + +Due to re-definition of error() on musl, gcc starts throwing +errors where none happen with glibc. Since upstream is not +likely to be interested in musl builds, lets just disable +Werror. + +Upstream-Status: Inappropriate [oe core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + config/eu.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/config/eu.am b/config/eu.am +index 58cd3c4..ac42390 100644 +--- a/config/eu.am ++++ b/config/eu.am +@@ -91,7 +91,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ + -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ +@@ -101,7 +100,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ + $(TRAMPOLINES_WARNING) \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ diff --git a/meta/recipes-devtools/elfutils/files/ptest.patch b/meta/recipes-devtools/elfutils/files/ptest.patch new file mode 100644 index 0000000000..fe6f272a83 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/ptest.patch @@ -0,0 +1,63 @@ +From bfbf393e7d5b1b41df85ce1c37e887776c45d529 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Wed, 1 May 2019 16:37:48 +0100 +Subject: [PATCH] Changes to allow ptest to run standalone on target: + +a) Run the tests serially +b) Use the standalone test mode which allows the tests to be run in their + 'installled' locations on target (but not any of the standalone build pieces) +c) We want to use the binaries from their installed locations so the run-subr + script needs tweaking to run them like that. The rpath conditional isn't + enough since we want the second entry in the case statement. +d) Add an oecheck make target which we can use to build the test binaries we need + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Upstream-Status: Inappropriate [oe specific] + +--- + configure.ac | 2 +- + tests/Makefile.am | 2 ++ + tests/test-subr.sh | 6 ------ + 3 files changed, 3 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d345495..67933d1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -48,7 +48,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2021 The elfutils developers.]) + AC_PREREQ(2.63) dnl Minimum Autoconf version required. + + dnl We use GNU make extensions; automake 1.10 defaults to -Wportability. +-AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip parallel-tests]) ++AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip serial-tests]) + AM_MAINTAINER_MODE + + AM_SILENT_RULES([yes]) +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 72afd0e..a2dfd43 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -698,3 +698,5 @@ check: check-am coverage + coverage: + -$(srcdir)/coverage.sh + endif ++oecheck: ++ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) +diff --git a/tests/test-subr.sh b/tests/test-subr.sh +index 411e5f2..a638ff9 100644 +--- a/tests/test-subr.sh ++++ b/tests/test-subr.sh +@@ -91,12 +91,6 @@ installed_testrun() + program="$1" + shift + case "$program" in +- ${abs_builddir}/*) +- if [ "x$elfutils_tests_rpath" != xno ]; then +- echo >&2 installcheck not possible with --enable-tests-rpath +- exit 77 +- fi +- ;; + ${abs_top_builddir}/src/*) + program=${bindir}/`program_transform ${program##*/}` + ;; diff --git a/meta/recipes-devtools/elfutils/files/run-ptest b/meta/recipes-devtools/elfutils/files/run-ptest new file mode 100644 index 0000000000..d5776fdb53 --- /dev/null +++ b/meta/recipes-devtools/elfutils/files/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh +# +#This script is used to run elfutils test suites +cd tests + +make -k installcheck-local CC=gcc abs_srcdir=$PWD abs_builddir=$PWD srcdir=$PWD top_srcdir=$PWD/../ abs_top_builddir=$PWD/../ elfutils_testrun=installed elfutils_tests_rpath=no program_transform_name=s,^,eu-, |