Re: Error build nvidia-driver with r334555

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Mon, 4 Jun 2018 21:25:06 +0900
On Sun, 3 Jun 2018 15:20:24 +0200
Mateusz Guzik <mjguzik_at_gmail.com> wrote:

> On Sun, Jun 3, 2018 at 2:42 PM, Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
> wrote:
> 
> > This is caused by r334533 and/or r334534 (memset-related changes).
> > sysutils/lsof is also affected.
> >
> > You should revert r334533 and r334534 temporarily until nvidia-driver
> > support this change.
> >
> > CC'ing the revision author and maintainers of both ports.
> >
> >
> Support in what sense? The error message clearly indicates a bug in the
> driver

I meant "need some work to be built with r334533 (and r334534),
including fix for newly-became-prominent bug(s), because both
x11/nvidia-driver and sysutils/lsof were built OK before r334533.

Now understood that 3rd param SHALL be the size of destination "value",
NOT the size of destination "pointer".


> (also trivially fixable). Is there a problem adding a patch to files/?

Built and worked fine. Thanks!

Fix for sysutils/lsof is already committed by Larry as r471495.
Thanks, Larry!

As x11/nvidia-driver is the master port for legacy drivers,
and legacy drivers (nvidia-driver-304 and nvidia-driver-340 ATM) has
different src directory layout, it needs some cludge in Makefile.
See attached (edited) Makefile. (Not a diff.)

And at the same time, your patch needs some fix (filename part only,
though).
Attached extra-patch-* must be copied into files/ dir.

 *extra-patch-src_nvidia__subr.c is the fixed one for legacy driver.
  extra-patch-src_nvidia_nvidia__subr.c contains your original patch.

Note that legacy drivers are only build-tested.

Sorry for delay!
Regards.

> 
> diff -ru src.orig/nvidia/nvidia_subr.c src/nvidia/nvidia_subr.c
> --- src.orig/nvidia/nvidia_subr.c    2018-06-03 13:19:56.490480000 +0000
> +++ src/nvidia/nvidia_subr.c    2018-06-03 13:21:15.289344000 +0000
> _at__at_ -364,7 +364,7 _at__at_
>      }
> 
>      ci = args;
> -    memset(ci, 0, sizeof(ci));
> +    memset(ci, 0, sizeof(*ci));
> 
>      for (i = 0; i < NV_MAX_DEVICES; i++) {
>          sc = devclass_get_softc(nvidia_devclass, i);
> 
> 
> As for lsof:
> --- dlsof.h.orig    2018-06-03 13:16:14.712701000 +0000
> +++ dlsof.h    2018-06-03 13:17:15.042655000 +0000
> _at__at_ -489,6 +489,12 _at__at_
>  # endif        /* FREEBSDV>=2020 */
> 
>  #undef    bzero        /* avoid _KERNEL conflict */
> +#undef    bcmp
> +#undef    bcopy
> +#undef    memcmp
> +#undef    memmove
> +#undef    memcpy
> +#undef    memset
>  #include <string.h>
> 
> -- 
> Mateusz Guzik <mjguzik gmail.com>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 


-- 
Tomoaki AOKI    <junchoon_at_dec.sakura.ne.jp>

Received on Mon Jun 04 2018 - 10:25:12 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:16 UTC