summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-04-10 13:57:27 -0700
committerAaron Plattner <aplattner@nvidia.com>2008-04-10 13:57:27 -0700
commitedf9cd73cc9dcdd2a3e09a61ffbe0cc0b578f588 (patch)
treecb599ceefa9ea6d78ab3e6601499e07383cf7657
parent8d8f81b6a9748d9808e4a12babaf3a53b04bee16 (diff)
173.08173.08
-rw-r--r--DRIVER_VERSION2
-rw-r--r--kernel.c4
-rw-r--r--log.c2
-rw-r--r--nvidia-installer.c4
-rw-r--r--nvidia-installer.h2
-rw-r--r--option_table.h14
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
diff --git a/kernel.c b/kernel.c
index f0d8c5c..d4fccc8 100644
--- a/kernel.c
+++ b/kernel.c
@@ -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;
}
diff --git a/log.c b/log.c
index c268c46..edcb584 100644
--- a/log.c
+++ b/log.c
@@ -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 },