{"id":3301,"date":"2025-03-15T16:52:26","date_gmt":"2025-03-15T23:52:26","guid":{"rendered":"https:\/\/rglinuxtech.com\/?p=3301"},"modified":"2025-03-15T16:52:26","modified_gmt":"2025-03-15T23:52:26","slug":"nvidia-gcc15-on-fedora-42-wrecks-compilation-and-a-workaround","status":"publish","type":"post","link":"https:\/\/rglinuxtech.com\/?p=3301","title":{"rendered":"NVIDIA &#8211; GCC15 on Fedora 42 Wrecks Compilation &#8211; and a Workaround.."},"content":{"rendered":"<p>Recently updated the test system to <strong>Fedora 42<\/strong>, and everything seemed OK (including the latest VMware Workstation) &#8211; except the NVIDIA driver install..<\/p>\n<p>The latest driver 570.124.04 compiles and installs OK with GCC14 and Fedora 41, on 6.13.x and also 6.14-rc kernels, but the NVIDIA source install scripts\/tests etc. seem to be completely useless when compiling under GCC 15 with Fedora 42, with a compiled kernel.org kernel, but <span style=\"text-decoration: underline;\">do<\/span> compile\/install successfully when using the Distro-supplied Fedora 42 version of the kernel (<strong>6.14.0-0.rc6.49.fc42.x86_64\u00a0<\/strong> rpm)&#8230;.<\/p>\n<p>I had thought that this might be due to an additional kernel compile selection\/option being necessary, similar to the Kernel 6.12 issues, so I tried compiling the kernel using the Fedora version of the kernel config (from <span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/kernels\/6.14.0-0.rc6.49.fc42.x86_64\/config<\/strong><\/span> ) with &#8216;almost everything selected&#8217;, but the problem still occurred, so I can only assume that the Fedora-supplied kernel has some proprietary patch applied (as usual) which fixes the issue?<\/p>\n<p><code>...................<br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>CONFTEST: drm_alpha_blending_available<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>CONFTEST: is_export_symbol_present_drm_gem_prime_fd_to_handle<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>CONFTEST: is_export_symbol_present_drm_gem_prime_handle_to_fd<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>CONFTEST: ib_peer_memory_symbols<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>CC [M] nvidia\/nv.o<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from .\/.\/common\/inc\/conftest.h:28,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from .\/.\/common\/inc\/nv_stdarg.h:29,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from .\/.\/common\/inc\/os-interface.h:40,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from nvidia\/nv.c:33:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/conftest\/functions.h:75:2: error: #error dma_buf_export() conftest failed!<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>75 | #error dma_buf_export() conftest failed!<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/conftest\/functions.h:91:2: error: #error radix_tree_replace_slot() conftest failed!<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>91 | #error radix_tree_replace_slot() conftest failed!<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from .\/.\/common\/inc\/nv-linux.h:34,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from nvidia\/nv.c:34:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:29:13: error: conflicting types for \u2018vm_fault_t\u2019; have \u2018int\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>29 | typedef int vm_fault_t;<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from \/usr\/src\/linux-6.13.7\/include\/linux\/mmzone.h:22,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/gfp.h:7,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/umh.h:4,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/kmod.h:9,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/module.h:17,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from nvidia\/nv.c:24:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm_types.h:1306:32: note: previous declaration of \u2018vm_fault_t\u2019 with type \u2018vm_fault_t\u2019 {aka \u2018unsigned int\u2019}<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>1306 | typedef __bitwise unsigned int vm_fault_t;<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/processor.h:17,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/timex.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/timex.h:67,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/time32.h:13,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/time.h:60,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/stat.h:19,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/module.h:13:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018NV_GET_USER_PAGES\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/current.h:52:17: error: passing argument 1 of \u2018get_user_pages\u2019 makes integer from pointer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>52 | #define current get_current()<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| |<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| struct task_struct *<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:112:31: note: in expansion of macro \u2018current\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>112 | return get_user_pages(current, current-&gt;mm, start, nr_pages, write,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from .\/.\/common\/inc\/nv-pgprot.h:30,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from .\/.\/common\/inc\/nv-linux.h:33:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:35: note: expected \u2018long unsigned int\u2019 but argument is of type \u2018struct task_struct *\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:112:47: error: passing argument 2 of \u2018get_user_pages\u2019 makes integer from pointer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>112 | return get_user_pages(current, current-&gt;mm, start, nr_pages, write,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:56: note: expected \u2018long unsigned int\u2019 but argument is of type \u2018struct mm_struct *\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:112:60: error: passing argument 4 of \u2018get_user_pages\u2019 makes pointer from integer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>112 | return get_user_pages(current, current-&gt;mm, start, nr_pages, write,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| |<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| long unsigned int<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2528:59: note: expected \u2018struct page **\u2019 but argument is of type \u2018long unsigned int\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2528 | unsigned int gup_flags, struct page **pages);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:112:16: error: too many arguments to function \u2018get_user_pages\u2019; expected 4, have 8<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>112 | return get_user_pages(current, current-&gt;mm, start, nr_pages, write,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~~ ~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:6: note: declared here<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from \/usr\/src\/linux-6.13.7\/include\/uapi\/linux\/posix_types.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/uapi\/linux\/types.h:14,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/types.h:6,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/kasan-checks.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/asm-generic\/rwonce.h:26,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/generated\/asm\/rwonce.h:1,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/compiler.h:316,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/build_bug.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/container_of.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/list.h:5,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>from \/usr\/src\/linux-6.13.7\/include\/linux\/module.h:12:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018NV_GET_USER_PAGES_REMOTE\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/stddef.h:8:14: error: passing argument 1 of \u2018get_user_pages\u2019 makes integer from pointer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>8 | #define NULL ((void *)0)<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| |<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| void *<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:218:35: note: in expansion of macro \u2018NULL\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>218 | return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, NULL);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:35: note: expected \u2018long unsigned int\u2019 but argument is of type \u2018void *\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:218:41: error: passing argument 2 of \u2018get_user_pages\u2019 makes integer from pointer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>218 | return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, NULL);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| |<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| struct mm_struct *<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:56: note: expected \u2018long unsigned int\u2019 but argument is of type \u2018struct mm_struct *\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:218:52: error: passing argument 4 of \u2018get_user_pages\u2019 makes pointer from integer without a cast [-Wint-conversion]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>218 | return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, NULL);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| |<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| long unsigned int<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2528:59: note: expected \u2018struct page **\u2019 but argument is of type \u2018long unsigned int\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2528 | unsigned int gup_flags, struct page **pages);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ~~~~~~~~~~~~~~^~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:218:20: error: too many arguments to function \u2018get_user_pages\u2019; expected 4, have 8<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>218 | return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, NULL);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~~ ~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>\/usr\/src\/linux-6.13.7\/include\/linux\/mm.h:2527:6: note: declared here<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>2527 | long get_user_pages(unsigned long start, unsigned long nr_pages,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_page_fault_va\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:242:33: error: \u2018struct vm_fault\u2019 has no member named \u2018virtual_address\u2019; did you mean \u2018real_address\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>242 | return (unsigned long)(vmf-&gt;virtual_address);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| real_address<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mmap_read_lock\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:251:20: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>251 | down_read(&amp;mm-&gt;mmap_sem);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mmap_read_unlock\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:260:18: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>260 | up_read(&amp;mm-&gt;mmap_sem);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mmap_write_lock\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:269:21: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>269 | down_write(&amp;mm-&gt;mmap_sem);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mmap_write_unlock\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:278:19: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>278 | up_write(&amp;mm-&gt;mmap_sem);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mm_rwsem_is_locked\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:287:33: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>287 | return rwsem_is_locked(&amp;mm-&gt;mmap_sem);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_mmap_get_lock\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:296:17: error: \u2018struct mm_struct\u2019 has no member named \u2018mmap_sem\u2019; did you mean \u2018mmap_base\u2019?<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>296 | return &amp;mm-&gt;mmap_sem;<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| mmap_base<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_vm_flags_set\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:305:19: error: assignment of read-only member \u2018vm_flags\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>305 | vma-&gt;vm_flags |= flags;<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h: In function \u2018nv_vm_flags_clear\u2019:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-mm.h:314:19: error: assignment of read-only member \u2018vm_flags\u2019<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>314 | vma-&gt;vm_flags &amp;= ~flags;<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>| ^~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from .\/.\/common\/inc\/nv-linux.h:37:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-time.h: At top level:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>.\/.\/common\/inc\/nv-time.h:40:8: error: redefinition of \u2018struct timespec64\u2019<\/strong><\/span><\/code><br \/>\n&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br \/>\n&lt;&lt; followed by many more errors.. &gt;&gt;<\/p>\n<p>So, the only solutions seemed to be..\u00a0 1.\u00a0 Stay with Fedora 41 for the time being, or 2.\u00a0 Use only the Distro-supplied kernel on Fedora 42..<\/p>\n<p>Fortunately, I did find another option, which is best if you had already updated to Fedora 42&#8230;\u00a0\u00a0\u00a0 There is a GCC 14 available for Fedora 42, at <a href=\"https:\/\/packages.fedoraproject.org\/pkgs\/gcc14\/gcc14\/\" target=\"_blank\" rel=\"noopener\">https:\/\/packages.fedoraproject.org\/pkgs\/gcc14\/gcc14\/<\/a>\u00a0 This results in binaries with a &#8216;-14&#8217; suffix (<strong>\/usr\/bin\/gcc-14<\/strong>, <strong>\/usr\/bin\/cpp-14<\/strong>, etc..)<\/p>\n<p>Obviously this means you would be compiling the driver with a different GCC version from the kernel, but this is possible, as follows:<\/p>\n<p>in <span style=\"font-family: Courier New, Courier, monospace;\"><strong>~\/NVIDIA-Linux-x86_64-570.124.04\/kernel<\/strong><\/span>:<br \/>\n<code><span style=\"font-family: Courier New, Courier, monospace;\"><strong># export IGNORE_CC_MISMATCH=1<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n# CC=\"gcc-14\" make<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nmake[1]: Entering directory '\/usr\/src\/linux-6.13.7'<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nmake[2]: Entering directory '\/home\/rgadsdon\/NVIDIA-Linux-x86_64-570.124.04\/kernel'<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nwarning: the compiler differs from the one used to build the kernel<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nThe kernel was built by: gcc (GCC) 15.0.1 20250228 (Red Hat 15.0.1-0)<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nYou are using: gcc-14 (GCC) 14.2.1 20250210 (Red Hat 14.2.1-8)<\/strong><\/span><\/code><br \/>\n&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br \/>\nThen after compile completes successfully (but still with the usual &#8216;warnings&#8217;, as expected..)<br \/>\n&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br \/>\n<code><span style=\"font-family: Courier New, Courier, monospace;\"><strong>In file included from \/usr\/src\/linux-6.13.7\/include\/linux\/compat.h:17,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/ia32.h:7,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/elf.h:10,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/include\/linux\/elf.h:6,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/include\/linux\/module.h:19,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom nvidia-drm.mod.c:1:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n\/usr\/src\/linux-6.13.7\/include\/linux\/fs.h:1079:9: warning: \u2018counted_by\u2019 attribute directive ignored [-Wattributes]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n1079 | unsigned char f_handle[] __counted_by(handle_bytes);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nLD [M] nvidia-drm.ko<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nCC [M] nvidia-peermem.mod.o<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nIn file included from \/usr\/src\/linux-6.13.7\/include\/linux\/compat.h:17,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/ia32.h:7,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/arch\/x86\/include\/asm\/elf.h:10,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/include\/linux\/elf.h:6,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom \/usr\/src\/linux-6.13.7\/include\/linux\/module.h:19,<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nfrom nvidia-peermem.mod.c:1:<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n\/usr\/src\/linux-6.13.7\/include\/linux\/fs.h:1079:9: warning: \u2018counted_by\u2019 attribute directive ignored [-Wattributes]<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n1079 | unsigned char f_handle[] __counted_by(handle_bytes);<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\n| ^~~~~~~~<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nLD [M] nvidia-peermem.ko<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nmake[2]: Leaving directory '\/home\/rgadsdon\/NVIDIA-Linux-x86_64-570.124.04\/kernel'<\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong><br \/>\nmake[1]: Leaving directory '\/usr\/src\/linux-6.13.7'<\/strong><\/span> <\/code><br \/>\n&lt;as root&gt;<br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\"># make modules_install<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\"># modprobe nvidia-drm\u00a0<\/span><\/strong>\u00a0\u00a0\u00a0 (which pulls in the other modules..)<br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>nvidia_uvm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01900544 \u00a02 <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>nvidia_drm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0122880 \u00a031 <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>nvidia_modeset \u00a0\u00a0\u00a0\u00a0\u00a0\u00a01515520 \u00a099 nvidia_drm <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>nvidia \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a089751552 \u00a01156 nvidia_uvm,nvidia_modeset <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>drm_ttm_helper \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a012288 \u00a02 nvidia_drm <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>drm_client_lib \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a012288 \u00a01 nvidia_drm <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>drm_kms_helper \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0172032 \u00a03 drm_ttm_helper,nvidia_drm,drm_client_lib <\/strong><\/span><br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong>drm \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0577536 \u00a038 drm_kms_helper,nvidia,drm_ttm_helper,nvidia_drm,drm_client_lib,ttm<\/strong><\/span><br \/>\nthen get the <em>userland<\/em> portion installed, ignoring the kernel..<br \/>\n<span style=\"font-family: Courier New, Courier, monospace;\"><strong># .\/NVIDIA-Linux-x86_64-570.124.04.run -s &#8211;no-kernel-module<\/strong><\/span><\/p>\n<p>I have tested this with KDE\/Plasma, and VMware 17.6.3 with Win10 guest, and &#8211; so far &#8211; everything seems to be working OK&#8230;<\/p>\n<p>Of course, this is <strong>not<\/strong> intended for a business-critical setup!<\/p>\n<p><strong>Robert Gadsdon.\u00a0\u00a0\u00a0 March 14th 2025..<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently updated the test system to Fedora 42, and everything seemed OK (including the latest VMware Workstation) &#8211; except the NVIDIA driver install.. The latest driver 570.124.04 compiles and installs OK with GCC14 and Fedora 41, on 6.13.x and also 6.14-rc kernels, but the NVIDIA source install scripts\/tests etc. seem to be completely useless when compiling under <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/rglinuxtech.com\/?p=3301\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,10,11,14,15,18,19],"tags":[2719,2717,2718,2722,2720,277,2721,418],"class_list":["post-3301","post","type-post","status-publish","format-standard","hentry","category-compilation","category-fedora","category-hacks","category-kernel","category-linux-2","category-nvidia","category-opinion","tag-compiled-kernel","tag-fedora-42","tag-gcc-15","tag-gcc-for-fedora-42-available","tag-install-fails","tag-nvidia-2","tag-options","tag-workaround"],"_links":{"self":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/3301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3301"}],"version-history":[{"count":3,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/3301\/revisions"}],"predecessor-version":[{"id":3304,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/3301\/revisions\/3304"}],"wp:attachment":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}