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

TOMOYO Linux Cross Reference
Linux/tools/perf/Makefile.config

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/perf/Makefile.config (Version linux-6.12-rc7) and /tools/perf/Makefile.config (Version linux-2.6.32.71)


  1 # SPDX-License-Identifier: GPL-2.0-only           
  2                                                   
  3 ifeq ($(src-perf),)                               
  4 src-perf := $(srctree)/tools/perf                 
  5 endif                                             
  6                                                   
  7 ifeq ($(obj-perf),)                               
  8 obj-perf := $(OUTPUT)                             
  9 endif                                             
 10                                                   
 11 ifneq ($(obj-perf),)                              
 12 obj-perf := $(abspath $(obj-perf))/               
 13 endif                                             
 14                                                   
 15 $(shell printf "" > $(OUTPUT).config-detected)    
 16 detected     = $(shell echo "$(1)=y"       >>     
 17 detected_var = $(shell echo "$(1)=$($(1))" >>     
 18                                                   
 19 CFLAGS := $(EXTRA_CFLAGS) $(filter-out -Wneste    
 20 HOSTCFLAGS := $(filter-out -Wnested-externs,$(    
 21                                                   
 22 # Enabled Wthread-safety analysis for clang bu    
 23 ifeq ($(CC_NO_CLANG), 0)                          
 24   CFLAGS += -Wthread-safety                       
 25 endif                                             
 26                                                   
 27 include $(srctree)/tools/scripts/Makefile.arch    
 28                                                   
 29 $(call detected_var,SRCARCH)                      
 30                                                   
 31 ifneq ($(NO_SYSCALL_TABLE),1)                     
 32   NO_SYSCALL_TABLE := 1                           
 33                                                   
 34   ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 pow    
 35     NO_SYSCALL_TABLE := 0                         
 36   endif                                           
 37                                                   
 38   ifneq ($(NO_SYSCALL_TABLE),1)                   
 39     CFLAGS += -DHAVE_SYSCALL_TABLE_SUPPORT        
 40   endif                                           
 41 endif                                             
 42                                                   
 43 # Additional ARCH settings for ppc                
 44 ifeq ($(SRCARCH),powerpc)                         
 45   CFLAGS += -I$(OUTPUT)arch/powerpc/include/ge    
 46   LIBUNWIND_LIBS := -lunwind -lunwind-ppc64       
 47 endif                                             
 48                                                   
 49 # Additional ARCH settings for x86                
 50 ifeq ($(SRCARCH),x86)                             
 51   $(call detected,CONFIG_X86)                     
 52   CFLAGS += -I$(OUTPUT)arch/x86/include/genera    
 53   ifeq (${IS_64_BIT}, 1)                          
 54     CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT          
 55     ARCH_INCLUDE = ../../arch/x86/lib/memcpy_6    
 56     LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind     
 57     $(call detected,CONFIG_X86_64)                
 58   else                                            
 59     LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunw    
 60   endif                                           
 61 endif                                             
 62                                                   
 63 ifeq ($(SRCARCH),arm)                             
 64   LIBUNWIND_LIBS = -lunwind -lunwind-arm          
 65 endif                                             
 66                                                   
 67 ifeq ($(SRCARCH),arm64)                           
 68   CFLAGS += -I$(OUTPUT)arch/arm64/include/gene    
 69   LIBUNWIND_LIBS = -lunwind -lunwind-aarch64      
 70 endif                                             
 71                                                   
 72 ifeq ($(SRCARCH),loongarch)                       
 73   CFLAGS += -I$(OUTPUT)arch/loongarch/include/    
 74   LIBUNWIND_LIBS = -lunwind -lunwind-loongarch    
 75 endif                                             
 76                                                   
 77 ifeq ($(ARCH),s390)                               
 78   CFLAGS += -fPIC -I$(OUTPUT)arch/s390/include    
 79 endif                                             
 80                                                   
 81 ifeq ($(ARCH),mips)                               
 82   CFLAGS += -I$(OUTPUT)arch/mips/include/gener    
 83   LIBUNWIND_LIBS = -lunwind -lunwind-mips         
 84 endif                                             
 85                                                   
 86 # So far there's only x86 and arm libdw unwind    
 87 # Disable it on all other architectures in cas    
 88 # support is detected in system. Add supported    
 89 # to the check.                                   
 90 ifneq ($(SRCARCH),$(filter $(SRCARCH),x86 arm     
 91   NO_LIBDW_DWARF_UNWIND := 1                      
 92 endif                                             
 93                                                   
 94 ifeq ($(LIBUNWIND_LIBS),)                         
 95   NO_LIBUNWIND := 1                               
 96 endif                                             
 97 #                                                 
 98 # For linking with debug library, run like:       
 99 #                                                 
100 #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/    
101 #                                                 
102                                                   
103 libunwind_arch_set_flags = $(eval $(libunwind_    
104 define libunwind_arch_set_flags_code              
105   FEATURE_CHECK_CFLAGS-libunwind-$(1)  = -I$(L    
106   FEATURE_CHECK_LDFLAGS-libunwind-$(1) = -L$(L    
107 endef                                             
108                                                   
109 ifdef LIBUNWIND_DIR                               
110   LIBUNWIND_CFLAGS  = -I$(LIBUNWIND_DIR)/inclu    
111   LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib      
112   LIBUNWIND_ARCHS = x86 x86_64 arm aarch64 deb    
113   $(foreach libunwind_arch,$(LIBUNWIND_ARCHS),    
114 endif                                             
115                                                   
116 # Set per-feature check compilation flags         
117 FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_C    
118 FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_    
119 FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $    
120 FEATURE_CHECK_LDFLAGS-libunwind-debug-frame =     
121                                                   
122 FEATURE_CHECK_LDFLAGS-libunwind-arm += -lunwin    
123 FEATURE_CHECK_LDFLAGS-libunwind-aarch64 += -lu    
124 FEATURE_CHECK_LDFLAGS-libunwind-x86 += -lunwin    
125 FEATURE_CHECK_LDFLAGS-libunwind-x86_64 += -lun    
126                                                   
127 FEATURE_CHECK_LDFLAGS-libcrypto = -lcrypto        
128                                                   
129 ifdef CSINCLUDES                                  
130   LIBOPENCSD_CFLAGS := -I$(CSINCLUDES)            
131 endif                                             
132 OPENCSDLIBS := -lopencsd_c_api -lopencsd          
133 ifeq ($(findstring -static,${LDFLAGS}),-static    
134   OPENCSDLIBS += -lstdc++                         
135 endif                                             
136 ifdef CSLIBS                                      
137   LIBOPENCSD_LDFLAGS := -L$(CSLIBS)               
138 endif                                             
139 FEATURE_CHECK_CFLAGS-libopencsd := $(LIBOPENCS    
140 FEATURE_CHECK_LDFLAGS-libopencsd := $(LIBOPENC    
141                                                   
142 # for linking with debug library, run like:       
143 # make DEBUG=1 LIBDW_DIR=/opt/libdw/              
144 ifdef LIBDW_DIR                                   
145   LIBDW_CFLAGS  := -I$(LIBDW_DIR)/include         
146   LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib             
147 endif                                             
148 DWARFLIBS := -ldw                                 
149 ifeq ($(findstring -static,${LDFLAGS}),-static    
150   DWARFLIBS += -lelf -lz -llzma -lbz2 -lzstd      
151                                                   
152   LIBDW_VERSION := $(shell $(PKG_CONFIG) --mod    
153   LIBDW_VERSION_1 := $(word 1, $(subst ., ,$(L    
154   LIBDW_VERSION_2 := $(word 2, $(subst ., ,$(L    
155                                                   
156   # Elfutils merged libebl.a into libdw.a star    
157   # Link libebl.a only if libdw is older than     
158   ifeq ($(shell test $(LIBDW_VERSION_2) -lt 17    
159     DWARFLIBS += -lebl                            
160   endif                                           
161                                                   
162   # Must put -ldl after -lebl for dependency      
163   DWARFLIBS += -ldl                               
164 endif                                             
165 FEATURE_CHECK_CFLAGS-libdw-dwarf-unwind := $(L    
166 FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(    
167                                                   
168 # for linking with debug library, run like:       
169 # make DEBUG=1 LIBBABELTRACE_DIR=/opt/libbabel    
170 ifdef LIBBABELTRACE_DIR                           
171   LIBBABELTRACE_CFLAGS  := -I$(LIBBABELTRACE_D    
172   LIBBABELTRACE_LDFLAGS := -L$(LIBBABELTRACE_D    
173 endif                                             
174 FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBAB    
175 FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBA    
176                                                   
177 # for linking with debug library, run like:       
178 # make DEBUG=1 LIBCAPSTONE_DIR=/opt/capstone/     
179 ifdef LIBCAPSTONE_DIR                             
180   LIBCAPSTONE_CFLAGS  := -I$(LIBCAPSTONE_DIR)/    
181   LIBCAPSTONE_LDFLAGS := -L$(LIBCAPSTONE_DIR)/    
182 endif                                             
183 FEATURE_CHECK_CFLAGS-libcapstone := $(LIBCAPST    
184 FEATURE_CHECK_LDFLAGS-libcapstone := $(LIBCAPS    
185                                                   
186 ifdef LIBZSTD_DIR                                 
187   LIBZSTD_CFLAGS  := -I$(LIBZSTD_DIR)/lib         
188   LIBZSTD_LDFLAGS := -L$(LIBZSTD_DIR)/lib         
189 endif                                             
190 FEATURE_CHECK_CFLAGS-libzstd := $(LIBZSTD_CFLA    
191 FEATURE_CHECK_LDFLAGS-libzstd := $(LIBZSTD_LDF    
192                                                   
193 # for linking with debug library, run like:       
194 # make DEBUG=1 PKG_CONFIG_PATH=/opt/libtraceev    
195                                                   
196 ifneq ($(NO_LIBTRACEEVENT),1)                     
197   ifeq ($(call get-executable,$(PKG_CONFIG)),)    
198     $(error Error: $(PKG_CONFIG) needed by lib    
199   endif                                           
200 endif                                             
201                                                   
202 FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/to    
203 # include ARCH specific config                    
204 -include $(src-perf)/arch/$(SRCARCH)/Makefile     
205                                                   
206 ifdef PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSE    
207   CFLAGS += -DHAVE_ARCH_REGS_QUERY_REGISTER_OF    
208 endif                                             
209                                                   
210 include $(srctree)/tools/scripts/utilities.mak    
211                                                   
212 ifeq ($(call get-executable,$(FLEX)),)            
213   $(error Error: $(FLEX) is missing on this sy    
214 endif                                             
215                                                   
216 ifeq ($(call get-executable,$(BISON)),)           
217   $(error Error: $(BISON) is missing on this s    
218 endif                                             
219                                                   
220 ifneq ($(OUTPUT),)                                
221   ifeq ($(shell expr $(shell $(BISON) --versio    
222     BISON_FILE_PREFIX_MAP := --file-prefix-map    
223   endif                                           
224 endif                                             
225                                                   
226 # Treat warnings as errors unless directed not    
227 ifneq ($(WERROR),0)                               
228   CORE_CFLAGS += -Werror                          
229   CXXFLAGS += -Werror                             
230   HOSTCFLAGS += -Werror                           
231 endif                                             
232                                                   
233 ifndef DEBUG                                      
234   DEBUG := 0                                      
235 endif                                             
236                                                   
237 ifeq ($(DEBUG),0)                                 
238 CORE_CFLAGS += -DNDEBUG=1                         
239 CORE_CFLAGS += -O3                                
240 else                                              
241   CORE_CFLAGS += -g                               
242   CXXFLAGS += -g                                  
243 endif                                             
244                                                   
245 ifdef PARSER_DEBUG                                
246   PARSER_DEBUG_BISON := -t                        
247   PARSER_DEBUG_FLEX  := -d                        
248   CFLAGS             += -DPARSER_DEBUG            
249   $(call detected_var,PARSER_DEBUG_BISON)         
250   $(call detected_var,PARSER_DEBUG_FLEX)          
251 endif                                             
252                                                   
253 ifdef LTO                                         
254   CORE_CFLAGS += -flto                            
255   CXXFLAGS += -flto                               
256 endif                                             
257                                                   
258 # Try different combinations to accommodate sy    
259 # python[2][3]-config in weird combinations in    
260 # priority from lowest to highest:                
261 #   * python2-config as per pep-0394.             
262 #   * python-config                               
263 #   * python3-config                              
264 #   * $(PYTHON)-config (If PYTHON is user supp    
265 #                                                 
266 PYTHON_AUTO := python-config                      
267 PYTHON_AUTO := $(if $(call get-executable,pyth    
268 PYTHON_AUTO := $(if $(call get-executable,pyth    
269 PYTHON_AUTO := $(if $(call get-executable,pyth    
270                                                   
271 # If PYTHON is defined but PYTHON_CONFIG isn't    
272 # supplied value for PYTHON_CONFIG. Because it    
273 ifdef PYTHON                                      
274   ifndef PYTHON_CONFIG                            
275     PYTHON_CONFIG_AUTO := $(call get-executabl    
276     PYTHON_CONFIG := $(if $(PYTHON_CONFIG_AUTO    
277                           $(call $(error $(PYT    
278   endif                                           
279 endif                                             
280                                                   
281 # Select either auto detected python and pytho    
282 # defined. get-executable-or-default fails wit    
283 # doesn't exist.                                  
284 override PYTHON_CONFIG := $(call get-executabl    
285 override PYTHON := $(call get-executable-or-de    
286                                                   
287 grep-libs  = $(filter -l%,$(1))                   
288 strip-libs  = $(filter-out -l%,$(1))              
289                                                   
290 PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_C    
291                                                   
292 # Python 3.8 changed the output of `python-con    
293 # '-lpythonX.Y' flag unless '--embed' is also     
294 # libpython fails if that flag is not included    
295 ifeq ($(shell $(PYTHON_CONFIG_SQ) --ldflags --    
296   PYTHON_CONFIG_LDFLAGS := --ldflags --embed      
297 else                                              
298   PYTHON_CONFIG_LDFLAGS := --ldflags              
299 endif                                             
300                                                   
301 ifdef PYTHON_CONFIG                               
302   PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONF    
303   # Update the python flags for cross compilat    
304   ifdef CROSS_COMPILE                             
305     PYTHON_NATIVE := $(shell echo $(PYTHON_EMB    
306     PYTHON_EMBED_LDOPTS := $(subst $(PYTHON_NA    
307   endif                                           
308   PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(    
309   PYTHON_EMBED_LIBADD := $(call grep-libs,$(PY    
310   PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONF    
311   FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS)    
312   ifeq ($(CC_NO_CLANG), 0)                        
313     PYTHON_EMBED_CCOPTS := $(filter-out -ffat-    
314   endif                                           
315 endif                                             
316                                                   
317 FEATURE_CHECK_CFLAGS-libpython := $(PYTHON_EMB    
318 FEATURE_CHECK_LDFLAGS-libpython := $(PYTHON_EM    
319                                                   
320 FEATURE_CHECK_LDFLAGS-libaio = -lrt               
321                                                   
322 FEATURE_CHECK_LDFLAGS-disassembler-four-args =    
323 FEATURE_CHECK_LDFLAGS-disassembler-init-styled    
324                                                   
325 CORE_CFLAGS += -fno-omit-frame-pointer            
326 CORE_CFLAGS += -Wall                              
327 CORE_CFLAGS += -Wextra                            
328 CORE_CFLAGS += -std=gnu11                         
329                                                   
330 CXXFLAGS += -std=gnu++17 -fno-exceptions -fno-    
331 CXXFLAGS += -Wall                                 
332 CXXFLAGS += -Wextra                               
333 CXXFLAGS += -fno-omit-frame-pointer               
334                                                   
335 HOSTCFLAGS += -Wall                               
336 HOSTCFLAGS += -Wextra                             
337                                                   
338 # Enforce a non-executable stack, as we may re    
339 # adding assembler files missing the .GNU-stac    
340 LDFLAGS += -Wl,-z,noexecstack                     
341                                                   
342 EXTLIBS = -lpthread -lrt -lm -ldl                 
343                                                   
344 ifneq ($(TCMALLOC),)                              
345   CFLAGS += -fno-builtin-malloc -fno-builtin-c    
346   EXTLIBS += -ltcmalloc                           
347 endif                                             
348                                                   
349 ifeq ($(FEATURES_DUMP),)                          
350 # We will display at the end of this Makefile.    
351 # As we may retry some feature detection here,    
352   FEATURE_DISPLAY_DEFERRED := 1                   
353 include $(srctree)/tools/build/Makefile.featur    
354 else                                              
355 include $(FEATURES_DUMP)                          
356 endif                                             
357                                                   
358 ifeq ($(feature-stackprotector-all), 1)           
359   CORE_CFLAGS += -fstack-protector-all            
360 endif                                             
361                                                   
362 ifeq ($(DEBUG),0)                                 
363   ifeq ($(feature-fortify-source), 1)             
364     CORE_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIF    
365   endif                                           
366 endif                                             
367                                                   
368 INC_FLAGS += -I$(src-perf)/util/include           
369 INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/inc    
370 INC_FLAGS += -I$(srctree)/tools/include/          
371 INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH    
372 INC_FLAGS += -I$(srctree)/tools/include/uapi      
373 INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH    
374 INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH    
375                                                   
376 # $(obj-perf)      for generated common-cmds.h    
377 # $(obj-perf)/util for generated bison/flex he    
378 ifneq ($(OUTPUT),)                                
379 INC_FLAGS += -I$(obj-perf)/util                   
380 INC_FLAGS += -I$(obj-perf)                        
381 endif                                             
382                                                   
383 INC_FLAGS += -I$(src-perf)/util                   
384 INC_FLAGS += -I$(src-perf)                        
385                                                   
386 CORE_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_O    
387                                                   
388 CFLAGS   += $(CORE_CFLAGS) $(INC_FLAGS)           
389 CXXFLAGS += $(INC_FLAGS)                          
390                                                   
391 LIBPERF_CFLAGS := $(CORE_CFLAGS) $(EXTRA_CFLAG    
392                                                   
393 ifeq ($(feature-pthread-attr-setaffinity-np),     
394   CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP    
395 endif                                             
396                                                   
397 ifeq ($(feature-pthread-barrier), 1)              
398   CFLAGS += -DHAVE_PTHREAD_BARRIER                
399 endif                                             
400                                                   
401 ifndef NO_BIONIC                                  
402   $(call feature_check,bionic)                    
403   ifeq ($(feature-bionic), 1)                     
404     BIONIC := 1                                   
405     CFLAGS += -DLACKS_SIGQUEUE_PROTOTYPE          
406     CFLAGS += -DLACKS_OPEN_MEMSTREAM_PROTOTYPE    
407     EXTLIBS := $(filter-out -lrt,$(EXTLIBS))      
408     EXTLIBS := $(filter-out -lpthread,$(EXTLIB    
409   endif                                           
410 endif                                             
411                                                   
412 ifeq ($(feature-eventfd), 1)                      
413   CFLAGS += -DHAVE_EVENTFD_SUPPORT                
414 endif                                             
415                                                   
416 ifeq ($(feature-get_current_dir_name), 1)         
417   CFLAGS += -DHAVE_GET_CURRENT_DIR_NAME           
418 endif                                             
419                                                   
420 ifeq ($(feature-gettid), 1)                       
421   CFLAGS += -DHAVE_GETTID                         
422 endif                                             
423                                                   
424 ifeq ($(feature-file-handle), 1)                  
425   CFLAGS += -DHAVE_FILE_HANDLE                    
426 endif                                             
427                                                   
428 ifdef NO_LIBELF                                   
429   NO_DWARF := 1                                   
430   NO_LIBUNWIND := 1                               
431   NO_LIBDW_DWARF_UNWIND := 1                      
432   NO_LIBBPF := 1                                  
433   NO_JVMTI := 1                                   
434 else                                              
435   ifeq ($(feature-libelf), 0)                     
436     ifeq ($(feature-glibc), 1)                    
437       LIBC_SUPPORT := 1                           
438     endif                                         
439     ifeq ($(BIONIC),1)                            
440       LIBC_SUPPORT := 1                           
441     endif                                         
442     ifeq ($(LIBC_SUPPORT),1)                      
443       $(error ERROR: No libelf found. Disables    
444     else                                          
445       ifneq ($(filter s% -fsanitize=address%,$    
446         ifneq ($(shell ldconfig -p | grep liba    
447           $(error No libasan found, please ins    
448         endif                                     
449       endif                                       
450                                                   
451       ifneq ($(filter s% -fsanitize=undefined%    
452         ifneq ($(shell ldconfig -p | grep libu    
453           $(error No libubsan found, please in    
454         endif                                     
455       endif                                       
456                                                   
457       ifneq ($(filter s% -static%,$(LDFLAGS),)    
458         $(error No static glibc found, please     
459       else                                        
460         $(error No gnu/libc-version.h found, p    
461       endif                                       
462     endif                                         
463   else                                            
464     ifndef NO_LIBDW_DWARF_UNWIND                  
465       ifneq ($(feature-libdw-dwarf-unwind),1)     
466         NO_LIBDW_DWARF_UNWIND := 1                
467         $(warning No libdw DWARF unwind found,    
468       endif                                       
469     endif                                         
470     ifneq ($(feature-dwarf), 1)                   
471       ifndef NO_DWARF                             
472         $(warning No libdw.h found or old libd    
473         NO_DWARF := 1                             
474       endif                                       
475     else                                          
476       ifneq ($(feature-dwarf_getlocations), 1)    
477         $(warning Old libdw.h, finding variabl    
478       else                                        
479         CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SU    
480       endif # dwarf_getlocations                  
481       ifneq ($(feature-dwarf_getcfi), 1)          
482         $(warning Old libdw.h, finding variabl    
483       else                                        
484         CFLAGS += -DHAVE_DWARF_CFI_SUPPORT        
485       endif # dwarf_getcfi                        
486     endif # Dwarf support                         
487   endif # libelf support                          
488 endif # NO_LIBELF                                 
489                                                   
490 ifeq ($(feature-libaio), 1)                       
491   ifndef NO_AIO                                   
492     CFLAGS += -DHAVE_AIO_SUPPORT                  
493   endif                                           
494 endif                                             
495                                                   
496 ifdef NO_DWARF                                    
497   NO_LIBDW_DWARF_UNWIND := 1                      
498 endif                                             
499                                                   
500 ifeq ($(feature-scandirat), 1)                    
501   # Ignore having scandirat with memory saniti    
502   ifeq ($(filter s% -fsanitize=memory%,$(EXTRA    
503     CFLAGS += -DHAVE_SCANDIRAT_SUPPORT            
504   endif                                           
505 endif                                             
506                                                   
507 ifeq ($(feature-sched_getcpu), 1)                 
508   CFLAGS += -DHAVE_SCHED_GETCPU_SUPPORT           
509 endif                                             
510                                                   
511 ifeq ($(feature-setns), 1)                        
512   CFLAGS += -DHAVE_SETNS_SUPPORT                  
513   $(call detected,CONFIG_SETNS)                   
514 endif                                             
515                                                   
516 ifdef CORESIGHT                                   
517   $(call feature_check,libopencsd)                
518   ifeq ($(feature-libopencsd), 1)                 
519     CFLAGS += -DHAVE_CSTRACE_SUPPORT $(LIBOPEN    
520     ifeq ($(feature-reallocarray), 0)             
521       CFLAGS += -DCOMPAT_NEED_REALLOCARRAY        
522     endif                                         
523     LDFLAGS += $(LIBOPENCSD_LDFLAGS)              
524     EXTLIBS += $(OPENCSDLIBS)                     
525     $(call detected,CONFIG_LIBOPENCSD)            
526     ifdef CSTRACE_RAW                             
527       CFLAGS += -DCS_DEBUG_RAW                    
528       ifeq (${CSTRACE_RAW}, packed)               
529         CFLAGS += -DCS_RAW_PACKED                 
530       endif                                       
531     endif                                         
532   else                                            
533     $(error Error: No libopencsd library found    
534   endif                                           
535 endif                                             
536                                                   
537 ifndef NO_ZLIB                                    
538   ifeq ($(feature-zlib), 1)                       
539     CFLAGS += -DHAVE_ZLIB_SUPPORT                 
540     EXTLIBS += -lz                                
541     $(call detected,CONFIG_ZLIB)                  
542   else                                            
543     NO_ZLIB := 1                                  
544   endif                                           
545 endif                                             
546                                                   
547 ifndef NO_LIBELF                                  
548   CFLAGS += -DHAVE_LIBELF_SUPPORT                 
549   EXTLIBS += -lelf                                
550   $(call detected,CONFIG_LIBELF)                  
551                                                   
552   ifeq ($(feature-libelf-getphdrnum), 1)          
553     CFLAGS += -DHAVE_ELF_GETPHDRNUM_SUPPORT       
554   endif                                           
555                                                   
556   ifeq ($(feature-libelf-gelf_getnote), 1)        
557     CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT         
558   else                                            
559     $(warning gelf_getnote() not found on libe    
560   endif                                           
561                                                   
562   ifeq ($(feature-libelf-getshdrstrndx), 1)       
563     CFLAGS += -DHAVE_ELF_GETSHDRSTRNDX_SUPPORT    
564   endif                                           
565                                                   
566   ifndef NO_LIBDEBUGINFOD                         
567     $(call feature_check,libdebuginfod)           
568     ifeq ($(feature-libdebuginfod), 1)            
569       CFLAGS += -DHAVE_DEBUGINFOD_SUPPORT         
570       EXTLIBS += -ldebuginfod                     
571     endif                                         
572   endif                                           
573                                                   
574   ifndef NO_DWARF                                 
575     ifeq ($(origin PERF_HAVE_DWARF_REGS), unde    
576       $(warning DWARF register mappings have n    
577       NO_DWARF := 1                               
578     else                                          
579       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_C    
580       LDFLAGS += $(LIBDW_LDFLAGS)                 
581       EXTLIBS += ${DWARFLIBS}                     
582       $(call detected,CONFIG_DWARF)               
583     endif # PERF_HAVE_DWARF_REGS                  
584   endif # NO_DWARF                                
585                                                   
586   ifndef NO_LIBBPF                                
587     ifeq ($(feature-bpf), 1)                      
588       # detecting libbpf without LIBBPF_DYNAMI    
589       $(call feature_check,libbpf)                
590                                                   
591       ifdef LIBBPF_DYNAMIC                        
592         ifeq ($(feature-libbpf), 1)               
593           EXTLIBS += -lbpf                        
594           CFLAGS += -DHAVE_LIBBPF_SUPPORT         
595           $(call detected,CONFIG_LIBBPF)          
596           $(call detected,CONFIG_LIBBPF_DYNAMI    
597         else                                      
598           $(error Error: No libbpf devel libra    
599         endif                                     
600       else                                        
601         ifeq ($(NO_ZLIB), 1)                      
602           $(warning Warning: Statically buildi    
603           NO_LIBBPF := 1                          
604         else                                      
605           # Libbpf will be built as a static l    
606           LIBBPF_STATIC := 1                      
607           $(call detected,CONFIG_LIBBPF)          
608           CFLAGS += -DHAVE_LIBBPF_SUPPORT         
609         endif                                     
610       endif                                       
611     endif                                         
612   endif # NO_LIBBPF                               
613 endif # NO_LIBELF                                 
614                                                   
615 ifndef NO_SDT                                     
616   ifneq ($(feature-sdt), 1)                       
617     $(warning No sys/sdt.h found, no SDT event    
618     NO_SDT := 1;                                  
619   else                                            
620     CFLAGS += -DHAVE_SDT_EVENT                    
621     $(call detected,CONFIG_SDT_EVENT)             
622   endif                                           
623 endif                                             
624                                                   
625 ifdef PERF_HAVE_JITDUMP                           
626   ifndef NO_LIBELF                                
627     $(call detected,CONFIG_JITDUMP)               
628     CFLAGS += -DHAVE_JITDUMP                      
629   endif                                           
630 endif                                             
631                                                   
632 ifeq ($(SRCARCH),powerpc)                         
633   ifndef NO_DWARF                                 
634     CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX           
635   endif                                           
636 endif                                             
637                                                   
638 ifndef NO_LIBUNWIND                               
639   have_libunwind :=                               
640                                                   
641   $(call feature_check,libunwind-x86)             
642   ifeq ($(feature-libunwind-x86), 1)              
643     $(call detected,CONFIG_LIBUNWIND_X86)         
644     CFLAGS += -DHAVE_LIBUNWIND_X86_SUPPORT        
645     LDFLAGS += -lunwind-x86                       
646     EXTLIBS_LIBUNWIND += -lunwind-x86             
647     have_libunwind = 1                            
648   endif                                           
649                                                   
650   $(call feature_check,libunwind-aarch64)         
651   ifeq ($(feature-libunwind-aarch64), 1)          
652     $(call detected,CONFIG_LIBUNWIND_AARCH64)     
653     CFLAGS += -DHAVE_LIBUNWIND_AARCH64_SUPPORT    
654     LDFLAGS += -lunwind-aarch64                   
655     EXTLIBS_LIBUNWIND += -lunwind-aarch64         
656     have_libunwind = 1                            
657     $(call feature_check,libunwind-debug-frame    
658     ifneq ($(feature-libunwind-debug-frame-aar    
659       $(warning No debug_frame support found i    
660       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME_AAR    
661     endif                                         
662   endif                                           
663                                                   
664   ifneq ($(feature-libunwind), 1)                 
665     $(warning No libunwind found. Please insta    
666     NO_LOCAL_LIBUNWIND := 1                       
667   else                                            
668     have_libunwind := 1                           
669     $(call detected,CONFIG_LOCAL_LIBUNWIND)       
670   endif                                           
671                                                   
672   ifneq ($(have_libunwind), 1)                    
673     NO_LIBUNWIND := 1                             
674   endif                                           
675 else                                              
676   NO_LOCAL_LIBUNWIND := 1                         
677 endif                                             
678                                                   
679 ifndef NO_LIBBPF                                  
680   ifneq ($(feature-bpf), 1)                       
681     $(warning BPF API too old. Please install     
682     NO_LIBBPF := 1                                
683   endif                                           
684 endif                                             
685                                                   
686 ifndef BUILD_BPF_SKEL                             
687   # BPF skeletons control a large number of pe    
688   # they are enabled.                             
689   BUILD_BPF_SKEL := 1                             
690 endif                                             
691                                                   
692 ifeq ($(BUILD_BPF_SKEL),1)                        
693   ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLA    
694     $(warning Warning: Disabled BPF skeletons     
695     BUILD_BPF_SKEL := 0                           
696   else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(C    
697     $(warning Warning: Disabled BPF skeletons     
698     BUILD_BPF_SKEL := 0                           
699   else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $    
700     $(warning Warning: Disabled BPF skeletons     
701     BUILD_BPF_SKEL := 0                           
702   else ifeq ($(call get-executable,$(CLANG)),)    
703     $(warning Warning: Disabled BPF skeletons     
704     BUILD_BPF_SKEL := 0                           
705   else                                            
706     CLANG_VERSION := $(shell $(CLANG) --versio    
707     ifeq ($(call version-lt3,$(CLANG_VERSION),    
708       $(warning Warning: Disabled BPF skeleton    
709       BUILD_BPF_SKEL := 0                         
710     endif                                         
711   endif                                           
712   ifeq ($(BUILD_BPF_SKEL),1)                      
713     $(call feature_check,clang-bpf-co-re)         
714     ifeq ($(feature-clang-bpf-co-re), 0)          
715       $(warning Warning: Disabled BPF skeleton    
716       BUILD_BPF_SKEL := 0                         
717     endif                                         
718   endif                                           
719   ifeq ($(BUILD_BPF_SKEL),1)                      
720     $(call detected,CONFIG_PERF_BPF_SKEL)         
721     CFLAGS += -DHAVE_BPF_SKEL                     
722   endif                                           
723 endif                                             
724                                                   
725 ifndef GEN_VMLINUX_H                              
726   VMLINUX_H=$(src-perf)/util/bpf_skel/vmlinux/    
727 endif                                             
728                                                   
729 dwarf-post-unwind := 1                            
730 dwarf-post-unwind-text := BUG                     
731                                                   
732 # setup DWARF post unwinder                       
733 ifdef NO_LIBUNWIND                                
734   ifdef NO_LIBDW_DWARF_UNWIND                     
735     $(warning Disabling post unwind, no suppor    
736     dwarf-post-unwind := 0                        
737   else                                            
738     dwarf-post-unwind-text := libdw               
739     $(call detected,CONFIG_LIBDW_DWARF_UNWIND)    
740   endif                                           
741 else                                              
742   dwarf-post-unwind-text := libunwind             
743   $(call detected,CONFIG_LIBUNWIND)               
744   # Enable libunwind support by default.          
745   ifndef NO_LIBDW_DWARF_UNWIND                    
746     NO_LIBDW_DWARF_UNWIND := 1                    
747   endif                                           
748 endif                                             
749                                                   
750 ifeq ($(dwarf-post-unwind),1)                     
751   CFLAGS += -DHAVE_DWARF_UNWIND_SUPPORT           
752   $(call detected,CONFIG_DWARF_UNWIND)            
753 else                                              
754   NO_DWARF_UNWIND := 1                            
755 endif                                             
756                                                   
757 ifndef NO_LOCAL_LIBUNWIND                         
758   ifeq ($(SRCARCH),$(filter $(SRCARCH),arm arm    
759     $(call feature_check,libunwind-debug-frame    
760     ifneq ($(feature-libunwind-debug-frame), 1    
761       $(warning No debug_frame support found i    
762       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME        
763     endif                                         
764   else                                            
765     # non-ARM has no dwarf_find_debug_frame()     
766     CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME          
767   endif                                           
768   EXTLIBS += $(LIBUNWIND_LIBS)                    
769   LDFLAGS += $(LIBUNWIND_LIBS)                    
770 endif                                             
771 ifeq ($(findstring -static,${LDFLAGS}),-static    
772   # gcc -static links libgcc_eh which contans     
773   LIBUNWIND_LDFLAGS += -Wl,--allow-multiple-de    
774 endif                                             
775                                                   
776 ifndef NO_LIBUNWIND                               
777   CFLAGS  += -DHAVE_LIBUNWIND_SUPPORT             
778   CFLAGS  += $(LIBUNWIND_CFLAGS)                  
779   LDFLAGS += $(LIBUNWIND_LDFLAGS)                 
780   EXTLIBS += $(EXTLIBS_LIBUNWIND)                 
781 endif                                             
782                                                   
783 ifneq ($(NO_LIBTRACEEVENT),1)                     
784   ifeq ($(NO_SYSCALL_TABLE),0)                    
785     $(call detected,CONFIG_TRACE)                 
786   else                                            
787     ifndef NO_LIBAUDIT                            
788       $(call feature_check,libaudit)              
789       ifneq ($(feature-libaudit), 1)              
790         $(warning No libaudit.h found, disable    
791         NO_LIBAUDIT := 1                          
792       else                                        
793         CFLAGS += -DHAVE_LIBAUDIT_SUPPORT         
794         EXTLIBS += -laudit                        
795         $(call detected,CONFIG_TRACE)             
796       endif                                       
797     endif                                         
798   endif                                           
799 endif                                             
800                                                   
801 ifndef NO_LIBCRYPTO                               
802   ifneq ($(feature-libcrypto), 1)                 
803     $(warning No libcrypto.h found, disables j    
804     NO_LIBCRYPTO := 1                             
805   else                                            
806     CFLAGS += -DHAVE_LIBCRYPTO_SUPPORT            
807     EXTLIBS += -lcrypto                           
808     $(call detected,CONFIG_CRYPTO)                
809   endif                                           
810 endif                                             
811                                                   
812 ifndef NO_SLANG                                   
813   ifneq ($(feature-libslang), 1)                  
814     ifneq ($(feature-libslang-include-subdir),    
815       $(warning slang not found, disables TUI     
816       NO_SLANG := 1                               
817     else                                          
818       CFLAGS += -DHAVE_SLANG_INCLUDE_SUBDIR       
819     endif                                         
820   endif                                           
821   ifndef NO_SLANG                                 
822     # Fedora has /usr/include/slang/slang.h, b    
823     CFLAGS += -DHAVE_SLANG_SUPPORT                
824     EXTLIBS += -lslang                            
825     $(call detected,CONFIG_SLANG)                 
826   endif                                           
827 endif                                             
828                                                   
829 ifdef GTK2                                        
830   FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $    
831   $(call feature_check,gtk2)                      
832   ifneq ($(feature-gtk2), 1)                      
833     $(warning GTK2 not found, disables GTK2 su    
834     NO_GTK2 := 1                                  
835   else                                            
836     $(call feature_check,gtk2-infobar)            
837     ifeq ($(feature-gtk2-infobar), 1)             
838       GTK_CFLAGS := -DHAVE_GTK_INFO_BAR_SUPPOR    
839     endif                                         
840     CFLAGS += -DHAVE_GTK2_SUPPORT                 
841     GTK_CFLAGS += $(shell $(PKG_CONFIG) --cfla    
842     GTK_LIBS := $(shell $(PKG_CONFIG) --libs g    
843     EXTLIBS += -ldl                               
844   endif                                           
845 endif                                             
846                                                   
847 ifdef NO_LIBPERL                                  
848   CFLAGS += -DNO_LIBPERL                          
849 else                                              
850   PERL_EMBED_LDOPTS = $(shell perl -MExtUtils:    
851   PERL_EMBED_LDFLAGS = $(call strip-libs,$(PER    
852   PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_    
853   PERL_EMBED_CCOPTS = $(shell perl -MExtUtils:    
854   PERL_EMBED_CCOPTS := $(filter-out -specs=%,$    
855   PERL_EMBED_CCOPTS := $(filter-out -flto=auto    
856   PERL_EMBED_LDOPTS := $(filter-out -specs=%,$    
857   FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL    
858                                                   
859   ifneq ($(feature-libperl), 1)                   
860     CFLAGS += -DNO_LIBPERL                        
861     NO_LIBPERL := 1                               
862     $(warning Missing perl devel files. Disabl    
863   else                                            
864     LDFLAGS += $(PERL_EMBED_LDFLAGS)              
865     EXTLIBS += $(PERL_EMBED_LIBADD)               
866     CFLAGS += -DHAVE_LIBPERL_SUPPORT              
867     ifeq ($(CC_NO_CLANG), 0)                      
868       CFLAGS += -Wno-compound-token-split-by-m    
869     endif                                         
870     $(call detected,CONFIG_LIBPERL)               
871   endif                                           
872 endif                                             
873                                                   
874 ifeq ($(feature-timerfd), 1)                      
875   CFLAGS += -DHAVE_TIMERFD_SUPPORT                
876 else                                              
877   $(warning No timerfd support. Disables 'perf    
878 endif                                             
879                                                   
880 disable-python = $(eval $(disable-python_code)    
881 define disable-python_code                        
882   CFLAGS += -DNO_LIBPYTHON                        
883   $(warning $1)                                   
884   NO_LIBPYTHON := 1                               
885 endef                                             
886                                                   
887 PYTHON_EXTENSION_SUFFIX := '.so'                  
888 ifdef NO_LIBPYTHON                                
889   $(call disable-python,Python support disable    
890 else                                              
891                                                   
892   ifndef PYTHON                                   
893     $(call disable-python,No python interprete    
894   else                                            
895     PYTHON_WORD := $(call shell-wordify,$(PYTH    
896                                                   
897     ifndef PYTHON_CONFIG                          
898       $(call disable-python,No 'python-config'    
899     else                                          
900                                                   
901       ifneq ($(feature-libpython), 1)             
902         $(call disable-python,No 'Python.h' wa    
903       else                                        
904          LDFLAGS += $(PYTHON_EMBED_LDFLAGS)       
905          EXTLIBS += $(PYTHON_EMBED_LIBADD)        
906          PYTHON_SETUPTOOLS_INSTALLED := $(shel    
907          ifeq ($(PYTHON_SETUPTOOLS_INSTALLED),    
908            PYTHON_EXTENSION_SUFFIX := $(shell     
909            ifdef CROSS_COMPILE                    
910              PYTHON_EXTENSION_SUFFIX := $(subs    
911            endif                                  
912            LANG_BINDINGS += $(obj-perf)python/    
913          else                                     
914            $(warning Missing python setuptools    
915          endif                                    
916          CFLAGS += -DHAVE_LIBPYTHON_SUPPORT       
917          $(call detected,CONFIG_LIBPYTHON)        
918          ifeq ($(filter -fPIC,$(CFLAGS)),)        
919            # Building a shared library require    
920            CFLAGS += -fPIC                        
921            CXXFLAGS += -fPIC                      
922          endif                                    
923       endif                                       
924     endif                                         
925   endif                                           
926 endif                                             
927                                                   
928 ifneq ($(NO_JEVENTS),1)                           
929   ifeq ($(wildcard pmu-events/arch/$(SRCARCH)/    
930     NO_JEVENTS := 1                               
931   endif                                           
932 endif                                             
933 ifneq ($(NO_JEVENTS),1)                           
934   NO_JEVENTS := 0                                 
935   ifndef PYTHON                                   
936     $(error ERROR: No python interpreter neede    
937   else                                            
938     # jevents.py uses f-strings present in Pyt    
939     JEVENTS_PYTHON_GOOD := $(shell $(PYTHON) -    
940     ifneq ($(JEVENTS_PYTHON_GOOD), 1)             
941       $(error ERROR: Python interpreter needed    
942     endif                                         
943   endif                                           
944 endif                                             
945                                                   
946 ifdef BUILD_NONDISTRO                             
947   ifeq ($(feature-libbfd), 1)                     
948     EXTLIBS += -lbfd -lopcodes                    
949   else                                            
950     # we are on a system that requires -libert    
951     # to link against -lbfd; test each case in    
952                                                   
953     # call all detections now so we get correc    
954     # status in VF output                         
955     $(call feature_check,libbfd-liberty)          
956     $(call feature_check,libbfd-liberty-z)        
957                                                   
958     ifeq ($(feature-libbfd-liberty), 1)           
959       EXTLIBS += -lbfd -lopcodes -liberty         
960       FEATURE_CHECK_LDFLAGS-disassembler-four-    
961       FEATURE_CHECK_LDFLAGS-disassembler-init-    
962     else                                          
963       ifeq ($(feature-libbfd-liberty-z), 1)       
964         EXTLIBS += -lbfd -lopcodes -liberty -l    
965         FEATURE_CHECK_LDFLAGS-disassembler-fou    
966         FEATURE_CHECK_LDFLAGS-disassembler-ini    
967       endif                                       
968     endif                                         
969     $(call feature_check,disassembler-four-arg    
970     $(call feature_check,disassembler-init-sty    
971   endif                                           
972                                                   
973   CFLAGS += -DHAVE_LIBBFD_SUPPORT                 
974   CXXFLAGS += -DHAVE_LIBBFD_SUPPORT               
975   ifeq ($(feature-libbfd-buildid), 1)             
976     CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT       
977   else                                            
978     $(warning Old version of libbfd/binutils t    
979   endif                                           
980 endif                                             
981                                                   
982 ifndef NO_LIBLLVM                                 
983   $(call feature_check,llvm-perf)                 
984   ifeq ($(feature-llvm-perf), 1)                  
985     CFLAGS += -DHAVE_LIBLLVM_SUPPORT              
986     CFLAGS += $(shell $(LLVM_CONFIG) --cflags)    
987     CXXFLAGS += -DHAVE_LIBLLVM_SUPPORT            
988     CXXFLAGS += $(shell $(LLVM_CONFIG) --cxxfl    
989     LIBLLVM = $(shell $(LLVM_CONFIG) --libs al    
990     EXTLIBS += -L$(shell $(LLVM_CONFIG) --libd    
991     EXTLIBS += -lstdc++                           
992     $(call detected,CONFIG_LIBLLVM)               
993   else                                            
994     $(warning No libllvm 13+ found, slower sou    
995     NO_LIBLLVM := 1                               
996   endif                                           
997 endif                                             
998                                                   
999 ifndef NO_DEMANGLE                                
1000   $(call feature_check,cxa-demangle)             
1001   ifeq ($(feature-cxa-demangle), 1)              
1002     EXTLIBS += -lstdc++                          
1003     CFLAGS += -DHAVE_CXA_DEMANGLE_SUPPORT        
1004     CXXFLAGS += -DHAVE_CXA_DEMANGLE_SUPPORT      
1005     $(call detected,CONFIG_CXX_DEMANGLE)         
1006   endif                                          
1007   ifdef BUILD_NONDISTRO                          
1008     ifeq ($(filter -liberty,$(EXTLIBS)),)        
1009       $(call feature_check,cplus-demangle)       
1010       ifeq ($(feature-cplus-demangle), 1)        
1011         EXTLIBS += -liberty                      
1012       endif                                      
1013     endif                                        
1014     ifneq ($(filter -liberty,$(EXTLIBS)),)       
1015       CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT    
1016       CXXFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPO    
1017     endif                                        
1018   endif                                          
1019 endif                                            
1020                                                  
1021 ifndef NO_LZMA                                   
1022   ifeq ($(feature-lzma), 1)                      
1023     CFLAGS += -DHAVE_LZMA_SUPPORT                
1024     EXTLIBS += -llzma                            
1025     $(call detected,CONFIG_LZMA)                 
1026   else                                           
1027     $(warning No liblzma found, disables xz k    
1028     NO_LZMA := 1                                 
1029   endif                                          
1030 endif                                            
1031                                                  
1032 ifndef NO_LIBZSTD                                
1033   ifeq ($(feature-libzstd), 1)                   
1034     CFLAGS += -DHAVE_ZSTD_SUPPORT                
1035     CFLAGS += $(LIBZSTD_CFLAGS)                  
1036     LDFLAGS += $(LIBZSTD_LDFLAGS)                
1037     EXTLIBS += -lzstd                            
1038     $(call detected,CONFIG_ZSTD)                 
1039   else                                           
1040     $(warning No libzstd found, disables trac    
1041     NO_LIBZSTD := 1                              
1042   endif                                          
1043 endif                                            
1044                                                  
1045 ifndef NO_BACKTRACE                              
1046   ifeq ($(feature-backtrace), 1)                 
1047     CFLAGS += -DHAVE_BACKTRACE_SUPPORT           
1048   endif                                          
1049 endif                                            
1050                                                  
1051 ifndef NO_LIBNUMA                                
1052   ifeq ($(feature-libnuma), 0)                   
1053     $(warning No numa.h found, disables 'perf    
1054     NO_LIBNUMA := 1                              
1055   else                                           
1056     ifeq ($(feature-numa_num_possible_cpus),     
1057       $(warning Old numa library found, disab    
1058       NO_LIBNUMA := 1                            
1059     else                                         
1060       CFLAGS += -DHAVE_LIBNUMA_SUPPORT           
1061       EXTLIBS += -lnuma                          
1062       $(call detected,CONFIG_NUMA)               
1063     endif                                        
1064   endif                                          
1065 endif                                            
1066                                                  
1067 ifdef HAVE_KVM_STAT_SUPPORT                      
1068     CFLAGS += -DHAVE_KVM_STAT_SUPPORT            
1069 endif                                            
1070                                                  
1071 ifeq ($(feature-disassembler-four-args), 1)      
1072     CFLAGS += -DDISASM_FOUR_ARGS_SIGNATURE       
1073 endif                                            
1074                                                  
1075 ifeq ($(feature-disassembler-init-styled), 1)    
1076     CFLAGS += -DDISASM_INIT_STYLED               
1077 endif                                            
1078                                                  
1079 ifeq (${IS_64_BIT}, 1)                           
1080   ifndef NO_PERF_READ_VDSO32                     
1081     $(call feature_check,compile-32)             
1082     ifeq ($(feature-compile-32), 1)              
1083       CFLAGS += -DHAVE_PERF_READ_VDSO32          
1084     else                                         
1085       NO_PERF_READ_VDSO32 := 1                   
1086     endif                                        
1087   endif                                          
1088   ifneq ($(SRCARCH), x86)                        
1089     NO_PERF_READ_VDSOX32 := 1                    
1090   endif                                          
1091   ifndef NO_PERF_READ_VDSOX32                    
1092     $(call feature_check,compile-x32)            
1093     ifeq ($(feature-compile-x32), 1)             
1094       CFLAGS += -DHAVE_PERF_READ_VDSOX32         
1095     else                                         
1096       NO_PERF_READ_VDSOX32 := 1                  
1097     endif                                        
1098   endif                                          
1099 else                                             
1100   NO_PERF_READ_VDSO32 := 1                       
1101   NO_PERF_READ_VDSOX32 := 1                      
1102 endif                                            
1103                                                  
1104 ifndef NO_LIBBABELTRACE                          
1105   $(call feature_check,libbabeltrace)            
1106   ifeq ($(feature-libbabeltrace), 1)             
1107     CFLAGS += -DHAVE_LIBBABELTRACE_SUPPORT $(    
1108     LDFLAGS += $(LIBBABELTRACE_LDFLAGS)          
1109     EXTLIBS += -lbabeltrace-ctf                  
1110     $(call detected,CONFIG_LIBBABELTRACE)        
1111   else                                           
1112     $(warning No libbabeltrace found, disable    
1113   endif                                          
1114 endif                                            
1115                                                  
1116 ifndef NO_CAPSTONE                               
1117   $(call feature_check,libcapstone)              
1118   ifeq ($(feature-libcapstone), 1)               
1119     CFLAGS += -DHAVE_LIBCAPSTONE_SUPPORT $(LI    
1120     LDFLAGS += $(LICAPSTONE_LDFLAGS)             
1121     EXTLIBS += -lcapstone                        
1122     $(call detected,CONFIG_LIBCAPSTONE)          
1123   else                                           
1124     msg := $(warning No libcapstone found, di    
1125   endif                                          
1126 endif                                            
1127                                                  
1128 ifndef NO_AUXTRACE                               
1129   ifeq ($(SRCARCH),x86)                          
1130     ifeq ($(feature-get_cpuid), 0)               
1131       $(warning Your gcc lacks the __get_cpui    
1132       NO_AUXTRACE := 1                           
1133     endif                                        
1134   endif                                          
1135   ifndef NO_AUXTRACE                             
1136     $(call detected,CONFIG_AUXTRACE)             
1137     CFLAGS += -DHAVE_AUXTRACE_SUPPORT            
1138     ifeq ($(feature-reallocarray), 0)            
1139       CFLAGS += -DCOMPAT_NEED_REALLOCARRAY       
1140     endif                                        
1141   endif                                          
1142 endif                                            
1143                                                  
1144 ifdef EXTRA_TESTS                                
1145     $(call detected,CONFIG_EXTRA_TESTS)          
1146     CFLAGS += -DHAVE_EXTRA_TESTS                 
1147 endif                                            
1148                                                  
1149 ifndef NO_JVMTI                                  
1150   ifneq (,$(wildcard /usr/sbin/update-java-al    
1151     JDIR=$(shell /usr/sbin/update-java-altern    
1152   else                                           
1153     ifneq (,$(wildcard /usr/sbin/alternatives    
1154       JDIR=$(shell /usr/sbin/alternatives --d    
1155     endif                                        
1156   endif                                          
1157   ifndef JDIR                                    
1158     $(warning No alternatives command found,     
1159     NO_JVMTI := 1                                
1160   endif                                          
1161 endif                                            
1162                                                  
1163 ifndef NO_JVMTI                                  
1164   FEATURE_CHECK_CFLAGS-jvmti := -I$(JDIR)/inc    
1165   $(call feature_check,jvmti)                    
1166   ifeq ($(feature-jvmti), 1)                     
1167     $(call detected_var,JDIR)                    
1168     ifndef NO_JVMTI_CMLR                         
1169       FEATURE_CHECK_CFLAGS-jvmti-cmlr := $(FE    
1170       $(call feature_check,jvmti-cmlr)           
1171       ifeq ($(feature-jvmti-cmlr), 1)            
1172         CFLAGS += -DHAVE_JVMTI_CMLR              
1173       endif                                      
1174     endif # NO_JVMTI_CMLR                        
1175   else                                           
1176     $(warning No openjdk development package     
1177     NO_JVMTI := 1                                
1178   endif                                          
1179 endif                                            
1180                                                  
1181 ifndef NO_LIBPFM4                                
1182   $(call feature_check,libpfm4)                  
1183   ifeq ($(feature-libpfm4), 1)                   
1184     CFLAGS += -DHAVE_LIBPFM                      
1185     EXTLIBS += -lpfm                             
1186     ASCIIDOC_EXTRA = -aHAVE_LIBPFM=1             
1187     $(call detected,CONFIG_LIBPFM4)              
1188   else                                           
1189     $(warning libpfm4 not found, disables lib    
1190   endif                                          
1191 endif                                            
1192                                                  
1193 # libtraceevent is a recommended dependency p    
1194 ifneq ($(NO_LIBTRACEEVENT),1)                    
1195   $(call feature_check,libtraceevent)            
1196   ifeq ($(feature-libtraceevent), 1)             
1197     CFLAGS += -DHAVE_LIBTRACEEVENT               
1198     LDFLAGS += $(shell $(PKG_CONFIG) --libs-o    
1199     EXTLIBS += $(shell $(PKG_CONFIG) --libs-o    
1200     LIBTRACEEVENT_VERSION := $(shell $(PKG_CO    
1201     LIBTRACEEVENT_VERSION_1 := $(word 1, $(su    
1202     LIBTRACEEVENT_VERSION_2 := $(word 2, $(su    
1203     LIBTRACEEVENT_VERSION_3 := $(word 3, $(su    
1204     LIBTRACEEVENT_VERSION_CPP := $(shell expr    
1205     CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTR    
1206     $(call detected,CONFIG_LIBTRACEEVENT)        
1207   else                                           
1208     $(error ERROR: libtraceevent is missing.     
1209   endif                                          
1210                                                  
1211   $(call feature_check,libtracefs)               
1212   ifeq ($(feature-libtracefs), 1)                
1213     CFLAGS +=  $(shell $(PKG_CONFIG) --cflags    
1214     LDFLAGS += $(shell $(PKG_CONFIG) --libs-o    
1215     EXTLIBS += $(shell $(PKG_CONFIG) --libs-o    
1216     LIBTRACEFS_VERSION := $(shell $(PKG_CONFI    
1217     LIBTRACEFS_VERSION_1 := $(word 1, $(subst    
1218     LIBTRACEFS_VERSION_2 := $(word 2, $(subst    
1219     LIBTRACEFS_VERSION_3 := $(word 3, $(subst    
1220     LIBTRACEFS_VERSION_CPP := $(shell expr $(    
1221     CFLAGS += -DLIBTRACEFS_VERSION=$(LIBTRACE    
1222   else                                           
1223     $(warning libtracefs is missing. Please i    
1224   endif                                          
1225 endif                                            
1226                                                  
1227 # Among the variables below, these:              
1228 #   perfexecdir                                  
1229 #   libbpf_include_dir                           
1230 #   perf_examples_dir                            
1231 #   template_dir                                 
1232 #   mandir                                       
1233 #   infodir                                      
1234 #   htmldir                                      
1235 #   ETC_PERFCONFIG (but not sysconfdir)          
1236 # can be specified as a relative path some/wh    
1237 # this is interpreted as relative to $(prefix    
1238 # runtime figures out where they are based on    
1239 # This can help installing the suite in a rel    
1240                                                  
1241 # Make the path relative to DESTDIR, not to p    
1242 ifndef DESTDIR                                   
1243 prefix ?= $(HOME)                                
1244 endif                                            
1245 bindir_relative = bin                            
1246 bindir = $(abspath $(prefix)/$(bindir_relativ    
1247 includedir_relative = include                    
1248 includedir = $(abspath $(prefix)/$(includedir    
1249 mandir = share/man                               
1250 infodir = share/info                             
1251 perfexecdir = libexec/perf-core                  
1252 # FIXME: system's libbpf header directory, wh    
1253 libbpf_include_dir = /usr/include                
1254 perf_examples_dir = lib/perf/examples            
1255 sharedir = $(prefix)/share                       
1256 template_dir = share/perf-core/templates         
1257 STRACE_GROUPS_DIR = share/perf-core/strace/gr    
1258 htmldir = share/doc/perf-doc                     
1259 tipdir = share/doc/perf-tip                      
1260 srcdir = $(srctree)/tools/perf                   
1261 ifeq ($(prefix),/usr)                            
1262 sysconfdir = /etc                                
1263 ETC_PERFCONFIG = $(sysconfdir)/perfconfig        
1264 else                                             
1265 sysconfdir = $(prefix)/etc                       
1266 ETC_PERFCONFIG = etc/perfconfig                  
1267 endif                                            
1268 ifndef lib                                       
1269 ifeq ($(SRCARCH)$(IS_64_BIT), x861)              
1270 lib = lib64                                      
1271 else                                             
1272 lib = lib                                        
1273 endif                                            
1274 endif # lib                                      
1275 libdir = $(prefix)/$(lib)                        
1276                                                  
1277 # Shell quote (do not use $(call) to accommod    
1278 ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERF    
1279 STRACE_GROUPS_DIR_SQ = $(subst ','\'',$(STRAC    
1280 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))          
1281 bindir_SQ = $(subst ','\'',$(bindir))            
1282 includedir_SQ = $(subst ','\'',$(includedir))    
1283 mandir_SQ = $(subst ','\'',$(mandir))            
1284 infodir_SQ = $(subst ','\'',$(infodir))          
1285 perfexecdir_SQ = $(subst ','\'',$(perfexecdir    
1286 libbpf_include_dir_SQ = $(subst ','\'',$(libb    
1287 perf_examples_dir_SQ = $(subst ','\'',$(perf_    
1288 template_dir_SQ = $(subst ','\'',$(template_d    
1289 htmldir_SQ = $(subst ','\'',$(htmldir))          
1290 tipdir_SQ = $(subst ','\'',$(tipdir))            
1291 prefix_SQ = $(subst ','\'',$(prefix))            
1292 sysconfdir_SQ = $(subst ','\'',$(sysconfdir))    
1293 libdir_SQ = $(subst ','\'',$(libdir))            
1294 srcdir_SQ = $(subst ','\'',$(srcdir))            
1295                                                  
1296 ifneq ($(filter /%,$(firstword $(perfexecdir)    
1297 perfexec_instdir = $(perfexecdir)                
1298 perf_include_instdir = $(libbpf_include_dir)     
1299 perf_examples_instdir = $(perf_examples_dir)     
1300 STRACE_GROUPS_INSTDIR = $(STRACE_GROUPS_DIR)     
1301 tip_instdir = $(tipdir)                          
1302 else                                             
1303 perfexec_instdir = $(prefix)/$(perfexecdir)      
1304 perf_include_instdir = $(prefix)/$(libbpf_inc    
1305 perf_examples_instdir = $(prefix)/$(perf_exam    
1306 STRACE_GROUPS_INSTDIR = $(prefix)/$(STRACE_GR    
1307 tip_instdir = $(prefix)/$(tipdir)                
1308 endif                                            
1309 perfexec_instdir_SQ = $(subst ','\'',$(perfex    
1310 perf_include_instdir_SQ = $(subst ','\'',$(pe    
1311 perf_examples_instdir_SQ = $(subst ','\'',$(p    
1312 STRACE_GROUPS_INSTDIR_SQ = $(subst ','\'',$(S    
1313 tip_instdir_SQ = $(subst ','\'',$(tip_instdir    
1314                                                  
1315 export perfexec_instdir_SQ                       
1316                                                  
1317 print_var = $(eval $(print_var_code)) $(info     
1318 define print_var_code                            
1319     MSG = $(shell printf '...%40s: %s' $(1) $    
1320 endef                                            
1321                                                  
1322 ifeq ($(feature_display),1)                      
1323   $(call feature_display_entries)                
1324 endif                                            
1325                                                  
1326 ifeq ($(VF),1)                                   
1327   # Display EXTRA features which are detected    
1328   # from here with feature_check call and thu    
1329   # be partof global state output.               
1330   $(foreach feat,$(FEATURE_TESTS_EXTRA),$(cal    
1331   $(call print_var,prefix)                       
1332   $(call print_var,bindir)                       
1333   $(call print_var,libdir)                       
1334   $(call print_var,sysconfdir)                   
1335   $(call print_var,LIBUNWIND_DIR)                
1336   $(call print_var,LIBDW_DIR)                    
1337   $(call print_var,JDIR)                         
1338                                                  
1339   ifeq ($(dwarf-post-unwind),1)                  
1340     $(call feature_print_text,"DWARF post unw    
1341   endif                                          
1342 endif                                            
1343                                                  
1344 $(info )                                         
1345                                                  
1346 $(call detected_var,bindir_SQ)                   
1347 $(call detected_var,PYTHON_WORD)                 
1348 ifneq ($(OUTPUT),)                               
1349 $(call detected_var,OUTPUT)                      
1350 endif                                            
1351 $(call detected_var,htmldir_SQ)                  
1352 $(call detected_var,infodir_SQ)                  
1353 $(call detected_var,mandir_SQ)                   
1354 $(call detected_var,ETC_PERFCONFIG_SQ)           
1355 $(call detected_var,STRACE_GROUPS_DIR_SQ)        
1356 $(call detected_var,prefix_SQ)                   
1357 $(call detected_var,perfexecdir_SQ)              
1358 $(call detected_var,libbpf_include_dir_SQ)       
1359 $(call detected_var,perf_examples_dir_SQ)        
1360 $(call detected_var,tipdir_SQ)                   
1361 $(call detected_var,srcdir_SQ)                   
1362 $(call detected_var,LIBDIR)                      
1363 $(call detected_var,GTK_CFLAGS)                  
1364 $(call detected_var,PERL_EMBED_CCOPTS)           
1365 $(call detected_var,PYTHON_EMBED_CCOPTS)         
1366 ifneq ($(BISON_FILE_PREFIX_MAP),)                
1367 $(call detected_var,BISON_FILE_PREFIX_MAP)       
1368 endif                                            
1369                                                  
1370 # re-generate FEATURE-DUMP as we may have cal    
1371 # extra libraries to add to LDFLAGS of some o    
1372 # tests, see the block about libbfd, disassem    
1373 $(shell rm -f $(FEATURE_DUMP_FILENAME))          
1374 $(foreach feat,$(FEATURE_TESTS),$(shell echo     
                                                      

~ [ 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