编译内核驱动为模块,发现报错一堆,发现./arch/x86/include/asm/arch_hweight.h:55:42: error: expected ‘:’ or ‘)’ before ‘POPCNT64’ 这种报错,最后发现是编译命令问题,你要指定架构
KERNELDIR := /home/alientek/sdk/kernel
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
修改为
$(MAKE) ARCH=arm -C
(
K
E
R
N
E
L
D
I
R
)
M
=
(KERNELDIR) M=
(KERNELDIR)M=(CURRENT_PATH) modules
make -C /home/alientek/sdk/kernel M=/home/alientek/sdk/chenwei/01_chrdevbase modules
make[1]: 进入目录“/home/alientek/sdk/kernel”
CC [M] /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.o
In file included from ./arch/x86/include/asm/barrier.h:5,
from ./include/linux/compiler.h:250,
from ./include/linux/kernel.h:10,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./arch/x86/include/asm/arch_hweight.h: In function '__arch_hweight64':
./arch/x86/include/asm/arch_hweight.h:55:42: error: expected ':' or ')' before 'POPCNT64'
55 | asm (ALTERNATIVE("call __sw_hweight64", POPCNT64, X86_FEATURE_POPCNT)
| ^~~~~~~~
./arch/x86/include/asm/alternative.h:133:28: note: in definition of macro 'ALTINSTR_REPLACEMENT'
133 | b_replacement(num)":\n\t" newinstr "\n" e_replacement(num) ":\n\t"
| ^~~~~~~~
./arch/x86/include/asm/arch_hweight.h:55:7: note: in expansion of macro 'ALTERNATIVE'
55 | asm (ALTERNATIVE("call __sw_hweight64", POPCNT64, X86_FEATURE_POPCNT)
| ^~~~~~~~~~~
In file included from ./arch/x86/include/asm/atomic.h:262,
from ./include/linux/atomic.h:7,
from ./include/linux/rcupdate.h:38,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/atomic64_64.h: At top level:
./arch/x86/include/asm/atomic64_64.h:20:45: error: unknown type name 'atomic64_t'
20 | static inline long arch_atomic64_read(const atomic64_t *v)
| ^~~~~~~~~~
In file included from ./include/linux/kernel.h:10,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./arch/x86/include/asm/atomic64_64.h: In function 'arch_atomic64_read':
./arch/x86/include/asm/atomic64_64.h:22:22: error: request for member 'counter' in something not a structure or union
22 | return READ_ONCE((v)->counter);
| ^~
./include/linux/compiler.h:255:17: note: in definition of macro '__READ_ONCE'
255 | union { typeof(x) __val; char __c[1]; } __u; \
| ^
./arch/x86/include/asm/atomic64_64.h:22:9: note: in expansion of macro 'READ_ONCE'
22 | return READ_ONCE((v)->counter);
| ^~~~~~~~~
./arch/x86/include/asm/atomic64_64.h:22:22: error: request for member 'counter' in something not a structure or union
22 | return READ_ONCE((v)->counter);
| ^~
./include/linux/compiler.h:257:22: note: in definition of macro '__READ_ONCE'
257 | __read_once_size(&(x), __u.__c, sizeof(x)); \
| ^
./arch/x86/include/asm/atomic64_64.h:22:9: note: in expansion of macro 'READ_ONCE'
22 | return READ_ONCE((v)->counter);
| ^~~~~~~~~
./arch/x86/include/asm/atomic64_64.h:22:22: error: request for member 'counter' in something not a structure or union
22 | return READ_ONCE((v)->counter);
| ^~
./include/linux/compiler.h:257:42: note: in definition of macro '__READ_ONCE'
257 | __read_once_size(&(x), __u.__c, sizeof(x)); \
| ^
./arch/x86/include/asm/atomic64_64.h:22:9: note: in expansion of macro 'READ_ONCE'
22 | return READ_ONCE((v)->counter);
| ^~~~~~~~~
./arch/x86/include/asm/atomic64_64.h:22:22: error: request for member 'counter' in something not a structure or union
22 | return READ_ONCE((v)->counter);
| ^~
./include/linux/compiler.h:259:30: note: in definition of macro '__READ_ONCE'
259 | __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
| ^
./arch/x86/include/asm/atomic64_64.h:22:9: note: in expansion of macro 'READ_ONCE'
22 | return READ_ONCE((v)->counter);
| ^~~~~~~~~
./arch/x86/include/asm/atomic64_64.h:22:22: error: request for member 'counter' in something not a structure or union
22 | return READ_ONCE((v)->counter);
| ^~
./include/linux/compiler.h:259:50: note: in definition of macro '__READ_ONCE'
259 | __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
| ^
./arch/x86/include/asm/atomic64_64.h:22:9: note: in expansion of macro 'READ_ONCE'
22 | return READ_ONCE((v)->counter);
| ^~~~~~~~~
In file included from ./arch/x86/include/asm/atomic.h:262,
from ./include/linux/atomic.h:7,
from ./include/linux/rcupdate.h:38,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/atomic64_64.h: At top level:
./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, long i)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:44:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
44 | static __always_inline void arch_atomic64_add(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:58:46: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
58 | static inline void arch_atomic64_sub(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:74:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
74 | static inline bool arch_atomic64_sub_and_test(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./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
./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
./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
./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
./arch/x86/include/asm/atomic64_64.h:145:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
145 | static inline bool arch_atomic64_add_negative(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:158:62: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
158 | static __always_inline long arch_atomic64_add_return(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:163:53: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
163 | static inline long arch_atomic64_sub_return(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:168:52: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
168 | static inline long arch_atomic64_fetch_add(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:173:52: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
173 | static inline long arch_atomic64_fetch_sub(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:178:42: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
178 | static inline long arch_atomic64_cmpxchg(atomic64_t *v, long old, long new)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:184:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
184 | static __always_inline bool arch_atomic64_try_cmpxchg(atomic64_t *v, s64 *old, long new)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:189:39: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
189 | static inline long arch_atomic64_xchg(atomic64_t *v, long new)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:194:46: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
194 | static inline void arch_atomic64_and(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:202:52: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
202 | static inline long arch_atomic64_fetch_and(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:211:45: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
211 | static inline void arch_atomic64_or(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:219:51: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
219 | static inline long arch_atomic64_fetch_or(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:228:46: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
228 | static inline void arch_atomic64_xor(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./arch/x86/include/asm/atomic64_64.h:236:52: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
236 | static inline long arch_atomic64_fetch_xor(long i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
In file included from ./arch/x86/include/asm/atomic.h:265,
from ./include/linux/atomic.h:7,
from ./include/linux/rcupdate.h:38,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/atomic-instrumented.h:25:48: error: unknown type name 'atomic64_t'
25 | static __always_inline s64 atomic64_read(const atomic64_t *v)
| ^~~~~~~~~~
./include/asm-generic/atomic-instrumented.h:37:42: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
37 | static __always_inline void atomic64_set(atomic64_t *v, s64 i)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:49:42: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
49 | static __always_inline s64 atomic64_xchg(atomic64_t *v, s64 i)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:61:45: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
61 | static __always_inline s64 atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:79:50: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
79 | static __always_inline bool atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:116:42: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
116 | static __always_inline void atomic64_inc(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:147:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
147 | static __always_inline void atomic64_add(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:159:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
159 | static __always_inline void atomic64_sub(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:171:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
171 | static __always_inline void atomic64_and(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:183:48: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
183 | static __always_inline void atomic64_or(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:195:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
195 | static __always_inline void atomic64_xor(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:266:51: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
266 | static __always_inline bool atomic64_dec_and_test(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:284:51: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
284 | static __always_inline bool atomic64_inc_and_test(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:297:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
297 | static __always_inline s64 atomic64_add_return(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:309:55: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
309 | static __always_inline s64 atomic64_sub_return(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:321:54: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
321 | static __always_inline s64 atomic64_fetch_add(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:333:54: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
333 | static __always_inline s64 atomic64_fetch_sub(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:345:54: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
345 | static __always_inline s64 atomic64_fetch_and(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:357:53: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
357 | static __always_inline s64 atomic64_fetch_or(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:369:54: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
369 | static __always_inline s64 atomic64_fetch_xor(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:386:58: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
386 | static __always_inline bool atomic64_sub_and_test(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/asm-generic/atomic-instrumented.h:404:58: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
404 | static __always_inline bool atomic64_add_negative(s64 i, atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
In file included from ./include/linux/rcupdate.h:38,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/linux/atomic.h:1161:51: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
1161 | static inline long long atomic64_fetch_add_unless(atomic64_t *v, long long a,
| ^~~~~~~~~~
| atomic_t
./include/linux/atomic.h:1184:40: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
1184 | static inline bool atomic64_add_unless(atomic64_t *v, long long a, long long u)
| ^~~~~~~~~~
| atomic_t
./include/linux/atomic.h:1263:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
1263 | static inline bool atomic64_inc_unless_negative(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/linux/atomic.h:1277:49: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
1277 | static inline bool atomic64_dec_unless_positive(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
./include/linux/atomic.h:1298:50: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
1298 | static inline long long atomic64_dec_if_positive(atomic64_t *v)
| ^~~~~~~~~~
| atomic_t
In file included from ./arch/x86/include/asm/pgtable_types.h:347,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopud.h:21: warning: "PUD_SHIFT" redefined
error, forbidden warning:pgtable-nopud.h:21
21 | #define PUD_SHIFT P4D_SHIFT
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:83: note: this is the location of the previous definition
83 | #define PUD_SHIFT 30
|
In file included from ./arch/x86/include/asm/pgtable_types.h:347,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopud.h:22: warning: "PTRS_PER_PUD" redefined
error, forbidden warning:pgtable-nopud.h:22
22 | #define PTRS_PER_PUD 1
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:84: note: this is the location of the previous definition
84 | #define PTRS_PER_PUD 512
|
In file included from ./arch/x86/include/asm/pgtable_types.h:347,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopud.h:23: warning: "PUD_SIZE" redefined
error, forbidden warning:pgtable-nopud.h:23
23 | #define PUD_SIZE (1UL << PUD_SHIFT)
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:100: note: this is the location of the previous definition
100 | #define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
|
In file included from ./arch/x86/include/asm/pgtable_types.h:347,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopud.h:24: warning: "PUD_MASK" redefined
error, forbidden warning:pgtable-nopud.h:24
24 | #define PUD_MASK (~(PUD_SIZE-1))
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:101: note: this is the location of the previous definition
101 | #define PUD_MASK (~(PUD_SIZE - 1))
|
In file included from ./arch/x86/include/asm/pgtable_types.h:373,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopmd.h:20: warning: "PMD_SHIFT" redefined
error, forbidden warning:pgtable-nopmd.h:20
20 | #define PMD_SHIFT PUD_SHIFT
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:90: note: this is the location of the previous definition
90 | #define PMD_SHIFT 21
|
In file included from ./arch/x86/include/asm/pgtable_types.h:373,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopmd.h:21: warning: "PTRS_PER_PMD" redefined
error, forbidden warning:pgtable-nopmd.h:21
21 | #define PTRS_PER_PMD 1
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:91: note: this is the location of the previous definition
91 | #define PTRS_PER_PMD 512
|
In file included from ./arch/x86/include/asm/pgtable_types.h:373,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopmd.h:22: warning: "PMD_SIZE" redefined
error, forbidden warning:pgtable-nopmd.h:22
22 | #define PMD_SIZE (1UL << PMD_SHIFT)
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:98: note: this is the location of the previous definition
98 | #define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
|
In file included from ./arch/x86/include/asm/pgtable_types.h:373,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/asm-generic/pgtable-nopmd.h:23: warning: "PMD_MASK" redefined
error, forbidden warning:pgtable-nopmd.h:23
23 | #define PMD_MASK (~(PMD_SIZE-1))
|
In file included from ./arch/x86/include/asm/pgtable_types.h:250,
from ./arch/x86/include/asm/processor.h:19,
from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/pgtable_64_types.h:99: note: this is the location of the previous definition
99 | #define PMD_MASK (~(PMD_SIZE - 1))
|
In file included from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/processor.h:182: warning: "cache_line_size" redefined
error, forbidden warning:processor.h:182
182 | #define cache_line_size() (boot_cpu_data.x86_cache_alignment)
|
In file included from ./include/linux/printk.h:9,
from ./include/linux/kernel.h:14,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./include/linux/cache.h:79: note: this is the location of the previous definition
79 | #define cache_line_size() L1_CACHE_BYTES
|
In file included from ./arch/x86/include/asm/cpufeature.h:5,
from ./arch/x86/include/asm/thread_info.h:53,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/processor.h: In function 'load_cr3':
./arch/x86/include/asm/processor.h:251:12: error: implicit declaration of function '__sme_pa' [-Werror=implicit-function-declaration]
251 | write_cr3(__sme_pa(pgdir));
| ^~~~~~~~
In file included from ./include/linux/cache.h:6,
from ./include/linux/printk.h:9,
from ./include/linux/kernel.h:14,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./arch/x86/include/asm/processor.h: At top level:
./arch/x86/include/asm/cache.h:8:25: error: 'CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function); did you mean 'CONFIG_ARM_L1_CACHE_SHIFT'?
8 | #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
./arch/x86/include/asm/cache.h:9:30: note: in expansion of macro 'L1_CACHE_SHIFT'
9 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
| ^~~~~~~~~~~~~~
./include/linux/cache.h:13:25: note: in expansion of macro 'L1_CACHE_BYTES'
13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES
| ^~~~~~~~~~~~~~
./include/linux/cache.h:35:58: note: in expansion of macro 'SMP_CACHE_BYTES'
35 | #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
| ^~~~~~~~~~~~~~~
./include/linux/percpu-defs.h:149:2: note: in expansion of macro '____cacheline_aligned'
149 | ____cacheline_aligned
| ^~~~~~~~~~~~~~~~~~~~~
./arch/x86/include/asm/processor.h:433:1: note: in expansion of macro 'DECLARE_PER_CPU_ALIGNED'
433 | DECLARE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/linux/thread_info.h:103:19: error: redefinition of 'arch_within_stack_frames'
103 | static inline int arch_within_stack_frames(const void * const stack,
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/thread_info.h:186:19: note: previous definition of 'arch_within_stack_frames' was here
186 | static inline int arch_within_stack_frames(const void * const stack,
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/kernel.h:10,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./include/linux/sched.h: In function 'need_resched':
./include/linux/thread_info.h:98:22: error: implicit declaration of function 'current_thread_info'; did you mean 'task_thread_info'? [-Werror=implicit-function-declaration]
98 | test_ti_thread_flag(current_thread_info(), flag)
| ^~~~~~~~~~~~~~~~~~~
./include/linux/compiler.h:77:42: note: in definition of macro 'unlikely'
77 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
./include/linux/thread_info.h:100:28: note: in expansion of macro 'test_thread_flag'
100 | #define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
| ^~~~~~~~~~~~~~~~
./include/linux/sched.h:1807:18: note: in expansion of macro 'tif_need_resched'
1807 | return unlikely(tif_need_resched());
| ^~~~~~~~~~~~~~~~
./include/linux/thread_info.h:98:22: warning: passing argument 1 of 'test_ti_thread_flag' makes pointer from integer without a cast [-Wint-conversion]
error, forbidden warning:thread_info.h:98
98 | test_ti_thread_flag(current_thread_info(), flag)
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int
./include/linux/compiler.h:77:42: note: in definition of macro 'unlikely'
77 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
./include/linux/thread_info.h:100:28: note: in expansion of macro 'test_thread_flag'
100 | #define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
| ^~~~~~~~~~~~~~~~
./include/linux/sched.h:1807:18: note: in expansion of macro 'tif_need_resched'
1807 | return unlikely(tif_need_resched());
| ^~~~~~~~~~~~~~~~
In file included from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/rcupdate.h:40,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from ./include/linux/blkdev.h:5,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/linux/thread_info.h:82:59: note: expected 'struct thread_info *' but argument is of type 'int'
82 | static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
| ~~~~~~~~~~~~~~~~~~~~^~
In file included from ./include/linux/kernel.h:10,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./include/linux/sched.h: In function 'task_cpu':
./include/linux/sched.h:1820:38: error: 'struct thread_info' has no member named 'cpu'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~
./include/linux/compiler.h:255:17: note: in definition of macro '__READ_ONCE'
255 | union { typeof(x) __val; char __c[1]; } __u; \
| ^
./include/linux/sched.h:1820:9: note: in expansion of macro 'READ_ONCE'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~~~~~~~~
./include/linux/sched.h:1820:38: error: 'struct thread_info' has no member named 'cpu'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~
./include/linux/compiler.h:257:22: note: in definition of macro '__READ_ONCE'
257 | __read_once_size(&(x), __u.__c, sizeof(x)); \
| ^
./include/linux/sched.h:1820:9: note: in expansion of macro 'READ_ONCE'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~~~~~~~~
./include/linux/sched.h:1820:38: error: 'struct thread_info' has no member named 'cpu'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~
./include/linux/compiler.h:257:42: note: in definition of macro '__READ_ONCE'
257 | __read_once_size(&(x), __u.__c, sizeof(x)); \
| ^
./include/linux/sched.h:1820:9: note: in expansion of macro 'READ_ONCE'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~~~~~~~~
./include/linux/sched.h:1820:38: error: 'struct thread_info' has no member named 'cpu'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~
./include/linux/compiler.h:259:30: note: in definition of macro '__READ_ONCE'
259 | __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
| ^
./include/linux/sched.h:1820:9: note: in expansion of macro 'READ_ONCE'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~~~~~~~~
./include/linux/sched.h:1820:38: error: 'struct thread_info' has no member named 'cpu'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~
./include/linux/compiler.h:259:50: note: in definition of macro '__READ_ONCE'
259 | __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
| ^
./include/linux/sched.h:1820:9: note: in expansion of macro 'READ_ONCE'
1820 | return READ_ONCE(task_thread_info(p)->cpu);
| ^~~~~~~~~
In file included from ./include/linux/cache.h:6,
from ./include/linux/printk.h:9,
from ./include/linux/kernel.h:14,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:2:
./include/linux/mmzone.h: At top level:
./arch/x86/include/asm/cache.h:13:31: error: 'CONFIG_X86_INTERNODE_CACHE_SHIFT' undeclared here (not in a function); did you mean 'INTERNODE_CACHE_SHIFT'?
13 | #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/cache.h:72:35: note: in expansion of macro 'INTERNODE_CACHE_SHIFT'
72 | __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT))))
| ^~~~~~~~~~~~~~~~~~~~~
./include/linux/mmzone.h:114:3: note: in expansion of macro '____cacheline_internodealigned_in_smp'
114 | } ____cacheline_internodealigned_in_smp;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:18,
from ./include/linux/fs.h:23,
from ./include/linux/genhd.h:69,
from ./include/linux/blkdev.h:11,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/mmu.h:28:2: error: unknown type name 'atomic64_t'
28 | atomic64_t tlb_gen;
| ^~~~~~~~~~
In file included from ./include/linux/genhd.h:69,
from ./include/linux/blkdev.h:11,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./include/linux/fs.h:667:2: error: unknown type name 'atomic64_t'
667 | atomic64_t i_version;
| ^~~~~~~~~~
In file included from ./arch/x86/include/asm/realmode.h:15,
from ./arch/x86/include/asm/acpi.h:33,
from ./arch/x86/include/asm/fixmap.h:29,
from ./arch/x86/include/asm/pgtable_64.h:17,
from ./arch/x86/include/asm/pgtable.h:694,
from ./include/linux/memremap.h:7,
from ./include/linux/mm.h:27,
from ./include/linux/pagemap.h:8,
from ./include/linux/blkdev.h:16,
from ./include/linux/ide.h:13,
from /home/alientek/sdk/chenwei/01_chrdevbase/chrdevbase.c:4:
./arch/x86/include/asm/io.h:44:10: fatal error: asm/early_ioremap.h: No such file or directory
44 | #include <asm/early_ioremap.h>
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
compilation terminated.
make[1]: 离开目录“/home/alientek/sdk/kernel”