• Michael Ellerman's avatar
    selftests/powerpc: Fix build with USERCFLAGS set · 8b7f59de
    Michael Ellerman authored
    Currently building the powerpc selftests with USERCFLAGS set to anything
    causes the build to break:
    
      $ make -C tools/testing/selftests/powerpc V=1 USERCFLAGS=-Wno-error
      ...
      gcc -Wno-error    cache_shape.c ...
      cache_shape.c:18:10: fatal error: utils.h: No such file or directory
         18 | #include "utils.h"
            |          ^~~~~~~~~
      compilation terminated.
    
    This happens because the USERCFLAGS are added to CFLAGS in lib.mk, which
    causes the check of CFLAGS in powerpc/flags.mk to skip setting CFLAGS at
    all, resulting in none of the usual CFLAGS being passed. That can
    be seen in the output above, the only flag passed to the compiler is
    -Wno-error.
    
    Fix it by dropping the conditional setting of CFLAGS in flags.mk.
    Instead always set CFLAGS, but also append USERCFLAGS if they are set.
    
    Note that appending to CFLAGS (with +=) wouldn't work, because flags.mk
    is included by multiple Makefiles (to support partial builds), causing
    CFLAGS to be appended to multiple times. Additionally that would place
    the USERCFLAGS prior to the standard CFLAGS, meaning the USERCFLAGS
    couldn't override the standard flags. Being able to override the
    standard flags is desirable, for example for adding -Wno-error.
    
    With the fix in place, the CFLAGS are set correctly, including the
    USERCFLAGS:
    
      $ make -C tools/testing/selftests/powerpc V=1 USERCFLAGS=-Wno-error
      ...
      gcc -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"v6.10-rc2-7-gdea17e7e56c3"'
      -I/home/michael/linux/tools/testing/selftests/powerpc/include -Wno-error
      cache_shape.c ...
    
    Fixes: 5553a793 ("selftests/powerpc: Add flags.mk to support pmu buildable")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20240706120833.909853-1-mpe@ellerman.id.au
    8b7f59de
flags.mk 308 Bytes