diff --git a/.SRCINFO b/.SRCINFO index 9850db2..352dcb4 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = nvidia-340xx pkgdesc = NVIDIA drivers for linux, 340xx legacy branch pkgver = 340.108 - pkgrel = 4 + pkgrel = 5 url = https://www.nvidia.com/ arch = x86_64 license = custom @@ -11,10 +11,12 @@ pkgbase = nvidia-340xx conflicts = nvidia options = !strip source = https://us.download.nvidia.com/XFree86/Linux-x86_64/340.108/NVIDIA-Linux-x86_64-340.108-no-compat32.run - source = unfuck-for-5.5.x.patch + source = 01-unfuck-for-340.108-build-fix.patch + source = 02-unfuck-for-5.5.x.patch source = fix_multi_core_build.patch sha256sums = 995d44fef587ff5284497a47a95d71adbee0c13020d615e940ac928f180f5b77 - sha256sums = 9144ed832f33b6a09a95ffe8fe3a2cdec198ab4ac270e861065992939fe8d9b6 + sha256sums = 2b7e3ef24846a40f4492e749be946e4f7f70ebed054bc2c9079f6cbdcbfabe57 + sha256sums = c28d65854dd03e6a9e00d79fa0ca3521c11b2c198882bbd50870c8e71d18d765 sha256sums = 82d14e9e6ec47c345d225d9f398238b7254cd5ae581c70e8521b9157ec747890 pkgname = nvidia-340xx diff --git a/01-unfuck-for-340.108-build-fix.patch b/01-unfuck-for-340.108-build-fix.patch new file mode 100644 index 0000000..7a786de --- /dev/null +++ b/01-unfuck-for-340.108-build-fix.patch @@ -0,0 +1,48 @@ +diff --git a/uvm/nvidia_uvm_lite.c b/uvm/nvidia_uvm_lite.c +index 6943e7c..c5d232c 100644 +--- a/uvm/nvidia_uvm_lite.c ++++ b/uvm/nvidia_uvm_lite.c +@@ -820,7 +820,13 @@ done: + } + + #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) ++vm_fault_t _fault(struct vm_fault *vmf) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++int _fault(struct vm_fault *vmf) ++#else + int _fault(struct vm_area_struct *vma, struct vm_fault *vmf) ++#endif + { + #if defined(NV_VM_FAULT_HAS_ADDRESS) + unsigned long vaddr = vmf->address; +@@ -828,8 +834,15 @@ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf) + unsigned long vaddr = (unsigned long)vmf->virtual_address; + #endif + struct page *page = NULL; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) ++ vm_fault_t retval; ++#else + int retval; + ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++ struct vm_area_struct *vma = vmf->vma; ++#endif + retval = _fault_common(vma, vaddr, &page, vmf->flags); + + vmf->page = page; +@@ -868,7 +881,13 @@ static struct vm_operations_struct uvmlite_vma_ops = + // it's dealing with anonymous mapping (see handle_pte_fault). + // + #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) ++vm_fault_t _sigbus_fault(struct vm_fault *vmf) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++int _sigbus_fault(struct vm_fault *vmf) ++#else + int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf) ++#endif + { + vmf->page = NULL; + return VM_FAULT_SIGBUS; diff --git a/unfuck-for-5.5.x.patch b/02-unfuck-for-5.5.x.patch similarity index 100% rename from unfuck-for-5.5.x.patch rename to 02-unfuck-for-5.5.x.patch diff --git a/PKGBUILD b/PKGBUILD index 6b675be..f0099bd 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -6,7 +6,7 @@ pkgbase=nvidia-340xx pkgname=(nvidia-340xx nvidia-340xx-dkms) pkgver=340.108 -pkgrel=4 +pkgrel=5 pkgdesc="NVIDIA drivers for linux, 340xx legacy branch" arch=('x86_64') url="https://www.nvidia.com/" @@ -17,11 +17,13 @@ options=(!strip) # seems manjaro is keeping this current # https://gitlab.manjaro.org/packages?utf8=%E2%9C%93&filter=nvidia-340xx source=("https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run" - unfuck-for-5.5.x.patch + 01-unfuck-for-340.108-build-fix.patch + 02-unfuck-for-5.5.x.patch fix_multi_core_build.patch ) sha256sums=('995d44fef587ff5284497a47a95d71adbee0c13020d615e940ac928f180f5b77' - '9144ed832f33b6a09a95ffe8fe3a2cdec198ab4ac270e861065992939fe8d9b6' + '2b7e3ef24846a40f4492e749be946e4f7f70ebed054bc2c9079f6cbdcbfabe57' + 'c28d65854dd03e6a9e00d79fa0ca3521c11b2c198882bbd50870c8e71d18d765' '82d14e9e6ec47c345d225d9f398238b7254cd5ae581c70e8521b9157ec747890') _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"