From 48dbb1bd980f7ed17a612fa7c1be298f14955c3f Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Tue, 16 Apr 2019 16:05:01 +0800 Subject: 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. Signed-off-by: Mingli Yu Signed-off-by: Richard Purdie --- meta/recipes-devtools/elfutils/elfutils_0.176.bb | 4 +- ...1-fix-err-variable-and-function-conflicts.patch | 62 ++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/elfutils/files/0001-fix-err-variable-and-function-conflicts.patch (limited to 'meta/recipes-devtools/elfutils') 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 \ file://run-ptest \ file://serial-tests.patch \ " -SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch" +SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch \ + file://0001-fix-err-variable-and-function-conflicts.patch \ +" SRC_URI[md5sum] = "077e4f49320cad82bf17a997068b1db9" SRC_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 @@ +From 2c50fe7068bd6911958c6d851aef88179e73bb21 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Tue, 16 Apr 2019 15:30:38 +0800 +Subject: [PATCH] fix err variable and function conflicts + +There comes 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; +| ^~~ + +It is because there is no error.h in musl and +the patch 0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch +has updated to use err.h to replace error.h +and also added macro definiton as below when +use musl. + #define error(status, errno, ...) err(status, __VA_ARGS__) + +And in err.h, there is below logic: +_Noreturn void err(int, const char *, ...); + +But when ptest enabled, there comes below error +as there is both variable and function defined +to be err in tests/dwfl-proc-attach.c. +So change the err variable's name to workaround +the build failure with musl. + +Upstream-Status: Inappropriate [workaround in musl] + +Signed-off-by: Mingli Yu +--- + tests/dwfl-proc-attach.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c +index 102ba18..ad4208e 100644 +--- a/tests/dwfl-proc-attach.c ++++ b/tests/dwfl-proc-attach.c +@@ -76,10 +76,10 @@ main (int argc __attribute__ ((unused)), + char **argv __attribute__ ((unused))) + { + /* Create two extra threads to iterate through. */ +- int err; +- if ((err = pthread_create (&thread1, NULL, sleeper, NULL)) != 0) ++ int err1; ++ if ((err1 = pthread_create (&thread1, NULL, sleeper, NULL)) != 0) + error (-1, err, "Couldn't create thread1"); +- if ((err = pthread_create (&thread2, NULL, sleeper, NULL)) != 0) ++ if ((err1 = pthread_create (&thread2, NULL, sleeper, NULL)) != 0) + error (-1, err, "Couldn't create thread2"); + + Dwfl *dwfl = dwfl_begin (&proc_callbacks); +-- +2.7.4 + -- cgit 1.2.3-korg