Re: [aegl:resctrl2_v65rc4 2/2] fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: expected ';' after top level declarator

Nathan Chancellor <[email protected]>
Newsgroups gmane.linux.ports.ia64
Message-ID <[email protected]>
Hi Yujie,

On Thu, Aug 10, 2023 at 02:36:00PM +0800, Yujie Liu wrote:
> Hi Nathan, Hi Nick,
> 
> Could you kindly help to take a look at this report?
> 
> Quote Tony's comment:
> 
> > It seems that some/all of the combination of CLANG, ARCH=i386, and
> > building with CONFIG_XXX=y rather than CONFIG_XXX=m makes clang freak
> > out.
> > GCC seems able to build the files in fs/resctrl2/arch/x86/ as either
> > modules or built-in, x86_64 or i386 without problems.
> 
> We re-tested this case and got the same result as Tony's. GCC can build
> this without problems, while various versions of clang (clang
> 17/16/15/14) throw this error. Could you help do a quick check to see if
> necessary to track an issue? Thanks.

I'll do my best to take a look at this either today/tomorrow or early
next week. We're dealing with some fallout from the SRSO mitigations, so
that has been priority 0 at the moment.

Cheers,
Nathan

> On Fri, Aug 04, 2023 at 06:45:45AM +0800, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git resctrl2_v65rc4
> > head:   36621209814f9810feed9af60d278a198847c117
> > commit: 36621209814f9810feed9af60d278a198847c117 [2/2] resctrl2: Arch x86 modules for most of the legacy control/monitor functions
> > config: i386-randconfig-r032-20230804 (https://download.01.org/0day-ci/archive/20230804/[email protected]/config)
> > compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
> > reproduce: (https://download.01.org/0day-ci/archive/20230804/[email protected]/reproduce)
> > 
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <[email protected]>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> > 
> > All errors (new ones prefixed by >>):
> > 
> >    fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: warning: '__cold__' attribute only applies to functions [-Wignored-attributes]
> >    module_init(cat_init);
> >    ^
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:243:6: note: expanded from macro '__define_initcall_stub'
> >            int __init __stub(void);                                \
> >                ^
> >    include/linux/init.h:52:41: note: expanded from macro '__init'
> >    #define __init          __section(".init.text") __cold  __latent_entropy __noinitretpoline
> >                                                    ^
> >    include/linux/compiler_types.h:104:34: note: expanded from macro '__cold'
> >    #define __cold                          __attribute__((__cold__))
> >                                                           ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: expected ';' after top level declarator
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:280:35: note: expanded from macro '___define_initcall'
> >            __unique_initcall(fn, id, __sec, __initcall_id(fn))
> >                                             ^
> >    include/linux/init.h:209:10: note: expanded from macro '__initcall_id'
> >            __PASTE(__KBUILD_MODNAME,                               \
> >                    ^
> >    <command line>:9:48: note: expanded from macro '__KBUILD_MODNAME'
> >    #define __KBUILD_MODNAME kmod_rdt_l2_pseudolock:rdt_l3_pseudolock
> >                                                   ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:15:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6
> >    ^
> >    fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: warning: '__cold__' attribute only applies to functions [-Wignored-attributes]
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:244:6: note: expanded from macro '__define_initcall_stub'
> >            int __init __stub(void)                                 \
> >                ^
> >    include/linux/init.h:52:41: note: expanded from macro '__init'
> >    #define __init          __section(".init.text") __cold  __latent_entropy __noinitretpoline
> >                                                    ^
> >    include/linux/compiler_types.h:104:34: note: expanded from macro '__cold'
> >    #define __cold                          __attribute__((__cold__))
> >                                                           ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: expected ';' after top level declarator
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:280:35: note: expanded from macro '___define_initcall'
> >            __unique_initcall(fn, id, __sec, __initcall_id(fn))
> >                                             ^
> >    include/linux/init.h:209:10: note: expanded from macro '__initcall_id'
> >            __PASTE(__KBUILD_MODNAME,                               \
> >                    ^
> >    <command line>:9:48: note: expanded from macro '__KBUILD_MODNAME'
> >    #define __KBUILD_MODNAME kmod_rdt_l2_pseudolock:rdt_l3_pseudolock
> >                                                   ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:15:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6
> >    ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: expected ';' after top level declarator
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:280:35: note: expanded from macro '___define_initcall'
> >            __unique_initcall(fn, id, __sec, __initcall_id(fn))
> >                                             ^
> >    include/linux/init.h:209:10: note: expanded from macro '__initcall_id'
> >            __PASTE(__KBUILD_MODNAME,                               \
> >                    ^
> >    <command line>:9:48: note: expanded from macro '__KBUILD_MODNAME'
> >    #define __KBUILD_MODNAME kmod_rdt_l2_pseudolock:rdt_l3_pseudolock
> >                                                   ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 8 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:28:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6216
> >    ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
> >    module_init(cat_init);
> >    ^~~~~~~~~~~~~~~~~~~~~
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^~~~~~~~~~~~~
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^~~~~~~~~~~~~~~~~~~
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^~~~~~~~~~~~~~~~~~~~~~~~
> >    note: (skipping 8 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:28:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6216
> >    ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: expected ';' after top level declarator
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/init.h:280:35: note: expanded from macro '___define_initcall'
> >            __unique_initcall(fn, id, __sec, __initcall_id(fn))
> >                                             ^
> >    include/linux/init.h:209:10: note: expanded from macro '__initcall_id'
> >            __PASTE(__KBUILD_MODNAME,                               \
> >                    ^
> >    <command line>:9:48: note: expanded from macro '__KBUILD_MODNAME'
> >    #define __KBUILD_MODNAME kmod_rdt_l2_pseudolock:rdt_l3_pseudolock
> >                                                   ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:15:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6
> >    ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: redefinition of 'rdt_l3_pseudolock__215_569_cat_init6' as different kind of symbol
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:15:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6
> >    ^
> >    fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: note: previous definition is here
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:15:1: note: expanded from here
> >    rdt_l3_pseudolock__215_569_cat_init6
> >    ^
> > >> fs/resctrl2/arch/x86/l3_pseudolock.c:569:1: error: '__initstub__kmod_rdt_l2_pseudolock' causes a section type conflict with 'init_rootfs'
> >    module_init(cat_init);
> >    ^
> >    include/linux/module.h:88:24: note: expanded from macro 'module_init'
> >    #define module_init(x)  __initcall(x);
> >                            ^
> >    include/linux/init.h:316:24: note: expanded from macro '__initcall'
> >    #define __initcall(fn) device_initcall(fn)
> >                           ^
> >    include/linux/init.h:311:30: note: expanded from macro 'device_initcall'
> >    #define device_initcall(fn)             __define_initcall(fn, 6)
> >                                            ^
> >    note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
> >    include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
> >    #define __PASTE(a,b) ___PASTE(a,b)
> >                         ^
> >    include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
> >    #define ___PASTE(a,b) a##b
> >                          ^
> >    <scratch space>:18:1: note: expanded from here
> >    __initstub__kmod_rdt_l2_pseudolock
> >    ^
> >    include/linux/init.h:154:13: note: declared here
> >    void __init init_rootfs(void);
> >                ^
> >    2 warnings and 11 errors generated.
> > 
> > 
> > vim +569 fs/resctrl2/arch/x86/l3_pseudolock.c
> > 
> >    568	
> >  > 569	module_init(cat_init);
> >    570	module_exit(cat_cleanup);
> >    571	
> > 
> > -- 
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki
> > 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.