~ [ 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 (Version linux-6.12-rc7) and /tools/build/Makefile.feature (Version policy-sample)


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