initial commit

This commit is contained in:
2011-09-07 21:52:54 +04:00
commit a875af6b67
122 changed files with 6256 additions and 0 deletions

View File

@ -0,0 +1,2 @@
# Has to precede X11's own libraries!
LDPATH=/opt/nvidia/lib

View File

@ -0,0 +1,31 @@
Add support for the 'x86' unified kernel arch in conftest.sh
--- NVIDIA-Linux-x86-256.25/kernel/conftest.sh
+++ NVIDIA-Linux-x86-256.25/kernel/conftest.sh
@@ -101,7 +101,7 @@ build_cflags() {
if [ "$OUTPUT" != "$SOURCES" ]; then
MACH_CFLAGS="-I$HEADERS/asm-$ARCH/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
fi
@@ -110,7 +110,7 @@ build_cflags() {
fi
else
MACH_CFLAGS="-I$HEADERS/asm/mach-default"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
MACH_CFLAGS="$MACH_CFLAGS -I$HEADERS/asm-x86/mach-default"
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCES/arch/x86/include/asm/mach-default"
fi
@@ -121,7 +121,7 @@ build_cflags() {
CFLAGS="$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -I$HEADERS $AUTOCONF_CFLAGS"
- if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
+ if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" -o "$ARCH" = "x86" ]; then
CFLAGS="$CFLAGS -I$SOURCES/arch/x86/include"
fi
if [ -n "$BUILD_PARAMS" ]; then

View File

@ -0,0 +1,11 @@
diff -ur NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h
--- NVIDIA_GLX-1.0-4191/usr/include/GL/glx.h 2002-12-09 21:26:55.000000000 +0100
+++ NVIDIA_GLX-1.0-4191.new/usr/include/GL/glx.h 2003-01-30 18:20:23.000000000 +0100
@@ -39,6 +39,7 @@
typedef XID GLXPixmap;
typedef XID GLXDrawable;
typedef XID GLXPbuffer;
+typedef XID GLXPbufferSGIX;
typedef XID GLXWindow;
typedef XID GLXFBConfigID;

View File

@ -0,0 +1,13 @@
--- usr/include/GL/gl.g.orig 2004-07-17 19:56:59.789410584 +1000
+++ usr/include/GL/gl.h 2004-07-17 19:59:08.844791184 +1000
@@ -66,6 +66,10 @@
typedef double GLclampd;
typedef void GLvoid;
+/* Patching for some better defines in the global system */
+#ifndef GL_GLEXT_LEGACY
+#include <GL/glext.h>
+#endif
/*************************************************************/

View File

@ -0,0 +1,21 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/files/eblits/donvidia.eblit,v 1.1 2008/12/18 18:27:35 cardoe Exp $
# Install nvidia library:
# the first parameter is the place where to install it
# the second parameter is the base name of the library
# the third parameter is the provided soversion
donvidia() {
dodir $1
exeinto $1
libname=$(basename $2)
# libnvidia-cfg.so is no longer supplied in lib32; step over it gracefully
if [ -e $2.$3 ] ; then
doexe $2.$3
dosym ${libname}.$3 $1/${libname}
[[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1
fi
}

View File

@ -0,0 +1,19 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/files/eblits/mtrr_check.eblit,v 1.1 2008/12/18 18:27:35 cardoe Exp $
mtrr_check() {
ebegin "Checking for MTRR support"
linux_chkconfig_present MTRR
eend $?
if [[ $? -ne 0 ]] ; then
eerror "Please enable MTRR support in your kernel config, found at:"
eerror
eerror " Processor type and features"
eerror " [*] MTRR (Memory Type Range Register) support"
eerror
eerror "and recompile your kernel ..."
die "MTRR support not detected!"
fi
}

View File

@ -0,0 +1,116 @@
# Copyright 1999-2008 Gentoo Foundation
# Distribnuted under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/files/eblits/src_install-libs.eblit,v 1.1 2008/12/18 18:27:35 cardoe Exp $
#
src_install-libs() {
local pkglibdir=lib
local inslibdir=$(get_libdir)
if [[ ${#} -eq 2 ]] ; then
pkglibdir=${1}
inslibdir=${2}
elif has_multilib_profile && [[ ${ABI} == "x86" ]] ; then
pkglibdir=lib32
fi
local usrpkglibdir=usr/${pkglibdir}
local libdir=usr/X11R6/${pkglibdir}
local drvdir=${libdir}/modules/drivers
local extdir=${libdir}/modules/extensions
local incdir=usr/include/GL
local sover=${PV}
local NV_ROOT="/usr/${inslibdir}/opengl/nvidia"
local NO_TLS_ROOT="${NV_ROOT}/no-tls"
local TLS_ROOT="${NV_ROOT}/tls"
local X11_LIB_DIR="/usr/${inslibdir}/xorg"
if use x86-fbsd; then
# on FreeBSD everything is on obj/
pkglibdir=obj
usrpkglibdir=obj
x11pkglibdir=obj
drvdir=obj
extdir=obj
# don't ask me why the headers are there.. glxext.h is missing
incdir=doc
# on FreeBSD it has just .1 suffix
sover=1
fi
# The GLX libraries
donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGL.so ${sover}
donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGLcore.so ${sover}
donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libnvidia-cfg.so ${sover}
dodir ${NO_TLS_ROOT}
donvidia ${NO_TLS_ROOT} ${usrpkglibdir}/libnvidia-tls.so ${sover}
if ! use x86-fbsd; then
donvidia ${TLS_ROOT} ${usrpkglibdir}/tls/libnvidia-tls.so ${sover}
fi
if want_tls ; then
dosym ../tls/libnvidia-tls.so ${NV_ROOT}/lib
dosym ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib
dosym ../tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib
else
dosym ../no-tls/libnvidia-tls.so ${NV_ROOT}/lib
dosym ../no-tls/libnvidia-tls.so.1 ${NV_ROOT}/lib
dosym ../no-tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib
fi
if ! use x86-fbsd; then
# Install the .la file for libtool, to prevent e.g. bug #176423
[ -f "${FILESDIR}/libGL.la-r2" ] || die "libGL.la-r2 missing in FILESDIR"
local ver1=$(get_version_component_range 1)
local ver2=$(get_version_component_range 2)
local ver3=$(get_version_component_range 3)
sed -e "s:\${PV}:${PV}:" \
-e "s:\${ver1}:${ver1}:" \
-e "s:\${ver2}:${ver2}:" \
-e "s:\${ver3}:${ver3}:" \
-e "s:\${libdir}:${inslibdir}:" \
"${FILESDIR}"/libGL.la-r2 > "${D}"/${NV_ROOT}/lib/libGL.la
fi
exeinto ${X11_LIB_DIR}/modules/drivers
[[ -f ${drvdir}/nvidia_drv.so ]] && \
doexe ${drvdir}/nvidia_drv.so
insinto /usr/${inslibdir}
[[ -f ${libdir}/libXvMCNVIDIA.a ]] && \
doins ${libdir}/libXvMCNVIDIA.a
exeinto /usr/${inslibdir}
# fix Bug 131315
[[ -f ${libdir}/libXvMCNVIDIA.so.${PV} ]] && \
doexe ${libdir}/libXvMCNVIDIA.so.${PV} && \
dosym libXvMCNVIDIA.so.${PV} \
/usr/${inslibdir}/libXvMCNVIDIA.so
exeinto ${NV_ROOT}/extensions
[[ -f ${libdir}/modules/libnvidia-wfb.so.${sover} ]] && \
newexe ${libdir}/modules/libnvidia-wfb.so.${sover} libwfb.so
[[ -f ${extdir}/libglx.so.${sover} ]] && \
newexe ${extdir}/libglx.so.${sover} libglx.so
# Includes
insinto ${NV_ROOT}/include
doins ${incdir}/*.h
#cuda
if [[ -f usr/include/cuda/cuda.h ]]; then
dodir /usr/include/cuda
insinto /usr/include/cuda
doins usr/include/cuda/*.h
if [[ -f usr/${pkglibdir}/libcuda.so.${PV} ]]; then
dolib.so usr/${pkglibdir}/libcuda.so.${PV}
dosym libcuda.so.${PV} /usr/${inslibdir}/libcuda.so.1
dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so
fi
fi
}

View File

@ -0,0 +1,33 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/files/eblits/want_tls.eblit,v 1.1 2008/12/18 18:27:35 cardoe Exp $
want_tls() {
# For uclibc or anything non glibc, return false
has_version sys-libs/glibc || return 1
# Old versions of glibc were lt/no-tls only
has_version '<sys-libs/glibc-2.3.2' && return 1
if use x86 ; then
case ${CHOST/-*} in
i486|i586|i686) ;;
*) return 1 ;;
esac
fi
# If we've got nptl, we've got tls
built_with_use --missing true sys-libs/glibc nptl && return 0
# 2.3.5 turned off tls for linuxthreads glibc on i486 and i586
if use x86 && has_version '>=sys-libs/glibc-2.3.5' ; then
case ${CHOST/-*} in
i486|i586) return 1 ;;
esac
fi
# These versions built linuxthreads version to support tls, too
has_version '>=sys-libs/glibc-2.3.4.20040619-r2' && return 0
return 1
}

View File

@ -0,0 +1,32 @@
# libGL.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='libGL.so.1'
# Names of this library.
library_names='libGL.so.${PV} libGL.so.1 libGL.so'
# The name of the static archive.
old_library=''
# Libraries that this one depends upon.
dependency_libs='-L/usr/${libdir} -lm -lX11 -lXext -ldl'
# Version information for libGL.
current=${ver1}
age=${ver2}
revision=${ver3}
# Is this an already installed library?
installed=yes
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='/usr/${libdir}'

View File

@ -0,0 +1,40 @@
# Nvidia drivers support
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
# To tweak the driver the following options can be used, note that
# you should be careful, as it could cause instability!! For more
# options see /usr/share/doc/PACKAGE/README
#
# To enable Side Band Adressing: NVreg_EnableAGPSBA=1
#
# To enable Fast Writes: NVreg_EnableAGPFW=1
#
# To enable both for instance, uncomment following line:
#
#options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1
# If you have a mobile chip, you may need to enable this option
# if you have hard lockups when starting X.
#
# See: Appendix I. Configuring your laptop
# In /usr/share/doc/PACKAGE/README for full details
#
# Choose the appropriate value for NVreg_Mobile from the table:
# Value Meaning
# ---------- --------------------------------------------------
# 0xFFFFFFFF let the kernel module autodetect the correct value
# 1 Dell laptops
# 2 non-Compal Toshiba laptops
# 3 all other laptops
# 4 Compal Toshiba laptops
# 5 Gateway laptops
#
#options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=3
# !!! SECURITY WARNING !!!
# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
# WHAT YOU ARE DOING.
# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1

View File

@ -0,0 +1,14 @@
# Nvidia drivers support
alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195
# To tweak the driver the following options can be used, note that
# you should be careful, as it could cause instability!! For more
# options see /usr/share/doc/PACKAGE/README
#
# !!! SECURITY WARNING !!!
# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW
# WHAT YOU ARE DOING.
# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH,
# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE.
options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=VIDEOGID NVreg_ModifyDeviceFiles=1

View File

@ -0,0 +1,14 @@
linux/smp_lock.h no longer exists in linux-2.6.39+
--- a/kernel/nv-linux.h
+++ b/kernel/nv-linux.h
@@ -87,7 +87,9 @@
#if !defined(KERNEL_2_4)
#include <linux/sched.h> /* suser(), capable() replacement */
#include <linux/moduleparam.h> /* module_param() */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39)
#include <linux/smp_lock.h> /* kernel_locked */
+#endif
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
#include <asm/kmap_types.h> /* page table entry lookup */
#endif

View File

@ -0,0 +1,27 @@
diff -urN work-OLD/kernel/conftest.sh work-NEW/kernel/conftest.sh
--- work-OLD/kernel/conftest.sh 2011-05-30 19:41:31.000000000 -0700
+++ work-NEW/kernel/conftest.sh 2011-05-30 19:47:23.000000000 -0700
@@ -76,7 +76,9 @@
}
build_cflags() {
- BASE_CFLAGS="-D__KERNEL__ \
+ # Adding -Os optimizer option to work around rcupdate.h compiler bug, see here:
+ # http://choon.net/forum/read.php?21,82725
+ BASE_CFLAGS="-Os -D__KERNEL__ \
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
-nostdinc -isystem $ISYSTEM"
diff -urN work-OLD/kernel/nv-linux.h work-NEW/kernel/nv-linux.h
--- work-OLD/kernel/nv-linux.h 2011-05-16 23:32:19.000000000 -0700
+++ work-NEW/kernel/nv-linux.h 2011-05-30 19:46:06.000000000 -0700
@@ -34,6 +34,9 @@
# error This driver does not support 2.5 kernels!
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 7, 0)
# define KERNEL_2_6
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)
+/* For compatibility, pretend all kernels 3.0.0 and higher are "2.6" */
+# define KERNEL_2_6
#else
# error This driver does not support development kernels!
#endif