From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5BD21FBC; Sat, 20 Jan 2024 07:23:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.249.212.35 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705735437; cv=none; b=TG5iJpn7Z9LKhz/gJzxsWSQ8qXkhkwC+PBoroIAfa/hJjxYvKFCA2/2vKtMNDLrGgcTe/NfA7rmSb3b7s88EqS+ZplFn/M7TTJNpshopJhSyX4zZOgWPGnjVz6RnuAkhHk4AXkpgyYvMN98TEdOK5XJl4AORIN4ys+MPKKmMYCo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705735437; c=relaxed/simple; bh=0cA6kcmKj4bnCD4NrZh+oeXoFuB+1qfeGQiotxB2uiU=; h=Date:From:To:CC:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=rv7GQ1A+h8jTdJDDH8EUAAZ7inCwtJL7eSFXf5dI5s3QwV9o7jM4DPf56G5AiSCjwkKekIAiZ1Sy3aog5FW5m4RNbrk19yu0LDtSC1ks4qEZryBfbnfUGsbEsE2FJY1NKMLebnk0XNDyvjpwo4IONB/U4+quzxHk0QGOHS5xQ7M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=huawei.com; spf=pass smtp.mailfrom=huawei.com; arc=none smtp.client-ip=45.249.212.35 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=huawei.com Received: from mail.maildlp.com (unknown [172.19.163.44]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4TH7GV6Rz2z1S5FW; Sat, 20 Jan 2024 15:22:10 +0800 (CST) Received: from kwepemd100002.china.huawei.com (unknown [7.221.188.184]) by mail.maildlp.com (Postfix) with ESMTPS id D87AE1400D3; Sat, 20 Jan 2024 15:23:51 +0800 (CST) Received: from M910t (10.110.54.157) by kwepemd100002.china.huawei.com (7.221.188.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1258.28; Sat, 20 Jan 2024 15:23:50 +0800 Date: Sat, 20 Jan 2024 15:23:40 +0800 From: Changbin Du To: Adrian Hunter CC: Changbin Du , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , , , Andi Kleen , Thomas Richter , , Peter Zijlstra , Arnaldo Carvalho de Melo , Ingo Molnar Subject: Re: [PATCH v4 1/5] perf: build: introduce the libcapstone Message-ID: <20240120072340.pkl76yyrtaptoi5y@M910t> References: <20240119104856.3617986-1-changbin.du@huawei.com> <20240119104856.3617986-2-changbin.du@huawei.com> <029cd7e3-51f5-4d04-8f54-c6e478e052a3@intel.com> Precedence: bulk X-Mailing-List: linux-perf-users@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <029cd7e3-51f5-4d04-8f54-c6e478e052a3@intel.com> X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemd100002.china.huawei.com (7.221.188.184) On Fri, Jan 19, 2024 at 08:38:40PM +0200, Adrian Hunter wrote: > On 19/01/24 12:48, Changbin Du wrote: > > Later we will use libcapstone to disassemble instructions of samples. > > > > Signed-off-by: Changbin Du > > --- > > tools/build/Makefile.feature | 2 ++ > > tools/build/feature/Makefile | 4 ++++ > > tools/build/feature/test-all.c | 4 ++++ > > tools/build/feature/test-libcapstone.c | 11 +++++++++++ > > tools/perf/Makefile.config | 21 +++++++++++++++++++++ > > tools/perf/Makefile.perf | 3 +++ > > tools/perf/tests/make needs updating also done. Added make_no_libcapstone target. > > > 6 files changed, 45 insertions(+) > > create mode 100644 tools/build/feature/test-libcapstone.c > > > > diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature > > index 934e2777a2db..23bee50aeb0f 100644 > > --- a/tools/build/Makefile.feature > > +++ b/tools/build/Makefile.feature > > @@ -86,6 +86,7 @@ FEATURE_TESTS_EXTRA := \ > > gtk2-infobar \ > > hello \ > > libbabeltrace \ > > + libcapstone \ > > libbfd-liberty \ > > libbfd-liberty-z \ > > libopencsd \ > > @@ -133,6 +134,7 @@ FEATURE_DISPLAY ?= \ > > libcrypto \ > > libunwind \ > > libdw-dwarf-unwind \ > > + libcapstone \ > > zlib \ > > lzma \ > > get_cpuid \ > > diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile > > index dad79ede4e0a..d6eaade09694 100644 > > --- a/tools/build/feature/Makefile > > +++ b/tools/build/feature/Makefile > > @@ -53,6 +53,7 @@ FILES= \ > > test-timerfd.bin \ > > test-libdw-dwarf-unwind.bin \ > > test-libbabeltrace.bin \ > > + test-libcapstone.bin \ > > test-compile-32.bin \ > > test-compile-x32.bin \ > > test-zlib.bin \ > > @@ -282,6 +283,9 @@ $(OUTPUT)test-libdw-dwarf-unwind.bin: > > $(OUTPUT)test-libbabeltrace.bin: > > $(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace) > > > > +$(OUTPUT)test-libcapstone.bin: > > + $(BUILD) # -lcapstone provided by $(FEATURE_CHECK_LDFLAGS-libcapstone) > > + > > $(OUTPUT)test-compile-32.bin: > > $(CC) -m32 -o $@ test-compile.c > > > > diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c > > index 6f4bf386a3b5..dd0a18c2ef8f 100644 > > --- a/tools/build/feature/test-all.c > > +++ b/tools/build/feature/test-all.c > > @@ -134,6 +134,10 @@ > > #undef main > > #endif > > > > +#define main main_test_libcapstone > > +# include "test-libcapstone.c" > > +#undef main > > + > > #define main main_test_lzma > > # include "test-lzma.c" > > #undef main > > diff --git a/tools/build/feature/test-libcapstone.c b/tools/build/feature/test-libcapstone.c > > new file mode 100644 > > index 000000000000..fbe8dba189e9 > > --- /dev/null > > +++ b/tools/build/feature/test-libcapstone.c > > @@ -0,0 +1,11 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > + > > +#include > > + > > +int main(void) > > +{ > > + csh handle; > > + > > + cs_open(CS_ARCH_X86, CS_MODE_64, &handle); > > + return 0; > > +} > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > > index b3e6ed10f40c..7589725ad178 100644 > > --- a/tools/perf/Makefile.config > > +++ b/tools/perf/Makefile.config > > @@ -191,6 +191,15 @@ endif > > FEATURE_CHECK_CFLAGS-libbabeltrace := $(LIBBABELTRACE_CFLAGS) > > FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf > > > > +# for linking with debug library, run like: > > +# make DEBUG=1 LIBCAPSTONE_DIR=/opt/capstone/ > > +ifdef LIBCAPSTONE_DIR > > + LIBCAPSTONE_CFLAGS := -I$(LIBCAPSTONE_DIR)/include > > + LIBCAPSTONE_LDFLAGS := -L$(LIBCAPSTONE_DIR)/ > > +endif > > +FEATURE_CHECK_CFLAGS-libcapstone := $(LIBCAPSTONE_CFLAGS) > > +FEATURE_CHECK_LDFLAGS-libcapstone := $(LIBCAPSTONE_LDFLAGS) -lcapstone > > + > > ifdef LIBZSTD_DIR > > LIBZSTD_CFLAGS := -I$(LIBZSTD_DIR)/lib > > LIBZSTD_LDFLAGS := -L$(LIBZSTD_DIR)/lib > > @@ -1089,6 +1098,18 @@ ifndef NO_LIBBABELTRACE > > endif > > endif > > > > +ifndef NO_CAPSTONE > > + $(call feature_check,libcapstone) > > + ifeq ($(feature-libcapstone), 1) > > + CFLAGS += -DHAVE_LIBCAPSTONE_SUPPORT $(LIBCAPSTONE_CFLAGS) > > + LDFLAGS += $(LICAPSTONE_LDFLAGS) > > + EXTLIBS += -lcapstone > > + $(call detected,CONFIG_LIBCAPSTONE) > > + else > > + msg := $(warning No libcapstone found, disables disasm engine support for 'perf script', please install libcapstone-dev/capstone-devel); > > + endif > > +endif > > + > > ifndef NO_AUXTRACE > > ifeq ($(SRCARCH),x86) > > ifeq ($(feature-get_cpuid), 0) > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > > index 058c9aecf608..236da4f39a63 100644 > > --- a/tools/perf/Makefile.perf > > +++ b/tools/perf/Makefile.perf > > @@ -84,6 +84,9 @@ include ../scripts/utilities.mak > > # Define NO_LIBBABELTRACE if you do not want libbabeltrace support > > # for CTF data format. > > # > > +# Define NO_CAPSTONE if you do not want libcapstone support > > +# for disasm engine. > > +# > > # Define NO_LZMA if you do not want to support compressed (xz) kernel modules > > # > > # Define NO_AUXTRACE if you do not want AUX area tracing support > -- Cheers, Changbin Du