kernel test robot writes:
Hi Chris,

Thank you for the patch! Yet something to improve:

I'm pretty sure !CONFIG_PRINTK && CONFIG_IA64_DEBUG_CMPXCHG has been broken like this long before this change.

With !CONFIG_PRINTK, printk() is static in the header, but ia64's cmpxchg.h with CONFIG_IA64_DEBUG_CMPXCHG doesn't take this into account before trying to use it as extern.

CONFIG_IA64_DEBUG_CMPXCHG should be dependent on CONFIG_PRINTK. I'll send a separate patch for that, no reason to put it in this series. Not sure why LKP only caught it now though.

Here's how it is even on the parent commit LKP applied this patch to:

    % git checkout bff4c8b4b0b9bcc31917d3b0f1a01a7573a1f473^
    Previous HEAD position was bff4c8b4b0b9 printk: Userspace format 
enumeration support
    HEAD is now at 1fa67f8391ac module: mark TRIM_UNUSED_KSYMS as BROKEN on 
powerpc
    % COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 /tmp/make.cross 
ARCH=ia64 -s
    Compiler will be installed in /home/cdown/0day
    make W=1 
CROSS_COMPILE=/home/cdown/0day/gcc-9.3.0-nolibc/ia64-linux/bin/ia64-linux- 
--jobs=32 ARCH=ia64 -s
    In file included from ./include/linux/kernel.h:16,
                     from ./include/asm-generic/bug.h:20,
                     from ./arch/ia64/include/asm/bug.h:17,
                     from ./include/linux/bug.h:5,
                     from ./include/linux/page-flags.h:10,
                     from kernel/bounds.c:10:
    ./include/linux/printk.h:219:5: error: static declaration of 'printk' 
follows non-static declaration
      219 | int printk(const char *s, ...)
          |     ^~~~~~
    In file included from ./arch/ia64/include/uapi/asm/intrinsics.h:22,
                     from ./arch/ia64/include/asm/intrinsics.h:11,
                     from ./arch/ia64/include/asm/bitops.h:19,
                     from ./include/linux/bitops.h:32,
                     from ./include/linux/kernel.h:11,
                     from ./include/asm-generic/bug.h:20,
                     from ./arch/ia64/include/asm/bug.h:17,
                     from ./include/linux/bug.h:5,
                     from ./include/linux/page-flags.h:10,
                     from kernel/bounds.c:10:
    ./arch/ia64/include/uapi/asm/cmpxchg.h:142:14: note: previous declaration 
of 'printk' was here
      142 |   extern int printk(const char *fmt, ...);  \
          |              ^~~~~~
    ./arch/ia64/include/asm/bitops.h:309:3: note: in expansion of macro 
'CMPXCHG_BUGCHECK'
      309 |   CMPXCHG_BUGCHECK(m);
          |   ^~~~~~~~~~~~~~~~
    make[1]: *** [scripts/Makefile.build:117: kernel/bounds.s] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make: *** [Makefile:1206: prepare0] Error 2

Reply via email to