• Tony Ambardar's avatar
    powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h · 7de21e67
    Tony Ambardar authored
    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: default avatarRosen Penev <rosenp@gmail.com>
    Signed-off-by: default avatarTony Ambardar <Tony.Ambardar@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200917135437.1238787-1-Tony.Ambardar@gmail.com
    7de21e67
errno.h 278 Bytes