I just updated to v440.26 from 435.21 (which installs fine), to find out that the modules fail to compile on my system. Strangely, the common/inc/nv-linux.h include file attempts to #include <asm/system.h>, which has long been deprecated (I’m using Linux v5.3.6 with matching kernel headers in /usr/include/asm).
So, I changed “#if defined(NV_ASM_SYSTEM_H_PRESENT)” for “#if 0” in common/inc/nv-linux.h, and was then faced with another issue in nvidia-uvm/uvm_linux.h which tries to #include <asm/powernv.h>, here again while that header does not exist any more…
I changed “#if defined(NV_PNV_NPU2_INIT_CONTEXT_PRESENT)” for “#if 0” in nvidia-uvm/uvm_linux.h and could, at last, compile the modules (which seem to be running just fine)…
It looks like you guys at NVIDIA broke the kernel headers detection in 440.26… :-/
No, they are not “correct”, since they fail to detect the absence of the corresponding include files… Obviously, something got changed in v440.26 build scripts, that broke the modules building. It has been many, many years I have been building NVIDIA modules on many different Linux systems/computers, and I never encountered such an issue so far…
I’m just telling that you’re fiddling at the symptom, not the reason. The include by itself is correct, it’s just the question why NV_ASM_SYSTEM_H_PRESENT gets defined on your system when it shouldn’t.
If your distribution or you yourself sets the LC_ALL environment in /etc/profile or something similar setting LANG cannot overwrite LC_MESSAGES and the bug resists. This is not recommended by the GNU gettext folks.
But you are right. The setting of LANGUAGE instead of LANG should fix this behaviour. If the autotools folks do it, we can do this too.