[PATCH v4 13/14] perf kbuild: final cosmetic changes

From: Alexis Berlemont
Date: Sat Oct 25 2014 - 18:24:34 EST


* 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@xxxxxxxxx>
---

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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/