| From 2c50fe7068bd6911958c6d851aef88179e73bb21 Mon Sep 17 00:00:00 2001 |
| From: Mingli Yu <Mingli.Yu@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@windriver.com> |
| --- |
| tests/dwfl-proc-attach.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| Index: elfutils-0.176/tests/dwfl-proc-attach.c |
| =================================================================== |
| --- elfutils-0.176.orig/tests/dwfl-proc-attach.c |
| +++ elfutils-0.176/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); |
| Index: elfutils-0.176/tests/backtrace.c |
| =================================================================== |
| --- elfutils-0.176.orig/tests/backtrace.c |
| +++ elfutils-0.176/tests/backtrace.c |
| @@ -219,23 +219,23 @@ dump (Dwfl *dwfl) |
| { |
| ptrdiff_t ptrdiff = dwfl_getmodules (dwfl, dump_modules, NULL, 0); |
| assert (ptrdiff == 0); |
| - bool err = false; |
| + bool err1 = false; |
| switch (dwfl_getthreads (dwfl, thread_callback, NULL)) |
| { |
| case 0: |
| break; |
| case DWARF_CB_ABORT: |
| - err = true; |
| + err1 = true; |
| break; |
| case -1: |
| error (0, 0, "dwfl_getthreads: %s", dwfl_errmsg (-1)); |
| - err = true; |
| + err1 = true; |
| break; |
| default: |
| abort (); |
| } |
| callback_verify (0, 0, 0, NULL, dwfl); |
| - if (err) |
| + if (err1) |
| exit (EXIT_FAILURE); |
| } |
| |