perf build: Combine test-dwarf-getlocations into test-libdw

dwarf_getlocations support in libdw is more than 10 years old. Make
libdw imply dwarf_getlocations support and simplify build logic.

Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Leo Yan <leo.yan@arm.com>
Cc: Anup Patel <anup@brainfault.org>
Cc: Yang Jihong <yangjihong@bytedance.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Shenlin Liang <liangshenlin@eswincomputing.com>
Cc: Nick Terrell <terrelln@fb.com>
Cc: Guilherme Amadio <amadio@gentoo.org>
Cc: Steinar H. Gunderson <sesse@google.com>
Cc: Changbin Du <changbin.du@huawei.com>
Cc: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Guo Ren <guoren@kernel.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Will Deacon <will@kernel.org>
Cc: James Clark <james.clark@linaro.org>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Chen Pei <cp0613@linux.alibaba.com>
Cc: Leo Yan <leo.yan@linux.dev>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Aditya Gupta <adityag@linux.ibm.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Atish Patra <atishp@rivosinc.com>
Cc: Dima Kogan <dima@secretsauce.net>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Dr. David Alan Gilbert <linux@treblig.org>
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241017001354.56973-7-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
Ian Rogers 2024-10-16 17:13:49 -07:00 committed by Namhyung Kim
parent 3034b48a4b
commit 23580d7bb1
6 changed files with 15 additions and 33 deletions

View file

@ -31,7 +31,6 @@ endef
FEATURE_TESTS_BASIC := \
backtrace \
libdw \
dwarf_getlocations \
dwarf_getcfi \
eventfd \
fortify-source \
@ -120,7 +119,6 @@ endif
FEATURE_DISPLAY ?= \
libdw \
dwarf_getlocations \
glibc \
libbfd \
libbfd-buildid \

View file

@ -6,7 +6,6 @@ FILES= \
test-backtrace.bin \
test-bionic.bin \
test-libdw.bin \
test-dwarf_getlocations.bin \
test-dwarf_getcfi.bin \
test-eventfd.bin \
test-fortify-source.bin \
@ -188,9 +187,6 @@ endif
$(OUTPUT)test-libdw.bin:
$(BUILD) $(DWLIBS)
$(OUTPUT)test-dwarf_getlocations.bin:
$(BUILD) $(DWLIBS)
$(OUTPUT)test-dwarf_getcfi.bin:
$(BUILD) $(DWLIBS)

View file

@ -42,10 +42,6 @@
# include "test-libdw.c"
#undef main
#define main main_test_dwarf_getlocations
# include "test-dwarf_getlocations.c"
#undef main
#define main main_test_eventfd
# include "test-eventfd.c"
#undef main
@ -184,7 +180,6 @@ int main(int argc, char *argv[])
main_test_gettid();
main_test_glibc();
main_test_libdw();
main_test_dwarf_getlocations();
main_test_eventfd();
main_test_libelf_getphdrnum();
main_test_libelf_gelf_getnote();

View file

@ -1,13 +0,0 @@
// SPDX-License-Identifier: GPL-2.0
#include <stdlib.h>
#include <elfutils/libdw.h>
int main(void)
{
Dwarf_Addr base, start, end;
Dwarf_Attribute attr;
Dwarf_Op *op;
size_t nops;
ptrdiff_t offset = 0;
return (int)dwarf_getlocations(&attr, offset, &base, &start, &end, &op, &nops);
}

View file

@ -1,4 +1,5 @@
// SPDX-License-Identifier: GPL-2.0
#include <stdlib.h>
#include <dwarf.h>
#include <elfutils/libdw.h>
#include <elfutils/libdwfl.h>
@ -22,7 +23,18 @@ int test_libdw_unwind(void)
return 0;
}
int test_libdw_getlocations(void)
{
Dwarf_Addr base, start, end;
Dwarf_Attribute attr;
Dwarf_Op *op;
size_t nops;
ptrdiff_t offset = 0;
return (int)dwarf_getlocations(&attr, offset, &base, &start, &end, &op, &nops);
}
int main(void)
{
return test_libdw() + test_libdw_unwind();
return test_libdw() + test_libdw_unwind() + test_libdw_getlocations();
}

View file

@ -164,8 +164,6 @@ ifeq ($(findstring -static,${LDFLAGS}),-static)
endif
FEATURE_CHECK_CFLAGS-libdw := $(LIBDW_CFLAGS)
FEATURE_CHECK_LDFLAGS-libdw := $(LIBDW_LDFLAGS) $(DWARFLIBS)
FEATURE_CHECK_CFLAGS-dwarf_getlocations := $(LIBDW_CFLAGS)
FEATURE_CHECK_LDFLAGS-dwarf_getlocations := $(LIBDW_LDFLAGS) $(DWARFLIBS)
FEATURE_CHECK_CFLAGS-dwarf_getcfi := $(LIBDW_CFLAGS)
FEATURE_CHECK_LDFLAGS-dwarf_getcfi := $(LIBDW_LDFLAGS) $(DWARFLIBS)
@ -467,15 +465,11 @@ else
else
ifneq ($(feature-libdw), 1)
ifndef NO_LIBDW
$(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)
$(warning No libdw.h found or old libdw.h found or elfutils is older than 0.157, disables dwarf support. Please install new elfutils-devel/libdw-dev)
NO_LIBDW := 1
endif
else
ifneq ($(feature-dwarf_getlocations), 1)
$(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157)
else
CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
endif # dwarf_getlocations
CFLAGS += -DHAVE_DWARF_GETLOCATIONS_SUPPORT
ifneq ($(feature-dwarf_getcfi), 1)
$(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.142)
else