Re: HEADSUP: drm-current-kmod now installs sources

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 14 Aug 2019 09:08:51 -0700
On 8/13/19 3:17 PM, Ian Lepore wrote:
> On Tue, 2019-08-13 at 14:58 -0700, John Baldwin wrote:
>> For developers this means even if you are doing testing on a box
>> that doesn't use DRM, you can install the package so that kernel
>> builds will try to compile it and hopefully spot KPI/KBI changes
>> before they land in the tree so that the port/package can be
>> patched in tandem with committing changes to HEAD.  Note that even
>> builds of work trees in git checkouts, etc. will find the DRM
>> modules and try to build them if the package is installed.
> 
> That last sentence sounds ominous.  Are you saying that when I'm on my
> amd64 machine building from /my/sources/rpi using TARGET_ARCH=armv6
> it's going to find /usr/local/sys/modules/drm-current-kmod and try to
> crossbuild it for armv6?

Yes, meaning that you _can_ cross-build a DRM kernel module.  This also means
that if you are trying out a KPI change and have the package installed, make
tinderbox will now catch a change that breaks the DRM drivers on only a subset
of platforms (e.g. a powerpc or arm-only breakage that currently goes
unnoticed when a developer is only doing build testing from an amd64 host).

There are several ways you can disable this either globally or in more
fine-grained ways:

1) You can set LOCALBASE to a different path either in a kernel config
   (via makeoptions) or when invoking buildkernel.

   For example, I mount my rpi's sdcard at /mnt on my amd64 laptop and
   then cross-build into it, so I could set LOCALBASE to /mnt/usr/local when
   building the rpi's kernel to honor any kmod packages installed on the rpi.

2) You can set LOCAL_MODULES (makeoptions, command line) to a list of modules
   to build (empty disables building any of them).

3) You could set LOCAL_MODULES in /etc/src.conf to affect all kernel builds.
   (You probably don't want to set LOCALBASE there as it probably affects
   other things.)

4) You can build the port with the SOURCES option disabled if you want to
   never build modules for a specific port.

> How about when I'm doing a build of 11-stable for testing, but what's
> in my /usr/local is sources for a 13-current driver?

Given that the kmod's are supposed to be portable across branches,
the build really shouldn't be breaking.  But the same ability is still
there to as above to disable builds either in general or for
specific kernel configs or buildkernel invocations.

-- 
John Baldwin
Received on Wed Aug 14 2019 - 14:08:54 UTC

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