diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2008-04-10 13:57:27 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2008-04-10 13:57:27 -0700 |
commit | edf9cd73cc9dcdd2a3e09a61ffbe0cc0b578f588 (patch) | |
tree | cb599ceefa9ea6d78ab3e6601499e07383cf7657 | |
parent | 8d8f81b6a9748d9808e4a12babaf3a53b04bee16 (diff) |
173.08173.08
-rw-r--r-- | DRIVER_VERSION | 2 | ||||
-rw-r--r-- | kernel.c | 4 | ||||
-rw-r--r-- | log.c | 2 | ||||
-rw-r--r-- | nvidia-installer.c | 4 | ||||
-rw-r--r-- | nvidia-installer.h | 2 | ||||
-rw-r--r-- | option_table.h | 14 |
6 files changed, 25 insertions, 3 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION index ef09794..4d72c1b 100644 --- a/DRIVER_VERSION +++ b/DRIVER_VERSION @@ -1 +1 @@ -171.06 +173.08 @@ -1451,9 +1451,11 @@ int check_cc_version(Options *op, Package *p) * If we're building/installing for a different kernel, then we * can't do the gcc version check (we don't have a /proc/version * string from which to get the kernel's gcc version). + * If the user passes the option no-cc-version-check, then we also + * shouldn't perform the cc version check. */ - if (op->kernel_name) { + if (op->ignore_cc_version_check) { setenv("IGNORE_CC_MISMATCH", "1", 1); return TRUE; } @@ -149,6 +149,8 @@ void log_init(Options *op) SELINUXSTR(op->selinux_option)); log_printf(op, TRUE, NULL, " no X server check : %s", BOOLSTR(op->no_x_check)); + log_printf(op, TRUE, NULL, " no cc version check : %s", + BOOLSTR(op->ignore_cc_version_check)); log_printf(op, TRUE, NULL, " force tls : %s", TLSSTR(op->which_tls)); #if defined(NV_X86_64) diff --git a/nvidia-installer.c b/nvidia-installer.c index ee6e65b..c2c9652 100644 --- a/nvidia-installer.c +++ b/nvidia-installer.c @@ -290,6 +290,7 @@ Options *parse_commandline(int argc, char *argv[]) case 'k': op->kernel_name = optarg; op->no_precompiled_interface = TRUE; + op->ignore_cc_version_check = TRUE; break; case XFREE86_PREFIX_OPTION: @@ -426,6 +427,9 @@ Options *parse_commandline(int argc, char *argv[]) case NO_X_CHECK_OPTION: op->no_x_check = TRUE; break; + case NO_CC_VERSION_CHECK_OPTION: + op->ignore_cc_version_check = TRUE; + break; default: fmterr(""); diff --git a/nvidia-installer.h b/nvidia-installer.h index 30c9599..e664dbf 100644 --- a/nvidia-installer.h +++ b/nvidia-installer.h @@ -188,6 +188,8 @@ typedef struct __options { void *ui_priv; /* for use by the ui's */ + int ignore_cc_version_check; + } Options; diff --git a/option_table.h b/option_table.h index 2398fee..8a0d2bb 100644 --- a/option_table.h +++ b/option_table.h @@ -51,7 +51,8 @@ enum { DOCUMENTATION_PREFIX_OPTION, X_LIBRARY_PATH_OPTION, NO_KERNEL_MODULE_OPTION, - NO_X_CHECK_OPTION + NO_X_CHECK_OPTION, + NO_CC_VERSION_CHECK_OPTION }; static const NVOption __options[] = { @@ -417,6 +418,17 @@ static const NVOption __options[] = { "restores the SIGWINCH signal handler after the child process " "has terminated. This option disables this behavior." }, + { "no-cc-version-check", NO_CC_VERSION_CHECK_OPTION, 0, + "The NVIDIA kernel module should be compiled with the same compiler that " + "was used to compile the currently running kernel. The layout of some " + "Linux kernel data structures may be dependent on the version of gcc " + "used to compile it. The Linux 2.6 kernel modules are tagged with " + "information about the compiler and the Linux kernel's module loader " + "performs a strict version match check. nvidia-installer checks for " + "mismatches prior to building the NVIDIA kernel module and aborts the " + "installation in case of failures. Use this option to override this " + "check." }, + /* Orphaned options: These options were in the long_options table in * nvidia-installer.c but not in the help. */ { "debug", 'd', 0, NULL }, |