内核6.2.0-26-generic版本下编译内核模块遭遇多处头文件错误求助
内核6.2.0-26-generic版本下编译内核模块遭遇多处头文件错误求助
我正在开发一个内核模块,之前在Linux 5.x系列内核版本下编译运行都很正常,但切换到6.2.0-37-generic内核后,编译过程中从内核头文件里抛出了一大堆错误,实在摸不着头绪,求大家帮忙看看怎么解决。
编译错误汇总:
- Type.h中报错:
Throwing extra braces group at the end of initializer - 错误:
‘CONFIG_PAGE_OFFSETUL’ undeclared (first use in this function); did you mean ‘CONFIG_SND_OSSEMUL’? - 涉及的头文件包括:topology.h、mm.h、vmstat.h(多次出现)
详细错误日志:
In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/bitops.h:425, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/bitops.h:68, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/log2.h:12, from /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/div64.h:55, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/div64.h:75, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/math.h:6, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/math64.h:6, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:6, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h: In function ‘__instrument_read_write_bitop’: /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:13: warning: implicit declaration of function ‘IS_ENABLED’ [-Wimplicit-function-declaration] 66 | if (IS_ENABLED(CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC)) { | ^~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:24: error: ‘CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC’ undeclared (first use in this function) 66 | if (IS_ENABLED(CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/bitops/instrumented-non-atomic.h:66:24: note: each undeclared identifier is reported only once for each function it appears in In file included from /usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:6, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/current.h: At top level: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cache.h:8:26: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function) 8 | #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cache.h:9:31: note: in expansion of macro ‘L1_CACHE_SHIFT’ 9 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | ^~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:13:25: note: in expansion of macro ‘L1_CACHE_BYTES’ 13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | ^~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/include/linux/cache.h:41:58: note: in expansion of macro ‘SMP_CACHE_BYTES’ 41 | #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) | ^~~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/include/linux/percpu-defs.h:148:9: note: in expansion of macro ‘____cacheline_aligned’ 148 | ____cacheline_aligned | ^~~~~~~~~~~~~~~~~~~~~ /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/current.h:37:1: note: in expansion of macro ‘DECLARE_PER_CPU_ALIGNED’ 37 | DECLARE_PER_CPU_ALIGNED(struct pcpu_hot, pcpu_hot); | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic.h:269, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/atomic.h:7, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/jump_label.h:255, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string_64.h:6, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string.h:5, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cpuid.h:9, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/processor.h:19, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/timex.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/timex.h:67, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time32.h:13, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:60, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:20:44: error: unknown type name ‘atomic64_t’ 20 | static inline s64 arch_atomic64_read(const atomic64_t *v) | ^~~~~~~~~~ In file included from /usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/build_bug.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/container_of.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/list.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:12, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h: In function ‘arch_atomic64_read’: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:31: error: request for member ‘counter’ in something not a structure or union 22 | return __READ_ONCE((v)->counter); | ^~ /usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler_types.h:341:27: note: in definition of macro ‘__unqual_scalar_typeof’ 341 | _Generic((x), \ | ^ /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:16: note: in expansion of macro ‘__READ_ONCE’ 22 | return __READ_ONCE((v)->counter); | ^~~~~~~~~~~ In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/generated/asm/rwonce.h:1, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/compiler.h:247, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/build_bug.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/container_of.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/list.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:12, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:22:31: error: request for member ‘counter’ in something not a structure or union 22 | return __READ_ONCE((v)->counter); | ^~ /usr/src/linux-headers-6.2.0-37-generic/include/asm-generic/rwonce.h:44:73: note: in definition of macro ‘__READ_ONCE’ 44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) | ^ In file included from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic.h:269, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/atomic.h:7, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/jump_label.h:255, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string_64.h:6, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/string.h:5, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/cpuid.h:9, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/processor.h:19, from /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/timex.h:5, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/timex.h:67, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time32.h:13, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/time.h:60, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/stat.h:19, from /usr/src/linux-headers-6.2.0-37-generic/include/linux/module.h:13, from dscudkp.c:97: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h: At top level: /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:32:38: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 32 | static inline void arch_atomic64_set(atomic64_t *v, s64 i) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:44:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 44 | static __always_inline void arch_atomic64_add(s64 i, atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:58:45: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 58 | static inline void arch_atomic64_sub(s64 i, atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:74:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 74 | static inline bool arch_atomic64_sub_and_test(s64 i, atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:86:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 86 | static __always_inline void arch_atomic64_inc(atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:100:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 100 | static __always_inline void arch_atomic64_dec(atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:116:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 116 | static inline bool arch_atomic64_dec_and_test(atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:130:47: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 130 | static inline bool arch_atomic64_inc_and_test(atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:145:54: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 145 | static inline bool arch_atomic64_add_negative(s64 i, atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x86/include/asm/atomic64_64.h:158:60: error: unknown type name ‘atomic64_t’; did you mean ‘atomic_t’? 158 | static __always_inline s64 arch_atomic64_add_return(s64 i, atomic64_t *v) | ^~~~~~~~~~ | atomic_t /usr/src/linux-headers-6.2.0-37-generic/arch/x
相关产品推荐
相关产品推荐

