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]
Date:   Tue, 27 Jun 2023 07:56:25 -0700
From:   Ian Rogers <irogers@...gle.com>
To:     Namhyung Kim <namhyung@...nel.org>
Cc:     Arnaldo Carvalho de Melo <acme@...nel.org>,
        Jiri Olsa <jolsa@...nel.org>,
        Adrian Hunter <adrian.hunter@...el.com>,
        Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        linux-perf-users@...r.kernel.org
Subject: Re: [PATCH] perf test: Fix a compile error on pe-file-parsing.c

On Mon, Jun 26, 2023 at 11:33 PM Namhyung Kim <namhyung@...nel.org> wrote:
>
> The dso__find_symbol_by_name() should be have idx pointer argument.
> Found during the build-test.
>
>   $ make build-test
>   ...
>     CC      /tmp/tmp.6JwPK1xbWG/tests/pe-file-parsing.o
>   tests/pe-file-parsing.c: In function ‘run_dir’:
>   tests/pe-file-parsing.c:64:15: error: too few arguments to function ‘dso__find_symbol_by_name’
>      64 |         sym = dso__find_symbol_by_name(dso, "main");
>         |               ^~~~~~~~~~~~~~~~~~~~~~~~
>   In file included from tests/pe-file-parsing.c:16:
>   /usr/local/google/home/namhyung/project/linux/tools/perf/util/symbol.h:135:16: note: declared here
>     135 | struct symbol *dso__find_symbol_by_name(struct dso *dso, const char *name, size_t *idx);
>         |                ^~~~~~~~~~~~~~~~~~~~~~~~
>
> Fixes: 259dce914e93 ("perf symbol: Remove symbol_name_rb_node")
> Signed-off-by: Namhyung Kim <namhyung@...nel.org>

Acked-by: Ian Rogers <irogers@...gle.com>

Thanks,
Ian

> ---
>  tools/perf/Makefile.config         | 13 ++++++++++---
>  tools/perf/tests/pe-file-parsing.c |  3 ++-
>  2 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index 78411252b72a..0609c19caabd 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -315,6 +315,9 @@ FEATURE_CHECK_LDFLAGS-libpython := $(PYTHON_EMBED_LDOPTS)
>
>  FEATURE_CHECK_LDFLAGS-libaio = -lrt
>
> +FEATURE_CHECK_LDFLAGS-disassembler-four-args = -lbfd -lopcodes -ldl
> +FEATURE_CHECK_LDFLAGS-disassembler-init-styled = -lbfd -lopcodes -ldl
> +
>  CORE_CFLAGS += -fno-omit-frame-pointer
>  CORE_CFLAGS += -ggdb3
>  CORE_CFLAGS += -funwind-tables
> @@ -344,8 +347,8 @@ ifneq ($(TCMALLOC),)
>  endif
>
>  ifeq ($(FEATURES_DUMP),)
> -# We will display at the end of this Makefile.config, using $(call feature_display_entries),
> -# as we may retry some feature detection here.
> +# We will display at the end of this Makefile.config, using $(call feature_display_entries)
> +# As we may retry some feature detection here, see the disassembler-four-args case, for instance
>    FEATURE_DISPLAY_DEFERRED := 1
>  include $(srctree)/tools/build/Makefile.feature
>  else
> @@ -907,9 +910,13 @@ ifdef BUILD_NONDISTRO
>
>      ifeq ($(feature-libbfd-liberty), 1)
>        EXTLIBS += -lbfd -lopcodes -liberty
> +      FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -ldl
> +      FEATURE_CHECK_LDFLAGS-disassembler-init-styled += -liberty -ldl
>      else
>        ifeq ($(feature-libbfd-liberty-z), 1)
>          EXTLIBS += -lbfd -lopcodes -liberty -lz
> +        FEATURE_CHECK_LDFLAGS-disassembler-four-args += -liberty -lz -ldl
> +        FEATURE_CHECK_LDFLAGS-disassembler-init-styled += -liberty -lz -ldl
>        endif
>      endif
>      $(call feature_check,disassembler-four-args)
> @@ -1333,6 +1340,6 @@ endif
>
>  # re-generate FEATURE-DUMP as we may have called feature_check, found out
>  # extra libraries to add to LDFLAGS of some other test and then redo those
> -# tests.
> +# tests, see the block about libbfd, disassembler-four-args, for instance.
>  $(shell rm -f $(FEATURE_DUMP_FILENAME))
>  $(foreach feat,$(FEATURE_TESTS),$(shell echo "$(call feature_assign,$(feat))" >> $(FEATURE_DUMP_FILENAME)))
> diff --git a/tools/perf/tests/pe-file-parsing.c b/tools/perf/tests/pe-file-parsing.c
> index c09a9fae1689..fff58b220c07 100644
> --- a/tools/perf/tests/pe-file-parsing.c
> +++ b/tools/perf/tests/pe-file-parsing.c
> @@ -34,6 +34,7 @@ static int run_dir(const char *d)
>         struct dso *dso;
>         struct symbol *sym;
>         int ret;
> +       size_t idx;
>
>         scnprintf(filename, PATH_MAX, "%s/pe-file.exe", d);
>         ret = filename__read_build_id(filename, &bid);
> @@ -61,7 +62,7 @@ static int run_dir(const char *d)
>         TEST_ASSERT_VAL("Failed to load symbols", ret == 0);
>
>         dso__sort_by_name(dso);
> -       sym = dso__find_symbol_by_name(dso, "main");
> +       sym = dso__find_symbol_by_name(dso, "main", &idx);
>         TEST_ASSERT_VAL("Failed to find main", sym);
>         dso__delete(dso);
>
> --
> 2.41.0.162.gfafddb0af9-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ