On 2022-10-29 19:33, Warner Losh wrote:
The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=f7026fbbb2bd72176d73921dd2dd5e4b263d5103

commit f7026fbbb2bd72176d73921dd2dd5e4b263d5103
Author:     Warner Losh <[email protected]>
AuthorDate: 2022-10-29 14:34:16 +0000
Commit:     Warner Losh <[email protected]>
CommitDate: 2022-10-29 16:17:40 +0000

     sys/modules: MODULES_OVERRIDE takes precedence over EXTRA_MODULES and 
WITHOUT_MODULES
MODULES_OVERRIDE has traditionally taken precedence over EXTRA_MODULES
     and WITHOUT_MODULES as the exact list of modules to build. Over time,
     things have been added that has broken this. Move the .endif that makes
     this the case to the right place. The so called 'ALL_MODULES' option is
     the only thing with higher precedence, but it's not quite all the
     options anymore (though it is much more of them, and doesn't quite
     work on !x86).
Sponsored by: Netflix

Warner,

this change broke one use-case of mine. The use-case does not seem to be exotic, so others may be affected as well.

I am building a custom arm64 kernel and a set of modules for a specific SoC (rockchip).
The kernel configuration, similarly to GENERIC, has this statement:
        include         "std.rockchip"

In turn, std.rockchip has this statement:
        # DTBs
        makeoptions     MODULES_EXTRA+="dtb/rockchip"

Additionally, in my make.conf I have MODULES_OVERRIDE set to a short list of modules.

Previously this worked without issues, completely transparently.
Now, MODULES_OVERRIDE apparently cancels MODULES_EXTRA.
I can easily add dtb/rockchip to my MODULES_OVERRIDE, of course, but I get a feeling that the previous behavior was more useful because it allowed to specify mandatory "internal" modules in addition to a user-specified list of modules. Not sure what's the benefit of the traditional behavior that you restored, it's not spelled out.

TLDR: dtb-s and dtbo-s are not getting build for anyone with MODULES_OVERRIDE in make.conf (on relevant platforms).

---
  sys/modules/Makefile | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 00afbffb1baf..3a009f071cab 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -848,8 +848,6 @@ _nvram=             opal_nvram
  _nvram+=      powermac_nvram
  .endif
-.endif
-
  .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64"
  _bcm283x_clkman=  bcm283x_clkman
  _bcm283x_pwm=  bcm283x_pwm
@@ -867,6 +865,8 @@ SUBDIR+=${MODULES_EXTRA}
  SUBDIR:= ${SUBDIR:N${reject}}
  .endfor
+.endif # MODULES_OVERRIDE -- Keep last
+
  # Calling kldxref(8) for each module is expensive.
  .if !defined(NO_XREF)
  .MAKEFLAGS+=  -DNO_XREF

--
Andriy Gapon

https://standforukraine.com
https://razomforukraine.org


Reply via email to