[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to force compilerversion



On 2021-12-03 at 07:52, Hans wrote:

> Hi folks,
> 
> for kali-linux I need to build a kernel-module (it is the nvidia
> kernel module).

Note that this is not Debian, so is not strictly on-topic for this
mailing list. However, at least at a glance it doesn't look like there's
anything distro-specific about the question.

> Make module does not work, as it says, kernel is build with gcc-10
> and installed is gcc-11.
> 
> Setting IGNORE_CC_MISMATCH is set to 1 (which is default).
> 
> How can I set the environment, to use the older gcc version once,
> without deinstalling gcc-11 or killing my whole system?

The details will vary depending on the build system of the module,
including both the build tools used and the exact details of how this
particular codebase is configured to build. I haven't touched, or looked
at, the NVIDIA kernel module in long enough that I don't know the
specifics for that exact case.

However, the short version that should work for most cases is:

* Make sure that you actually have gcc-10 installed.

* At build time, specify the C compiler as being GCC 10, rather than the
system default C compiler. (And possibly do the same for other
compilation tools - the C preprocessor, the C++ compiler, the linker,
the assembler, ...)

In the type of build system that used to be most common - and might
still be, for all I know - this latter could be done by specifying
environment variables at the start of the build command line; for
example, 'CC=gcc-10 .\configure' or 'CC=gcc-10 make'. (Other tools can
be specified with variable names such as CPP, CXX, et cetera.)

In some cases, however, you might have to use a more advanced method to
specify what compiler to use. In some cases - and the NVIDIA kernel
module might be one of them - the build system might be complicated
enough that you would need to pass special, domain-specific arguments to
the configure script or its equivalent; in order to find out what syntax
you'd need to use there, we'd need to examine the build system itself
and find out what its interfaces look like.

-- 
   The Wanderer

The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.         -- George Bernard Shaw

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: