[PATCH 2/2] kbuild: move asm-offsets.h rule to ./Kbuild
Masahiro Yamada
yamada.m at jp.panasonic.com
Tue Dec 23 20:23:27 PST 2014
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 <yamada.m at jp.panasonic.com>
---
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-offset.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-offset.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 0c3f408..3296096 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 0000000..7bf6d12
--- /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 <linux/kbuild.h>
+
+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 0000000..9003c73
--- /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 <linux/kbuild.h>
+
+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 0000000..22f382b
--- /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 <linux/kbuild.h>
+
+int main(void)
+{
+ return 0;
+}
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index f3f4f67..6ef2bf7 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-offset.c b/arch/nios2/lib/asm-offset.c
new file mode 100644
index 0000000..21e4771
--- /dev/null
+++ b/arch/nios2/lib/asm-offset.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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <linux/kbuild.h>
+
+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 0000000..8cee8e0
--- /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 <linux/kbuild.h>
+
+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 0000000..bef280e
--- /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 <linux/kbuild.h>
+
+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 0000000..22f382b
--- /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 <linux/kbuild.h>
+
+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 0000000..b1be3e5
--- /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 <linux/kbuild.h>
+
+void common(void)
+{
+}
--
1.9.1
More information about the barebox
mailing list