google / kmsan

KernelMemorySanitizer, a detector of uses of uninitialized memory in the Linux kernel
Other
407 stars 63 forks source link

Cannot finish compilation due to undefined references to kmsan functions #6

Closed mdenton8 closed 6 years ago

mdenton8 commented 7 years ago

When compiling (using clang revision 304977 that the patches apply to), the kernel successfully compiles the object files, and passes the "LD vmlinux.o" stage. But on the "MODPOST vmlinux.o" stage, it runs into many (tens of thousands?) of errors that look like these:

arch/x86/lib/usercopy_64.o: In function memcpy_flushcache': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:137: undefined reference tokmsan_get_context_state' arch/x86/lib/usercopy_64.o: In function clean_cache_range': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:90: undefined reference to__kmsan_load_shadow_origin_2' arch/x86/lib/usercopy_64.o: In function memcpy_flushcache': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:142: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o: In function clean_cache_range': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:95: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o: In function clwb': /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o:/home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:95: more undefined references to `kmsan_warning_32' follow arch/x86/lib/usercopy_64.o: In function clean_cache_range': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:90: undefined reference tokmsan_load_shadow_origin_2' arch/x86/lib/usercopy_64.o: In function clwb': /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/special_insns.h:229: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o: In function clean_cache_range': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:95: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o: In function memcpy_flushcache': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:194: undefined reference tokmsan_warning_32' arch/x86/lib/usercopy_64.o:/home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:95: more undefined references to `kmsan_warning_32' follow arch/x86/lib/usercopy_64.o: In function memcpy_page_flushcache': /home/mdenton/linux-stable/arch/x86/lib/usercopy_64.c:203: undefined reference tokmsan_get_context_state' arch/x86/lib/usercopy_64.o: In function pagefault_disabled_inc': /home/mdenton/linux-stable/./include/linux/uaccess.h:201: undefined reference tokmsan_load_shadow_origin_4' /home/mdenton/linux-stable/./include/linux/uaccess.h:201: undefined reference to __kmsan_store_shadow_origin_4' arch/x86/lib/usercopy_64.o: In functionpagefault_disabled_dec': /home/mdenton/linux-stable/./include/linux/uaccess.h:206: undefined reference to __kmsan_load_shadow_origin_4' /home/mdenton/linux-stable/./include/linux/uaccess.h:206: undefined reference to__kmsan_store_shadow_origin_4' Makefile:1001: recipe for target 'vmlinux' failed

And the compilation fails there. Do you know why this is happening?

mdenton8 commented 7 years ago

For more context, I am using the example config with "make oldconfig" run (and I just pressed enter for all the defaults). The config is attached. .config.txt

ramosian-glider commented 7 years ago

Guess I just forgot to push the new config for the 4.13 kernel yesterday. Running oldconfig on the new .config.example shouldn't require pressing Enter, could you pull and check that again?

mdenton8 commented 7 years ago

Thanks! It doesn't require me to press Enter. I am trying to compile now!

mdenton8 commented 7 years ago

Hmmm. It seems I still get a whole lot of these:

/home/mdenton/linux-stable/fs/inode.c:419: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:417: undefined reference tokmsan_warning_32' fs/inode.o: In function inode_lru_list_add': /home/mdenton/linux-stable/fs/inode.c:407: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:407: undefined reference to `kmsan_store_shadow_origin_8' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_warning_32' fs/inode.o: In function inode_lru_list_add': /home/mdenton/linux-stable/fs/inode.c:404: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:407: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:407: undefined reference tokmsan_warning_32' fs/inode.o: In function iput': /home/mdenton/linux-stable/fs/inode.c:407: undefined reference tokmsan_warning_32' fs/inode.o: In function iget_locked': /home/mdenton/linux-stable/fs/inode.c:1101: undefined reference tokmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1101: undefined reference to __kmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1101: undefined reference tokmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1101: undefined reference to `kmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1101: undefined reference to __kmsan_poison_alloca' fs/inode.o: In functionhash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference tokmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference to `kmsan_load_shadow_origin_4' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function `wait_on_freeing_inode': /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functionfind_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference to `kmsan_warning_32' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_warning_32' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' fs/inode.o: In function variable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference tokmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference to `kmsan_load_shadow_origin_1' fs/inode.o: In function hlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functioniget_locked': /home/mdenton/linux-stable/fs/inode.c:1108: undefined reference to __kmsan_warning_32' fs/inode.o: In functionalloc_inode': /home/mdenton/linux-stable/fs/inode.c:207: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:207: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function variable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:336: undefined reference tokmsan_warning_32' fs/inode.o: In function wait_on_bit': /home/mdenton/linux-stable/./include/linux/wait_bit.h:78: undefined reference tokmsan_warning_32' fs/inode.o: In function hlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference to__kmsan_warning_32' fs/inode.o: In function iget_locked': /home/mdenton/linux-stable/fs/inode.c:1110: undefined reference tokmsan_warning_32' fs/inode.o: In function alloc_inode': /home/mdenton/linux-stable/fs/inode.c:207: undefined reference tokmsan_warning_32' fs/inode.o:/home/mdenton/linux-stable/fs/inode.c:207: more undefined references to `kmsan_warning_32' follow fs/inode.o: In function alloc_inode': /home/mdenton/linux-stable/fs/inode.c:210: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function alloc_inode': /home/mdenton/linux-stable/fs/inode.c:212: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:215: undefined reference to `kmsan_warning_32' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference to __kmsan_load_shadow_origin_8' fs/inode.o: In functionwait_on_freeing_inode': /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_warning_32' fs/inode.o: In functionfind_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to__kmsan_store_shadow_origin_1' fs/inode.o: In function list_empty': /home/mdenton/linux-stable/./include/linux/list.h:202: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function destroy_inode': /home/mdenton/linux-stable/fs/inode.c:264: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:264: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:264: undefined reference to __kmsan_load_shadow_origin_8' fs/inode.o: In functionatomic_inc': /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_warning_32' fs/inode.o: In functionatomic_inc': /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference tokmsan_warning_32' fs/inode.o:/home/mdenton/linux-stable/./include/linux/compiler.h:285: more undefined references to `kmsan_warning_32' follow fs/inode.o: In function variable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference tokmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference to `kmsan_load_shadow_origin_1' /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:336: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwait_on_bit': /home/mdenton/linux-stable/./include/linux/wait_bit.h:78: undefined reference to __kmsan_warning_32' fs/inode.o: In functionhlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference tokmsan_warning_32' fs/inode.o: In function iget_locked': /home/mdenton/linux-stable/fs/inode.c:1148: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1125: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1127: undefined reference to __kmsan_store_shadow_origin_8' fs/inode.o: In functionhlist_add_head': /home/mdenton/linux-stable/./include/linux/list.h:670: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:671: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:673: undefined reference to `kmsan_store_shadow_origin_8' fs/inode.o: In function iget_locked': /home/mdenton/linux-stable/fs/inode.c:1125: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1127: undefined reference to __kmsan_warning_32' fs/inode.o: In functionhlist_add_head': /home/mdenton/linux-stable/./include/linux/list.h:670: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./include/linux/list.h:671: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/./include/linux/list.h:672: undefined reference to `kmsan_warning_32' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:288: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function hlist_add_head': /home/mdenton/linux-stable/./include/linux/list.h:675: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' fs/inode.o: In function spin_lock': /home/mdenton/linux-stable/./include/linux/spinlock.h:297: undefined reference to__kmsan_load_shadow_origin_8' fs/inode.o: In function inode_sb_list_add': /home/mdenton/linux-stable/fs/inode.c:438: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function __list_add': /home/mdenton/linux-stable/./include/linux/list.h:55: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:62: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:63: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:64: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:288: undefined reference to __kmsan_store_shadow_origin_8' fs/inode.o: In functioninode_sb_list_add': /home/mdenton/linux-stable/fs/inode.c:439: undefined reference to __kmsan_load_shadow_origin_8' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:288: undefined reference tokmsan_warning_32' fs/inode.o: In function hlist_add_head': /home/mdenton/linux-stable/./include/linux/list.h:675: undefined reference tokmsan_warning_32' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_warning_32' fs/inode.o: In function inode_sb_list_add': /home/mdenton/linux-stable/fs/inode.c:437: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:438: undefined reference to `kmsan_warning_32' fs/inode.o:/home/mdenton/linux-stable/./include/linux/list.h:78: more undefined references to __kmsan_warning_32' follow fs/inode.o: In functionalloc_inode': /home/mdenton/linux-stable/fs/inode.c:216: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:219: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:216: undefined reference to __kmsan_warning_32' fs/inode.o: In functioniunique': /home/mdenton/linux-stable/fs/inode.c:1196: undefined reference to __kmsan_get_context_state' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' fs/inode.o: In function iunique': /home/mdenton/linux-stable/fs/inode.c:1208: undefined reference tokmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1208: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1209: undefined reference to __kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1210: undefined reference tokmsan_store_shadow_origin_4' fs/inode.o: In function hash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference to __kmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference tokmsan_load_shadow_origin_4' fs/inode.o: In function test_inode_iunique': /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference to `kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1170: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1171: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' fs/inode.o: In function igrab': /home/mdenton/linux-stable/fs/inode.c:1219: undefined reference tokmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1221: undefined reference to __kmsan_load_shadow_origin_8' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functionigrab': /home/mdenton/linux-stable/fs/inode.c:1221: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1221: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_warning_32' fs/inode.o: In functionatomic_inc': /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference tokmsan_warning_32' fs/inode.o:/home/mdenton/linux-stable/./include/linux/compiler.h:285: more undefined references to `kmsan_warning_32' follow fs/inode.o: In function ilookup5_nowait': /home/mdenton/linux-stable/fs/inode.c:1255: undefined reference tokmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1255: undefined reference to __kmsan_poison_alloca' fs/inode.o: In functionhash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference tokmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference to `kmsan_load_shadow_origin_4' fs/inode.o: In function find_inode': /home/mdenton/linux-stable/fs/inode.c:791: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:792: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:792: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:792: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:791: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:791: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:791: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:794: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:797: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function `wait_on_freeing_inode': /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' fs/inode.o: In function find_inode': /home/mdenton/linux-stable/fs/inode.c:791: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:797: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:797: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_warning_32' fs/inode.o: In function find_inode': /home/mdenton/linux-stable/fs/inode.c:791: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:791: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functionfind_inode': /home/mdenton/linux-stable/fs/inode.c:791: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:791: undefined reference tokmsan_warning_32' fs/inode.o: In function atomic_inc': /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference to `kmsan_warning_32' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_warning_32' fs/inode.o: In function ilookup5': /home/mdenton/linux-stable/fs/inode.c:1286: undefined reference tokmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1286: undefined reference to `kmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1290: undefined reference to __kmsan_warning_32' fs/inode.o: In functionvariable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference tokmsan_load_shadow_origin_1' fs/inode.o: In function hlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference tokmsan_load_shadow_origin_8' fs/inode.o: In function variable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:336: undefined reference tokmsan_warning_32' fs/inode.o: In function wait_on_bit': /home/mdenton/linux-stable/./include/linux/wait_bit.h:78: undefined reference tokmsan_warning_32' fs/inode.o: In function hlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference tokmsan_warning_32' fs/inode.o: In function ilookup5': /home/mdenton/linux-stable/fs/inode.c:1292: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1290: undefined reference to __kmsan_warning_32' fs/inode.o: In functionilookup': /home/mdenton/linux-stable/fs/inode.c:1310: undefined reference to __kmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1310: undefined reference tokmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1310: undefined reference to `kmsan_poison_alloca' fs/inode.o: In function hash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference to `kmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference to __kmsan_load_shadow_origin_4' fs/inode.o: In functionfind_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:819: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:821: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference to __kmsan_load_shadow_origin_8' fs/inode.o: In functionwait_on_freeing_inode': /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to `kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference to __kmsan_store_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1893: undefined reference tokmsan_store_shadow_origin_8' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_store_shadow_origin_1' fs/inode.o: In function find_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:824: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_warning_32' fs/inode.o: In functionfind_inode_fast': /home/mdenton/linux-stable/fs/inode.c:818: undefined reference to __kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:818: undefined reference tokmsan_warning_32' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functionvariable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference to __kmsan_store_shadow_origin_1' /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:334: undefined reference tokmsan_load_shadow_origin_1' fs/inode.o: In function `write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to __kmsan_store_shadow_origin_1' fs/inode.o: In functionilookup': /home/mdenton/linux-stable/fs/inode.c:1318: undefined reference to __kmsan_warning_32' fs/inode.o: In functionvariable_test_bit': /home/mdenton/linux-stable/./arch/x86/include/asm/bitops.h:336: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwait_on_bit': /home/mdenton/linux-stable/./include/linux/wait_bit.h:78: undefined reference to `kmsan_warning_32' fs/inode.o: In function hlist_unhashed': /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/./include/linux/list.h:635: undefined reference to `kmsan_warning_32' fs/inode.o: In function ilookup': /home/mdenton/linux-stable/fs/inode.c:1320: undefined reference tokmsan_warning_32' fs/inode.o: In function atomic_inc': /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/./arch/x86/include/asm/atomic.h:91: undefined reference to `kmsan_warning_32' fs/inode.o: In function __write_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference tokmsan_warning_32' fs/inode.o: In function find_inode_nowait': /home/mdenton/linux-stable/fs/inode.c:1357: undefined reference tokmsan_get_context_state' fs/inode.o: In function hash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference to __kmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference tokmsan_load_shadow_origin_4' fs/inode.o: In function find_inode_nowait': /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1364: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1364: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1364: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference to `kmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1367: undefined reference to __kmsan_warning_32' fs/inode.o: In functionwrite_once_size': /home/mdenton/linux-stable/./include/linux/compiler.h:285: undefined reference to `kmsan_store_shadow_origin_1' fs/inode.o: In function find_inode_nowait': /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1363: undefined reference to `kmsan_warning_32' fs/inode.o: In function insert_inode_locked': /home/mdenton/linux-stable/fs/inode.c:1380: undefined reference to__kmsan_get_context_state' /home/mdenton/linux-stable/fs/inode.c:1380: undefined reference to __kmsan_poison_alloca' /home/mdenton/linux-stable/fs/inode.c:1381: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1382: undefined reference to `kmsan_load_shadow_origin_8' fs/inode.o: In function hash': /home/mdenton/linux-stable/fs/inode.c:452: undefined reference tokmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:458: undefined reference to `kmsan_load_shadow_origin_4' /home/mdenton/linux-stable/fs/inode.c:459: undefined reference to __kmsan_load_shadow_origin_4' fs/inode.o: In functioninsert_inode_locked': /home/mdenton/linux-stable/fs/inode.c:1388: undefined reference to __kmsan_load_shadow_origin_8' /home/mdenton/linux-stable/fs/inode.c:1388: undefined reference tokmsan_warning_32' /home/mdenton/linux-stable/fs/inode.c:1388: undefined reference to `kmsan_warning_32'

This is in the "MODPOST" step of the make CC=pwd/clang_wrapper.py -j20 -k 2>&1 | tee build.log step.

ramosian-glider commented 7 years ago

Ah, I see, I also forgot to update the build instructions. You don't need the wrapper now, just build with CC=/path/to/clang

mdenton8 commented 7 years ago

I tried just using clang but it still ends up having the same problem :(

mdenton8 commented 7 years ago

I notice your config has most of the options set to "y" instead of "m", and the compilation fails on the MODPOST step. I tried removing all of the "=m" but that didn't seem to help. The LD step seems to pass, but MODPOST fails and doesn't produce any vmlinux.

ramosian-glider commented 7 years ago

Is CONFIG_KMSAN set? Because it looks like mm/kmsan/kmsan_instr.c isn't being linked.

On Sep 24, 2017 3:36 AM, "mdenton8" notifications@github.com wrote:

I tried just using clang but it still ends up having the same problem :(

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/google/kmsan/issues/6#issuecomment-331680615, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3s8zDlz5y-5TlDONg1uKqYC5WbynOoks5slbIFgaJpZM4PfAqQ .

ramosian-glider commented 7 years ago

I'll take a look on Monday.

On Sep 24, 2017 9:00 AM, "Alexander Potapenko" ramosian.glider@gmail.com wrote:

Is CONFIG_KMSAN set? Because it looks like mm/kmsan/kmsan_instr.c isn't being linked.

On Sep 24, 2017 3:36 AM, "mdenton8" notifications@github.com wrote:

I tried just using clang but it still ends up having the same problem :(

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/google/kmsan/issues/6#issuecomment-331680615, or mute the thread https://github.com/notifications/unsubscribe-auth/AA3s8zDlz5y-5TlDONg1uKqYC5WbynOoks5slbIFgaJpZM4PfAqQ .

mdenton8 commented 7 years ago

Yeah it looks like I could just change a bunch of the _msan functions to _kmsan functions and it's almost there... These are the two problem functions left:

/home/mdenton/linux-stable/lib/vsprintf.c:2967: undefined reference to __kmsan_restore_va_arg_shadow' /home/mdenton/linux-stable/lib/vsprintf.c:2967: undefined reference to__kmsan_load_overflow_arg_shadow'

The functions kmsan_restore_va_arg_shadow and kmsan_load_overflow_arg_shadow don't seem to have implementations in the tree. I'm guessing clang inserts calls to these functions into the image? (and these are obviously for va args) Do you have available implementations for these functions?

ramosian-glider commented 7 years ago

Yeah, that's because of a stale Clang patch. Sorry about this mess, I should've upstreamed the Clang patches long ago. 66c68732adb347dd875bee48d9e52cb256c090a7 should fix the problem.

mdenton8 commented 7 years ago

Ah okay, I'll try it out. Remember to update the README with the new version number of Clang!