From d6d28acee05db669c55b53095044c6a791127c14 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Wed, 24 Dec 2014 13:23:27 +0900 Subject: kbuild: move asm-offsets.h rule to ./Kbuild Currently, MIPS is the only architecture that needs include/generated/asm-offsets.h, but we have got ./Kbuild file now. It is a good reason to move asm-offsets.h rule from arch/mips/Makefile to ./Kbuild and add dummy asm-offsets.c for the other architectures. asm-offsets.h would be useful for all the architectures. This commit does not implement include/generated/bounds.h, but if necessary, it is easy to implement it. Signed-off-by: Masahiro Yamada Signed-off-by: Sascha Hauer --- Kbuild | 45 +++++++++++++++++++++++++++++++++++++++-- arch/arm/lib/asm-offsets.c | 16 +++++++++++++++ arch/blackfin/lib/asm-offsets.c | 12 +++++++++++ arch/efi/lib/asm-offsets.c | 12 +++++++++++ arch/mips/Makefile | 43 --------------------------------------- arch/nios2/lib/asm-offsets.c | 22 ++++++++++++++++++++ arch/openrisc/lib/asm-offsets.c | 18 +++++++++++++++++ arch/ppc/lib/asm-offsets.c | 21 +++++++++++++++++++ arch/sandbox/lib/asm-offsets.c | 12 +++++++++++ arch/x86/lib/asm-offsets.c | 11 ++++++++++ 10 files changed, 167 insertions(+), 45 deletions(-) create mode 100644 arch/arm/lib/asm-offsets.c create mode 100644 arch/blackfin/lib/asm-offsets.c create mode 100644 arch/efi/lib/asm-offsets.c create mode 100644 arch/nios2/lib/asm-offsets.c create mode 100644 arch/openrisc/lib/asm-offsets.c create mode 100644 arch/ppc/lib/asm-offsets.c create mode 100644 arch/sandbox/lib/asm-offsets.c create mode 100644 arch/x86/lib/asm-offsets.c diff --git a/Kbuild b/Kbuild index 0c3f408958..329609604f 100644 --- a/Kbuild +++ b/Kbuild @@ -1,2 +1,43 @@ -# This does nothing, but some (dummy) comments here. -# If this file gets empty, it is removed by "make distclean". +##### +# 1) Generate asm-offsets.h +# + +offsets-file := include/generated/asm-offsets.h + +always += $(offsets-file) +targets += $(offsets-file) +targets += arch/$(SRCARCH)/lib/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)/lib/asm-offsets.s: arch/$(SRCARCH)/lib/asm-offsets.c FORCE + $(Q)mkdir -p $(dir $@) + $(call if_changed_dep,cc_s_c) + +$(obj)/$(offsets-file): arch/$(SRCARCH)/lib/asm-offsets.s Kbuild + $(call cmd,offsets) diff --git a/arch/arm/lib/asm-offsets.c b/arch/arm/lib/asm-offsets.c new file mode 100644 index 0000000000..7bf6d129cf --- /dev/null +++ b/arch/arm/lib/asm-offsets.c @@ -0,0 +1,16 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/blackfin/lib/asm-offsets.c b/arch/blackfin/lib/asm-offsets.c new file mode 100644 index 0000000000..9003c736ff --- /dev/null +++ b/arch/blackfin/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * generate definitions needed by assembly language modules + * + * Licensed under the GPL-2 or later + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/efi/lib/asm-offsets.c b/arch/efi/lib/asm-offsets.c new file mode 100644 index 0000000000..22f382b71e --- /dev/null +++ b/arch/efi/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/mips/Makefile b/arch/mips/Makefile index f3f4f67d86..6ef2bf75c3 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -148,46 +148,3 @@ dts := arch/mips/dts $(Q)$(MAKE) $(build)=$(dts) $(dts)/$@ KBUILD_IMAGE ?= $(KBUILD_BINARY) - -##### -# Generate asm-offsets.h -# - -offsets-file := include/generated/asm-offsets.h - -always += $(offsets-file) -targets += $(offsets-file) -targets += arch/$(SRCARCH)/lib/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)/lib/asm-offsets.s: arch/$(SRCARCH)/lib/asm-offsets.c FORCE - $(Q)mkdir -p $(dir $@) - $(call if_changed_dep,cc_s_c) - -$(obj)/$(offsets-file): arch/$(SRCARCH)/lib/asm-offsets.s Makefile - $(call cmd,offsets) diff --git a/arch/nios2/lib/asm-offsets.c b/arch/nios2/lib/asm-offsets.c new file mode 100644 index 0000000000..21e4771e54 --- /dev/null +++ b/arch/nios2/lib/asm-offsets.c @@ -0,0 +1,22 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/openrisc/lib/asm-offsets.c b/arch/openrisc/lib/asm-offsets.c new file mode 100644 index 0000000000..8cee8e00c6 --- /dev/null +++ b/arch/openrisc/lib/asm-offsets.c @@ -0,0 +1,18 @@ +/* + * OpenRISC asm-offsets.c + * + * This program is used to generate definitions needed by + * assembly language modules. + * + * We use the technique used in the OSF Mach kernel code: + * generate asm statements containing #defines, + * compile this file to assembler, and then extract the + * #defines from the assembly-language output. + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/ppc/lib/asm-offsets.c b/arch/ppc/lib/asm-offsets.c new file mode 100644 index 0000000000..bef280edd7 --- /dev/null +++ b/arch/ppc/lib/asm-offsets.c @@ -0,0 +1,21 @@ +/* + * This program is used to generate definitions needed by + * assembly language modules. + * + * We use the technique used in the OSF Mach kernel code: + * generate asm statements containing #defines, + * compile this file to assembler, and then extract the + * #defines from the assembly-language output. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/sandbox/lib/asm-offsets.c b/arch/sandbox/lib/asm-offsets.c new file mode 100644 index 0000000000..22f382b71e --- /dev/null +++ b/arch/sandbox/lib/asm-offsets.c @@ -0,0 +1,12 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include + +int main(void) +{ + return 0; +} diff --git a/arch/x86/lib/asm-offsets.c b/arch/x86/lib/asm-offsets.c new file mode 100644 index 0000000000..b1be3e5390 --- /dev/null +++ b/arch/x86/lib/asm-offsets.c @@ -0,0 +1,11 @@ +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ + +#include + +void common(void) +{ +} -- cgit v1.2.3