Why does nv-jetson-nano-sd-card-image-r32.3.1.zip come with gcc version 7.4.0 when the kernel was compiled with gcc version 7.3.1?

A fresh install from nv-jetson-nano-sd-card-image-r32.3.1.zip has gcc version 7.4.0, but the kernel is compiled with 7.3.1. Why? This makes absolutely no sense. The kernel should match the complier or it’s not possible to compile kernel modules and expect them to work. Who would do this? What were they thinking?

This is dumb.

There can be compiler dependencies, but 7.4.0 and 7.3.1 are just patch level. Are you sure this fails? I’ve compiled and used some fairly “off” versions to build modules against kernels built quite differently. If you have an issue with a kernel module build, then probably the compile error and configuration information would be needed to know for certain.

Nvidia recommends that specific version of Linaro for the kernel. You can use another version to build the kernel and modules, like the one provided by Canonical. It’s just not supported/tested, and you will probably run into bugs. I don’t honestly know why the specific version. You would have to ask a L4t kernel developer. There are probably good reasons.

Well, that’s why I’m here posting this question on Nvidia’s website.

If they need to use a kernel compiled by gcc 7.3.1, then they should have installed gcc 7.3.1, and if gcc 7.4.0 is better than gcc 7.3.1, then they should have complied the kernel with 7.4.0

This mismatch makes absolutely no sense.