Messages in this thread Patch in this message | | | Date | Fri, 16 Feb 2007 19:56:35 +0100 | From | Sam Ravnborg <> | Subject | Re: [pp] kbuild: asm-offsets generalized |
| |
On Fri, Feb 16, 2007 at 04:59:29PM +0100, Oleg Verych wrote: > > > > > > Proposition will follow. > > > > > [] > > > > [patch proposition] kbuild: lguest with private asm-offsets > [] > > * needs "asm-offsets magic demystified, generalized". > []
To make asm-offset generic I had in mind something like the following. It uses the currect functionality, and allows for architecture override as needed - but default not used. And architecture override is kept in a architecture specific location.
Sam
commit df95bb04b04ff2f64805dfa8459099ffe469c8a5 Author: Sam Ravnborg <sam@uranus.ravnborg.org> Date: Fri Feb 16 19:51:29 2007 +0100
kbuild: Make asm-offset generic
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/include/asm-generic/asm-offset b/include/asm-generic/asm-offset new file mode 100644 index 0000000..5e5629e --- /dev/null +++ b/include/asm-generic/asm-offset @@ -0,0 +1,30 @@ +# +# Support generating constant useable from assembler but defined on C-level +# +# See usage in top-level Kbuild file + +# Default sed regexp - multiline due to syntax constraints +define sed-y + "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" +endef + +# let architectures override the sed expression as needed +-include include/asm/asm-offset + +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 + diff --git a/include/asm-mips/asm-offset b/include/asm-mips/asm-offset new file mode 100644 index 0000000..b2eb959 --- /dev/null +++ b/include/asm-mips/asm-offset @@ -0,0 +1,4 @@ +# Override default sed for MIPS when generating asm-offset +sed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" + + diff --git a/Kbuild b/Kbuild index 0451f69..0a32f5f 100644 --- a/Kbuild +++ b/Kbuild @@ -1,5 +1,8 @@ # # Kbuild for top-level directory of the kernel + + + # This file takes care of the following: # 1) Generate asm-offsets.h @@ -7,36 +10,14 @@ ##### # 1) Generate asm-offsets.h # +include include/asm-generic/asm-offset + offsets-file := include/asm-$(ARCH)/asm-offsets.h always := $(offsets-file) targets := $(offsets-file) targets += arch/$(ARCH)/kernel/asm-offsets.s -# Default sed regexp - multiline due to syntax constraints -define sed-y - "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" -endef -# Override default regexp for specific architectures -sed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" - -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/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE $(Q)mkdir -p $(dir $@) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |