~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/build/Makefile.feature

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/build/Makefile.feature (Architecture i386) and /tools/build/Makefile.feature (Architecture mips)


  1 # SPDX-License-Identifier: GPL-2.0-only             1 # SPDX-License-Identifier: GPL-2.0-only
  2 feature_dir := $(srctree)/tools/build/feature       2 feature_dir := $(srctree)/tools/build/feature
  3                                                     3 
  4 ifneq ($(OUTPUT),)                                  4 ifneq ($(OUTPUT),)
  5   OUTPUT_FEATURES = $(OUTPUT)feature/               5   OUTPUT_FEATURES = $(OUTPUT)feature/
  6   $(shell mkdir -p $(OUTPUT_FEATURES))              6   $(shell mkdir -p $(OUTPUT_FEATURES))
  7 endif                                               7 endif
  8                                                     8 
  9 feature_check = $(eval $(feature_check_code))       9 feature_check = $(eval $(feature_check_code))
 10 define feature_check_code                          10 define feature_check_code
 11   feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUT     11   feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CC="$(CC)" CXX="$(CXX)" CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) $(OUTPUT_FEATURES)test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0)
 12 endef                                              12 endef
 13                                                    13 
 14 feature_set = $(eval $(feature_set_code))          14 feature_set = $(eval $(feature_set_code))
 15 define feature_set_code                            15 define feature_set_code
 16   feature-$(1) := 1                                16   feature-$(1) := 1
 17 endef                                              17 endef
 18                                                    18 
 19 #                                                  19 #
 20 # Build the feature check binaries in parallel     20 # Build the feature check binaries in parallel, ignore errors, ignore return value and suppress output:
 21 #                                                  21 #
 22                                                    22 
 23 #                                                  23 #
 24 # Note that this is not a complete list of all     24 # Note that this is not a complete list of all feature tests, just
 25 # those that are typically built on a fully co     25 # those that are typically built on a fully configured system.
 26 #                                                  26 #
 27 # [ Feature tests not mentioned here have to b     27 # [ Feature tests not mentioned here have to be built explicitly in
 28 #   the rule that uses them - an example for t     28 #   the rule that uses them - an example for that is the 'bionic'
 29 #   feature check. ]                               29 #   feature check. ]
 30 #                                                  30 #
 31 FEATURE_TESTS_BASIC :=                  \          31 FEATURE_TESTS_BASIC :=                  \
 32         backtrace                       \          32         backtrace                       \
 33         dwarf                           \          33         dwarf                           \
 34         dwarf_getlocations              \          34         dwarf_getlocations              \
 35         dwarf_getcfi                    \          35         dwarf_getcfi                    \
 36         eventfd                         \          36         eventfd                         \
 37         fortify-source                  \          37         fortify-source                  \
 38         get_current_dir_name            \          38         get_current_dir_name            \
 39         gettid                          \          39         gettid                          \
 40         glibc                           \          40         glibc                           \
 41         libbfd                          \          41         libbfd                          \
 42         libbfd-buildid                  \          42         libbfd-buildid                  \
 43         libcap                          \          43         libcap                          \
 44         libelf                          \          44         libelf                          \
 45         libelf-getphdrnum               \          45         libelf-getphdrnum               \
 46         libelf-gelf_getnote             \          46         libelf-gelf_getnote             \
 47         libelf-getshdrstrndx            \          47         libelf-getshdrstrndx            \
 48         libnuma                         \          48         libnuma                         \
 49         numa_num_possible_cpus          \          49         numa_num_possible_cpus          \
 50         libperl                         \          50         libperl                         \
 51         libpython                       \          51         libpython                       \
 52         libslang                        \          52         libslang                        \
 53         libslang-include-subdir         \          53         libslang-include-subdir         \
 54         libtraceevent                   \          54         libtraceevent                   \
 55         libtracefs                      \          55         libtracefs                      \
 56         libcrypto                       \          56         libcrypto                       \
 57         libunwind                       \          57         libunwind                       \
 58         pthread-attr-setaffinity-np     \          58         pthread-attr-setaffinity-np     \
 59         pthread-barrier                 \          59         pthread-barrier                 \
 60         reallocarray                    \          60         reallocarray                    \
 61         stackprotector-all              \          61         stackprotector-all              \
 62         timerfd                         \          62         timerfd                         \
 63         libdw-dwarf-unwind              \          63         libdw-dwarf-unwind              \
 64         zlib                            \          64         zlib                            \
 65         lzma                            \          65         lzma                            \
 66         get_cpuid                       \          66         get_cpuid                       \
 67         bpf                             \          67         bpf                             \
 68         scandirat                       \          68         scandirat                       \
 69         sched_getcpu                    \          69         sched_getcpu                    \
 70         sdt                             \          70         sdt                             \
 71         setns                           \          71         setns                           \
 72         libaio                          \          72         libaio                          \
 73         libzstd                         \          73         libzstd                         \
 74         disassembler-four-args          \          74         disassembler-four-args          \
 75         disassembler-init-styled        \          75         disassembler-init-styled        \
 76         file-handle                                76         file-handle
 77                                                    77 
 78 # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is     78 # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
 79 # of all feature tests                             79 # of all feature tests
 80 FEATURE_TESTS_EXTRA :=                  \          80 FEATURE_TESTS_EXTRA :=                  \
 81          bionic                         \          81          bionic                         \
 82          compile-32                     \          82          compile-32                     \
 83          compile-x32                    \          83          compile-x32                    \
 84          cplus-demangle                 \          84          cplus-demangle                 \
 85          cxa-demangle                   \          85          cxa-demangle                   \
 86          gtk2                           \          86          gtk2                           \
 87          gtk2-infobar                   \          87          gtk2-infobar                   \
 88          hello                          \          88          hello                          \
 89          libbabeltrace                  \          89          libbabeltrace                  \
 90          libcapstone                    \          90          libcapstone                    \
 91          libbfd-liberty                 \          91          libbfd-liberty                 \
 92          libbfd-liberty-z               \          92          libbfd-liberty-z               \
 93          libopencsd                     \          93          libopencsd                     \
 94          libunwind-x86                  \          94          libunwind-x86                  \
 95          libunwind-x86_64               \          95          libunwind-x86_64               \
 96          libunwind-arm                  \          96          libunwind-arm                  \
 97          libunwind-aarch64              \          97          libunwind-aarch64              \
 98          libunwind-debug-frame          \          98          libunwind-debug-frame          \
 99          libunwind-debug-frame-arm      \          99          libunwind-debug-frame-arm      \
100          libunwind-debug-frame-aarch64  \         100          libunwind-debug-frame-aarch64  \
101          cxx                            \         101          cxx                            \
102          llvm                           \         102          llvm                           \
103          clang                          \         103          clang                          \
104          libbpf                         \         104          libbpf                         \
105          libbpf-btf__load_from_kernel_by_id \     105          libbpf-btf__load_from_kernel_by_id \
106          libbpf-bpf_prog_load           \         106          libbpf-bpf_prog_load           \
107          libbpf-bpf_object__next_program \        107          libbpf-bpf_object__next_program \
108          libbpf-bpf_object__next_map    \         108          libbpf-bpf_object__next_map    \
109          libbpf-bpf_program__set_insns  \         109          libbpf-bpf_program__set_insns  \
110          libbpf-bpf_create_map          \         110          libbpf-bpf_create_map          \
111          libpfm4                        \         111          libpfm4                        \
112          libdebuginfod                  \         112          libdebuginfod                  \
113          clang-bpf-co-re                          113          clang-bpf-co-re
114                                                   114 
115                                                   115 
116 FEATURE_TESTS ?= $(FEATURE_TESTS_BASIC)           116 FEATURE_TESTS ?= $(FEATURE_TESTS_BASIC)
117                                                   117 
118 ifeq ($(FEATURE_TESTS),all)                       118 ifeq ($(FEATURE_TESTS),all)
119   FEATURE_TESTS := $(FEATURE_TESTS_BASIC) $(FE    119   FEATURE_TESTS := $(FEATURE_TESTS_BASIC) $(FEATURE_TESTS_EXTRA)
120 endif                                             120 endif
121                                                   121 
122 FEATURE_DISPLAY ?=              \                 122 FEATURE_DISPLAY ?=              \
123          dwarf                  \                 123          dwarf                  \
124          dwarf_getlocations     \                 124          dwarf_getlocations     \
125          glibc                  \                 125          glibc                  \
126          libbfd                 \                 126          libbfd                 \
127          libbfd-buildid         \                 127          libbfd-buildid         \
128          libcap                 \                 128          libcap                 \
129          libelf                 \                 129          libelf                 \
130          libnuma                \                 130          libnuma                \
131          numa_num_possible_cpus \                 131          numa_num_possible_cpus \
132          libperl                \                 132          libperl                \
133          libpython              \                 133          libpython              \
134          libcrypto              \                 134          libcrypto              \
135          libunwind              \                 135          libunwind              \
136          libdw-dwarf-unwind     \                 136          libdw-dwarf-unwind     \
137          libcapstone            \                 137          libcapstone            \
138          llvm-perf              \                 138          llvm-perf              \
139          zlib                   \                 139          zlib                   \
140          lzma                   \                 140          lzma                   \
141          get_cpuid              \                 141          get_cpuid              \
142          bpf                    \                 142          bpf                    \
143          libaio                 \                 143          libaio                 \
144          libzstd                                  144          libzstd
145                                                   145 
146 #                                                 146 #
147 # Declare group members of a feature to displa    147 # Declare group members of a feature to display the logical OR of the detection
148 # result instead of each member result.           148 # result instead of each member result.
149 #                                                 149 #
150 FEATURE_GROUP_MEMBERS-libbfd = libbfd-liberty     150 FEATURE_GROUP_MEMBERS-libbfd = libbfd-liberty libbfd-liberty-z
151                                                   151 
152 #                                                 152 #
153 # Declare list of feature dependency packages     153 # Declare list of feature dependency packages that provide pkg-config files.
154 #                                                 154 #
155 FEATURE_PKG_CONFIG ?=           \                 155 FEATURE_PKG_CONFIG ?=           \
156          libtraceevent          \                 156          libtraceevent          \
157          libtracefs                               157          libtracefs
158                                                   158 
159 feature_pkg_config = $(eval $(feature_pkg_conf    159 feature_pkg_config = $(eval $(feature_pkg_config_code))
160 define feature_pkg_config_code                    160 define feature_pkg_config_code
161   FEATURE_CHECK_CFLAGS-$(1) := $(shell $(PKG_C    161   FEATURE_CHECK_CFLAGS-$(1) := $(shell $(PKG_CONFIG) --cflags $(1) 2>/dev/null)
162   FEATURE_CHECK_LDFLAGS-$(1) := $(shell $(PKG_    162   FEATURE_CHECK_LDFLAGS-$(1) := $(shell $(PKG_CONFIG) --libs $(1) 2>/dev/null)
163 endef                                             163 endef
164                                                   164 
165 # Set FEATURE_CHECK_(C|LD)FLAGS-$(package) for    165 # Set FEATURE_CHECK_(C|LD)FLAGS-$(package) for packages using pkg-config.
166 ifneq ($(PKG_CONFIG),)                            166 ifneq ($(PKG_CONFIG),)
167   $(foreach package,$(FEATURE_PKG_CONFIG),$(ca    167   $(foreach package,$(FEATURE_PKG_CONFIG),$(call feature_pkg_config,$(package)))
168 endif                                             168 endif
169                                                   169 
170 # Set FEATURE_CHECK_(C|LD)FLAGS-all for all FE    170 # Set FEATURE_CHECK_(C|LD)FLAGS-all for all FEATURE_TESTS features.
171 # If in the future we need per-feature checks/    171 # If in the future we need per-feature checks/flags for features not
172 # mentioned in this list we need to refactor t    172 # mentioned in this list we need to refactor this ;-).
173 set_test_all_flags = $(eval $(set_test_all_fla    173 set_test_all_flags = $(eval $(set_test_all_flags_code))
174 define set_test_all_flags_code                    174 define set_test_all_flags_code
175   FEATURE_CHECK_CFLAGS-all  += $(FEATURE_CHECK    175   FEATURE_CHECK_CFLAGS-all  += $(FEATURE_CHECK_CFLAGS-$(1))
176   FEATURE_CHECK_LDFLAGS-all += $(FEATURE_CHECK    176   FEATURE_CHECK_LDFLAGS-all += $(FEATURE_CHECK_LDFLAGS-$(1))
177 endef                                             177 endef
178                                                   178 
179 $(foreach feat,$(FEATURE_TESTS),$(call set_tes    179 $(foreach feat,$(FEATURE_TESTS),$(call set_test_all_flags,$(feat)))
180                                                   180 
181 #                                                 181 #
182 # Special fast-path for the 'all features are     182 # Special fast-path for the 'all features are available' case:
183 #                                                 183 #
184 $(call feature_check,all,$(MSG))                  184 $(call feature_check,all,$(MSG))
185                                                   185 
186 #                                                 186 #
187 # Just in case the build freshly failed, make     187 # Just in case the build freshly failed, make sure we print the
188 # feature matrix:                                 188 # feature matrix:
189 #                                                 189 #
190 ifeq ($(feature-all), 1)                          190 ifeq ($(feature-all), 1)
191   #                                               191   #
192   # test-all.c passed - just set all the core     192   # test-all.c passed - just set all the core feature flags to 1:
193   #                                               193   #
194   $(foreach feat,$(FEATURE_TESTS),$(call featu    194   $(foreach feat,$(FEATURE_TESTS),$(call feature_set,$(feat)))
195   #                                               195   #
196   # test-all.c does not comprise these tests,     196   # test-all.c does not comprise these tests, so we need to
197   # for this case to get features proper value    197   # for this case to get features proper values
198   #                                               198   #
199   $(call feature_check,compile-32)                199   $(call feature_check,compile-32)
200   $(call feature_check,compile-x32)               200   $(call feature_check,compile-x32)
201   $(call feature_check,bionic)                    201   $(call feature_check,bionic)
202   $(call feature_check,libbabeltrace)             202   $(call feature_check,libbabeltrace)
203 else                                              203 else
204   $(foreach feat,$(FEATURE_TESTS),$(call featu    204   $(foreach feat,$(FEATURE_TESTS),$(call feature_check,$(feat)))
205 endif                                             205 endif
206                                                   206 
207 #                                                 207 #
208 # Print the result of the feature test:           208 # Print the result of the feature test:
209 #                                                 209 #
210 feature_print_status = $(eval $(feature_print_    210 feature_print_status = $(eval $(feature_print_status_code))
211                                                   211 
212 feature_group = $(eval $(feature_gen_group)) $    212 feature_group = $(eval $(feature_gen_group)) $(GROUP)
213                                                   213 
214 define feature_gen_group                          214 define feature_gen_group
215   GROUP := $(1)                                   215   GROUP := $(1)
216   ifneq ($(feature_verbose),1)                    216   ifneq ($(feature_verbose),1)
217     GROUP += $(FEATURE_GROUP_MEMBERS-$(1))        217     GROUP += $(FEATURE_GROUP_MEMBERS-$(1))
218   endif                                           218   endif
219 endef                                             219 endef
220                                                   220 
221 define feature_print_status_code                  221 define feature_print_status_code
222   ifneq (,$(filter 1,$(foreach feat,$(call fea    222   ifneq (,$(filter 1,$(foreach feat,$(call feature_group,$(feat)),$(feature-$(feat)))))
223     MSG = $(shell printf '...%40s: [ \033[32mo    223     MSG = $(shell printf '...%40s: [ \033[32mon\033[m  ]' $(1))
224   else                                            224   else
225     MSG = $(shell printf '...%40s: [ \033[31mO    225     MSG = $(shell printf '...%40s: [ \033[31mOFF\033[m ]' $(1))
226   endif                                           226   endif
227 endef                                             227 endef
228                                                   228 
229 feature_print_text = $(eval $(feature_print_te    229 feature_print_text = $(eval $(feature_print_text_code))
230 define feature_print_text_code                    230 define feature_print_text_code
231     MSG = $(shell printf '...%40s: %s' $(1) $(    231     MSG = $(shell printf '...%40s: %s' $(1) $(2))
232 endef                                             232 endef
233                                                   233 
234 #                                                 234 #
235 # generates feature value assignment for name,    235 # generates feature value assignment for name, like:
236 #   $(call feature_assign,dwarf) == feature-dw    236 #   $(call feature_assign,dwarf) == feature-dwarf=1
237 #                                                 237 #
238 feature_assign = feature-$(1)=$(feature-$(1))     238 feature_assign = feature-$(1)=$(feature-$(1))
239                                                   239 
240 FEATURE_DUMP_FILENAME = $(OUTPUT)FEATURE-DUMP$    240 FEATURE_DUMP_FILENAME = $(OUTPUT)FEATURE-DUMP$(FEATURE_USER)
241 FEATURE_DUMP := $(shell touch $(FEATURE_DUMP_F    241 FEATURE_DUMP := $(shell touch $(FEATURE_DUMP_FILENAME); cat $(FEATURE_DUMP_FILENAME))
242                                                   242 
243 feature_dump_check = $(eval $(feature_dump_che    243 feature_dump_check = $(eval $(feature_dump_check_code))
244 define feature_dump_check_code                    244 define feature_dump_check_code
245   ifeq ($(findstring $(1),$(FEATURE_DUMP)),)      245   ifeq ($(findstring $(1),$(FEATURE_DUMP)),)
246     $(2) := 1                                     246     $(2) := 1
247   endif                                           247   endif
248 endef                                             248 endef
249                                                   249 
250 #                                                 250 #
251 # First check if any test from FEATURE_DISPLAY    251 # First check if any test from FEATURE_DISPLAY
252 # and set feature_display := 1 if it does         252 # and set feature_display := 1 if it does
253 $(foreach feat,$(FEATURE_DISPLAY),$(call featu    253 $(foreach feat,$(FEATURE_DISPLAY),$(call feature_dump_check,$(call feature_assign,$(feat)),feature_display))
254                                                   254 
255 #                                                 255 #
256 # Now also check if any other test changed,       256 # Now also check if any other test changed,
257 # so we force FEATURE-DUMP generation             257 # so we force FEATURE-DUMP generation
258 $(foreach feat,$(FEATURE_TESTS),$(call feature    258 $(foreach feat,$(FEATURE_TESTS),$(call feature_dump_check,$(call feature_assign,$(feat)),feature_dump_changed))
259                                                   259 
260 # The $(feature_display) controls the default     260 # The $(feature_display) controls the default detection message
261 # output. It's set if:                            261 # output. It's set if:
262 # - detected features differes from stored fea    262 # - detected features differes from stored features from
263 #   last build (in $(FEATURE_DUMP_FILENAME) fi    263 #   last build (in $(FEATURE_DUMP_FILENAME) file)
264 # - one of the $(FEATURE_DISPLAY) is not detec    264 # - one of the $(FEATURE_DISPLAY) is not detected
265 # - VF is enabled                                 265 # - VF is enabled
266                                                   266 
267 ifeq ($(feature_dump_changed),1)                  267 ifeq ($(feature_dump_changed),1)
268   $(shell rm -f $(FEATURE_DUMP_FILENAME))         268   $(shell rm -f $(FEATURE_DUMP_FILENAME))
269   $(foreach feat,$(FEATURE_TESTS),$(shell echo    269   $(foreach feat,$(FEATURE_TESTS),$(shell echo "$(call feature_assign,$(feat))" >> $(FEATURE_DUMP_FILENAME)))
270 endif                                             270 endif
271                                                   271 
272 feature_display_check = $(eval $(feature_check    272 feature_display_check = $(eval $(feature_check_display_code))
273 define feature_check_display_code                 273 define feature_check_display_code
274   ifneq ($(feature-$(1)), 1)                      274   ifneq ($(feature-$(1)), 1)
275     feature_display := 1                          275     feature_display := 1
276   endif                                           276   endif
277 endef                                             277 endef
278                                                   278 
279 $(foreach feat,$(FEATURE_DISPLAY),$(call featu    279 $(foreach feat,$(FEATURE_DISPLAY),$(call feature_display_check,$(feat)))
280                                                   280 
281 ifeq ($(VF),1)                                    281 ifeq ($(VF),1)
282   feature_display := 1                            282   feature_display := 1
283   feature_verbose := 1                            283   feature_verbose := 1
284 endif                                             284 endif
285                                                   285 
286 ifneq ($(feature_verbose),1)                      286 ifneq ($(feature_verbose),1)
287   #                                               287   #
288   # Determine the features to omit from the di    288   # Determine the features to omit from the displayed message, as only the
289   # logical OR of the detection result will be    289   # logical OR of the detection result will be shown.
290   #                                               290   #
291   FEATURE_OMIT := $(foreach feat,$(FEATURE_DIS    291   FEATURE_OMIT := $(foreach feat,$(FEATURE_DISPLAY),$(FEATURE_GROUP_MEMBERS-$(feat)))
292 endif                                             292 endif
293                                                   293 
294 feature_display_entries = $(eval $(feature_dis    294 feature_display_entries = $(eval $(feature_display_entries_code))
295 define feature_display_entries_code               295 define feature_display_entries_code
296   ifeq ($(feature_display),1)                     296   ifeq ($(feature_display),1)
297     $$(info )                                     297     $$(info )
298     $$(info Auto-detecting system features:)      298     $$(info Auto-detecting system features:)
299     $(foreach feat,$(filter-out $(FEATURE_OMIT    299     $(foreach feat,$(filter-out $(FEATURE_OMIT),$(FEATURE_DISPLAY)),$(call feature_print_status,$(feat),) $$(info $(MSG)))
300   endif                                           300   endif
301                                                   301 
302   ifeq ($(feature_verbose),1)                     302   ifeq ($(feature_verbose),1)
303     $(eval TMP := $(filter-out $(FEATURE_DISPL    303     $(eval TMP := $(filter-out $(FEATURE_DISPLAY),$(FEATURE_TESTS)))
304     $(foreach feat,$(TMP),$(call feature_print    304     $(foreach feat,$(TMP),$(call feature_print_status,$(feat),) $$(info $(MSG)))
305   endif                                           305   endif
306 endef                                             306 endef
307                                                   307 
308 ifeq ($(FEATURE_DISPLAY_DEFERRED),)               308 ifeq ($(FEATURE_DISPLAY_DEFERRED),)
309   $(call feature_display_entries)                 309   $(call feature_display_entries)
310   $(info )                                        310   $(info )
311 endif                                             311 endif
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php