lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 21 Oct 2022 22:37:36 +0800
From:   kernel test robot <lkp@...el.com>
To:     David Gow <davidgow@...gle.com>,
        Brendan Higgins <brendan.higgins@...ux.dev>,
        Daniel Latypov <dlatypov@...gle.com>,
        Shuah Khan <skhan@...uxfoundation.org>
Cc:     kbuild-all@...ts.01.org, David Gow <davidgow@...gle.com>,
        kunit-dev@...glegroups.com, linux-kselftest@...r.kernel.org,
        linux-kernel@...r.kernel.org, Kees Cook <keescook@...omium.org>
Subject: Re: [PATCH 2/2] kunit: Use the static key in
 kunit_fail_current_test()

Hi David,

I love your patch! Perhaps something to improve:

[auto build test WARNING on kees/for-next/pstore]
[also build test WARNING on linus/master v6.1-rc1 next-20221021]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/David-Gow/kunit-Provide-a-static-key-to-check-if-KUnit-is-actively-running-tests/20221021-153225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
patch link:    https://lore.kernel.org/r/20221021072854.333010-2-davidgow%40google.com
patch subject: [PATCH 2/2] kunit: Use the static key in kunit_fail_current_test()
config: x86_64-rhel-8.3-kunit
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/6a21df30828089657bb7d56ce48a6188a4468878
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review David-Gow/kunit-Provide-a-static-key-to-check-if-KUnit-is-actively-running-tests/20221021-153225
        git checkout 6a21df30828089657bb7d56ce48a6188a4468878
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   lib/ubsan.c: In function 'ubsan_prologue':
   lib/ubsan.c:149:1: error: expected 'while' before 'static'
     149 | static void ubsan_epilogue(void)
         | ^~~~~~
   lib/ubsan.c: In function '__ubsan_handle_divrem_overflow':
   lib/ubsan.c:179:9: error: implicit declaration of function 'ubsan_epilogue'; did you mean 'ubsan_prologue'? [-Werror=implicit-function-declaration]
     179 |         ubsan_epilogue();
         |         ^~~~~~~~~~~~~~
         |         ubsan_prologue
   lib/ubsan.c: In function 'ubsan_prologue':
   lib/ubsan.c:161:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     161 | void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:181:15: error: non-static declaration of '__ubsan_handle_divrem_overflow' follows static declaration
     181 | EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:181:1: note: in expansion of macro 'EXPORT_SYMBOL'
     181 | EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:161:6: note: previous definition of '__ubsan_handle_divrem_overflow' with type 'void(void *, void *, void *)'
     161 | void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:181:1: note: in expansion of macro 'EXPORT_SYMBOL'
     181 | EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:183:13: error: invalid storage class for function 'handle_null_ptr_deref'
     183 | static void handle_null_ptr_deref(struct type_mismatch_data_common *data)
         |             ^~~~~~~~~~~~~~~~~~~~~
   lib/ubsan.c:183:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     183 | static void handle_null_ptr_deref(struct type_mismatch_data_common *data)
         | ^~~~~~
   lib/ubsan.c:197:13: error: invalid storage class for function 'handle_misaligned_access'
     197 | static void handle_misaligned_access(struct type_mismatch_data_common *data,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   lib/ubsan.c:213:13: error: invalid storage class for function 'handle_object_size_mismatch'
     213 | static void handle_object_size_mismatch(struct type_mismatch_data_common *data,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   lib/ubsan.c:227:13: error: invalid storage class for function 'ubsan_type_mismatch_common'
     227 | static void ubsan_type_mismatch_common(struct type_mismatch_data_common *data,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:254:15: error: non-static declaration of '__ubsan_handle_type_mismatch' follows static declaration
     254 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:254:1: note: in expansion of macro 'EXPORT_SYMBOL'
     254 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:242:6: note: previous definition of '__ubsan_handle_type_mismatch' with type 'void(struct type_mismatch_data *, void *)'
     242 | void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:254:1: note: in expansion of macro 'EXPORT_SYMBOL'
     254 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:256:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     256 | void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:268:15: error: non-static declaration of '__ubsan_handle_type_mismatch_v1' follows static declaration
     268 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:268:1: note: in expansion of macro 'EXPORT_SYMBOL'
     268 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:256:6: note: previous definition of '__ubsan_handle_type_mismatch_v1' with type 'void(void *, void *)'
     256 | void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:268:1: note: in expansion of macro 'EXPORT_SYMBOL'
     268 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:270:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     270 | void __ubsan_handle_out_of_bounds(void *_data, void *index)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:285:15: error: non-static declaration of '__ubsan_handle_out_of_bounds' follows static declaration
     285 | EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:285:1: note: in expansion of macro 'EXPORT_SYMBOL'
     285 | EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:270:6: note: previous definition of '__ubsan_handle_out_of_bounds' with type 'void(void *, void *)'
     270 | void __ubsan_handle_out_of_bounds(void *_data, void *index)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:285:1: note: in expansion of macro 'EXPORT_SYMBOL'
     285 | EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:287:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     287 | void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:326:15: error: non-static declaration of '__ubsan_handle_shift_out_of_bounds' follows static declaration
     326 | EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:326:1: note: in expansion of macro 'EXPORT_SYMBOL'
     326 | EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:287:6: note: previous definition of '__ubsan_handle_shift_out_of_bounds' with type 'void(void *, void *, void *)'
     287 | void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:326:1: note: in expansion of macro 'EXPORT_SYMBOL'
     326 | EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:329:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     329 | void __ubsan_handle_builtin_unreachable(void *_data)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:337:15: error: non-static declaration of '__ubsan_handle_builtin_unreachable' follows static declaration
     337 | EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:337:1: note: in expansion of macro 'EXPORT_SYMBOL'
     337 | EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:329:6: note: previous definition of '__ubsan_handle_builtin_unreachable' with type 'void(void *)'
     329 | void __ubsan_handle_builtin_unreachable(void *_data)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:337:1: note: in expansion of macro 'EXPORT_SYMBOL'
     337 | EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:339:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     339 | void __ubsan_handle_load_invalid_value(void *_data, void *val)
         | ^~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:356:15: error: non-static declaration of '__ubsan_handle_load_invalid_value' follows static declaration
     356 | EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:356:1: note: in expansion of macro 'EXPORT_SYMBOL'
     356 | EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:339:6: note: previous definition of '__ubsan_handle_load_invalid_value' with type 'void(void *, void *)'
     339 | void __ubsan_handle_load_invalid_value(void *_data, void *val)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:356:1: note: in expansion of macro 'EXPORT_SYMBOL'
     356 | EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:358:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     358 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
         | ^~~~
   lib/ubsan.c:361:6: error: static declaration of '__ubsan_handle_alignment_assumption' follows non-static declaration
     361 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   lib/ubsan.c:358:6: note: previous declaration of '__ubsan_handle_alignment_assumption' with type 'void(void *, long unsigned int,  long unsigned int,  long unsigned int)'
     358 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
   lib/ubsan.c:387:15: error: non-static declaration of '__ubsan_handle_alignment_assumption' follows static declaration
     387 | EXPORT_SYMBOL(__ubsan_handle_alignment_assumption);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
      87 |         extern typeof(sym) sym;                                                 \
         |                            ^~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:387:1: note: in expansion of macro 'EXPORT_SYMBOL'
     387 | EXPORT_SYMBOL(__ubsan_handle_alignment_assumption);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:361:6: note: previous definition of '__ubsan_handle_alignment_assumption' with type 'void(void *, long unsigned int,  long unsigned int,  long unsigned int)'
     361 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/build_bug.h:5,
                    from include/linux/bits.h:22,
                    from include/linux/bitops.h:6,
                    from lib/ubsan.c:9:
>> include/linux/compiler.h:215:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     215 |         static void * __used __attrs \
         |         ^~~~~~
   include/linux/compiler.h:218:9: note: in expansion of macro '___ADDRESSABLE'
     218 |         ___ADDRESSABLE(sym, __section(".discard.addressable"))
         |         ^~~~~~~~~~~~~~
   include/linux/export.h:41:9: note: in expansion of macro '__ADDRESSABLE'
      41 |         __ADDRESSABLE(sym)                                              \
         |         ^~~~~~~~~~~~~
   include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
      96 |         __KSYMTAB_ENTRY(sym, sec)
         |         ^~~~~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:387:1: note: in expansion of macro 'EXPORT_SYMBOL'
     387 | EXPORT_SYMBOL(__ubsan_handle_alignment_assumption);
         | ^~~~~~~~~~~~~
   lib/ubsan.c:387:1: error: expected declaration or statement at end of input
   In file included from include/linux/linkage.h:7,
                    from include/linux/printk.h:8,
                    from include/asm-generic/bug.h:22,
                    from arch/x86/include/asm/bug.h:87,
                    from include/linux/bug.h:5,
                    from lib/ubsan.c:10:
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_alignment_assumption' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:387:1: note: in expansion of macro 'EXPORT_SYMBOL'
     387 | EXPORT_SYMBOL(__ubsan_handle_alignment_assumption);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_alignment_assumption' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:387:1: note: in expansion of macro 'EXPORT_SYMBOL'
     387 | EXPORT_SYMBOL(__ubsan_handle_alignment_assumption);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_load_invalid_value' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:356:1: note: in expansion of macro 'EXPORT_SYMBOL'
     356 | EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_load_invalid_value' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:356:1: note: in expansion of macro 'EXPORT_SYMBOL'
     356 | EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_builtin_unreachable' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:337:1: note: in expansion of macro 'EXPORT_SYMBOL'
     337 | EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_builtin_unreachable' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:337:1: note: in expansion of macro 'EXPORT_SYMBOL'
     337 | EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_shift_out_of_bounds' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:326:1: note: in expansion of macro 'EXPORT_SYMBOL'
     326 | EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_shift_out_of_bounds' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:326:1: note: in expansion of macro 'EXPORT_SYMBOL'
     326 | EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_out_of_bounds' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:285:1: note: in expansion of macro 'EXPORT_SYMBOL'
     285 | EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_out_of_bounds' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:285:1: note: in expansion of macro 'EXPORT_SYMBOL'
     285 | EXPORT_SYMBOL(__ubsan_handle_out_of_bounds);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_type_mismatch_v1' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:268:1: note: in expansion of macro 'EXPORT_SYMBOL'
     268 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
         | ^~~~~~~~~~~~~
>> include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_type_mismatch_v1' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:268:1: note: in expansion of macro 'EXPORT_SYMBOL'
     268 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
         | ^~~~~~~~~~~~~
   include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_type_mismatch' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:254:1: note: in expansion of macro 'EXPORT_SYMBOL'
     254 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch);
         | ^~~~~~~~~~~~~
   include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_type_mismatch' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:254:1: note: in expansion of macro 'EXPORT_SYMBOL'
     254 | EXPORT_SYMBOL(__ubsan_handle_type_mismatch);
         | ^~~~~~~~~~~~~
   include/linux/export.h:89:27: warning: unused variable '__kstrtabns___ubsan_handle_divrem_overflow' [-Wunused-variable]
      89 |         extern const char __kstrtabns_##sym[];                                  \
         |                           ^~~~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:181:1: note: in expansion of macro 'EXPORT_SYMBOL'
     181 | EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
         | ^~~~~~~~~~~~~
   include/linux/export.h:88:27: warning: unused variable '__kstrtab___ubsan_handle_divrem_overflow' [-Wunused-variable]
      88 |         extern const char __kstrtab_##sym[];                                    \
         |                           ^~~~~~~~~~
   include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
     140 | #define __EXPORT_SYMBOL(sym, sec, ns)   ___EXPORT_SYMBOL(sym, sec, ns)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
     147 | #define _EXPORT_SYMBOL(sym, sec)        __EXPORT_SYMBOL(sym, sec, "")
         |                                         ^~~~~~~~~~~~~~~
   include/linux/export.h:150:41: note: in expansion of macro '_EXPORT_SYMBOL'
     150 | #define EXPORT_SYMBOL(sym)              _EXPORT_SYMBOL(sym, "")
         |                                         ^~~~~~~~~~~~~~
   lib/ubsan.c:181:1: note: in expansion of macro 'EXPORT_SYMBOL'
     181 | EXPORT_SYMBOL(__ubsan_handle_divrem_overflow);
         | ^~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +215 include/linux/compiler.h

^1da177e4c3f41 Linus Torvalds 2005-04-16  207  
7290d58095712a Ard Biesheuvel 2018-08-21  208  /*
7290d58095712a Ard Biesheuvel 2018-08-21  209   * Force the compiler to emit 'sym' as a symbol, so that we can reference
7290d58095712a Ard Biesheuvel 2018-08-21  210   * it from inline assembler. Necessary in case 'sym' could be inlined
7290d58095712a Ard Biesheuvel 2018-08-21  211   * otherwise, or eliminated entirely due to lack of references that are
7290d58095712a Ard Biesheuvel 2018-08-21  212   * visible to the compiler.
7290d58095712a Ard Biesheuvel 2018-08-21  213   */
92efda8eb15295 Sami Tolvanen  2022-09-08  214  #define ___ADDRESSABLE(sym, __attrs) \
92efda8eb15295 Sami Tolvanen  2022-09-08 @215  	static void * __used __attrs \
563a02b0c9704f Josh Poimboeuf 2020-08-18  216  		__UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)&sym;
92efda8eb15295 Sami Tolvanen  2022-09-08  217  #define __ADDRESSABLE(sym) \
92efda8eb15295 Sami Tolvanen  2022-09-08  218  	___ADDRESSABLE(sym, __section(".discard.addressable"))
7290d58095712a Ard Biesheuvel 2018-08-21  219  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

View attachment "config" of type "text/plain" (166936 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ