Skip to content

Commit 5f2fb52

Browse files
committed
kbuild: rename hostprogs-y/always to hostprogs/always-y
In old days, the "host-progs" syntax was used for specifying host programs. It was renamed to the current "hostprogs-y" in 2004. It is typically useful in scripts/Makefile because it allows Kbuild to selectively compile host programs based on the kernel configuration. This commit renames like follows: always -> always-y hostprogs-y -> hostprogs So, scripts/Makefile will look like this: always-$(CONFIG_BUILD_BIN2C) += ... always-$(CONFIG_KALLSYMS) += ... ... hostprogs := $(always-y) $(always-m) I think this makes more sense because a host program is always a host program, irrespective of the kernel configuration. We want to specify which ones to compile by CONFIG options, so always-y will be handier. The "always", "hostprogs-y", "hostprogs-m" will be kept for backward compatibility for a while. Signed-off-by: Masahiro Yamada <[email protected]>
1 parent faa7bdd commit 5f2fb52

File tree

49 files changed

+172
-190
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+172
-190
lines changed

Documentation/kbuild/makefiles.rst

+16-33
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ This document describes the Linux kernel Makefiles.
2828
--- 4.3 Using C++ for host programs
2929
--- 4.4 Controlling compiler options for host programs
3030
--- 4.5 When host programs are actually built
31-
--- 4.6 Using hostprogs-$(CONFIG_FOO)
3231
3332
=== 5 Kbuild clean infrastructure
3433
@@ -595,11 +594,11 @@ compilation stage.
595594
Two steps are required in order to use a host executable.
596595

597596
The first step is to tell kbuild that a host program exists. This is
598-
done utilising the variable hostprogs-y.
597+
done utilising the variable "hostprogs".
599598

600599
The second step is to add an explicit dependency to the executable.
601600
This can be done in two ways. Either add the dependency in a rule,
602-
or utilise the variable $(always).
601+
or utilise the variable "always-y".
603602
Both possibilities are described in the following.
604603

605604
4.1 Simple Host Program
@@ -612,7 +611,7 @@ Both possibilities are described in the following.
612611

613612
Example::
614613

615-
hostprogs-y := bin2hex
614+
hostprogs := bin2hex
616615

617616
Kbuild assumes in the above example that bin2hex is made from a single
618617
c-source file named bin2hex.c located in the same directory as
@@ -630,7 +629,7 @@ Both possibilities are described in the following.
630629
Example::
631630

632631
#scripts/lxdialog/Makefile
633-
hostprogs-y := lxdialog
632+
hostprogs := lxdialog
634633
lxdialog-objs := checklist.o lxdialog.o
635634

636635
Objects with extension .o are compiled from the corresponding .c
@@ -650,7 +649,7 @@ Both possibilities are described in the following.
650649
Example::
651650

652651
#scripts/kconfig/Makefile
653-
hostprogs-y := qconf
652+
hostprogs := qconf
654653
qconf-cxxobjs := qconf.o
655654

656655
In the example above the executable is composed of the C++ file
@@ -662,7 +661,7 @@ Both possibilities are described in the following.
662661
Example::
663662

664663
#scripts/kconfig/Makefile
665-
hostprogs-y := qconf
664+
hostprogs := qconf
666665
qconf-cxxobjs := qconf.o
667666
qconf-objs := check.o
668667

@@ -710,55 +709,39 @@ Both possibilities are described in the following.
710709
Example::
711710

712711
#drivers/pci/Makefile
713-
hostprogs-y := gen-devlist
712+
hostprogs := gen-devlist
714713
$(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
715714
( cd $(obj); ./gen-devlist ) < $<
716715

717716
The target $(obj)/devlist.h will not be built before
718717
$(obj)/gen-devlist is updated. Note that references to
719718
the host programs in special rules must be prefixed with $(obj).
720719

721-
(2) Use $(always)
720+
(2) Use always-y
722721

723722
When there is no suitable special rule, and the host program
724-
shall be built when a makefile is entered, the $(always)
723+
shall be built when a makefile is entered, the always-y
725724
variable shall be used.
726725

727726
Example::
728727

729728
#scripts/lxdialog/Makefile
730-
hostprogs-y := lxdialog
731-
always := $(hostprogs-y)
729+
hostprogs := lxdialog
730+
always-y := $(hostprogs)
732731

733732
This will tell kbuild to build lxdialog even if not referenced in
734733
any rule.
735734

736-
4.6 Using hostprogs-$(CONFIG_FOO)
737-
---------------------------------
738-
739-
A typical pattern in a Kbuild file looks like this:
740-
741-
Example::
742-
743-
#scripts/Makefile
744-
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
745-
746-
Kbuild knows about both 'y' for built-in and 'm' for module.
747-
So if a config symbol evaluates to 'm', kbuild will still build
748-
the binary. In other words, Kbuild handles hostprogs-m exactly
749-
like hostprogs-y. But only hostprogs-y is recommended to be used
750-
when no CONFIG symbols are involved.
751-
752735
5 Kbuild clean infrastructure
753736
=============================
754737

755738
"make clean" deletes most generated files in the obj tree where the kernel
756739
is compiled. This includes generated files such as host programs.
757-
Kbuild knows targets listed in $(hostprogs-y), $(hostprogs-m), $(always),
758-
$(extra-y) and $(targets). They are all deleted during "make clean".
759-
Files matching the patterns "*.[oas]", "*.ko", plus some additional files
760-
generated by kbuild are deleted all over the kernel src tree when
761-
"make clean" is executed.
740+
Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
741+
$(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
742+
during "make clean". Files matching the patterns "*.[oas]", "*.ko", plus
743+
some additional files generated by kbuild are deleted all over the kernel
744+
source tree when "make clean" is executed.
762745

763746
Additional files or directories can be specified in kbuild makefiles by use of
764747
$(clean-files).

Kbuild

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
bounds-file := include/generated/bounds.h
99

10-
always := $(bounds-file)
10+
always-y := $(bounds-file)
1111
targets := kernel/bounds.s
1212

1313
$(bounds-file): kernel/bounds.s FORCE
@@ -28,7 +28,7 @@ $(timeconst-file): kernel/time/timeconst.bc FORCE
2828

2929
offsets-file := include/generated/asm-offsets.h
3030

31-
always += $(offsets-file)
31+
always-y += $(offsets-file)
3232
targets += arch/$(SRCARCH)/kernel/asm-offsets.s
3333

3434
arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
@@ -39,7 +39,7 @@ $(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
3939
#####
4040
# Check for missing system calls
4141

42-
always += missing-syscalls
42+
always-y += missing-syscalls
4343

4444
quiet_cmd_syscalls = CALL $<
4545
cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
@@ -50,7 +50,7 @@ missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
5050
#####
5151
# Check atomic headers are up-to-date
5252

53-
always += old-atomics
53+
always-y += old-atomics
5454

5555
quiet_cmd_atomics = CALL $<
5656
cmd_atomics = $(CONFIG_SHELL) $<

arch/alpha/boot/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# Copyright (C) 1994 by Linus Torvalds
99
#
1010

11-
hostprogs-y := tools/mkbb tools/objstrip
11+
hostprogs := tools/mkbb tools/objstrip
1212
targets := vmlinux.gz vmlinux \
1313
vmlinux.nh tools/lxboot tools/bootlx tools/bootph \
1414
tools/bootpzh bootloader bootpheader bootpzheader

arch/arm/vdso/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
ARCH_REL_TYPE_ABS := R_ARM_JUMP_SLOT|R_ARM_GLOB_DAT|R_ARM_ABS32
66
include $(srctree)/lib/vdso/Makefile
77

8-
hostprogs-y := vdsomunge
8+
hostprogs := vdsomunge
99

1010
obj-vdso := vgettimeofday.o datapage.o note.o
1111

arch/arm64/kernel/vdso32/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ VDSO_LDFLAGS += $(call cc32-ldoption,-fuse-ld=bfd)
115115

116116
# Borrow vdsomunge.c from the arm vDSO
117117
# We have to use a relative path because scripts/Makefile.host prefixes
118-
# $(hostprogs-y) with $(obj)
118+
# $(hostprogs) with $(obj)
119119
munge := ../../../arm/vdso/vdsomunge
120-
hostprogs-y := $(munge)
120+
hostprogs := $(munge)
121121

122122
c-obj-vdso := note.o
123123
c-obj-vdso-gettimeofday := vgettimeofday.o

arch/mips/boot/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ endif
2121
drop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
2222
strip-flags := $(addprefix --remove-section=,$(drop-sections))
2323

24-
hostprogs-y := elf2ecoff
24+
hostprogs := elf2ecoff
2525

2626
suffix-y := bin
2727
suffix-$(CONFIG_KERNEL_BZIP2) := bz2

arch/mips/boot/compressed/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ $(obj)/piggy.o: $(obj)/dummy.o $(obj)/vmlinux.bin.z FORCE
8484
HOSTCFLAGS_calc_vmlinuz_load_addr.o += $(LINUXINCLUDE)
8585

8686
# Calculate the load address of the compressed kernel image
87-
hostprogs-y := calc_vmlinuz_load_addr
87+
hostprogs := calc_vmlinuz_load_addr
8888

8989
ifneq ($(zload-y),)
9090
VMLINUZ_LOAD_ADDRESS := $(zload-y)
@@ -112,7 +112,7 @@ ifdef CONFIG_MACH_DECSTATION
112112
endif
113113

114114
# elf2ecoff can only handle 32bit image
115-
hostprogs-y += ../elf2ecoff
115+
hostprogs += ../elf2ecoff
116116

117117
ifdef CONFIG_32BIT
118118
VMLINUZ = vmlinuz

arch/mips/boot/tools/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: GPL-2.0
22

3-
hostprogs-y += relocs
3+
hostprogs += relocs
44
relocs-objs += relocs_32.o
55
relocs-objs += relocs_64.o
66
relocs-objs += relocs_main.o

arch/mips/tools/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
hostprogs-y := elf-entry
2+
hostprogs := elf-entry
33
PHONY += elf-entry
44
elf-entry: $(obj)/elf-entry
55
@:
66

7-
hostprogs-$(CONFIG_CPU_LOONGSON3_WORKAROUNDS) += loongson3-llsc-check
7+
hostprogs += loongson3-llsc-check
88
PHONY += loongson3-llsc-check
99
loongson3-llsc-check: $(obj)/loongson3-llsc-check
1010
@:

arch/mips/vdso/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ $(obj)/%.so.raw: OBJCOPYFLAGS := -S
100100
$(obj)/%.so.raw: $(obj)/%.so.dbg.raw FORCE
101101
$(call if_changed,objcopy)
102102

103-
hostprogs-y := genvdso
103+
hostprogs := genvdso
104104

105105
quiet_cmd_genvdso = GENVDSO $@
106106
define cmd_genvdso

arch/powerpc/boot/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ $(patsubst %.S,%.o, $(filter %.S, $(src-boot))): %.o: %.S FORCE
224224
$(obj)/wrapper.a: $(obj-wlib) FORCE
225225
$(call if_changed,bootar)
226226

227-
hostprogs-y := addnote hack-coff mktree
227+
hostprogs := addnote hack-coff mktree
228228

229229
targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a)
230230
extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \
@@ -464,7 +464,7 @@ WRAPPER_BINDIR := /usr/sbin
464464
INSTALL := install
465465

466466
extra-installed := $(patsubst $(obj)/%, $(DESTDIR)$(WRAPPER_OBJDIR)/%, $(extra-y))
467-
hostprogs-installed := $(patsubst %, $(DESTDIR)$(WRAPPER_BINDIR)/%, $(hostprogs-y))
467+
hostprogs-installed := $(patsubst %, $(DESTDIR)$(WRAPPER_BINDIR)/%, $(hostprogs))
468468
wrapper-installed := $(DESTDIR)$(WRAPPER_BINDIR)/wrapper
469469
dts-installed := $(patsubst $(dtstree)/%, $(DESTDIR)$(WRAPPER_DTSDIR)/%, $(wildcard $(dtstree)/*.dts))
470470

arch/s390/tools/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ PHONY += kapi
1010

1111
kapi: $(kapi-hdrs-y)
1212

13-
hostprogs-y += gen_facilities
14-
hostprogs-y += gen_opcode_table
13+
hostprogs += gen_facilities
14+
hostprogs += gen_opcode_table
1515

1616
HOSTCFLAGS_gen_facilities.o += $(LINUXINCLUDE)
1717

arch/sparc/boot/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
ROOT_IMG := /usr/src/root.img
88
ELFTOAOUT := elftoaout
99

10-
hostprogs-y := piggyback
10+
hostprogs := piggyback
1111
targets := tftpboot.img image zImage vmlinux.aout
1212
clean-files := System.map
1313

arch/sparc/vdso/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ $(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
4141
$(call if_changed,vdso)
4242

4343
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
44-
hostprogs-y += vdso2c
44+
hostprogs += vdso2c
4545

4646
quiet_cmd_vdso2c = VDSO2C $@
4747
cmd_vdso2c = $(obj)/vdso2c $< $(<:%.dbg=%) $@

arch/x86/boot/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ setup-y += video-vesa.o
4545
setup-y += video-bios.o
4646

4747
targets += $(setup-y)
48-
hostprogs-y := tools/build
49-
hostprogs-$(CONFIG_X86_FEATURE_NAMES) += mkcpustr
48+
hostprogs := tools/build
49+
hostprogs += mkcpustr
5050

5151
HOST_EXTRACFLAGS += -I$(srctree)/tools/include \
5252
-include include/generated/autoconf.h \

arch/x86/boot/compressed/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \
5858
endif
5959
LDFLAGS_vmlinux := -T
6060

61-
hostprogs-y := mkpiggy
61+
hostprogs := mkpiggy
6262
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
6363

6464
sed-voffset := -e 's/^\([0-9a-fA-F]*\) [ABCDGRSTVW] \(_text\|__bss_start\|_end\)$$/\#define VO_\2 _AC(0x\1,UL)/p'

arch/x86/entry/vdso/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ $(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
5959
$(call if_changed,vdso_and_check)
6060

6161
HOST_EXTRACFLAGS += -I$(srctree)/tools/include -I$(srctree)/include/uapi -I$(srctree)/arch/$(SUBARCH)/include/uapi
62-
hostprogs-y += vdso2c
62+
hostprogs += vdso2c
6363

6464
quiet_cmd_vdso2c = VDSO2C $@
6565
cmd_vdso2c = $(obj)/vdso2c $< $(<:%.dbg=%) $@

arch/x86/realmode/rm/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ OBJECT_FILES_NON_STANDARD := y
1212
# Prevents link failures: __sanitizer_cov_trace_pc() is not linked in.
1313
KCOV_INSTRUMENT := n
1414

15-
always := realmode.bin realmode.relocs
15+
always-y := realmode.bin realmode.relocs
1616

1717
wakeup-objs := wakeup_asm.o wakemain.o video-mode.o
1818
wakeup-objs += copy.o bioscall.o regs.o

arch/x86/tools/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ posttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
2626
$(call cmd,posttest)
2727
$(call cmd,sanitytest)
2828

29-
hostprogs-y += insn_decoder_test insn_sanity
29+
hostprogs += insn_decoder_test insn_sanity
3030

3131
# -I needed for generated C source and C source which in the kernel tree.
3232
HOSTCFLAGS_insn_decoder_test.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/x86/include/uapi/ -I$(srctree)/arch/x86/include/ -I$(srctree)/arch/x86/lib/ -I$(srctree)/include/uapi/
@@ -39,7 +39,7 @@ $(obj)/insn_decoder_test.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/l
3939
$(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
4040

4141
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
42-
hostprogs-y += relocs
42+
hostprogs += relocs
4343
relocs-objs := relocs_32.o relocs_64.o relocs_common.o
4444
PHONY += relocs
4545
relocs: $(obj)/relocs

drivers/gpu/drm/radeon/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
ccflags-y := -Idrivers/gpu/drm/amd/include
77

8-
hostprogs-y := mkregtable
8+
hostprogs := mkregtable
99
clean-files := rn50_reg_safe.h r100_reg_safe.h r200_reg_safe.h rv515_reg_safe.h r300_reg_safe.h r420_reg_safe.h rs600_reg_safe.h r600_reg_safe.h evergreen_reg_safe.h cayman_reg_safe.h
1010

1111
quiet_cmd_mkregtable = MKREGTABLE $@

drivers/tty/vt/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ obj-$(CONFIG_HW_CONSOLE) += vt.o defkeymap.o
1212
# Files generated that shall be removed upon make clean
1313
clean-files := consolemap_deftbl.c defkeymap.c
1414

15-
hostprogs-y += conmakehash
15+
hostprogs += conmakehash
1616

1717
quiet_cmd_conmk = CONMK $@
1818
cmd_conmk = $(obj)/conmakehash $< > $@

drivers/video/logo/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o
1818

1919
# How to generate logo's
2020

21-
hostprogs-y := pnmtologo
21+
hostprogs := pnmtologo
2222

2323
# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
2424
quiet_cmd_logo = LOGO $@

drivers/zorro/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ obj-$(CONFIG_ZORRO) += zorro.o zorro-driver.o zorro-sysfs.o
77
obj-$(CONFIG_PROC_FS) += proc.o
88
obj-$(CONFIG_ZORRO_NAMES) += names.o
99

10-
hostprogs-y := gen-devlist
10+
hostprogs := gen-devlist
1111

1212
# Files generated that shall be removed upon make clean
1313
clean-files := devlist.h

fs/unicode/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ $(obj)/utf8data.h: $(src)/utf8data.h_shipped FORCE
3535
endif
3636

3737
targets += utf8data.h
38-
hostprogs-y += mkutf8data
38+
hostprogs += mkutf8data

0 commit comments

Comments
 (0)