git: adc6bf772068 - main - x11/nvidia-driver (legacy versions): unbreak the build on fresh -CURRENT
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 28 Apr 2022 11:24:40 UTC
The branch main has been updated by danfe:
URL: https://cgit.FreeBSD.org/ports/commit/?id=adc6bf772068a1adc8aec74074988ebab048d769
commit adc6bf772068a1adc8aec74074988ebab048d769
Author: Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2022-04-28 11:23:46 +0000
Commit: Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2022-04-28 11:23:46 +0000
x11/nvidia-driver (legacy versions): unbreak the build on fresh -CURRENT
Recently, FreeBSD had started to enforce -Werror,-Wunused-but-set-variable
for kernel code, which affects 3rd-party modules such as nVidia drivers.
Newer versions of the driver are ready for that, but legacy one were not.
Reported by: pkg-fallout
PR: 263418
---
x11/nvidia-driver/Makefile | 5 +++++
.../files/extra-patch-src-nvidia_ctl.c.in | 23 ++++++++++++++++++----
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
index 790cb87bed84..4962687b0e93 100644
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -226,6 +226,11 @@ post-patch: .SILENT
gsed ${REINPLACE_ARGS} -E "s,/etc/egl/egl_external_platform\.d.{$$padding},${EGL_JSON_PATH}\x00," \
${WRKSRC}/obj/libEGL_nvidia.so.0
.endif
+# Unbreak the build against -Werror,-Wunused-but-set-variable CFLAGS
+.if ${NVVERSION} < 450.51
+ ${REINPLACE_CMD} -e '/void nvidia_dev_dtor/,+8s,.*status.*,,' \
+ ${WRKSRC}/src/${NVSRC}/nvidia_dev.c
+.endif
# Finally, process OPTIONS
.if ${PORT_OPTIONS:MFREEBSD_AGP}
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
diff --git a/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in b/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in
index a187792bd1cd..83d57711b948 100644
--- a/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in
+++ b/x11/nvidia-driver/files/extra-patch-src-nvidia_ctl.c.in
@@ -13,6 +13,21 @@
static d_open_t nvidia_ctl_open;
static void nvidia_ctl_dtor(void *arg);
static d_ioctl_t nvidia_ctl_ioctl;
+@@ -65,13 +71,12 @@ static int nvidia_ctl_open(
+
+ void nvidia_ctl_dtor(void *arg)
+ {
+- int status;
+ struct nvidia_filep *filep = arg;
+ struct nvidia_event *et;
+ nv_state_t *nv = filep->nv;
+
+ nv_lock_api(nv);
+- status = nvidia_close_ctl(nv, filep);
++ nvidia_close_ctl(nv, filep);
+ nv_unlock_api(nv);
+
+ while ((et = STAILQ_FIRST(&filep->event_queue))) {
@@ -138,6 +144,18 @@ static int nvidia_ctl_poll(
int nvidia_ctl_attach(void)
@@ -43,10 +58,13 @@
}
nvidia_count++;
-@@ -153,13 +175,28 @@ int nvidia_ctl_attach(void)
+@@ -153,13 +175,25 @@ int nvidia_ctl_attach(void)
int nvidia_ctl_detach(void)
{
+- struct nvidia_softc *sc;
+-
+- sc = &nvidia_ctl_sc;
+#ifdef NV_SUPPORT_LINUX_COMPAT
+ struct linux_device_handler nvidia_ctl_linux_handler = {
+ .bsd_driver_name = __DECONST(char *, nvidia_driver_name),
@@ -58,9 +76,6 @@
+ .linux_char_device = 1
+ };
+#endif
- struct nvidia_softc *sc;
-
- sc = &nvidia_ctl_sc;
nvidia_count--;
- if (nvidia_count == 0)