Ошибка компиляции модуля ядра: неопределенные ссылки на __asan_register_globals и __asan_unregister_globalsLinux

Anonymous
Ошибка компиляции модуля ядра: неопределенные ссылки на __asan_register_globals и __asan_unregister_globals

Сообщение Anonymous »

Я пытаюсь построить модуль ядра «Привет, мир» на Ubuntu 22.04 с ядром Linux 6.1.25 . Однако, когда я запускаю, я сталкиваюсь с после ошибок , связанных с адресатом -анитизатором (ASAN):

Код: Выделить всё

make -C /lib/modules/6.1.25-lkp-kernel/build/ M=$(PWD) modules
make[1]: Entering directory '/home/c2kp/kernels/linux-6.1.25'
CC [M]  /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.o
MODPOST /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/Module.symvers
ERROR: modpost: "__asan_unregister_globals" [/home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.ko] undefined!
ERROR: modpost: "__asan_register_globals" [/home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/helloworld_lkm.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:126: /home/c2kp/Linux-Kernel-Programming_2E/ch4/helloworld_lkm/Module.symvers] Error 1
make[1]: *** [Makefile:1964: modpost] Error 2
make[1]: Leaving directory '/home/c2kp/kernels/linux-6.1.25'
make: *** [Makefile:9: all] Error 2
my Makefile:

Код: Выделить всё

PWD   := $(shell pwd)
KDIR  := /lib/modules/$(shell uname -r)/build/
obj-m += helloworld_lkm.o
ccflags-y += -fsanitize=kernel-address

all:
make -C $(KDIR) M=$(PWD) modules
install:
make -C $(KDIR) M=$(PWD) modules_install
clean:
make -C $(KDIR) M=$(PWD) clean
Почему мой модуль ядра не сбои из -за этих неопределенных символов?
Как лучше Убедитесь, что мой модуль строится правильно, когда в ядре включено KASAN? Или я должен отключить Касан в ядре?

Подробнее здесь: https://stackoverflow.com/questions/794 ... er-globals

Вернуться в «Linux»