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

Lines changed: 16 additions & 33 deletions
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

Lines changed: 4 additions & 4 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

0 commit comments

Comments
 (0)