summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2012-10-15 13:13:26 -0700
committerAaron Plattner <aplattner@nvidia.com>2012-10-15 13:13:26 -0700
commit0208a2b152610e54d03aae9e9f982cae2144eb04 (patch)
tree49a4f3cce559d36be064dc9f3bda566582b45d70
parent6cf3bfb9f246d8263aba0ef97c007fb7c7a2ce3f (diff)
310.14310.14
-rw-r--r--Makefile48
-rw-r--r--backup.c10
-rw-r--r--command-list.c2
-rw-r--r--common-utils/common-utils.h7
-rw-r--r--dist-files.mk2
-rw-r--r--files.c35
-rw-r--r--files.h1
-rw-r--r--install-from-cwd.c4
-rw-r--r--kernel.c17
-rw-r--r--misc.c10
-rw-r--r--nvLegacy.h137
-rw-r--r--nvidia-installer.h15
-rwxr-xr-xrtld_test_Linux-armv7l-gnueabibin0 -> 3892 bytes
-rwxr-xr-xrtld_test_Linux-armv7l-gnueabihfbin0 -> 5540 bytes
-rw-r--r--utils.mk9
-rw-r--r--version.mk2
16 files changed, 260 insertions, 39 deletions
diff --git a/Makefile b/Makefile
index 91bd04f..d69eec9 100644
--- a/Makefile
+++ b/Makefile
@@ -53,22 +53,41 @@ NVIDIA_INSTALLER_PROGRAM_NAME = "nvidia-installer"
NVIDIA_INSTALLER_VERSION := $(NVIDIA_VERSION)
+# We only need to run the TLS test on Linux-x86 and Linux-x86_64
+ifeq ($(findstring Linux-x86,$(TARGET_OS)-$(TARGET_ARCH)),)
+ NEED_TLS_TEST =
+else
+ NEED_TLS_TEST = 1
+endif
+
NCURSES_UI_C = ncurses-ui.c
NCURSES_UI_SO = $(OUTPUTDIR)/nvidia-installer-ncurses-ui.so
NCURSES_UI_SO_C = $(OUTPUTDIR)/g_$(notdir $(NCURSES_UI_SO:.so=.c))
-TLS_TEST_C = $(OUTPUTDIR)/g_tls_test.c
-TLS_TEST_DSO_C = $(OUTPUTDIR)/g_tls_test_dso.c
-TLS_TEST = tls_test_$(TARGET_OS)-$(TARGET_ARCH)
-TLS_TEST_DSO_SO = tls_test_dso_$(TARGET_OS)-$(TARGET_ARCH).so
+ifneq ($(NEED_TLS_TEST),)
+ TLS_TEST_C = $(OUTPUTDIR)/g_tls_test.c
+ TLS_TEST_DSO_C = $(OUTPUTDIR)/g_tls_test_dso.c
+ TLS_TEST = tls_test_$(TARGET_OS)-$(TARGET_ARCH)
+ TLS_TEST_DSO_SO = tls_test_dso_$(TARGET_OS)-$(TARGET_ARCH).so
-TLS_TEST_32_C = $(OUTPUTDIR)/g_tls_test_32.c
-TLS_TEST_DSO_32_C = $(OUTPUTDIR)/g_tls_test_dso_32.c
-TLS_TEST_32 = tls_test_$(TARGET_OS)-x86
-TLS_TEST_DSO_SO_32 = tls_test_dso_$(TARGET_OS)-x86.so
+ TLS_TEST_32_C = $(OUTPUTDIR)/g_tls_test_32.c
+ TLS_TEST_DSO_32_C = $(OUTPUTDIR)/g_tls_test_dso_32.c
+ TLS_TEST_32 = tls_test_$(TARGET_OS)-x86
+ TLS_TEST_DSO_SO_32 = tls_test_dso_$(TARGET_OS)-x86.so
+else
+ TLS_TEST_C =
+ TLS_TEST_DSO_C =
+ TLS_TEST =
+ TLS_TEST_DSO_SO =
+
+ TLS_TEST_32_C =
+ TLS_TEST_DSO_32_C =
+ TLS_TEST_32 =
+ TLS_TEST_DSO_SO_32 =
+endif
RTLD_TEST_C = $(OUTPUTDIR)/g_rtld_test.c
-RTLD_TEST = rtld_test_$(TARGET_OS)-$(TARGET_ARCH)
+RTLD_TEST = rtld_test_$(TARGET_OS)-$(TARGET_ARCH)$(if $(TARGET_ARCH_ABI),-$(TARGET_ARCH_ABI))
RTLD_TEST_32_C = $(OUTPUTDIR)/g_rtld_test_32.c
RTLD_TEST_32 = rtld_test_$(TARGET_OS)-x86
@@ -123,6 +142,7 @@ common_cflags = -I.
common_cflags += -imacros $(CONFIG_H)
common_cflags += -I $(OUTPUTDIR)
common_cflags += -I $(COMMON_UTILS_DIR)
+common_cflags += $(if $(NEED_TLS_TEST),-DNV_TLS_TEST)
CFLAGS += $(common_cflags)
@@ -205,19 +225,21 @@ $(NCURSES_UI_SO): $(call BUILD_OBJECT_LIST,ncurses-ui.c)
$(NCURSES_UI_SO_C): $(GEN_UI_ARRAY) $(NCURSES_UI_SO)
$(call quiet_cmd,GEN_UI_ARRAY) $(NCURSES_UI_SO) ncurses_ui_array > $@
-$(TLS_TEST_C): $(GEN_UI_ARRAY) $(TLS_TEST)
+ifneq ($(NEED_TLS_TEST),)
+ $(TLS_TEST_C): $(GEN_UI_ARRAY) $(TLS_TEST)
$(call quiet_cmd,GEN_UI_ARRAY) $(TLS_TEST) tls_test_array > $@
-$(TLS_TEST_DSO_C): $(GEN_UI_ARRAY) $(TLS_TEST_DSO_SO)
+ $(TLS_TEST_DSO_C): $(GEN_UI_ARRAY) $(TLS_TEST_DSO_SO)
$(call quiet_cmd,GEN_UI_ARRAY) \
$(TLS_TEST_DSO_SO) tls_test_dso_array > $@
-$(TLS_TEST_32_C): $(GEN_UI_ARRAY) $(TLS_TEST_32)
+ $(TLS_TEST_32_C): $(GEN_UI_ARRAY) $(TLS_TEST_32)
$(call quiet_cmd,GEN_UI_ARRAY) $(TLS_TEST_32) tls_test_array_32 > $@
-$(TLS_TEST_DSO_32_C): $(GEN_UI_ARRAY) $(TLS_TEST_DSO_SO_32)
+ $(TLS_TEST_DSO_32_C): $(GEN_UI_ARRAY) $(TLS_TEST_DSO_SO_32)
$(call quiet_cmd,GEN_UI_ARRAY) \
$(TLS_TEST_DSO_SO_32) tls_test_dso_array_32 > $@
+endif
$(RTLD_TEST_C): $(GEN_UI_ARRAY) $(RTLD_TEST)
$(call quiet_cmd,GEN_UI_ARRAY) $(RTLD_TEST) rtld_test_array > $@
diff --git a/backup.c b/backup.c
index d3125b1..47c4c4b 100644
--- a/backup.c
+++ b/backup.c
@@ -502,6 +502,16 @@ int log_mkdir(Options *op, const char *dirs)
{
FILE *log;
+ /*
+ * create the backup directory if it doesn't exist; BACKUP_MKDIR_LOG
+ * is within BACKUP_DIRECTORY, so the below fopen(3) call depends on
+ * the existence of BACKUP_DIRECTORY
+ */
+ if (!directory_exists(op, BACKUP_DIRECTORY) &&
+ !mkdir_with_log(op, BACKUP_DIRECTORY, BACKUP_DIRECTORY_PERMS, FALSE)) {
+ return FALSE;
+ }
+
/* open the log file */
log = fopen(BACKUP_MKDIR_LOG, "a");
diff --git a/command-list.c b/command-list.c
index f47bd3f..4530ed9 100644
--- a/command-list.c
+++ b/command-list.c
@@ -584,7 +584,6 @@ static ConflictingFileInfo __xfree86_opengl_libs[] = {
};
static ConflictingFileInfo __xfree86_non_opengl_libs[] = {
- { "libXvMCNVIDIA", 13, /* strlen("libXvMCNVIDIA") */ NULL },
{ "nvidia_drv.", 11, /* strlen("nvidia_drv.") */ NULL },
{ "libvdpau.", 9, /* strlen("libvdpau.") */ NULL },
{ "libvdpau_trace.", 15, /* strlen("libvdpau_trace.") */ NULL },
@@ -594,6 +593,7 @@ static ConflictingFileInfo __xfree86_non_opengl_libs[] = {
{ "libnvidia-compiler.", 19, /* strlen("libnvidia-compiler.") */ NULL },
{ "libnvcuvid.", 11, /* strlen("libnvcuvid.") */ NULL },
{ "libnvidia-ml.", 13, /* strlen("libnvidia-ml.") */ NULL },
+ { "libnvidia-encode.", 17, /* strlen("libnvidia-encode.") */ NULL },
{ NULL, 0, NULL }
};
diff --git a/common-utils/common-utils.h b/common-utils/common-utils.h
index c5cd411..626fd1b 100644
--- a/common-utils/common-utils.h
+++ b/common-utils/common-utils.h
@@ -33,6 +33,13 @@
#define TAB " "
#define BIGTAB " "
+#define VERBOSITY_NONE 0 /* nothing */
+#define VERBOSITY_ERROR 1 /* errors only */
+#define VERBOSITY_WARNING 2 /* errors and warnings */
+#define VERBOSITY_ALL 3 /* errors, warnings and other info */
+
+#define VERBOSITY_DEFAULT VERBOSITY_ERROR
+
typedef struct {
char **t; /* the text rows */
int n; /* number of rows */
diff --git a/dist-files.mk b/dist-files.mk
index 289bf07..d50c576 100644
--- a/dist-files.mk
+++ b/dist-files.mk
@@ -68,6 +68,8 @@ DIST_FILES += dist-files.mk
DIST_FILES += rtld_test_Linux-x86
DIST_FILES += rtld_test_Linux-x86_64
+DIST_FILES += rtld_test_Linux-armv7l-gnueabi
+DIST_FILES += rtld_test_Linux-armv7l-gnueabihf
DIST_FILES += tls_test_Linux-ia64
DIST_FILES += tls_test_Linux-x86
diff --git a/files.c b/files.c
index 74d3cea..abfa9c0 100644
--- a/files.c
+++ b/files.c
@@ -608,6 +608,18 @@ int set_destinations(Options *op, Package *p)
path = "";
break;
+ case FILE_TYPE_ENCODEAPI_LIB:
+ case FILE_TYPE_ENCODEAPI_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_OPENGL_HEADER:
prefix = op->opengl_prefix;
dir = op->opengl_incdir;
@@ -1146,12 +1158,13 @@ int confirm_path(Options *op, const char *path)
-/*
- * mkdir_recursive() - create the path specified, also creating parent
- * directories as needed; this is equivalent to `mkdir -p`
+/*
+ * mkdir_with_log() - create the path specified, also creating parent
+ * directories as needed; this is equivalent to `mkdir -p`. Log created
+ * directories if the "log" parameter is set.
*/
-int mkdir_recursive(Options *op, const char *path, const mode_t mode)
+int mkdir_with_log(Options *op, const char *path, const mode_t mode, int log)
{
char *c, *tmp, ch, *list, *tmplist;
@@ -1185,7 +1198,7 @@ int mkdir_recursive(Options *op, const char *path, const mode_t mode)
} while (*c);
/* Log any created directories */
- if (list) {
+ if (log && list) {
log_mkdir(op, list);
}
@@ -1193,6 +1206,18 @@ int mkdir_recursive(Options *op, const char *path, const mode_t mode)
free(tmp);
return TRUE;
+} /* mkdir_with_log */
+
+
+
+/*
+ * mkdir_recursive() - Wrap mkdir_with_log() to create the path specified
+ * with any needed parent directories.
+ */
+
+int mkdir_recursive(Options *op, const char *path, const mode_t mode)
+{
+ return mkdir_with_log(op, path, mode, TRUE);
} /* mkdir_recursive() */
diff --git a/files.h b/files.h
index 55c61cc..18e5e1e 100644
--- a/files.h
+++ b/files.h
@@ -40,6 +40,7 @@ int mode_string_to_mode(Options *op, char *s, mode_t *mode);
char *mode_to_permission_string(mode_t mode);
int directory_exists(Options *op, const char *dir);
int confirm_path(Options *op, const char *path);
+int mkdir_with_log(Options *op, const char *path, const mode_t mode, int log);
int mkdir_recursive(Options *op, const char *path, const mode_t mode);
char *get_symlink_target(Options *op, const char *filename);
int install_file(Options *op, const char *srcfile,
diff --git a/install-from-cwd.c b/install-from-cwd.c
index c700e70..784743b 100644
--- a/install-from-cwd.c
+++ b/install-from-cwd.c
@@ -769,6 +769,10 @@ static Package *parse_manifest (Options *op)
p->entries[n].flags |= FILE_TYPE_NVCUVID_LIB;
else if (strcmp(flag, "NVCUVID_LIB_SYMLINK") == 0)
p->entries[n].flags |= FILE_TYPE_NVCUVID_SYMLINK;
+ else if (strcmp(flag, "ENCODEAPI_LIB") == 0)
+ p->entries[n].flags |= FILE_TYPE_ENCODEAPI_LIB;
+ else if (strcmp(flag, "ENCODEAPI_LIB_SYMLINK") == 0)
+ p->entries[n].flags |= FILE_TYPE_ENCODEAPI_SYMLINK;
else {
nvfree(flag);
goto invalid_manifest_file;
diff --git a/kernel.c b/kernel.c
index 609bd4f..a324184 100644
--- a/kernel.c
+++ b/kernel.c
@@ -706,20 +706,9 @@ int test_kernel_module(Options *op, Package *p)
}
/*
- * On Linux 2.6 we depend on the AGPGART frontend module unless
- * the kernel was configured without support for the Linux AGP
- * GART driver. Preload it here to satisfy the dependency, which
- * isn't resolved by `insmod`.
- */
- if (strncmp(get_kernel_name(op), "2.4", 3) != 0) {
- cmd = nvstrcat(op->utils[MODPROBE], " -q agpgart", NULL);
- run_command(op, cmd, NULL, FALSE, 0, TRUE);
- nvfree(cmd);
- }
-
- /*
- * Likewise, we need to preload the i2c-core.ko kernel module to
- * satisfy another dependency not resolved by `insmod`.
+ * On Linux 2.6+ we depend on the i2c-core.ko kernel module unless
+ * the kernel was configured without support for it. Preload it here to
+ * satisfy the dependency, which isn't resolved by `insmod`.
*/
if (strncmp(get_kernel_name(op), "2.4", 3) != 0) {
cmd = nvstrcat(op->utils[MODPROBE], " -q i2c-core", NULL);
diff --git a/misc.c b/misc.c
index 97df15f..31de17e 100644
--- a/misc.c
+++ b/misc.c
@@ -1309,6 +1309,7 @@ uint64_t get_installable_file_mask(Options *op)
+#if defined(NV_TLS_TEST)
/*
* tls_test() - Starting with glibc 2.3, there is a new thread local
* storage mechanism. To accomodate this, NVIDIA's OpenGL libraries
@@ -1480,6 +1481,15 @@ static int tls_test_internal(Options *op, int which_tls,
} /* test_tls_internal() */
+#else /* defined(NV_TLS_TEST) */
+
+int tls_test(Options *op, int compat_32_libs)
+{
+ /* Assume the TLS test passed. */
+ return TRUE;
+}
+
+#endif /* defined(NV_TLS_TEST) */
/*
diff --git a/nvLegacy.h b/nvLegacy.h
index 0fee975..9f4586d 100644
--- a/nvLegacy.h
+++ b/nvLegacy.h
@@ -26,6 +26,7 @@ typedef struct _LEGACY_STRINGS {
* This table describes how we should refer to legacy branches.
*/
static const LEGACY_STRINGS LegacyStrings[] = {
+ { 4, "304.xx" },
{ 3, "173.14.xx" },
{ 2, "96.43.xx" },
{ 1, "71.86.xx" }
@@ -39,7 +40,43 @@ static const LEGACY_INFO LegacyList[] = {
{ 0x0029, 1, "RIVA TNT2 Ultra" },
{ 0x002C, 1, "Vanta/Vanta LT" },
{ 0x002D, 1, "RIVA TNT2 Model 64/Model 64 Pro" },
+ { 0x0040, 4, "GeForce 6800 Ultra" },
+ { 0x0041, 4, "GeForce 6800" },
+ { 0x0042, 4, "GeForce 6800 LE" },
+ { 0x0043, 4, "GeForce 6800 XE" },
+ { 0x0044, 4, "GeForce 6800 XT" },
+ { 0x0045, 4, "GeForce 6800 GT" },
+ { 0x0046, 4, "GeForce 6800 GT" },
+ { 0x0047, 4, "GeForce 6800 GS" },
+ { 0x0048, 4, "GeForce 6800 XT" },
+ { 0x004E, 4, "Quadro FX 4000" },
+ { 0x0090, 4, "GeForce 7800 GTX" },
+ { 0x0091, 4, "GeForce 7800 GTX" },
+ { 0x0092, 4, "GeForce 7800 GT" },
+ { 0x0093, 4, "GeForce 7800 GS" },
+ { 0x0095, 4, "GeForce 7800 SLI" },
+ { 0x0098, 4, "GeForce Go 7800" },
+ { 0x0099, 4, "GeForce Go 7800 GTX" },
+ { 0x009D, 4, "Quadro FX 4500" },
{ 0x00A0, 1, "Aladdin TNT2" },
+ { 0x00C0, 4, "GeForce 6800 GS" },
+ { 0x00C1, 4, "GeForce 6800" },
+ { 0x00C2, 4, "GeForce 6800 LE" },
+ { 0x00C3, 4, "GeForce 6800 XT" },
+ { 0x00C8, 4, "GeForce Go 6800" },
+ { 0x00C9, 4, "GeForce Go 6800 Ultra" },
+ { 0x00CC, 4, "Quadro FX Go1400" },
+ { 0x00CD, 4, "Quadro FX 3450/4000 SDI" },
+ { 0x00CE, 4, "Quadro FX 1400" },
+ { 0x00F1, 4, "GeForce 6600 GT" },
+ { 0x00F2, 4, "GeForce 6600" },
+ { 0x00F3, 4, "GeForce 6200" },
+ { 0x00F4, 4, "GeForce 6600 LE" },
+ { 0x00F5, 4, "GeForce 7800 GS" },
+ { 0x00F6, 4, "GeForce 6800 GS" },
+ { 0x00F8, 4, "Quadro FX 3400" },
+ { 0x00F8, 4, "Quadro FX 4000" },
+ { 0x00F9, 4, "GeForce 6800 Ultra" },
{ 0x00FA, 3, "GeForce PCX 5750" },
{ 0x00FB, 3, "GeForce PCX 5900" },
{ 0x00FC, 3, "Quadro FX 330" },
@@ -54,10 +91,36 @@ static const LEGACY_INFO LegacyList[] = {
{ 0x0111, 2, "GeForce2 MX 100/200" },
{ 0x0112, 2, "GeForce2 Go" },
{ 0x0113, 2, "Quadro2 MXR/EX/Go" },
+ { 0x0140, 4, "GeForce 6600 GT" },
+ { 0x0141, 4, "GeForce 6600" },
+ { 0x0142, 4, "GeForce 6600 LE" },
+ { 0x0143, 4, "GeForce 6600 VE" },
+ { 0x0144, 4, "GeForce Go 6600" },
+ { 0x0145, 4, "GeForce 6610 XL" },
+ { 0x0146, 4, "GeForce Go 6600 TE/6200 TE" },
+ { 0x0147, 4, "GeForce 6700 XL" },
+ { 0x0148, 4, "GeForce Go 6600" },
+ { 0x0149, 4, "GeForce Go 6600 GT" },
+ { 0x014A, 4, "Quadro NVS 440" },
+ { 0x014C, 4, "Quadro FX 540M" },
+ { 0x014D, 4, "Quadro FX 550" },
+ { 0x014E, 4, "Quadro FX 540" },
+ { 0x014F, 4, "GeForce 6200" },
{ 0x0150, 1, "GeForce2 GTS/GeForce2 Pro" },
{ 0x0151, 1, "GeForce2 Ti" },
{ 0x0152, 1, "GeForce2 Ultra" },
{ 0x0153, 1, "Quadro2 Pro" },
+ { 0x0160, 4, "GeForce 6500" },
+ { 0x0161, 4, "GeForce 6200 TurboCache(TM)" },
+ { 0x0162, 4, "GeForce 6200SE TurboCache(TM)" },
+ { 0x0163, 4, "GeForce 6200 LE" },
+ { 0x0164, 4, "GeForce Go 6200" },
+ { 0x0165, 4, "Quadro NVS 285" },
+ { 0x0166, 4, "GeForce Go 6400" },
+ { 0x0167, 4, "GeForce Go 6200" },
+ { 0x0168, 4, "GeForce Go 6400" },
+ { 0x0169, 4, "GeForce 6250" },
+ { 0x016A, 4, "GeForce 7100 GS" },
{ 0x0170, 2, "GeForce4 MX 460" },
{ 0x0171, 2, "GeForce4 MX 440" },
{ 0x0172, 2, "GeForce4 MX 420" },
@@ -80,11 +143,36 @@ static const LEGACY_INFO LegacyList[] = {
{ 0x018B, 2, "Quadro4 380 XGL" },
{ 0x018C, 2, "Quadro NVS 50 PCI" },
{ 0x01A0, 2, "GeForce2 Integrated GPU" },
+ { 0x01D0, 4, "GeForce 7350 LE" },
+ { 0x01D1, 4, "GeForce 7300 LE" },
+ { 0x01D2, 4, "GeForce 7550 LE" },
+ { 0x01D3, 4, "GeForce 7300 SE/7200 GS" },
+ { 0x01D6, 4, "GeForce Go 7200" },
+ { 0x01D7, 4, "GeForce Go 7300" },
+ { 0x01D8, 4, "GeForce Go 7400" },
+ { 0x01DA, 4, "Quadro NVS 110M" },
+ { 0x01DB, 4, "Quadro NVS 120M" },
+ { 0x01DC, 4, "Quadro FX 350M" },
+ { 0x01DD, 4, "GeForce 7500 LE" },
+ { 0x01DE, 4, "Quadro FX 350" },
+ { 0x01DF, 4, "GeForce 7300 GS" },
{ 0x01F0, 2, "GeForce4 MX Integrated GPU" },
{ 0x0200, 2, "GeForce3" },
{ 0x0201, 2, "GeForce3 Ti 200" },
{ 0x0202, 2, "GeForce3 Ti 500" },
{ 0x0203, 2, "Quadro DCC" },
+ { 0x0211, 4, "GeForce 6800" },
+ { 0x0212, 4, "GeForce 6800 LE" },
+ { 0x0215, 4, "GeForce 6800 GT" },
+ { 0x0218, 4, "GeForce 6800 XT" },
+ { 0x0221, 4, "GeForce 6200" },
+ { 0x0222, 4, "GeForce 6200 A-LE" },
+ { 0x0240, 4, "GeForce 6150" },
+ { 0x0241, 4, "GeForce 6150 LE" },
+ { 0x0242, 4, "GeForce 6100" },
+ { 0x0244, 4, "GeForce Go 6150" },
+ { 0x0245, 4, "Quadro NVS 210S / GeForce 6150LE" },
+ { 0x0247, 4, "GeForce Go 6100" },
{ 0x0250, 2, "GeForce4 Ti 4600" },
{ 0x0251, 2, "GeForce4 Ti 4400" },
{ 0x0253, 2, "GeForce4 Ti 4200" },
@@ -98,6 +186,26 @@ static const LEGACY_INFO LegacyList[] = {
{ 0x0288, 2, "Quadro4 980 XGL" },
{ 0x0289, 2, "Quadro4 780 XGL" },
{ 0x028C, 2, "Quadro4 700 GoGL" },
+ { 0x0290, 4, "GeForce 7900 GTX" },
+ { 0x0291, 4, "GeForce 7900 GT/GTO" },
+ { 0x0292, 4, "GeForce 7900 GS" },
+ { 0x0293, 4, "GeForce 7950 GX2" },
+ { 0x0294, 4, "GeForce 7950 GX2" },
+ { 0x0295, 4, "GeForce 7950 GT" },
+ { 0x0297, 4, "GeForce Go 7950 GTX" },
+ { 0x0298, 4, "GeForce Go 7900 GS" },
+ { 0x0299, 4, "Quadro NVS 510M" },
+ { 0x029A, 4, "Quadro FX 2500M" },
+ { 0x029B, 4, "Quadro FX 1500M" },
+ { 0x029C, 4, "Quadro FX 5500" },
+ { 0x029D, 4, "Quadro FX 3500" },
+ { 0x029E, 4, "Quadro FX 1500" },
+ { 0x029F, 4, "Quadro FX 4500 X2" },
+ { 0x02E0, 4, "GeForce 7600 GT" },
+ { 0x02E1, 4, "GeForce 7600 GS" },
+ { 0x02E2, 4, "GeForce 7300 GT" },
+ { 0x02E3, 4, "GeForce 7900 GS" },
+ { 0x02E4, 4, "GeForce 7950 GT" },
{ 0x0301, 3, "GeForce FX 5800 Ultra" },
{ 0x0302, 3, "GeForce FX 5800" },
{ 0x0308, 3, "Quadro FX 2000" },
@@ -135,7 +243,34 @@ static const LEGACY_INFO LegacyList[] = {
{ 0x0347, 3, "GeForce FX Go5700" },
{ 0x0348, 3, "GeForce FX Go5700" },
{ 0x034C, 3, "Quadro FX Go1000" },
- { 0x034E, 3, "Quadro FX 1100" }
+ { 0x034E, 3, "Quadro FX 1100" },
+ { 0x038B, 4, "GeForce 7650 GS" },
+ { 0x0390, 4, "GeForce 7650 GS" },
+ { 0x0391, 4, "GeForce 7600 GT" },
+ { 0x0392, 4, "GeForce 7600 GS" },
+ { 0x0393, 4, "GeForce 7300 GT" },
+ { 0x0394, 4, "GeForce 7600 LE" },
+ { 0x0395, 4, "GeForce 7300 GT" },
+ { 0x0397, 4, "GeForce Go 7700" },
+ { 0x0398, 4, "GeForce Go 7600" },
+ { 0x0399, 4, "GeForce Go 7600 GT" },
+ { 0x039C, 4, "Quadro FX 560M" },
+ { 0x039E, 4, "Quadro FX 560" },
+ { 0x03D0, 4, "GeForce 6150SE nForce 430" },
+ { 0x03D1, 4, "GeForce 6100 nForce 405" },
+ { 0x03D2, 4, "GeForce 6100 nForce 400" },
+ { 0x03D5, 4, "GeForce 6100 nForce 420" },
+ { 0x03D6, 4, "GeForce 7025 / nForce 630a" },
+ { 0x0531, 4, "GeForce 7150M / nForce 630M" },
+ { 0x0533, 4, "GeForce 7000M / nForce 610M" },
+ { 0x053A, 4, "GeForce 7050 PV / nForce 630a" },
+ { 0x053B, 4, "GeForce 7050 PV / nForce 630a" },
+ { 0x053E, 4, "GeForce 7025 / nForce 630a" },
+ { 0x07E0, 4, "GeForce 7150 / nForce 630i" },
+ { 0x07E1, 4, "GeForce 7100 / nForce 630i" },
+ { 0x07E2, 4, "GeForce 7050 / nForce 630i" },
+ { 0x07E3, 4, "GeForce 7050 / nForce 610i" },
+ { 0x07E5, 4, "GeForce 7050 / nForce 620i" }
};
#endif /* __NV_LEGACY_H */
diff --git a/nvidia-installer.h b/nvidia-installer.h
index cd42866..3ff9489 100644
--- a/nvidia-installer.h
+++ b/nvidia-installer.h
@@ -314,6 +314,8 @@ typedef struct __package {
#define FILE_TYPE_NVCUVID_SYMLINK 0x0000000080000000ULL
#define FILE_TYPE_GLX_MODULE_SHARED_LIB 0x0000000100000000ULL
#define FILE_TYPE_GLX_MODULE_SYMLINK 0x0000000200000000ULL
+#define FILE_TYPE_ENCODEAPI_LIB 0x0000000400000000ULL
+#define FILE_TYPE_ENCODEAPI_SYMLINK 0x0000000800000000ULL
/* file class: this is used to distinguish OpenGL libraries */
@@ -347,7 +349,8 @@ typedef struct __package {
FILE_TYPE_DOT_DESKTOP | \
FILE_TYPE_VDPAU_LIB | \
FILE_TYPE_NVCUVID_LIB | \
- FILE_TYPE_KERNEL_MODULE_SRC)
+ FILE_TYPE_KERNEL_MODULE_SRC | \
+ FILE_TYPE_ENCODEAPI_LIB)
#define FILE_TYPE_HAVE_PATH (FILE_TYPE_XMODULE_SHARED_LIB | \
FILE_TYPE_XMODULE_SYMLINK | \
@@ -377,7 +380,9 @@ typedef struct __package {
FILE_TYPE_VDPAU_SYMLINK | \
FILE_TYPE_VDPAU_LIB | \
FILE_TYPE_NVCUVID_LIB | \
- FILE_TYPE_NVCUVID_SYMLINK)
+ FILE_TYPE_NVCUVID_SYMLINK | \
+ FILE_TYPE_ENCODEAPI_LIB | \
+ FILE_TYPE_ENCODEAPI_SYMLINK)
#define FILE_TYPE_HAVE_CLASS (FILE_TYPE_TLS_LIB | \
FILE_TYPE_TLS_SYMLINK)
@@ -391,7 +396,8 @@ typedef struct __package {
FILE_TYPE_UTILITY_LIB_SYMLINK| \
FILE_TYPE_UTILITY_BIN_SYMLINK| \
FILE_TYPE_VDPAU_SYMLINK | \
- FILE_TYPE_NVCUVID_SYMLINK)
+ FILE_TYPE_NVCUVID_SYMLINK | \
+ FILE_TYPE_ENCODEAPI_SYMLINK)
#define FILE_TYPE_NEWSYM (FILE_TYPE_XMODULE_NEWSYM)
@@ -409,7 +415,8 @@ typedef struct __package {
FILE_TYPE_GLX_MODULE_SHARED_LIB | \
FILE_TYPE_UTILITY_LIB | \
FILE_TYPE_VDPAU_LIB | \
- FILE_TYPE_NVCUVID_LIB)
+ FILE_TYPE_NVCUVID_LIB | \
+ FILE_TYPE_ENCODEAPI_LIB)
#define FILE_TYPE_OPENGL_FILE (FILE_TYPE_OPENGL_HEADER | \
FILE_TYPE_OPENGL_LIB | \
diff --git a/rtld_test_Linux-armv7l-gnueabi b/rtld_test_Linux-armv7l-gnueabi
new file mode 100755
index 0000000..604a02a
--- /dev/null
+++ b/rtld_test_Linux-armv7l-gnueabi
Binary files differ
diff --git a/rtld_test_Linux-armv7l-gnueabihf b/rtld_test_Linux-armv7l-gnueabihf
new file mode 100755
index 0000000..be0eadb
--- /dev/null
+++ b/rtld_test_Linux-armv7l-gnueabihf
Binary files differ
diff --git a/utils.mk b/utils.mk
index b912f98..6e5ec42 100644
--- a/utils.mk
+++ b/utils.mk
@@ -100,6 +100,15 @@ else
LIBDL_LIBS =
endif
+# This variable controls which floating-point ABI is targeted. For ARM, it
+# defaults to "gnueabi" for softfp. Another option is "gnueabihf" for
+# hard(fp). This is necessary to pick up the correct rtld_test binary.
+# All other architectures default to empty.
+ifeq ($(TARGET_ARCH),armv7l)
+ TARGET_ARCH_ABI ?= gnueabi
+endif
+TARGET_ARCH_ABI ?=
+
OUTPUTDIR ?= _out/$(TARGET_OS)_$(TARGET_ARCH)
NV_QUIET_COMMAND_REMOVED_TARGET_PREFIX ?=
diff --git a/version.mk b/version.mk
index 2335952..1feef56 100644
--- a/version.mk
+++ b/version.mk
@@ -1 +1 @@
-NVIDIA_VERSION = 304.51
+NVIDIA_VERSION = 310.14