Date: Fri, 22 Jan 2021 09:38:10 -0700 From: Warner Losh <imp@bsdimp.com> To: Emmanuel Vadot <manu@bidouilliste.com> Cc: Steve Kargl <sgk@troutmask.apl.washington.edu>, Hans Petter Selasky <hps@selasky.org>, FreeBSD Current <freebsd-current@freebsd.org>, John Baldwin <jhb@freebsd.org> Subject: Re: make buildkernel is broken (linuxkpi vs drm) Message-ID: <CANCZdfrpR%2B5GJa=O1KiMT7_geS4WU7KV6BZGWHQQwOU2Uwq0ZQ@mail.gmail.com> In-Reply-To: <20210121115015.460ecc9b854480f41b7cc97d@bidouilliste.com> References: <20210121054646.GA61716@troutmask.apl.washington.edu> <c654e9c8-4d20-898c-0954-fe81c7b67f9f@selasky.org> <20210121061310.GA61889@troutmask.apl.washington.edu> <aed2f125-6937-d068-f6c3-f8fd5a33af14@selasky.org> <20210121062109.GB61941@troutmask.apl.washington.edu> <20210121115015.460ecc9b854480f41b7cc97d@bidouilliste.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 21, 2021 at 3:50 AM Emmanuel Vadot <manu@bidouilliste.com> wrote: > On Wed, 20 Jan 2021 22:21:09 -0800 > Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > > > On Thu, Jan 21, 2021 at 07:18:07AM +0100, Hans Petter Selasky wrote: > > > On 1/21/21 7:13 AM, Steve Kargl wrote: > > > > It is 'make buildkernel' in /usr/src after a 'make buildworld'. > > > > I have 'PORTS_MODULES+= graphics/drm-current-kmod' in /etc/make.conf. > > > > > > Try to update the ports tree. I'm not aware of any current build > issues in > > > this area. > > > > > > > I tried that. I did not fix the problem. Commenting > > out the PORTS_MODULES line in /etc/make.conf allows > > me to finish building the new kernel. I re-install > > the port after I install world/kernel. > > > > -- > > Steve > > Does it works now ? > > I think that PORTS_MODULES shouldn't be used for drm-current-kmod or > we should not install the source with it if PORTS_MODULES is the right > way. > > The problem is that drm-current-kmod install its sources > in /usr/local/sys and by default all modules there will be rebuild when > doing make buildkernel unless LOCAL_MODULES is defined. > The problem with installing sources is that if something changed in > base that broke the build with a certain version of drm-current-kmod > you first need to upgrade the ports/package to have the new sources to > be able to make buildkernel correctly. > I personally hate the fact that we install the sources as it only > causes problems for users but some people seems to like it. > It seems that if we don't install the sources and one uses > PORTS_MODULES we just need to upgrade the ports tree before running > make buildkernel if there is a conflicting changes which seems saner to > me tbh. > I started out liking this, but kinda hate it now. We need a solution that always builds the .ko file, but the current hodge-podge is confusing and difficult to get right. -current is such we can't ship pre-compiled things, and the number of kernel options that subtly break binaries ebbs and flows. It was a solution for people that installed from the package: the sources would be there and they'd always rebuild. In theory this is great! In practice, though, current and drm are moving fast enough together that a source package grows stale quickly so rebuilding old sources doesn't work because they don't know about the new API requirements. Making the APIs grok recent history of drm modules is harder than it sounds, alas. > For now I've been focusing the rage that LOCAL_MODULES exists and > cause this kind of problems on migrating more stuff into base so that > one day we will finally have drm in base again. But I'm a bit > tired of dealing with all those problems and I've wondered a lot of > times about removing installing sources for drm-current-kmod. > I think that might be best. I use LOCAL_MODULES all the time. However, I use it with symlinks to a git tree that I keep up to date from there. You can't do that with PORTS_MODULES. And it's a better match for the current development style. It worked great for the iichid work as well before it went into the tree, though it wasn't so fast moving that an occasionally stale update would trip you up. > Adding jhb@ to cc as I know he uses LOCAL_MODULES so maybe he can > explain the advantage over PORTS_MODULES. > So long as PORTS_MODULES always builds from source with every kernel build you plan to install on the system, it works... But you also have to be careful about making sure you always update ports before building the kernel. Otherwise, you run into exactly the same issues you have with LOCAL_MODULES... Now, having said all that, this stuff (all the drm) should be in base, with relaxed MFC constraints. It's too tightly coupled, and we don't have any solution to the current de-facto requirement that you must update both at the same time. The proffered advantage (being able to run new DRM drivers on old systems) gives less benefit than the real problem of "I didn't update my sources or knew that I needed to and now it won't build anymore". Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrpR%2B5GJa=O1KiMT7_geS4WU7KV6BZGWHQQwOU2Uwq0ZQ>