| From 7de21e679e6a789f3729e8402bc440b623a28eae Mon Sep 17 00:00:00 2001 |
| From: Tony Ambardar <tony.ambardar@gmail.com> |
| Date: Thu, 17 Sep 2020 06:54:37 -0700 |
| Subject: powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h |
| |
| From: Tony Ambardar <tony.ambardar@gmail.com> |
| |
| commit 7de21e679e6a789f3729e8402bc440b623a28eae upstream. |
| |
| A few archs like powerpc have different errno.h values for macros |
| EDEADLOCK and EDEADLK. In code including both libc and linux versions of |
| errno.h, this can result in multiple definitions of EDEADLOCK in the |
| include chain. Definitions to the same value (e.g. seen with mips) do |
| not raise warnings, but on powerpc there are redefinitions changing the |
| value, which raise warnings and errors (if using "-Werror"). |
| |
| Guard against these redefinitions to avoid build errors like the following, |
| first seen cross-compiling libbpf v5.8.9 for powerpc using GCC 8.4.0 with |
| musl 1.1.24: |
| |
| In file included from ../../arch/powerpc/include/uapi/asm/errno.h:5, |
| from ../../include/linux/err.h:8, |
| from libbpf.c:29: |
| ../../include/uapi/asm-generic/errno.h:40: error: "EDEADLOCK" redefined [-Werror] |
| #define EDEADLOCK EDEADLK |
| |
| In file included from toolchain-powerpc_8540_gcc-8.4.0_musl/include/errno.h:10, |
| from libbpf.c:26: |
| toolchain-powerpc_8540_gcc-8.4.0_musl/include/bits/errno.h:58: note: this is the location of the previous definition |
| #define EDEADLOCK 58 |
| |
| cc1: all warnings being treated as errors |
| |
| Cc: Stable <stable@vger.kernel.org> |
| Reported-by: Rosen Penev <rosenp@gmail.com> |
| Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Link: https://lore.kernel.org/r/20200917135437.1238787-1-Tony.Ambardar@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/powerpc/include/uapi/asm/errno.h | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/arch/powerpc/include/uapi/asm/errno.h |
| +++ b/arch/powerpc/include/uapi/asm/errno.h |
| @@ -2,6 +2,7 @@ |
| #ifndef _ASM_POWERPC_ERRNO_H |
| #define _ASM_POWERPC_ERRNO_H |
| |
| +#undef EDEADLOCK |
| #include <asm-generic/errno.h> |
| |
| #undef EDEADLOCK |