ports/176980: x11/nvidia-driver build fails on head @r248084
David Wolfskill
david at catwhisker.org
Fri Mar 15 03:50:01 UTC 2013
>Number: 176980
>Category: ports
>Synopsis: x11/nvidia-driver build fails on head @r248084
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Mar 15 03:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: David Wolfskill
>Release: FreeBSD 10.0-CURRENT i386
>Organization:
Wolfskill & Dowling Residence
>Environment:
System: FreeBSD g1-235.catwhisker.org 10.0-CURRENT FreeBSD 10.0-CURRENT #832 r248033M/248035: Fri Mar 8 07:36:04 PST 2013 root at localhost:/usr/obj/usr/src/sys/CANARY i386
>Description:
r248084 made some changes in src/sys/vm/vm_pager that break
the build of ports/x11/nvidia-driver (as of r312359).
>How-To-Repeat:
Update ports to at least r312359 and src to at least r248084;
while running head (10.0-CURRENT) built from those sources,
attempt to build ports/x11/nvidia-driver (e.g., "portmaster
x11/nvidia-driver").
I originally wrote this as seen in
<http://docs.FreeBSD.org/cgi/mid.cgi?20130309153454.GS13861>.
>Fix:
The below patch allows the port to build under both head and
stable/9. It is, however, possible that I've failed to get the
OSVERSION quite right.
Index: x11/nvidia-driver/Makefile
--- x11/nvidia-driver/Makefile 2013-03-09 07:11:03.000000000 -0800
+++ x11/nvidia-driver/Makefile 2013-03-09 06:48:18.000000000 -0800
@@ -86,6 +86,10 @@
PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
MODULESDIR=${MODULESDIR}
+. if ${OSVERSION} > 1000028
+EXTRA_PATCHES+= ${FILESDIR}/r248084-patch-src-nv-freebsd.h
+EXTRA_PATCHES+= ${FILESDIR}/r248084-patch-src-nvidia_subr.c
+. endif
.if ${PORT_OPTIONS:MLINUX}
CONFLICTS= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
Index: x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h
--- x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h 1969-12-31 16:00:00.000000000 -0800
+++ x11/nvidia-driver/files/r248084-patch-src-nv-freebsd.h 2013-03-09 06:39:54.000000000 -0800
@@ -0,0 +1,10 @@
+--- src/nv-freebsd.h.orig 2013-01-14 14:38:44.000000000 -0800
++++ src/nv-freebsd.h 2013-03-09 06:36:23.000000000 -0800
+@@ -77,6 +77,7 @@
+ #include <vm/vm_object.h>
+ #include <vm/pmap.h>
+ #include <vm/vm_map.h>
++#include <sys/rwlock.h>
+ #include <vm/vm_pager.h>
+ #include <vm/uma.h>
+
Index: x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c
--- x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c 1969-12-31 16:00:00.000000000 -0800
+++ x11/nvidia-driver/files/r248084-patch-src-nvidia_subr.c 2013-03-09 06:48:53.000000000 -0800
@@ -0,0 +1,56 @@
+--- src/nvidia_subr.c.orig 2013-01-14 14:38:44.000000000 -0800
++++ src/nvidia_subr.c 2013-03-09 06:47:05.000000000 -0800
+@@ -83,7 +83,7 @@
+ if (!sc->BAR_objects[i])
+ goto failed;
+
+- VM_OBJECT_LOCK(sc->BAR_objects[i]);
++ VM_OBJECT_WLOCK(sc->BAR_objects[i]);
+ switch (i) {
+ case NV_GPU_BAR_INDEX_FB:
+ vm_object_set_memattr(sc->BAR_objects[i],
+@@ -95,7 +95,7 @@
+ VM_MEMATTR_UNCACHEABLE);
+ break;
+ }
+- VM_OBJECT_UNLOCK(sc->BAR_objects[i]);
++ VM_OBJECT_WUNLOCK(sc->BAR_objects[i]);
+ }
+ }
+
+@@ -541,9 +541,9 @@
+ goto failed;
+ }
+
+- VM_OBJECT_LOCK(sc->UD_object);
++ VM_OBJECT_WLOCK(sc->UD_object);
+ vm_object_set_memattr(sc->UD_object, VM_MEMATTR_UNCACHEABLE);
+- VM_OBJECT_UNLOCK(sc->UD_object);
++ VM_OBJECT_WUNLOCK(sc->UD_object);
+ }
+
+ nv->flags |= NV_FLAG_OPEN;
+@@ -965,9 +965,9 @@
+ goto failed;
+ }
+
+- VM_OBJECT_LOCK(at->object);
++ VM_OBJECT_WLOCK(at->object);
+ vm_object_set_memattr(at->object, attr);
+- VM_OBJECT_UNLOCK(at->object);
++ VM_OBJECT_WUNLOCK(at->object);
+
+ *private = at;
+ SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
+@@ -1108,9 +1108,9 @@
+ goto failed;
+ }
+
+- VM_OBJECT_LOCK(at->object);
++ VM_OBJECT_WLOCK(at->object);
+ vm_object_set_memattr(at->object, attr);
+- VM_OBJECT_UNLOCK(at->object);
++ VM_OBJECT_WUNLOCK(at->object);
+
+ *private = at;
+ SLIST_INSERT_HEAD(&sc->alloc_list, at, list);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list