[oe-commits] [openembedded-core] 02/02: elfutils: fix build failure with musl

git at git.openembedded.org git at git.openembedded.org
Wed Apr 17 13:49:19 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit cf8b51e502d9e4115530e62d4254e3476050802d
Author: Mingli Yu <Mingli.Yu at windriver.com>
AuthorDate: Tue Apr 16 16:05:01 2019 +0800

    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 <Mingli.Yu at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 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(-)

diff --git a/meta/recipes-devtools/elfutils/elfutils_0.176.bb b/meta/recipes-devtools/elfutils/elfutils_0.176.bb
index 031c00f..fb28687 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 0000000..4cf5400
--- /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 <Mingli.Yu at windriver.com>
+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 <Mingli.Yu at windriver.com>
+---
+ 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
+

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list