diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2008-02-13 10:20:39 -0800 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2008-02-13 10:20:39 -0800 |
commit | e64cd4140ca12e2150bf44b5ba696c6ef730ab98 (patch) | |
tree | a2c2d0c214c190b601a702e18473a735ceba6099 | |
parent | 864dfc4e857e23d50e9c8727e8ee9b83228bfc3f (diff) |
169.07169.07
-rw-r--r-- | DRIVER_VERSION | 2 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | command-list.c | 22 | ||||
-rw-r--r-- | files.c | 13 | ||||
-rw-r--r-- | install-from-cwd.c | 6 | ||||
-rw-r--r-- | nvidia-installer.h | 23 | ||||
-rwxr-xr-x | rtld_test_Linux-x86 | bin | 3136 -> 3056 bytes | |||
-rwxr-xr-x | rtld_test_Linux-x86_64 | bin | 4536 -> 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 @@ -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 } }; @@ -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 Binary files differindex 8b4087f..b60ea47 100755 --- a/rtld_test_Linux-x86 +++ b/rtld_test_Linux-x86 diff --git a/rtld_test_Linux-x86_64 b/rtld_test_Linux-x86_64 Binary files differindex 3995dd2..be5e874 100755 --- a/rtld_test_Linux-x86_64 +++ b/rtld_test_Linux-x86_64 |