lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <4D90636902000078000389B8@vpn.id2.novell.com>
Date:	Mon, 28 Mar 2011 09:31:05 +0100
From:	"Jan Beulich" <JBeulich@...ell.com>
To:	"Lai Jiangshan" <laijs@...fujitsu.com>
Cc:	"Ingo Molnar" <mingo@...e.hu>,
	"Alexander van Heukelum" <heukelum@...tmail.fm>,
	"Dipankar Sarma" <dipankar@...ibm.com>,
	"Peter Zijlstra" <peterz@...radead.org>,
	"Andrew Morton" <akpm@...ux-foundation.org>,
	"H. Peter Anvin" <hpa@...ux.intel.com>,
	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
	"Sam Ravnborg" <sam@...nborg.org>,
	"David Howells" <dhowells@...hat.com>,
	"Oleg Nesterov" <oleg@...hat.com>,
	"Roland McGrath" <roland@...hat.com>,
	"Christoph Lameter" <clameter@....com>,
	"Serge Hallyn" <serue@...ibm.com>, <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH 2/5] kbuild: dedumplicated the generating code

>>> On 28.03.11 at 04:58, Lai Jiangshan <laijs@...fujitsu.com> wrote:

> 
> cmd_bounds and cmd_offsets are almost the same, dedumplicated them.
> The definition of sed-y is also moved up the top of the file.
> 
> Signed-off-by: Lai Jiangshan <laijs@...fujitsu.com>
> ---
>  Kbuild |   60 +++++++++++++++++++++---------------------------------------
>  1 files changed, 21 insertions(+), 39 deletions(-)
> 
> diff --git a/Kbuild b/Kbuild
> index 2114113..5c2ee83 100644
> --- a/Kbuild
> +++ b/Kbuild
> @@ -5,19 +5,19 @@
>  # 2) Generate asm-offsets.h (may need bounds.h)
>  # 3) Check for missing system calls
>  
> -#####
> -# 1) Generate bounds.h
> -
> -bounds-file := include/generated/bounds.h
> -
> -always  := $(bounds-file)
> -targets := $(bounds-file) kernel/bounds.s
> +# Default sed regexp - multiline due to syntax constraints
> +define sed-y
> +	"/^->/{s:->#\(.*\):/* \1 */:; \
> +	s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
> +	s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \

Having to touch (move) this code would imo be a very good
opportunity to simplify it again: The replacement string is the
same for those two lines, and the second match expression is
a super set of the first one. That is, the first one can be
dropped, and hence the whole thing changed back to its
pre-3234282f33b29d349bcada40204fc7c8fda7fe72 form.

Jan

> +	s:->::; p;}"
> +endef
>  
> -quiet_cmd_bounds = GEN     $@
> -define cmd_bounds
> +quiet_cmd_kbuild_gen = GEN     $@
> +define cmd_kbuild_gen
>  	(set -e; \
> -	 echo "#ifndef __LINUX_BOUNDS_H__"; \
> -	 echo "#define __LINUX_BOUNDS_H__"; \
> +	 echo "#ifndef __$$(echo $@ | tr -- '-./a-z' '___A-Z')__"; \
> +	 echo "#define __$$(echo $@ | tr -- '-./a-z' '___A-Z')__"; \
>  	 echo "/*"; \
>  	 echo " * DO NOT MODIFY."; \
>  	 echo " *"; \
> @@ -30,6 +30,14 @@ define cmd_bounds
>  	 echo "#endif" ) > $@
>  endef
>  
> +#####
> +# 1) Generate bounds.h
> +
> +bounds-file := include/generated/bounds.h
> +
> +always  := $(bounds-file)
> +targets := $(bounds-file) kernel/bounds.s
> +
>  # We use internal kbuild rules to avoid the "is up to date" message from 
> make
>  kernel/bounds.s: kernel/bounds.c FORCE
>  	$(Q)mkdir -p $(dir $@)
> @@ -37,7 +45,7 @@ kernel/bounds.s: kernel/bounds.c FORCE
>  
>  $(obj)/$(bounds-file): kernel/bounds.s Kbuild
>  	$(Q)mkdir -p $(dir $@)
> -	$(call cmd,bounds)
> +	$(call cmd,kbuild_gen)
>  
>  #####
>  # 2) Generate asm-offsets.h
> @@ -49,32 +57,6 @@ always  += $(offsets-file)
>  targets += $(offsets-file)
>  targets += arch/$(SRCARCH)/kernel/asm-offsets.s
>  
> -
> -# Default sed regexp - multiline due to syntax constraints
> -define sed-y
> -	"/^->/{s:->#\(.*\):/* \1 */:; \
> -	s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
> -	s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
> -	s:->::; p;}"
> -endef
> -
> -quiet_cmd_offsets = GEN     $@
> -define cmd_offsets
> -	(set -e; \
> -	 echo "#ifndef __ASM_OFFSETS_H__"; \
> -	 echo "#define __ASM_OFFSETS_H__"; \
> -	 echo "/*"; \
> -	 echo " * DO NOT MODIFY."; \
> -	 echo " *"; \
> -	 echo " * This file was generated by Kbuild"; \
> -	 echo " *"; \
> -	 echo " */"; \
> -	 echo ""; \
> -	 sed -ne $(sed-y) $<; \
> -	 echo ""; \
> -	 echo "#endif" ) > $@
> -endef
> -
>  # We use internal kbuild rules to avoid the "is up to date" message from 
> make
>  arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c 
> \
>                                        $(obj)/$(bounds-file) FORCE
> @@ -82,7 +64,7 @@ arch/$(SRCARCH)/kernel/asm-offsets.s: 
> arch/$(SRCARCH)/kernel/asm-offsets.c \
>  	$(call if_changed_dep,cc_s_c)
>  
>  $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild
> -	$(call cmd,offsets)
> +	$(call cmd,kbuild_gen)
>  
>  #####
>  # 3) Check for missing system calls
> -- 
> 1.7.4



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ