b8321ed4a4
- Add new environment variables, USERCFLAGS and USERLDFLAGS to allow additional flags to be passed to user-space programs. - Fix missing fflush() bugs in Kconfig and fixdep - Fix a minor bug in the comment format of the .config file - Make kallsyms ignore llvm's local labels, .L* - Fix UAPI compile-test for cross-compiling with Clang - Extend the LLVM= syntax to support LLVM=<suffix> form for using a particular version of LLVm, and LLVM=<prefix> form for using custom LLVM in a particular directory path. - Clean up Makefiles -----BEGIN PGP SIGNATURE----- iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAmJFGloVHG1hc2FoaXJv eUBrZXJuZWwub3JnAAoJED2LAQed4NsGH0kP/j6Vx5BqEv3tP2Q+UANxLqITleJs IFpbSesz/BhlG7I/IapWmCDSqFbYd5uJTO4ko8CsPmZHcxr6Gw3y+DN5yQACKaG/ p9xiF6GjPyKR8+VdcT2tV50+dVY8ANe/DxCyzKrJd/uyYxgARPKJh0KRMNz+d9lj ixUpCXDhx/XlKzPIlcxrvhhjevKz+NnHmN0fe6rzcOw9KzBGBTsf20Q3PqUuBOKa rWHsRGcBPA8eKLfWT1Us1jjic6cT2g4aMpWjF20YgUWKHgWVKcNHpxYKGXASVo/z ewdDnNfmwo7f7fKMCDDro9iwFWV/BumGtn43U00tnqdBcTpFojPlEOga37UPbZDF nmTblGVUhR0vn4PmfBy8WkAkbW+IpVatKwJGV4J3KjSvdWvZOmVj9VUGLVAR0TXW /YcgRs6EtG8Hn0IlCj0fvZ5wRWoDLbP2DSZ67R/44EP0GaNQPwUe4FI1izEE4EYX oVUAIxcKixWGj4RmdtmtMMdUcZzTpbgS9uloMUmS3u9LK0Ir/8tcWaf2zfMO6Jl2 p4Q31s1dUUKCnFnj0xDKRyKGUkxYebrHLfuBqi0RIc0xRpSlxoXe3Dynm9aHEQoD ZSV0eouQJxnaxM1ck5Bu4AHLgEebHfEGjWVyUHno7jFU5EI9Wpbqpe4pCYEEDTm1 +LJMEpdZO0dFvpF+ =84rW -----END PGP SIGNATURE----- Merge tag 'kbuild-v5.18-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - Add new environment variables, USERCFLAGS and USERLDFLAGS to allow additional flags to be passed to user-space programs. - Fix missing fflush() bugs in Kconfig and fixdep - Fix a minor bug in the comment format of the .config file - Make kallsyms ignore llvm's local labels, .L* - Fix UAPI compile-test for cross-compiling with Clang - Extend the LLVM= syntax to support LLVM=<suffix> form for using a particular version of LLVm, and LLVM=<prefix> form for using custom LLVM in a particular directory path. - Clean up Makefiles * tag 'kbuild-v5.18-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: Make $(LLVM) more flexible kbuild: add --target to correctly cross-compile UAPI headers with Clang fixdep: use fflush() and ferror() to ensure successful write to files arch: syscalls: simplify uapi/kapi directory creation usr/include: replace extra-y with always-y certs: simplify empty certs creation in certs/Makefile certs: include certs/signing_key.x509 unconditionally kallsyms: ignore all local labels prefixed by '.L' kconfig: fix missing '# end of' for empty menu kconfig: add fflush() before ferror() check kbuild: replace $(if A,A,B) with $(or A,B) kbuild: Add environment variables for userprogs flags kbuild: unify cmd_copy and cmd_shipped
79 lines
2.5 KiB
Makefile
79 lines
2.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
out := arch/$(SRCARCH)/include/generated/asm
|
|
uapi := arch/$(SRCARCH)/include/generated/uapi/asm
|
|
|
|
# Create output directory if not already present
|
|
$(shell mkdir -p $(out) $(uapi))
|
|
|
|
syscall32 := $(src)/syscall_32.tbl
|
|
syscall64 := $(src)/syscall_64.tbl
|
|
|
|
syshdr := $(srctree)/scripts/syscallhdr.sh
|
|
systbl := $(srctree)/scripts/syscalltbl.sh
|
|
offset :=
|
|
prefix :=
|
|
|
|
quiet_cmd_syshdr = SYSHDR $@
|
|
cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --abis $(abis) --emit-nr \
|
|
$(if $(offset),--offset $(offset)) \
|
|
$(if $(prefix),--prefix $(prefix)) \
|
|
$< $@
|
|
quiet_cmd_systbl = SYSTBL $@
|
|
cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@
|
|
|
|
quiet_cmd_hypercalls = HYPERCALLS $@
|
|
cmd_hypercalls = $(CONFIG_SHELL) '$<' $@ $(filter-out $<, $(real-prereqs))
|
|
|
|
$(uapi)/unistd_32.h: abis := i386
|
|
$(uapi)/unistd_32.h: $(syscall32) $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
$(out)/unistd_32_ia32.h: abis := i386
|
|
$(out)/unistd_32_ia32.h: prefix := ia32_
|
|
$(out)/unistd_32_ia32.h: $(syscall32) $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
$(uapi)/unistd_x32.h: abis := common,x32
|
|
$(uapi)/unistd_x32.h: offset := __X32_SYSCALL_BIT
|
|
$(uapi)/unistd_x32.h: $(syscall64) $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
$(uapi)/unistd_64.h: abis := common,64
|
|
$(uapi)/unistd_64.h: $(syscall64) $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
$(out)/unistd_64_x32.h: abis := x32
|
|
$(out)/unistd_64_x32.h: prefix := x32_
|
|
$(out)/unistd_64_x32.h: $(syscall64) $(syshdr) FORCE
|
|
$(call if_changed,syshdr)
|
|
|
|
$(out)/syscalls_32.h: abis := i386
|
|
$(out)/syscalls_32.h: $(syscall32) $(systbl) FORCE
|
|
$(call if_changed,systbl)
|
|
$(out)/syscalls_64.h: abis := common,64
|
|
$(out)/syscalls_64.h: $(syscall64) $(systbl) FORCE
|
|
$(call if_changed,systbl)
|
|
$(out)/syscalls_x32.h: abis := common,x32
|
|
$(out)/syscalls_x32.h: $(syscall64) $(systbl) FORCE
|
|
$(call if_changed,systbl)
|
|
|
|
$(out)/xen-hypercalls.h: $(srctree)/scripts/xen-hypercalls.sh FORCE
|
|
$(call if_changed,hypercalls)
|
|
|
|
$(out)/xen-hypercalls.h: $(srctree)/include/xen/interface/xen*.h
|
|
|
|
uapisyshdr-y += unistd_32.h unistd_64.h unistd_x32.h
|
|
syshdr-y += syscalls_32.h
|
|
syshdr-$(CONFIG_X86_64) += unistd_32_ia32.h unistd_64_x32.h
|
|
syshdr-$(CONFIG_X86_64) += syscalls_64.h
|
|
syshdr-$(CONFIG_X86_X32_ABI) += syscalls_x32.h
|
|
syshdr-$(CONFIG_XEN) += xen-hypercalls.h
|
|
|
|
uapisyshdr-y := $(addprefix $(uapi)/, $(uapisyshdr-y))
|
|
syshdr-y := $(addprefix $(out)/, $(syshdr-y))
|
|
targets += $(addprefix ../../../../, $(uapisyshdr-y) $(syshdr-y))
|
|
|
|
PHONY += all
|
|
all: $(uapisyshdr-y) $(syshdr-y)
|
|
@:
|