[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fV749yr+wMMYjm87ThnM7ESd+i4Ko=+6H+cuCNdKJM50A@mail.gmail.com>
Date: Tue, 28 Mar 2023 09:14:51 -0700
From: Ian Rogers <irogers@...gle.com>
To: Adrian Hunter <adrian.hunter@...el.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
John Garry <john.g.garry@...cle.com>,
Will Deacon <will@...nel.org>,
James Clark <james.clark@....com>,
Mike Leach <mike.leach@...aro.org>,
Leo Yan <leo.yan@...aro.org>,
Mathieu Poirier <mathieu.poirier@...aro.org>,
Suzuki K Poulose <suzuki.poulose@....com>,
Kan Liang <kan.liang@...ux.intel.com>,
Raul Silvera <rsilvera@...gle.com>,
Athira Rajeev <atrajeev@...ux.vnet.ibm.com>,
Ravi Bangoria <ravi.bangoria@....com>,
Florian Fischer <florian.fischer@...q.space>,
Rob Herring <robh@...nel.org>,
Xing Zhengjun <zhengjun.xing@...ux.intel.com>,
Sean Christopherson <seanjc@...gle.com>,
Chengdong Li <chengdongli@...cent.com>,
Denis Nikitin <denik@...omium.org>,
Martin Liška <mliska@...e.cz>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, coresight@...ts.linaro.org
Subject: Re: [PATCH v1 0/6] Simplify linking against tools/perf code
On Tue, Mar 28, 2023 at 6:24 AM Adrian Hunter <adrian.hunter@...el.com> wrote:
>
> On 28/03/23 04:40, Ian Rogers wrote:
> > When fuzzing something like parse-events, having the main function in
> > perf.c alongside global variables like input_name means that
> > input_name must be redeclared with the fuzzer function's
> > main. However, as the fuzzer is using the tools/perf code as a library
> > this causes backward linking reference that the linker may warn
> > about. Reorganize perf.c and perf.h to avoid potential backward
> > references, or so that the declaration/definition locations are more
> > consistent.
> >
>
> Seems like it could be a pain to maintain.
>
> Did you consider just adding:
>
> diff --git a/tools/perf/perf.c b/tools/perf/perf.c
> index 82bbe0ca858b..a75dd47d68ee 100644
> --- a/tools/perf/perf.c
> +++ b/tools/perf/perf.c
> @@ -456,6 +456,7 @@ static int libperf_print(enum libperf_print_level level,
> return veprintf(level, verbose, fmt, ap);
> }
>
> +#ifndef CUSTOM_MAIN
> int main(int argc, const char **argv)
> {
> int err;
> @@ -576,3 +577,4 @@ int main(int argc, const char **argv)
> out:
> return 1;
> }
> +#endif
>
It's possible. Would need to make the static functions not warn about
being declared and not used. I still think that just aligning
definitions and declarations yields the most expected code and will
lead to fewer problems in the long run.
Thanks,
Ian
Powered by blists - more mailing lists