Problem with NVIDIA drivers 390 and 470 on current

From: Nilton Jose Rizzo <rizzo_at_i805.com.br>
Date: Mon, 26 Sep 2022 02:30:07 UTC
Hi all,

I'm updated my box to last 14-current today and I get error on ports compialtion.

% uname -a
FreeBSD valfenda 14.0-CURRENT FreeBSD 14.0-CURRENT #17 main-1a2b55732f: Sun Sep 25 21:14:19 -03 2022     rizzo@valfenda:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64   

When I try to install a nvidia driver from ports, I get this error:

cc  -O2 -pipe -fno-strict-aliasing -DNV_VERSION_STRING=\"390.151\" -D__KERNEL__ -DNVRM -Wno-unused-function -Wuninitialized -O2 -fno-strict-aliasing -mno-red-zone -mcmode
l=kernel -Wno-sign-compare -Wno-format-extra-args -UDEBUG -U_DEBUG -DNDEBUG -DNV_SPECTRE_V2=1 -DNV_KERNEL_INTERFACE_LAYER -Werror=undef  -Werror -D_KERNEL -DKLD_MODULE -n
ostdinc  -I. -I../common/inc -include /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151/src/nvidia/opt_global.h -I. -I/usr/src/sys -I/usr/src/sys/contri
b/ck/include -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include -fdebug-prefix-map=./x86=/usr/src/s
ys/x86/include -fdebug-prefix-map=./i386=/usr/src/sys/i386/include     -MD  -MF.depend.nvlink_freebsd.o -MTnvlink_freebsd.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-ss
e -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -
Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error=tautological-compar
e -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -
Wno-format-zero-length   -mno-aes -mno-avx  -std=iso9899:1999 -c nvlink_freebsd.c -o nvlink_freebsd.o
--- nvidia_os.o ---
nvidia_os.c:280:19: error: incompatible integer to pointer conversion passing 'vm_offset_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversion]
    pmap_unmapdev((vm_offset_t)address, size);
                  ^~~~~~~~~~~~~~~~~~~~
./machine/pmap.h:511:26: note: passing argument to parameter here
void    pmap_unmapdev(void *, vm_size_t);
                            ^
1 error generated.
*** [nvidia_os.o] Error code 1

make[4]: stopped in /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151/src/nvidia
--- nvidia_subr.o ---
nvidia_subr.c:1133:13: error: incompatible pointer to integer conversion assigning to 'vm_offset_t' (aka 'unsigned long') from 'void *' [-Werror,-Wint-conversion]
    address = NV_KMEM_ALLOC_CONTIG(size, flags, 0,
            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia_subr.c:1182:22: error: incompatible integer to pointer conversion passing 'vm_offset_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversi
on]
        NV_KMEM_FREE(at->pte_array[0].virtual_address, at->size);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nv-freebsd.h:416:15: note: expanded from macro 'NV_KMEM_FREE'
    kmem_free(address, size)
              ^~~~~~~
/usr/src/sys/vm/vm_extern.h:73:22: note: passing argument to parameter 'addr' here
void kmem_free(void *addr, vm_size_t size);
                     ^
nvidia_subr.c:1208:18: error: incompatible integer to pointer conversion passing 'vm_offset_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversi
on]
    NV_KMEM_FREE(at->pte_array[0].virtual_address, at->size);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nv-freebsd.h:416:15: note: expanded from macro 'NV_KMEM_FREE'
    kmem_free(address, size)
              ^~~~~~~
/usr/src/sys/vm/vm_extern.h:73:22: note: passing argument to parameter 'addr' here
void kmem_free(void *addr, vm_size_t size);
                     ^
nvidia_subr.c:1271:17: error: incompatible pointer to integer conversion assigning to 'vm_offset_t' (aka 'unsigned long') from 'void *' [-Werror,-Wint-conversion]
        address = NV_KMEM_ALLOC_CONTIG(PAGE_SIZE, flags, 0,
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia_subr.c:1325:22: error: incompatible integer to pointer conversion passing 'vm_offset_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversi
on]
        NV_KMEM_FREE(at->pte_array[i].virtual_address, PAGE_SIZE);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nv-freebsd.h:416:15: note: expanded from macro 'NV_KMEM_FREE'
    kmem_free(address, size)
              ^~~~~~~
/usr/src/sys/vm/vm_extern.h:73:22: note: passing argument to parameter 'addr' here
void kmem_free(void *addr, vm_size_t size);
                     ^
nvidia_subr.c:1354:22: error: incompatible integer to pointer conversion passing 'vm_offset_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversi
on]
        NV_KMEM_FREE(at->pte_array[i].virtual_address, PAGE_SIZE);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nv-freebsd.h:416:15: note: expanded from macro 'NV_KMEM_FREE'                                                                                                          
    kmem_free(address, size)
              ^~~~~~~
/usr/src/sys/vm/vm_extern.h:73:22: note: passing argument to parameter 'addr' here
void kmem_free(void *addr, vm_size_t size);
                     ^
6 errors generated.
*** [nvidia_subr.o] Error code 1

make[4]: stopped in /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151/src/nvidia
2 errors

make[4]: stopped in /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151/src/nvidia

make[3]: stopped in /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151/src

make[2]: stopped in /usr/ports/x11/nvidia-driver-390/work/NVIDIA-FreeBSD-x86_64-390.151
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/x11/nvidia-driver-390
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/nvidia-driver-390
#                                                               


TIA

Nilton J. Rizzo