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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fU=G75jpsG-X6pa8_rdKapxVc615CqvcdSPBFesj02D6A@mail.gmail.com>
Date: Wed, 3 Dec 2025 16:34:56 -0800
From: Ian Rogers <irogers@...gle.com>
To: Namhyung Kim <namhyung@...nel.org>, bpf@...r.kernel.org
Cc: Arnaldo Carvalho de Melo <acme@...nel.org>, James Clark <james.clark@...aro.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 1/2] tools/build: Add a feature test for libopenssl

On Wed, Dec 3, 2025 at 3:29 PM Namhyung Kim <namhyung@...nel.org> wrote:
>
> It's used by bpftool and the kernel build.  Let's add a feature test so
> that perf can decide what to do based on the availability.

It seems strange to add a feature test that bpftool is missing and
then use it only in the perf build. The signing of bpf programs isn't
something I think we need for skeleton support in perf. I like the
feature test, could we add it and use it in bpftool? The only two
functions using openssl appear to be:

  __u32 register_session_key(const char *key_der_path)
  int bpftool_prog_sign(struct bpf_load_and_run_opts *opts)

so we can do the whole feature test then #ifdef HAVE_FEATURE... stub
static inline versions of the functions game?

Perhaps we only need the bootstrap version of bpftool in perf and we
can just avoid dependencies that way. Looking at bpftool's build I see
that sign.o/c with those functions in is part of the bootstrap version
of bpftool :-(

Thanks,
Ian

> Signed-off-by: Namhyung Kim <namhyung@...nel.org>
> ---
>  tools/build/Makefile.feature          | 6 ++++--
>  tools/build/feature/Makefile          | 8 ++++++--
>  tools/build/feature/test-all.c        | 5 +++++
>  tools/build/feature/test-libopenssl.c | 7 +++++++
>  4 files changed, 22 insertions(+), 4 deletions(-)
>  create mode 100644 tools/build/feature/test-libopenssl.c
>
> diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
> index fc6abe369f7373c5..bc6d85bad379321b 100644
> --- a/tools/build/Makefile.feature
> +++ b/tools/build/Makefile.feature
> @@ -99,7 +99,8 @@ FEATURE_TESTS_BASIC :=                  \
>          libzstd                                \
>          disassembler-four-args         \
>          disassembler-init-styled       \
> -        file-handle
> +        file-handle                    \
> +        libopenssl
>
>  # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
>  # of all feature tests
> @@ -147,7 +148,8 @@ FEATURE_DISPLAY ?=              \
>           lzma                   \
>           bpf                   \
>           libaio                        \
> -         libzstd
> +         libzstd               \
> +         libopenssl
>
>  #
>  # Declare group members of a feature to display the logical OR of the detection
> diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
> index 7c90e0d0157ac9b1..3fd5ad0db2109778 100644
> --- a/tools/build/feature/Makefile
> +++ b/tools/build/feature/Makefile
> @@ -67,12 +67,13 @@ FILES=                                          \
>           test-libopencsd.bin                   \
>           test-clang.bin                                \
>           test-llvm.bin                         \
> -         test-llvm-perf.bin   \
> +         test-llvm-perf.bin                    \
>           test-libaio.bin                       \
>           test-libzstd.bin                      \
>           test-clang-bpf-co-re.bin              \
>           test-file-handle.bin                  \
> -         test-libpfm4.bin
> +         test-libpfm4.bin                      \
> +         test-libopenssl.bin
>
>  FILES := $(addprefix $(OUTPUT),$(FILES))
>
> @@ -381,6 +382,9 @@ endif
>  $(OUTPUT)test-libpfm4.bin:
>         $(BUILD) -lpfm
>
> +$(OUTPUT)test-libopenssl.bin:
> +       $(BUILD) -lssl
> +
>  $(OUTPUT)test-bpftool-skeletons.bin:
>         $(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
>                 > $(@:.bin=.make.output) 2>&1
> diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
> index eb346160d0ba0e2f..1488bf6e607836e5 100644
> --- a/tools/build/feature/test-all.c
> +++ b/tools/build/feature/test-all.c
> @@ -142,6 +142,10 @@
>  # include "test-libtraceevent.c"
>  #undef main
>
> +#define main main_test_libopenssl
> +# include "test-libopenssl.c"
> +#undef main
> +
>  int main(int argc, char *argv[])
>  {
>         main_test_libpython();
> @@ -173,6 +177,7 @@ int main(int argc, char *argv[])
>         main_test_reallocarray();
>         main_test_libzstd();
>         main_test_libtraceevent();
> +       main_test_libopenssl();
>
>         return 0;
>  }
> diff --git a/tools/build/feature/test-libopenssl.c b/tools/build/feature/test-libopenssl.c
> new file mode 100644
> index 0000000000000000..168c45894e8be687
> --- /dev/null
> +++ b/tools/build/feature/test-libopenssl.c
> @@ -0,0 +1,7 @@
> +#include <openssl/ssl.h>
> +#include <openssl/opensslv.h>
> +
> +int main(void)
> +{
> +       return SSL_library_init();
> +}
> --
> 2.52.0.177.g9f829587af-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ