summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMingli Yu <Mingli.Yu@windriver.com>2019-04-16 16:05:01 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-04-23 23:30:19 +0100
commita5dd314fba9e0571ab9af81d6f91c48d8ebfd14a (patch)
treee4cf8cff46c8815d378c1967c2a8dfbca9c4a9ee
parent073556fa8c6e95ebd1cd97d5226b8b9e743fe4e0 (diff)
downloadpoky-a5dd314fba9e0571ab9af81d6f91c48d8ebfd14a.tar.gz
elfutils: fix build failure with musl
Fix below build failure with musl when ptest enabled. | In file included from ../../elfutils-0.176/tests/dwfl-proc-attach.c:33: | ../../elfutils-0.176/lib/system.h:63:35: error: called object 'err' is not a function or function pointer | #define error(status, errno, ...) err(status, __VA_ARGS__) | ^~~ | ../../elfutils-0.176/tests/dwfl-proc-attach.c:92:5: note: in expansion of macro 'error' | error (-1, 0, "dwfl_linux_proc_attach pid %d: %s", pid, | ^~~~~ | ../../elfutils-0.176/tests/dwfl-proc-attach.c:79:7: note: declared here | int err; | ^~~ The root cause is because the conflicts between vairable and function name, so change the variable name to workaround it. (From OE-Core rev: 48dbb1bd980f7ed17a612fa7c1be298f14955c3f) Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.176.bb4
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch62
2 files changed, 65 insertions, 1 deletions
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.176.bb b/meta/recipes-devtools/elfutils/elfutils_0.176.bb
index 031c00fb28..fb2868723a 100644
--- a/meta/recipes-devtools/elfutils/elfutils_0.176.bb
+++ b/meta/recipes-devtools/elfutils/elfutils_0.176.bb
@@ -32,7 +32,9 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
32 file://run-ptest \ 32 file://run-ptest \
33 file://serial-tests.patch \ 33 file://serial-tests.patch \
34 " 34 "
35SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch" 35SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch \
36 file://0001-fix-err-variable-and-function-conflicts.patch \
37"
36 38
37SRC_URI[md5sum] = "077e4f49320cad82bf17a997068b1db9" 39SRC_URI[md5sum] = "077e4f49320cad82bf17a997068b1db9"
38SRC_URI[sha256sum] = "eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023" 40SRC_URI[sha256sum] = "eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023"
diff --git a/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch b/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch
new file mode 100644
index 0000000000..4cf54008b7
--- /dev/null
+++ b/meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch
@@ -0,0 +1,62 @@
1From 2c50fe7068bd6911958c6d851aef88179e73bb21 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <Mingli.Yu@windriver.com>
3Date: Tue, 16 Apr 2019 15:30:38 +0800
4Subject: [PATCH] fix err variable and function conflicts
5
6There comes below build failure with musl when
7ptest enabled.
8| In file included from ../../elfutils-0.176/tests/dwfl-proc-attach.c:33:
9| ../../elfutils-0.176/lib/system.h:63:35: error: called object 'err' is not a function or function pointer
10| #define error(status, errno, ...) err(status, __VA_ARGS__)
11| ^~~
12| ../../elfutils-0.176/tests/dwfl-proc-attach.c:92:5: note: in expansion of macro 'error'
13| error (-1, 0, "dwfl_linux_proc_attach pid %d: %s", pid,
14| ^~~~~
15| ../../elfutils-0.176/tests/dwfl-proc-attach.c:79:7: note: declared here
16| int err;
17| ^~~
18
19It is because there is no error.h in musl and
20the patch 0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch
21has updated to use err.h to replace error.h
22and also added macro definiton as below when
23use musl.
24 #define error(status, errno, ...) err(status, __VA_ARGS__)
25
26And in err.h, there is below logic:
27_Noreturn void err(int, const char *, ...);
28
29But when ptest enabled, there comes below error
30as there is both variable and function defined
31to be err in tests/dwfl-proc-attach.c.
32So change the err variable's name to workaround
33the build failure with musl.
34
35Upstream-Status: Inappropriate [workaround in musl]
36
37Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
38---
39 tests/dwfl-proc-attach.c | 6 +++---
40 1 file changed, 3 insertions(+), 3 deletions(-)
41
42diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c
43index 102ba18..ad4208e 100644
44--- a/tests/dwfl-proc-attach.c
45+++ b/tests/dwfl-proc-attach.c
46@@ -76,10 +76,10 @@ main (int argc __attribute__ ((unused)),
47 char **argv __attribute__ ((unused)))
48 {
49 /* Create two extra threads to iterate through. */
50- int err;
51- if ((err = pthread_create (&thread1, NULL, sleeper, NULL)) != 0)
52+ int err1;
53+ if ((err1 = pthread_create (&thread1, NULL, sleeper, NULL)) != 0)
54 error (-1, err, "Couldn't create thread1");
55- if ((err = pthread_create (&thread2, NULL, sleeper, NULL)) != 0)
56+ if ((err1 = pthread_create (&thread2, NULL, sleeper, NULL)) != 0)
57 error (-1, err, "Couldn't create thread2");
58
59 Dwfl *dwfl = dwfl_begin (&proc_callbacks);
60--
612.7.4
62