From 5c75824d915e123a29dd5c422828093950a0f4cf Mon Sep 17 00:00:00 2001 From: Hendrik Brueckner Date: Mon, 11 Dec 2017 14:54:08 +0100 Subject: s390/syscalls: add Makefile to generate system call header files Generate the system call specific files from the archheaders and archprepare make targets. Signed-off-by: Hendrik Brueckner Acked-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/Makefile | 5 ++++ arch/s390/kernel/syscalls/Makefile | 52 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 arch/s390/kernel/syscalls/Makefile diff --git a/arch/s390/Makefile b/arch/s390/Makefile index aa37ba79c762..7b31e0626f08 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@ -111,6 +111,7 @@ drivers-y += drivers/s390/ drivers-$(CONFIG_OPROFILE) += arch/s390/oprofile/ boot := arch/s390/boot +syscalls := arch/s390/kernel/syscalls tools := arch/s390/tools all: image bzImage @@ -132,7 +133,11 @@ archclean: $(Q)$(MAKE) $(clean)=$(boot) $(Q)$(MAKE) $(clean)=$(tools) +archheaders: + $(Q)$(MAKE) $(build)=$(syscalls) uapi + archprepare: + $(Q)$(MAKE) $(build)=$(syscalls) kapi $(Q)$(MAKE) $(build)=$(tools) include/generated/facilities.h $(Q)$(MAKE) $(build)=$(tools) include/generated/dis.h diff --git a/arch/s390/kernel/syscalls/Makefile b/arch/s390/kernel/syscalls/Makefile new file mode 100644 index 000000000000..8ff96c08955f --- /dev/null +++ b/arch/s390/kernel/syscalls/Makefile @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: GPL-2.0 + +gen := arch/$(ARCH)/include/generated +kapi := $(gen)/asm +uapi := $(gen)/uapi/asm + +syscall := $(srctree)/$(src)/syscall.tbl +systbl := $(srctree)/$(src)/syscalltbl + +gen-y := $(kapi)/syscall_table.h +kapi-hdrs-y := $(kapi)/unistd_nr.h +uapi-hdrs-y := $(uapi)/unistd_32.h +uapi-hdrs-y += $(uapi)/unistd_64.h + +targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y)) + +PHONY += kapi uapi + +kapi: $(gen-y) $(kapi-hdrs-y) +uapi: $(uapi-hdrs-y) + + +# Create output directory if not already present +_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \ + $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') + +define filechk_syshdr + $(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2" +endef + +define filechk_sysnr + $(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget)) +endef + +define filechk_syscalls + $(CONFIG_SHELL) '$(systbl)' -S +endef + +syshdr_abi_unistd_32 := common,32 +$(uapi)/unistd_32.h: $(syscall) FORCE + $(call filechk,syshdr,$@) + +syshdr_abi_unistd_64 := common,64 +$(uapi)/unistd_64.h: $(syscall) FORCE + $(call filechk,syshdr,$@) + +$(kapi)/syscall_table.h: $(syscall) FORCE + $(call filechk,syscalls) + +sysnr_abi_unistd_nr := common,32,64 +$(kapi)/unistd_nr.h: $(syscall) FORCE + $(call filechk,sysnr) -- cgit v1.2.3-59-g8ed1b