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: Mon, 11 Mar 2024 10:49:17 -0700
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: Ian Rogers <irogers@...gle.com>
Cc: Arnd Bergmann <arnd@...db.de>, Andrii Nakryiko <andrii@...nel.org>, 
	Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>, 
	Martin KaFai Lau <martin.lau@...ux.dev>, Song Liu <song@...nel.org>, 
	Yonghong Song <yonghong.song@...ux.dev>, John Fastabend <john.fastabend@...il.com>, 
	KP Singh <kpsingh@...nel.org>, Stanislav Fomichev <sdf@...gle.com>, Hao Luo <haoluo@...gle.com>, 
	Jiri Olsa <jolsa@...nel.org>, Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, 
	Arnaldo Carvalho de Melo <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>, 
	Mark Rutland <mark.rutland@....com>, 
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>, 
	Adrian Hunter <adrian.hunter@...el.com>, Paolo Bonzini <pbonzini@...hat.com>, 
	Shuah Khan <shuah@...nel.org>, Kees Cook <keescook@...omium.org>, 
	"Gustavo A. R. Silva" <gustavoars@...nel.org>, Nathan Chancellor <nathan@...nel.org>, 
	Nick Desaulniers <ndesaulniers@...gle.com>, Bill Wendling <morbo@...gle.com>, 
	Justin Stitt <justinstitt@...gle.com>, Andrew Morton <akpm@...ux-foundation.org>, 
	Liam Howlett <liam.howlett@...cle.com>, Miguel Ojeda <ojeda@...nel.org>, 
	Will Deacon <will@...nel.org>, Mark Brown <broonie@...nel.org>, 
	David Laight <David.Laight@...lab.com>, "Michael S. Tsirkin" <mst@...hat.com>, Shunsuke Mie <mie@...l.co.jp>, 
	Yafang Shao <laoar.shao@...il.com>, Kui-Feng Lee <kuifeng@...a.com>, 
	James Clark <james.clark@....com>, Nick Forrington <nick.forrington@....com>, 
	Leo Yan <leo.yan@...ux.dev>, German Gomez <german.gomez@....com>, Rob Herring <robh@...nel.org>, 
	John Garry <john.g.garry@...cle.com>, Sean Christopherson <seanjc@...gle.com>, 
	Anup Patel <anup@...infault.org>, Fuad Tabba <tabba@...gle.com>, 
	Andrew Jones <ajones@...tanamicro.com>, Chao Peng <chao.p.peng@...ux.intel.com>, 
	Haibo Xu <haibo1.xu@...el.com>, Peter Xu <peterx@...hat.com>, 
	Vishal Annapurve <vannapurve@...gle.com>, linux-kernel@...r.kernel.org, 
	linux-arch@...r.kernel.org, bpf@...r.kernel.org, 
	linux-perf-users@...r.kernel.org, kvm@...r.kernel.org, 
	linux-kselftest@...r.kernel.org, linux-hardening@...r.kernel.org, 
	llvm@...ts.linux.dev
Subject: Re: [PATCH v1 02/13] libbpf: Make __printf define conditional

On Sat, Mar 9, 2024 at 6:05 PM Ian Rogers <irogers@...gle.com> wrote:
>
> libbpf depends upon linux/err.h which has a linux/compiler.h
> dependency. In the kernel includes, as opposed to the tools version,
> linux/compiler.h includes linux/compiler_attributes.h which defines
> __printf. As the libbpf.c __printf definition isn't guarded by an
> ifndef, this leads to a duplicate definition compilation error when
> trying to update the tools/include/linux/compiler.h. Fix this by
> adding the missing ifndef.
>
> Signed-off-by: Ian Rogers <irogers@...gle.com>
> ---
>  tools/lib/bpf/libbpf.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index afd09571c482..2152360b4b18 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -66,7 +66,9 @@
>   */
>  #pragma GCC diagnostic ignored "-Wformat-nonliteral"
>
> -#define __printf(a, b) __attribute__((format(printf, a, b)))
> +#ifndef __printf
> +# define __printf(a, b)        __attribute__((format(printf, a, b)))

styling nit: don't add spaces between # and define, please

overall LGTM

Acked-by: Andrii Nakryiko <andrii@...nel.org>

Two questions, though.

1. It seems like just dropping #define __printf in libbpf.c compiles
fine (I checked both building libbpf directly, and BPF selftest, and
perf, and bpftool directly, all of them built fine). So we can
probably just drop this. I'll need to add __printf on Github, but
that's fine.

2. Logistics. Which tree should this patch go through? Can I land it
in bpf-next or it's too much inconvenience for you?


> +#endif
>
>  static struct bpf_map *bpf_object__add_map(struct bpf_object *obj);
>  static bool prog_is_subprog(const struct bpf_object *obj, const struct bpf_program *prog);
> --
> 2.44.0.278.ge034bb2e1d-goog
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ