lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1414275639-1053-14-git-send-email-alexis.berlemont@gmail.com>
Date:	Sun, 26 Oct 2014 00:20:38 +0200
From:	Alexis Berlemont <alexis.berlemont@...il.com>
To:	linux-kernel@...r.kernel.org
Cc:	Alexis Berlemont <alexis.berlemont@...il.com>, jolsa@...hat.com,
	dsahern@...il.com, mingo@...hat.com, a.p.zijlstra@...llo.nl,
	paulus@...ba.org, acme@...nel.org, namhyung@...nel.org,
	mmarek@...e.cz
Subject: [PATCH v4 13/14] perf kbuild: final cosmetic changes

* Correctly rename internal makefile variables
* Remove makefiles in tools/perf/config which became empty and useless
* Remove builtin-cmds.h
* Remove arch/x86/Makefile
* Improve outputs of clean and install targets
* Remove creation of PERF-FEATURES file which is redundant with the
  .config file generated by Kconfig.
* replace HAVE_KVM_STAT_SUPPORT by a Kconfig option
* replace HAVE_SKIP_CALLCHAIN_IDX by a Kconfig option
* add Kconfig options for 32-bit compatibility VDSOs

Signed-off-by: Alexis Berlemont <alexis.berlemont@...il.com>
---

Changes since v3:
 * Add Kconfig options for 32-bit compatibility VDSOs

 tools/perf/Kconfig                    |  29 ++++++++-
 tools/perf/Makefile.kbuild            |  76 ++++++++++++++----------
 tools/perf/arch/s390/util/Kbuild      |   2 +-
 tools/perf/arch/x86/Makefile          |  17 ------
 tools/perf/arch/x86/util/Kbuild       |   2 +-
 tools/perf/builtin-cmds.h             |   6 --
 tools/perf/builtin-help.c             |   2 +-
 tools/perf/builtin-kvm.c              |   6 +-
 tools/perf/builtin-lock.c             |   2 +-
 tools/perf/builtin-sched.c            |   2 +-
 tools/perf/config/Makefile            | 108 +++++++++++-----------------------
 tools/perf/config/Makefile.fix-config |   6 --
 tools/perf/config/Makefile.fix-legacy |   2 -
 tools/perf/perf.c                     |   2 +-
 tools/perf/util/vdso.c                |   5 +-
 15 files changed, 115 insertions(+), 152 deletions(-)
 delete mode 100644 tools/perf/arch/x86/Makefile
 delete mode 100644 tools/perf/builtin-cmds.h
 delete mode 100644 tools/perf/config/Makefile.fix-config
 delete mode 100644 tools/perf/config/Makefile.fix-legacy

diff --git a/tools/perf/Kconfig b/tools/perf/Kconfig
index 54a194d..83f3d6d 100644
--- a/tools/perf/Kconfig
+++ b/tools/perf/Kconfig
@@ -5,9 +5,9 @@ config TARGET_ARCH
 	string
 	option env="ARCH"
 
-config TARGET_IS_X86_64
+config TARGET_IS_64_BIT
        string
-       option env="IS_X86_64"
+       option env="IS_64_BIT"
 
 config TARGET_CROSS_COMPILE
 	string
@@ -19,7 +19,7 @@ config ARCH
 
 config X86_64
 	bool
-	default y if TARGET_ARCH = "x86" && TARGET_IS_X86_64 = "1"
+	default y if TARGET_ARCH = "x86" && TARGET_IS_64_BIT = "1"
 
 config CROSS_COMPILE
 	string
@@ -128,6 +128,13 @@ config BUILTIN_KVM
         ---help---
 	  Tool to trace/measure kvm guest os
 
+config BUILTIN_KVM_STAT
+	bool "kvm-stat"
+	default y
+	depends on BUILTIN_KVM && (ARCH = "x86" || ARCH = "s390")
+        ---help---
+	  Get performance counter statistics on a kvm guest os.
+
 config BUILTIN_LIST
 	bool "list"
 	default y
@@ -405,6 +412,22 @@ config PERF_REGS
 	  Cache register accesses for unwind processing to speed-up
 	  performances.
 
+config READ_VDSO32
+	bool "Support 32-bit compatibility"
+	depends on TARGET_IS_64_BIT = "1"
+	default y
+        ---help---
+	  On 64-bits architecture, support 32-bit compatibility VDSOs
+
+config READ_VDSOX32
+	bool "Support x32 compatibility"
+	depends on X86_64
+	default y
+        ---help---
+	  On x86_64 architecture, support x32 compatibility VDSOs
+	  (code for x86_64 architecture but "long" and pointer types
+	  set to 32 bits)
+
 endmenu
 
 menu "Build"
diff --git a/tools/perf/Makefile.kbuild b/tools/perf/Makefile.kbuild
index b48fe7f..84b7c01 100644
--- a/tools/perf/Makefile.kbuild
+++ b/tools/perf/Makefile.kbuild
@@ -1,6 +1,5 @@
 srctree := $(abspath $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR)/../../))
 objtree := $(abspath $(if $(KBUILD_SRC),$(CURDIR),$(CURDIR)/../..))
-
 VPATH   := $(srctree)
 
 export srctree VPATH
@@ -36,7 +35,8 @@ export quiet Q KBUILD_VERBOSE
 ifndef V
 QUIET_LINK  = @echo '  LD      $@';
 QUIET_GEN   = @echo '  GEN     $@';
-QUIET_CLEAN = @echo '  CLEAN   tools/perf';
+QUIET_CLEAN = @printf '  CLEAN    %s\n' $1;
+QUIET_INSTALL = @printf '  INSTALL  %s\n' $1;
 endif
 
 export QUIET_BISON QUIET_FLEX
@@ -127,7 +127,7 @@ export CONFIG_DETECTED
 
 # arch-related main variables
 include $(src-perf)/config/Makefile.arch
-export ARCH IS_X86_64 CROSS_COMPILE
+export ARCH IS_X86_64 IS_64_BIT CROSS_COMPILE
 
 # external .a libs
 LIBTRACEEVENT   := $(obj-kernel)/tools/lib/traceevent/libtraceevent.a
@@ -158,7 +158,6 @@ $(CONFIG_DETECTED): $(KCONFIG_CONFIG)
 # no need to include auto.conf.cmd, because .config
 # is the only dependency here
 $(KCONFIG_AUTOCONFIG): $(KCONFIG_CONFIG) $(CONFIG_DETECTED)
-	$(Q)$(MAKE) -f $(src-perf)/config/Makefile.fix-config
 	$(Q)mkdir -p $(obj-perf)/include/config
 	$(Q)mkdir -p $(obj-perf)/include/generated
 	$(Q)$(MAKE) -s $(build)=scripts/kconfig silentoldconfig
@@ -167,22 +166,26 @@ $(KCONFIG_AUTOCONFIG): $(KCONFIG_CONFIG) $(CONFIG_DETECTED)
 clean-dirs := $(addprefix _clean_, tools/perf/)
 
 $(clean-dirs):
+	$(call QUIET_CLEAN, core-objs)
 	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.clean obj=$(patsubst _clean_%,%,$@)
 
-clean: $(clean-dirs) $(LIBTRACEEVENT)-clean $(LIBAPIKFS)-clean
-	$(Q)$(QUIET_CLEAN)
-	$(Q)rm -f $(obj-perf)/perf
-	$(Q)rm -f $(obj-perf)/common-cmds.h
-	$(Q)rm -f $(obj-perf)/python/perf.so
+config-clean:
+	$(call QUIET_CLEAN, config)
+	@$(MAKE) OUTPUT=$(obj-perf)/config/feature-checks/ -C $(src-perf)/config/feature-checks clean >/dev/null
 	$(Q)rm -rf $(obj-perf)/include/generated $(obj-perf)/include/config
+	$(Q)rm -f $(CONFIG_DETECTED) $(KCONFIG_CONFIG)
+	$(Q)rm -f $(obj-perf)/common-cmds.h
+
+clean: $(clean-dirs) $(LIBTRACEEVENT)-clean $(LIBAPIKFS)-clean config-clean
+	$(call QUIET_CLEAN, core-progs)
+	$(Q)rm -f $(obj-perf)/perf
+	$(call QUIET_CLEAN, misc)
 	$(Q)find $(obj-perf) \
 		\( -name '*.[oas]' -o -name '.*.cmd' \
 		-o -name '.*.d' -o -name '.*.tmp' \
 		-o -name '*-flex.[ch]' -o -name '*-bison.[ch]' \
 		\) -type f -print | xargs rm -f
-	$(Q)$(python-clean)
-	$(Q)rm -f $(CONFIG_DETECTED) $(KCONFIG_CONFIG)
-	@$(MAKE) OUTPUT=$(obj-perf)/config/feature-checks/ -C $(src-perf)/config/feature-checks clean >/dev/null
+	$(python-clean)
 
 TAGS tags:
 	$(Q)rm -f $(src-perf)/tags
@@ -257,7 +260,7 @@ PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/
 
 export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
 
-python-clean := rm -rf $(PYTHON_EXTBUILD) $(obj-perf)/python/perf.so
+python-clean := $(call QUIET_CLEAN, python) rm -rf $(PYTHON_EXTBUILD) $(obj-perf)/python/perf.so
 
 PYTHON_EXT_SRCS   := $(addprefix $(src-perf)/,$(shell grep -v ^\# $(src-perf)/util/python-ext-sources))
 PYTHON_EXT_DEPS   := $(src-perf)/util/python-ext-sources $(src-perf)/util/setup.py
@@ -343,25 +346,34 @@ $(SCRIPTS) : % : %.sh
 all: $(SCRIPTS)
 
 install-bin: all
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
-	$(INSTALL) $(obj-perf)/perf '$(DESTDIR_SQ)$(bindir_SQ)'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
-	$(INSTALL) $(src-perf)/perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
-	$(INSTALL) $(src-perf)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'
-	$(INSTALL) $(src-perf)/scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'
-	$(INSTALL) $(src-perf)/scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
-	$(INSTALL) $(src-perf)/scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'
-	$(INSTALL) $(src-perf)/scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
-	$(INSTALL) $(src-perf)/scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'
-	$(INSTALL) $(src-perf)/perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
-	$(INSTALL) $(src-perf)/tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
-	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
-	$(INSTALL) $(src-perf)/tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
+	$(call QUIET_INSTALL, binaries) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' ; \
+		$(INSTALL) $(obj-perf)/perf '$(DESTDIR_SQ)$(bindir_SQ)' ; \
+		ln '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'
+	$(call QUIET_INSTALL, libexec) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+	$(call QUIET_INSTALL, perf-archive) \
+		$(INSTALL) $(src-perf)/perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
+	$(call QUIET_INSTALL, perl-scripts) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' ; \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' ; \
+		$(INSTALL) $(src-perf)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' ; \
+		$(INSTALL) $(src-perf)/scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl' ; \
+		$(INSTALL) $(src-perf)/scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
+	$(call QUIET_INSTALL, python-scripts) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' ; \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' ; \
+		$(INSTALL) $(src-perf)/scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' ; \
+		$(INSTALL) $(src-perf)/scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python' ; \
+		$(INSTALL) $(src-perf)/scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+	$(call QUIET_INSTALL, perf_completion-script) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d' ; \
+		$(INSTALL) $(src-perf)/perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
+	$(call QUIET_INSTALL, tests) \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests' ; \
+		$(INSTALL) $(src-perf)/tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests' ; \
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr' ; \
+		$(INSTALL) $(src-perf)/tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
 
 install: install-bin try-install-man $(LIBTRACEEVENT)-install
 
diff --git a/tools/perf/arch/s390/util/Kbuild b/tools/perf/arch/s390/util/Kbuild
index 73df1ff..833e3b8 100644
--- a/tools/perf/arch/s390/util/Kbuild
+++ b/tools/perf/arch/s390/util/Kbuild
@@ -1,2 +1,2 @@
-obj-y += kvm-stat.o
+obj-$(CONFIG_BUILTIN_KVM_STAT) += kvm-stat.o
 obj-$(CONFIG_LIBDWARF) += dwarf-regs.o
diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
deleted file mode 100644
index af36aad..0000000
--- a/tools/perf/arch/x86/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-ifeq ($(LIBDWARF), 1)
-PERF_HAVE_DWARF_REGS := 1
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/dwarf-regs.o
-endif
-ifeq ($(LIBUNWIND), 1)
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/unwind-libunwind.o
-endif
-ifeq ($(LIBDWARF_UNWIND), 1)
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/unwind-libdw.o
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/tests/regs_load.o
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/tests/dwarf-unwind.o
-endif
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/header.o
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/tsc.o
-LIB_H += arch/$(ARCH)/util/tsc.h
-HAVE_KVM_STAT_SUPPORT := 1
-LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/kvm-stat.o
diff --git a/tools/perf/arch/x86/util/Kbuild b/tools/perf/arch/x86/util/Kbuild
index adca885..fe382ce 100644
--- a/tools/perf/arch/x86/util/Kbuild
+++ b/tools/perf/arch/x86/util/Kbuild
@@ -1,6 +1,6 @@
 obj-y += header.o
 obj-y += tsc.o
-obj-y += kvm-stat.o
+obj-$(CONFIG_BUILTIN_KVM_STAT) += kvm-stat.o
 obj-$(CONFIG_LIBDWARF) += dwarf-regs.o
 obj-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
 obj-$(CONFIG_LIBDWARF_UNWIND) += unwind-libdw.o
diff --git a/tools/perf/builtin-cmds.h b/tools/perf/builtin-cmds.h
deleted file mode 100644
index 863727f..0000000
--- a/tools/perf/builtin-cmds.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef BUILTIN_CMDS_H
-#define BUILTIN_CMDS_H
-
-#include "generated/autoconf.h"
-
-#endif /* BUILTIN_CMDS_H */
diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
index fbbbaa4..3e9854c 100644
--- a/tools/perf/builtin-help.c
+++ b/tools/perf/builtin-help.c
@@ -3,11 +3,11 @@
  *
  * Builtin help command
  */
+#include "generated/autoconf.h"
 #include "perf.h"
 #include "util/cache.h"
 #include "builtin.h"
 #include "util/exec_cmd.h"
-#include "builtin-cmds.h"
 #include "common-cmds.h"
 #include "util/parse-options.h"
 #include "util/run-command.h"
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index 19a1d17..f564a1f 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -30,7 +30,7 @@
 #include <pthread.h>
 #include <math.h>
 
-#ifdef HAVE_KVM_STAT_SUPPORT
+#ifdef CONFIG_BUILTIN_KVM_STAT
 #include <asm/kvm_perf.h>
 #include "util/kvm-stat.h"
 
@@ -1448,7 +1448,7 @@ static int kvm_cmd_stat(const char *file_name, int argc, const char **argv)
 perf_stat:
 	return cmd_stat(argc, argv, NULL);
 }
-#endif /* HAVE_KVM_STAT_SUPPORT */
+#endif /* CONFIG_BUILTIN_KVM_STAT */
 
 static int __cmd_record(const char *file_name, int argc, const char **argv)
 {
@@ -1570,7 +1570,7 @@ int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused)
 	if (!strncmp(argv[0], "buildid-list", 12))
 		return __cmd_buildid_list(file_name, argc, argv);
 
-#ifdef HAVE_KVM_STAT_SUPPORT
+#ifdef CONFIG_BUILTIN_KVM_STAT
 	if (!strncmp(argv[0], "stat", 4))
 		return kvm_cmd_stat(file_name, argc, argv);
 #endif
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index 05c0e1c..5181224 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -1,5 +1,5 @@
+#include "generated/autoconf.h"
 #include "builtin.h"
-#include "builtin-cmds.h"
 #include "perf.h"
 
 #include "util/evlist.h"
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index e38b021..02b3bfe 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -1,5 +1,5 @@
+#include "generated/autoconf.h"
 #include "builtin.h"
-#include "builtin-cmds.h"
 #include "perf.h"
 
 #include "util/util.h"
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index b628fa9..7cff9f3 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -34,10 +34,14 @@ ifeq ($(ARCH),arm64)
   LIBUNWIND_LIBS = -lunwind -lunwind-aarch64
 endif
 
+ifdef KCONFIG_CONFIG
+include $(KCONFIG_CONFIG)
+endif
+
 ifeq ($(LIBUNWIND_LIBS),)
   $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBUNWIND)
 else
-  LIBUNWIND = 1
+  config-libunwind = 1
   #
   # For linking with debug library, run like:
   #
@@ -65,10 +69,6 @@ ifdef CONFIG_LIBELF
   FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind := $(LIBDW_LDFLAGS) -ldw
 endif
 
-ifdef KCONFIG_CONFIG
-include $(src-perf)/config/Makefile.fix-legacy
-endif
-
 # include ARCH specific config
 -include $(src-perf)/arch/$(ARCH)/Makefile
 
@@ -299,12 +299,12 @@ endif
 ifdef CONFIG_LIBELF
   ifeq ($(feature-libelf), 0)
     ifeq ($(feature-glibc), 1)
-      LIBC_SUPPORT := 1
+      config-libc := 1
     endif
     ifeq ($(BIONIC),1)
-      LIBC_SUPPORT := 1
+      config-libc := 1
     endif
-    ifeq ($(LIBC_SUPPORT),1)
+    ifeq ($(config-libc),1)
       msg := $(warning No libelf found, disables 'probe' tool, please install elfutils-libelf-devel/libelf-dev);
       $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBELF)
       $(shell $(KCONFIG_SCRIPT) -e CONFIG_LIBELF_MINIMAL)
@@ -317,27 +317,27 @@ ifdef CONFIG_LIBELF
       endif
     endif
   else
-    LIBELF = 1
+    config-libelf = 1
     ifdef CONFIG_LIBDWARF
       ifneq ($(feature-dwarf), 1)
         msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
         $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBDWARF)
       else
-        LIBDWARF = 1
+        config-libdwarf = 1
       endif # Dwarf support
       ifdef CONFIG_LIBDWARF_UNWIND
         ifneq ($(feature-libdw-dwarf-unwind),1)
           msg := $(warning No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set CONFIG_LIBDWARF_DIR);
           $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBDWARF_UNWIND)
         else
-          LIBDWARF_UNWIND = 1
+          config-libdwarf-unwind = 1
         endif # Dwarf unwind support detected
       endif # CONFIG_LIBDWARF_UNWIND
     endif  # CONFIG_LIBDWARF
   endif # libelf support
 endif # CONFIG_LIBELF
 
-ifeq ($(LIBELF), 1)
+ifeq ($(config-libelf), 1)
 
   ifdef CONFIG_LIBELF_MMAP
     ifneq ($(feature-libelf-mmap), 1)
@@ -345,16 +345,16 @@ ifeq ($(LIBELF), 1)
     endif
   endif
 
-  ifdef CONFIG_LIBELF_MMAP
+  ifdef CONFIG_LIBELF_GETPHDRNUM
     ifneq ($(feature-libelf-getphdrnum), 1)
-      $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBELF_MMAP)
+      $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBELF_GETPHDRNUM)
     endif
   endif
 
   # include ARCH specific config
   -include $(src-perf)/arch/$(ARCH)/Makefile
 
-  ifeq ($(LIBDWARF), 1)
+  ifeq ($(config-libdwarf), 1)
     CFLAGS += $(LIBDW_CFLAGS)
     LDFLAGS += $(LIBDW_LDFLAGS)
     EXTLIBS += -lelf -ldw
@@ -365,17 +365,17 @@ ifdef CONFIG_UNWIND
   # CONFIG_LIBUNWIND is the default choice; so, if it is not
   # available, let's try another one
   ifdef CONFIG_LIBUNWIND
-    ifeq ($(LIBUNWIND), 1)
+    ifeq ($(config-libunwind), 1)
       ifneq ($(feature-libunwind), 1)
-        LIBUNWIND = 0
+        config-libunwind = 0
         $(shell $(KCONFIG_SCRIPT) -d CONFIG_LIBUNWIND)
-        ifeq ($(LIBDWARF_UNWIND), 1)
+        ifeq ($(config-libdwarf-unwind), 1)
           msg := $(warning No libunwind found, post unwind will rely on libdwarf-unwind. Please install libunwind-dev[el] >= 1.1);
           $(shell $(KCONFIG_SCRIPT) -e CONFIG_LIBDWARF_UNWIND)
         else
           msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 1.1);
           $(shell $(KCONFIG_SCRIPT) -d CONFIG_UNWIND)
-        endif # LIBDWARF_UNWIND
+        endif # config-libdwarf-unwind
       else # feature-libunwind OK
         EXTLIBS += $(LIBUNWIND_LIBS)
         CFLAGS += $(LIBUNWIND_CFLAGS)
@@ -387,7 +387,7 @@ ifdef CONFIG_UNWIND
   # CONFIG_LIBDWARF_UNWIND is not the default choice (so the user's
   # choice); so, we disable CONFIG_UNWIND if it is not available
   ifdef CONFIG_LIBDWARF_UNWIND
-    ifneq ($(LIBDWARF_UNWIND), 1)
+    ifneq ($(config-libdwarf-unwind), 1)
       msg := $(warning Disabling post unwing because (libdwarf-unwind is not available));
       $(shell $(KCONFIG_SCRIPT) -d CONFIG_UNWIND)
     endif
@@ -395,7 +395,7 @@ ifdef CONFIG_UNWIND
 
   # if libunwind is OK, let's check the option DEBUG_FRAME
   ifdef CONFIG_LIBUNWIND
-    ifeq ($(LIBUNWIND), 1)
+    ifeq ($(config-libunwind), 1)
       ifeq ($(ARCH),$(filter $(ARCH),arm arm64))
         $(call feature_check,libunwind-debug-frame)
         ifneq ($(feature-libunwind-debug-frame), 1)
@@ -412,11 +412,11 @@ ifdef CONFIG_UNWIND
 dwarf-post-unwind = 0
 dwarf-post-unwind-text = BUG
 
-ifeq ($(LIBUNWIND), 1)
+ifeq ($(config-libunwind), 1)
   dwarf-post-unwind := 1
   dwarf-post-unwind-text := libunwind
 else
-  ifeq ($(LIBDWARF_UNWIND), 1)
+  ifeq ($(config-libdwarf-unwind), 1)
     dwarf-post-unwind := 1
     dwarf-post-unwind-text := libdw
   endif
@@ -592,33 +592,18 @@ ifdef CONFIG_LIBNUMA
   endif
 endif
 
-ifdef HAVE_KVM_STAT_SUPPORT
-    CFLAGS += -DHAVE_KVM_STAT_SUPPORT
+ifdef CONFIG_READ_VDSO32
+  $(call feature_check,compile-32)
+  ifeq ($(feature-compile-32), 0)
+    $(shell $(KCONFIG_SCRIPT) -d CONFIG_READ_VDSO32)
+  endif
 endif
 
-ifeq (${IS_64_BIT}, 1)
-  ifndef NO_PERF_READ_VDSO32
-    $(call feature_check,compile-32)
-    ifeq ($(feature-compile-32), 1)
-      CFLAGS += -DHAVE_PERF_READ_VDSO32
-    else
-      NO_PERF_READ_VDSO32 := 1
-    endif
+ifdef CONFIG_READ_VDSOX32
+  $(call feature_check,compile-x32)
+  ifeq ($(feature-compile-x32), 0)
+    $(shell $(KCONFIG_SCRIPT) -d CONFIG_READ_VDSOX32)
   endif
-  ifneq (${IS_X86_64}, 1)
-    NO_PERF_READ_VDSOX32 := 1
-  endif
-  ifndef NO_PERF_READ_VDSOX32
-    $(call feature_check,compile-x32)
-    ifeq ($(feature-compile-x32), 1)
-      CFLAGS += -DHAVE_PERF_READ_VDSOX32
-    else
-      NO_PERF_READ_VDSOX32 := 1
-    endif
-  endif
-else
-  NO_PERF_READ_VDSO32 := 1
-  NO_PERF_READ_VDSOX32 := 1
 endif
 
 # Among the variables below, these:
@@ -712,36 +697,9 @@ define feature_print_text_code
     MSG = $(shell printf '...%30s: %s' $(1) $(2))
 endef
 
-PERF_FEATURES := $(foreach feat,$(LIB_FEATURE_TESTS),feature-$(feat)($(feature-$(feat))))
-PERF_FEATURES_FILE := $(shell touch $(OUTPUT)PERF-FEATURES; cat $(OUTPUT)PERF-FEATURES)
-
-ifeq ($(dwarf-post-unwind),1)
-  PERF_FEATURES += dwarf-post-unwind($(dwarf-post-unwind-text))
-endif
-
-# The $(display_lib) controls the default detection message
-# output. It's set if:
-# - detected features differes from stored features from
-#   last build (in PERF-FEATURES file)
-# - one of the $(LIB_FEATURE_TESTS) is not detected
-# - VF is enabled
-
-ifneq ("$(PERF_FEATURES)","$(PERF_FEATURES_FILE)")
-  $(shell echo "$(PERF_FEATURES)" > $(OUTPUT)PERF-FEATURES)
-  display_lib := 1
-endif
-
-feature_check = $(eval $(feature_check_code))
-define feature_check_code
-  ifneq ($(feature-$(1)), 1)
-    display_lib := 1
-  endif
-endef
-
-$(foreach feat,$(LIB_FEATURE_TESTS),$(call feature_check,$(feat)))
+display_lib := 1
 
 ifeq ($(VF),1)
-  display_lib := 1
   display_vf := 1
 endif
 
diff --git a/tools/perf/config/Makefile.fix-config b/tools/perf/config/Makefile.fix-config
deleted file mode 100644
index 3f0e33e..0000000
--- a/tools/perf/config/Makefile.fix-config
+++ /dev/null
@@ -1,6 +0,0 @@
-include $(CONFIG_DETECTED)
-include $(KCONFIG_CONFIG)
-
-CONFIG := $(srctree)/scripts/config --file $(KCONFIG_CONFIG)
-
-all:
diff --git a/tools/perf/config/Makefile.fix-legacy b/tools/perf/config/Makefile.fix-legacy
deleted file mode 100644
index 431c9bf..0000000
--- a/tools/perf/config/Makefile.fix-legacy
+++ /dev/null
@@ -1,2 +0,0 @@
-
-include $(KCONFIG_CONFIG)
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index b4fd910..69e9b9d 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -6,8 +6,8 @@
  * This is the main hub from which the sub-commands (perf stat,
  * perf top, perf record, perf report, etc.) are started.
  */
+#include "generated/autoconf.h"
 #include "builtin.h"
-#include "builtin-cmds.h"
 
 #include "util/exec_cmd.h"
 #include "util/cache.h"
diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
index 5c7dd79..bd2f4f9 100644
--- a/tools/perf/util/vdso.c
+++ b/tools/perf/util/vdso.c
@@ -8,6 +8,7 @@
 #include <stdlib.h>
 #include <linux/kernel.h>
 
+#include "generated/autoconf.h"
 #include "vdso.h"
 #include "util.h"
 #include "symbol.h"
@@ -256,11 +257,11 @@ static int vdso__dso_findnew_compat(struct machine *machine,
 
 	dso_type = machine__thread_dso_type(machine, thread);
 
-#ifndef HAVE_PERF_READ_VDSO32
+#ifndef CONFIG_READ_VDSO32
 	if (dso_type == DSO__TYPE_32BIT)
 		return 0;
 #endif
-#ifndef HAVE_PERF_READ_VDSOX32
+#ifndef CONFIG_READ_VDSOX32
 	if (dso_type == DSO__TYPE_X32BIT)
 		return 0;
 #endif
-- 
2.1.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ