Messages in this thread | | | From | Ian Rogers <> | Date | Tue, 28 Mar 2023 09:14:51 -0700 | 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@intel.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
| |