NVIDIA – New Driver 346.35, Still Fails with 3.19-rc..
Tested the lates NVIDIA driver (346.35) today, and although it fixes the f_dentry error, the compile still fails with Kernel 3.19-rc4, due to the incompatible GPL problem:
FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__cachemode2pte_tbl' /usr/src/linux-3.19-rc4/scripts/Makefile.modpost:90: recipe for target '__modpost' failed
It has been pointed out that this can be fixed by simply changing the license type, but this is ‘illegal’, and not recommended..
Robert Gadsdon. January 17, 2015
It’s odd. Because looking at the commit log, that particular export was only just added…
So it seems odd that it wants it. It must use something that now uses that feature.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/arch/x86/mm/init.c?id=281d4078bec366d60990add9d91a952953bd0d72
I tried removing the additions to init.c in 3.19-rc5, and recompiled, and got:
arch/x86/built-in.o: In function `mp_register_ioapic':
(.text+0x401f1): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `update_cache_mode_entry':
(.text+0x467ea): undefined reference to `__pte2cachemode_tbl'
arch/x86/built-in.o: In function `update_cache_mode_entry':
(.text+0x467f7): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `__ioremap_caller':
ioremap.c:(.text+0x48b8a): undefined reference to `__cachemode2pte_tbl'
ioremap.c:(.text+0x48c94): undefined reference to `__cachemode2pte_tbl'
ioremap.c:(.text+0x48cb3): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `ioremap_prot':
(.text+0x48d6c): undefined reference to `__pte2cachemode_tbl'
arch/x86/built-in.o: In function `change_page_attr_set_clr':
pageattr.c:(.text+0x4b29d): undefined reference to `__pte2cachemode_tbl'
arch/x86/built-in.o: In function `_set_memory_array':
pageattr.c:(.text+0x4b663): undefined reference to `__cachemode2pte_tbl'
pageattr.c:(.text+0x4b6c3): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `_set_pages_array':
pageattr.c:(.text+0x4b7d3): undefined reference to `__cachemode2pte_tbl'
pageattr.c:(.text+0x4b80b): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `_set_memory_uc':
(.text+0x4b907): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o:(.text+0x4ba40): more undefined references to `__cachemode2pte_tbl' follow
arch/x86/built-in.o: In function `reserve_pfn_range':
pat.c:(.text+0x4cfc5): undefined reference to `__pte2cachemode_tbl'
pat.c:(.text+0x4cfe7): undefined reference to `__cachemode2pte_tbl'
pat.c:(.text+0x4cff6): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `track_pfn_remap':
(.text+0x4d193): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `track_pfn_insert':
(.text+0x4d1f6): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o: In function `map_vdso':
vma.c:(.text+0x72c39): undefined reference to `__cachemode2pte_tbl'
arch/x86/built-in.o:(.init.text+0x108d6): more undefined references to `__cachemode2pte_tbl' follow
Makefile:925: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1
So presumably the NVIDIA driver uses one of these..?
RG