Re: kbuild: make modpost processing configurable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Al.

This is the requested funtionality so you can make modpost errors
warnings instead.
And as bonus the possibility to skip the last-time consuming part of a
kernel build.

Let me know if this does not satisfy your original request.

	Sam

On Tue, Oct 03, 2006 at 04:59:18PM +0000, Linux Kernel Mailing List wrote:
> commit ea837f1c050344c3f884531a195c6e339b1a54e8
> tree 269e1188358452e7f4fda5052ab6363d7e5b5b87
> parent e94c5bde703f2f9f86d098b6bf8275c64fab10eb
> author Sam Ravnborg <[email protected]> 1159695324 +0200
> committer Sam Ravnborg <[email protected]> 1159695324 +0200
> 
> kbuild: make modpost processing configurable
> 
> On request from Al Viro make modpost processing configurable.
> 
> KBUILD_MODPOST_WARN can be set to make modpost warn instead of
> error out in case on unresolved symbols in final module link.
> 
> KBUILD_MODPOST_NOFINAL can be set to avoid the final and timeconsuming
> .c file generation and link of .ko files. This is solely useful for
> speeding up when doing compile checks with for example allmodconfig
> 
> Signed-off-by: Sam Ravnborg <[email protected]>
> 
>  scripts/Makefile.modpost |   11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
> index 4b2721c..6c5469b 100644
> --- a/scripts/Makefile.modpost
> +++ b/scripts/Makefile.modpost
> @@ -32,6 +32,10 @@ #     - See include/linux/module.h for m
>  # Step 4 is solely used to allow module versioning in external modules,
>  # where the CRC of each module is retrieved from the Module.symers file.
>  
> +# KBUILD_MODPOST_WARN can be set to avoid error out in case of undefined
> +# symbols in the final module linking stage
> +# KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules.
> +# This is solely usefull to speed up test compiles
>  PHONY := _modpost
>  _modpost: __modpost
>  
> @@ -46,7 +50,8 @@ # Step 1), find all modules listed in $(
>  __modules := $(sort $(shell grep -h '\.ko' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
>  modules   := $(patsubst %.o,%.ko, $(wildcard $(__modules:.ko=.o)))
>  
> -_modpost: $(modules)
> +# Stop after building .o files if NOFINAL is set. Makes compile tests quicker
> +_modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules))
>  
>  
>  # Step 2), invoke modpost
> @@ -58,7 +63,7 @@ quiet_cmd_modpost = MODPOST $(words $(fi
>  	$(if $(KBUILD_EXTMOD),-i,-o) $(kernelsymfile) \
>  	$(if $(KBUILD_EXTMOD),-I $(modulesymfile)) \
>  	$(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \
> -	$(if $(KBUILD_EXTMOD),-w) \
> +	$(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
>  	$(wildcard vmlinux) $(filter-out FORCE,$^)
>  
>  PHONY += __modpost
> @@ -92,7 +97,7 @@ targets += $(modules:.ko=.mod.o)
>  
>  # Step 6), final link of the modules
>  quiet_cmd_ld_ko_o = LD [M]  $@
> -      cmd_ld_ko_o = $(LD) $(LDFLAGS) $(LDFLAGS_MODULE) -o $@ 		\
> +      cmd_ld_ko_o = $(LD) $(LDFLAGS) $(LDFLAGS_MODULE) -o $@		\
>  			  $(filter-out FORCE,$^)
>  
>  $(modules): %.ko :%.o %.mod.o FORCE
> -
> To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux