On Fri, Jul 19, 2019 at 7:34 AM Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote: > > From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> > > As it fails to build in some systems with: > > libbpf.c: In function 'perf_buffer__new': > libbpf.c:4515: error: unknown field 'sample_period' specified in initializer > libbpf.c:4516: error: unknown field 'wakeup_events' specified in initializer > > Doing as: > > attr.sample_period = 1; > > I.e. not as a designated initializer makes it build everywhere. > > Cc: Andrii Nakryiko <andriin@xxxxxx> > Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx> > Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx> > Cc: Namhyung Kim <namhyung@xxxxxxxxxx> > Fixes: fb84b8224655 ("libbpf: add perf buffer API") > Link: https://lkml.kernel.org/n/tip-hnlmch8qit1ieksfppmr32si@xxxxxxxxxxxxxx > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> > --- Thanks, Arnaldo! Acked-by: Andrii Nakryiko <andriin@xxxxxx> > tools/lib/bpf/libbpf.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index b1dec5b1de54..aaca132def74 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -4508,13 +4508,13 @@ struct perf_buffer *perf_buffer__new(int map_fd, size_t page_cnt, > const struct perf_buffer_opts *opts) > { > struct perf_buffer_params p = {}; > - struct perf_event_attr attr = { > - .config = PERF_COUNT_SW_BPF_OUTPUT, > - .type = PERF_TYPE_SOFTWARE, > - .sample_type = PERF_SAMPLE_RAW, > - .sample_period = 1, > - .wakeup_events = 1, > - }; > + struct perf_event_attr attr = { 0, }; > + > + attr.config = PERF_COUNT_SW_BPF_OUTPUT, > + attr.type = PERF_TYPE_SOFTWARE; > + attr.sample_type = PERF_SAMPLE_RAW; > + attr.sample_period = 1; > + attr.wakeup_events = 1; > > p.attr = &attr; > p.sample_cb = opts ? opts->sample_cb : NULL; > -- > 2.21.0 >