summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-02-13 10:20:39 -0800
committerAaron Plattner <aplattner@nvidia.com>2008-02-13 10:20:39 -0800
commite64cd4140ca12e2150bf44b5ba696c6ef730ab98 (patch)
treea2c2d0c214c190b601a702e18473a735ceba6099
parent864dfc4e857e23d50e9c8727e8ee9b83228bfc3f (diff)
169.07169.07
-rw-r--r--DRIVER_VERSION2
-rw-r--r--Makefile2
-rw-r--r--command-list.c22
-rw-r--r--files.c13
-rw-r--r--install-from-cwd.c6
-rw-r--r--nvidia-installer.h23
-rwxr-xr-xrtld_test_Linux-x86bin3136 -> 3056 bytes
-rwxr-xr-xrtld_test_Linux-x86_64bin4536 -> 4688 bytes
8 files changed, 52 insertions, 16 deletions
diff --git a/DRIVER_VERSION b/DRIVER_VERSION
index 2d04672..764fb50 100644
--- a/DRIVER_VERSION
+++ b/DRIVER_VERSION
@@ -1 +1 @@
-169.04
+169.07
diff --git a/Makefile b/Makefile
index 1db1be2..10eff53 100644
--- a/Makefile
+++ b/Makefile
@@ -278,7 +278,7 @@ tls_test: tls_test.c
# nvidia-installer to simplify x86-64 builds.
rebuild_rtld_test: rtld_test.c
- gcc -Wall -O2 -fomit-frame-pointer -o $(RTLD_TEST) -lGL -lcuda -lpthread -lstdc++ $<
+ gcc -Wall -O2 -fomit-frame-pointer -o $(RTLD_TEST) -lGL $<
strip $(RTLD_TEST)
# dummy rule to override implicit rule that builds dls_test from
diff --git a/command-list.c b/command-list.c
index e02b018..d98b2e0 100644
--- a/command-list.c
+++ b/command-list.c
@@ -214,6 +214,16 @@ CommandList *build_command_list(Options *op, Package *p)
/* Add all the installable files to the list */
for (i = 0; i < p->num_entries; i++) {
+ if (op->selinux_enabled &&
+ (op->utils[EXECSTACK] != NULL) &&
+ ((p->entries[i].flags & FILE_TYPE_SHARED_LIB) ||
+ (p->entries[i].flags & FILE_TYPE_XMODULE_SHARED_LIB))) {
+ tmp = nvstrcat(op->utils[EXECSTACK], " -c ",
+ p->entries[i].file, NULL);
+ add_command(c, RUN_CMD, tmp);
+ nvfree(tmp);
+ }
+
if (p->entries[i].flags & installable_files) {
add_command(c, INSTALL_CMD,
p->entries[i].file,
@@ -231,20 +241,14 @@ CommandList *build_command_list(Options *op, Package *p)
add_command(c, DELETE_CMD,
p->entries[i].file);
}
-
- if (op->selinux_enabled &&
+
+ if (op->selinux_enabled &&
((p->entries[i].flags & FILE_TYPE_SHARED_LIB) ||
(p->entries[i].flags & FILE_TYPE_XMODULE_SHARED_LIB))) {
tmp = nvstrcat(op->utils[CHCON], " -t ", op->selinux_chcon_type,
" ", p->entries[i].dst, NULL);
add_command(c, RUN_CMD, tmp);
nvfree(tmp);
- if (op->utils[EXECSTACK] != NULL) {
- tmp = nvstrcat(op->utils[EXECSTACK], " -c ", p->entries[i].dst,
- NULL);
- add_command(c, RUN_CMD, tmp);
- nvfree(tmp);
- }
}
}
@@ -521,6 +525,7 @@ static ConflictingFileInfo __xfree86_libs[] = {
{ "libXvMCNVIDIA", 13 /* strlen("libXvMCNVIDIA") */ },
{ "libnvidia-cfg.", 14 /* strlen("libnvidia-cfg.") */ },
{ "nvidia_drv.", 11 /* strlen("nvidia_drv.") */ },
+ { "libcuda.", 8 /* strlen("libcuda.") */ },
{ NULL, 0 }
};
@@ -564,6 +569,7 @@ static ConflictingFileInfo __opengl_libs[] = {
{ "libnvidia-tls.", 14 /* strlen("libnvidia-tls.") */ },
{ "libGLwrapper.", 13 /* strlen("libGLwrapper.") */ },
{ "libnvidia-cfg.", 14 /* strlen("libnvidia-cfg.") */ },
+ { "libcuda.", 8 /* strlen("libcuda.") */ },
{ NULL, 0 }
};
diff --git a/files.c b/files.c
index 62ec6d4..4b78619 100644
--- a/files.c
+++ b/files.c
@@ -512,6 +512,18 @@ int set_destinations(Options *op, Package *p)
}
path = "";
break;
+
+ case FILE_TYPE_CUDA_LIB:
+ case FILE_TYPE_CUDA_SYMLINK:
+ if (p->entries[i].flags & FILE_CLASS_COMPAT32) {
+ prefix = op->compat32_prefix;
+ dir = op->compat32_libdir;
+ } else {
+ prefix = op->opengl_prefix;
+ dir = op->opengl_libdir;
+ }
+ path = "";
+ break;
case FILE_TYPE_XLIB_SHARED_LIB:
case FILE_TYPE_XLIB_STATIC_LIB:
@@ -566,6 +578,7 @@ int set_destinations(Options *op, Package *p)
*/
case FILE_TYPE_OPENGL_HEADER:
+ case FILE_TYPE_CUDA_HEADER:
prefix = op->opengl_prefix;
dir = op->opengl_incdir;
path = p->entries[i].path;
diff --git a/install-from-cwd.c b/install-from-cwd.c
index 2d28b89..b4dd070 100644
--- a/install-from-cwd.c
+++ b/install-from-cwd.c
@@ -654,8 +654,12 @@ static Package *parse_manifest (Options *op)
p->entries[n].flags |= FILE_TYPE_KERNEL_MODULE_CMD;
else if (strcmp(flag, "OPENGL_HEADER") == 0)
p->entries[n].flags |= FILE_TYPE_OPENGL_HEADER;
+ else if (strcmp(flag, "CUDA_HEADER") == 0)
+ p->entries[n].flags |= FILE_TYPE_CUDA_HEADER;
else if (strcmp(flag, "OPENGL_LIB") == 0)
p->entries[n].flags |= FILE_TYPE_OPENGL_LIB;
+ else if (strcmp(flag, "CUDA_LIB") == 0)
+ p->entries[n].flags |= FILE_TYPE_CUDA_LIB;
else if (strcmp(flag, "LIBGL_LA") == 0)
p->entries[n].flags |= FILE_TYPE_LIBGL_LA;
else if (strcmp(flag, "XLIB_STATIC_LIB") == 0)
@@ -672,6 +676,8 @@ static Package *parse_manifest (Options *op)
p->entries[n].flags |= FILE_TYPE_MANPAGE;
else if (strcmp(flag, "OPENGL_SYMLINK") == 0)
p->entries[n].flags |= FILE_TYPE_OPENGL_SYMLINK;
+ else if (strcmp(flag, "CUDA_SYMLINK") == 0)
+ p->entries[n].flags |= FILE_TYPE_CUDA_SYMLINK;
else if (strcmp(flag, "XLIB_SYMLINK") == 0)
p->entries[n].flags |= FILE_TYPE_XLIB_SYMLINK;
else if (strcmp(flag, "TLS_SYMLINK") == 0)
diff --git a/nvidia-installer.h b/nvidia-installer.h
index 023b739..30c9599 100644
--- a/nvidia-installer.h
+++ b/nvidia-installer.h
@@ -288,7 +288,7 @@ typedef struct {
/* file types */
-#define FILE_TYPE_MASK 0x00ffffff
+#define FILE_TYPE_MASK 0x01ffffff
#define FILE_TYPE_KERNEL_MODULE_SRC 0x00000001
#define FILE_TYPE_KERNEL_MODULE_CMD 0x00000002
@@ -313,15 +313,18 @@ typedef struct {
/* Create a symlink only if the file doesn't exist */
#define FILE_TYPE_XMODULE_NEWSYM 0x00100000
#define FILE_TYPE_MANPAGE 0x00200000
+#define FILE_TYPE_CUDA_HEADER 0x00400000
+#define FILE_TYPE_CUDA_LIB 0x00800000
+#define FILE_TYPE_CUDA_SYMLINK 0x01000000
/* file class: this is used to distinguish OpenGL libraries */
-#define FILE_CLASS_MASK 0xff000000
+#define FILE_CLASS_MASK 0xfe000000
-#define FILE_CLASS_NEW_TLS 0x01000000
-#define FILE_CLASS_CLASSIC_TLS 0x02000000
-#define FILE_CLASS_NATIVE 0x04000000
-#define FILE_CLASS_COMPAT32 0x08000000
+#define FILE_CLASS_NEW_TLS 0x02000000
+#define FILE_CLASS_CLASSIC_TLS 0x04000000
+#define FILE_CLASS_NATIVE 0x08000000
+#define FILE_CLASS_COMPAT32 0x10000000
#define FILE_TYPE_XLIB_LIB (FILE_TYPE_XLIB_STATIC_LIB | \
FILE_TYPE_XLIB_SHARED_LIB)
@@ -329,12 +332,14 @@ typedef struct {
#define FILE_TYPE_XMODULE_LIB (FILE_TYPE_XMODULE_SHARED_LIB)
#define FILE_TYPE_INSTALLABLE_FILE (FILE_TYPE_OPENGL_LIB | \
+ FILE_TYPE_CUDA_LIB | \
FILE_TYPE_XLIB_LIB | \
FILE_TYPE_TLS_LIB | \
FILE_TYPE_UTILITY_LIB | \
FILE_TYPE_DOCUMENTATION | \
FILE_TYPE_MANPAGE | \
FILE_TYPE_OPENGL_HEADER | \
+ FILE_TYPE_CUDA_HEADER | \
FILE_TYPE_KERNEL_MODULE | \
FILE_TYPE_INSTALLER_BINARY | \
FILE_TYPE_UTILITY_BINARY | \
@@ -347,13 +352,16 @@ typedef struct {
FILE_TYPE_XMODULE_NEWSYM | \
FILE_TYPE_MANPAGE | \
FILE_TYPE_OPENGL_HEADER | \
+ FILE_TYPE_CUDA_HEADER | \
FILE_TYPE_TLS_LIB | \
FILE_TYPE_TLS_SYMLINK | \
FILE_TYPE_DOT_DESKTOP | \
FILE_TYPE_DOCUMENTATION)
#define FILE_TYPE_HAVE_ARCH (FILE_TYPE_OPENGL_LIB | \
+ FILE_TYPE_CUDA_LIB | \
FILE_TYPE_OPENGL_SYMLINK | \
+ FILE_TYPE_CUDA_SYMLINK | \
FILE_TYPE_LIBGL_LA | \
FILE_TYPE_TLS_LIB | \
FILE_TYPE_TLS_SYMLINK)
@@ -362,6 +370,7 @@ typedef struct {
FILE_TYPE_TLS_SYMLINK)
#define FILE_TYPE_SYMLINK (FILE_TYPE_OPENGL_SYMLINK | \
+ FILE_TYPE_CUDA_SYMLINK | \
FILE_TYPE_XLIB_SYMLINK | \
FILE_TYPE_TLS_SYMLINK | \
FILE_TYPE_XMODULE_SYMLINK | \
@@ -376,6 +385,7 @@ typedef struct {
FILE_TYPE_TLS_LIB)
#define FILE_TYPE_SHARED_LIB (FILE_TYPE_OPENGL_LIB | \
+ FILE_TYPE_CUDA_LIB | \
FILE_TYPE_XLIB_SHARED_LIB | \
FILE_TYPE_TLS_LIB | \
FILE_TYPE_XMODULE_SHARED_LIB | \
@@ -405,6 +415,7 @@ typedef struct {
* command line.
*/
#define DEFAULT_OPENGL_PREFIX "/usr"
+#define DEFAULT_CUDA_PREFEIX "/usr"
#define DEFAULT_X_PREFIX "/usr/X11R6"
#define DEFAULT_UTILITY_PREFIX "/usr"
#define DEFAULT_DOCUMENTATION_PREFIX "/usr"
diff --git a/rtld_test_Linux-x86 b/rtld_test_Linux-x86
index 8b4087f..b60ea47 100755
--- a/rtld_test_Linux-x86
+++ b/rtld_test_Linux-x86
Binary files differ
diff --git a/rtld_test_Linux-x86_64 b/rtld_test_Linux-x86_64
index 3995dd2..be5e874 100755
--- a/rtld_test_Linux-x86_64
+++ b/rtld_test_Linux-x86_64
Binary files differ