diff --git a/x11/nvidia-driver/files/extra-patch-src-Makefile-2.in b/x11/nvidia-driver/files/extra-patch-src-Makefile-2.in new file mode 100644 --- /dev/null +++ b/x11/nvidia-driver/files/extra-patch-src-Makefile-2.in @@ -0,0 +1,18 @@ +--- src/%%NVSRC%%/Makefile.orig ++++ src/%%NVSRC%%/Makefile +@@ -41,5 +41,14 @@ + clean: + @rm -f ${CLEANFILES:S/${RMOBJ}//} + @rm -f stdarg.h ++ ++EXPORT_SYMS= nv_kthread_q_flush \ ++ nv_kthread_q_init \ ++ nv_kthread_q_init_on_node \ ++ nv_kthread_q_item_init \ ++ nv_kthread_q_run_self_test \ ++ nv_kthread_q_schedule_q_item \ ++ nv_kthread_q_stop \ ++ nv_kthread_task_callback + + .include + diff --git a/x11/nvidia-kmod-devel/Makefile b/x11/nvidia-kmod-devel/Makefile --- a/x11/nvidia-kmod-devel/Makefile +++ b/x11/nvidia-kmod-devel/Makefile @@ -1,6 +1,6 @@ DISTVERSION?= 590.48.01 # Explicitly set PORTREVISION as it can be overridden by the master port -PORTREVISION= 0 +PORTREVISION= 1 MASTERDIR= ${.CURDIR}/../nvidia-kmod PKGNAMESUFFIX= -devel diff --git a/x11/nvidia-kmod/Makefile b/x11/nvidia-kmod/Makefile --- a/x11/nvidia-kmod/Makefile +++ b/x11/nvidia-kmod/Makefile @@ -14,7 +14,7 @@ PORTNAME?= nvidia-kmod DISTVERSION?= ${NVIDIA_DISTVERSION} # Always try to set PORTREVISION as it can be overridden by the slave ports -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= x11 MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} @@ -60,6 +60,16 @@ SUB_PATCHES+= extra-patch-src-nvidia_subr.c .endif +# At commit 9562994a7aacee2baae6ddee1a7b558b48ae39ef on main, +# Local sym resolution was disabled by default in kernel linker. +# Explicitly export functions from nvidia.ko to make nvidia-drm-*-kmod +# ports work after the commit. These symbols do not exist in legacy +# versions prior to 580 series. + +.if ${NVVERSION} >= 580.00000 +SUB_PATCHES+= extra-patch-src-Makefile-2 +.endif + # Temporarily disable GSP firmware as it is known to cause # issues with suspend/resume .if ${NVVERSION} >= 565.00000