{"id":2700,"date":"2020-02-25T01:15:27","date_gmt":"2020-02-25T09:15:27","guid":{"rendered":"http:\/\/rglinuxtech.com\/?p=2700"},"modified":"2020-02-25T01:15:27","modified_gmt":"2020-02-25T09:15:27","slug":"nvidia-extra-440-59-patch-for-5-6-rc3-with-a-gotcha","status":"publish","type":"post","link":"https:\/\/rglinuxtech.com\/?p=2700","title":{"rendered":"NVIDIA &#8211; Extra 440.59 Patch for 5.6-rc3 &#8211; With a Gotcha.."},"content":{"rendered":"<p>Thanks to Isaak I. Aleksandrov, there is now an <span style=\"text-decoration: underline;\">additional<\/span> patch for NVIDIA driver 440.59 to accommodate the <em>Y2038<\/em> changes in Kernel 5.6-rc3.\u00a0\u00a0 This should be applied <span style=\"text-decoration: underline;\">after<\/span> the original 5.6-rc1 patch (<a href=\"https:\/\/gitlab.com\/snippets\/1937313\" target=\"_blank\" rel=\"noopener noreferrer\"> https:\/\/gitlab.com\/snippets\/1937313 <\/a>), and can be found here:\u00a0 <a href=\"https:\/\/gitlab.com\/snippets\/1944237\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/gitlab.com\/snippets\/1944237<\/a><\/p>\n<p>I have tested this, and it compiles OK with GCC9 (current distros) but fails with GCC10 (pre-beta Fedora 32):<\/p>\n<p><code><strong><span style=\"font-family: Courier New, Courier, monospace;\">............<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c: In function \u2018nvswitch_os_get_platform_time\u2019:<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c:1583:21: error: storage size of \u2018ts\u2019 isn\u2019t known<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">1583 | struct timespec ts;<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^~<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c:1585:5: error: implicit declaration of function \u2018getnstimeofday\u2019; did you mean \u2018nv_gettimeofday\u2019? [-Werror=implicit-function-declaration]<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">1585 | getnstimeofday(&amp;ts);<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^~~~~~~~~~~~~~<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| nv_gettimeofday<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c:1586:21: error: implicit declaration of function \u2018timespec_to_ns\u2019; did you mean \u2018timespec64_to_ns\u2019? [-Werror=implicit-function-declaration]<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">1586 | return ((NvU64) timespec_to_ns(&amp;ts));<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^~~~~~~~~~~~~~<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| timespec64_to_ns<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c:1583:21: warning: unused variable \u2018ts\u2019 [-Wunused-variable]<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">1583 | struct timespec ts;<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^~<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.c:1587:1: warning: control reaches end of non-void function [-Wreturn-type]<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">1587 | }<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">cc1: some warnings being treated as errors<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[2]: *** [scripts\/Makefile.build:268: \/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel\/nvidia\/linux_nvswitch.o] Error 1<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: *** [Makefile:1681: \/home\/rgadsdon\/NVIDIA-Linux-x86_64-440.59-custom\/kernel] Error 2<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Leaving directory '\/usr\/src\/linux-5.6-rc3'<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make: *** [Makefile:81: modules] Error 2<\/span><\/strong><\/code><\/p>\n<p><em>Robert Gadsdon.\u00a0\u00a0 February 24th 2020.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thanks to Isaak I. Aleksandrov, there is now an additional patch for NVIDIA driver 440.59 to accommodate the Y2038 changes in Kernel 5.6-rc3.\u00a0\u00a0 This should be applied after the original 5.6-rc1 patch ( https:\/\/gitlab.com\/snippets\/1937313 ), and can be found here:\u00a0 https:\/\/gitlab.com\/snippets\/1944237 I have tested this, and it compiles OK with GCC9 (current distros) but fails with GCC10 <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/rglinuxtech.com\/?p=2700\"><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,1617,14,15,18,19,1533],"tags":[2187,2185,2044,2186,2184],"class_list":["post-2700","post","type-post","status-publish","format-standard","hentry","category-compilation","category-fedora","category-gcc","category-kernel","category-linux-2","category-nvidia","category-opinion","category-patches","tag-fails-with-gcc10","tag-nvidia-440-59","tag-ok-with-gcc9","tag-patch-for-kernel-5-6-rc3","tag-y2038-changes"],"_links":{"self":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2700","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=2700"}],"version-history":[{"count":2,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2700\/revisions"}],"predecessor-version":[{"id":2702,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2700\/revisions\/2702"}],"wp:attachment":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}