Re: [PATCH v2 2/3] lib kallsyms: parse using io api
From: Ian Rogers
Date: Tue May 05 2020 - 10:37:26 EST
On Tue, May 5, 2020 at 7:25 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
>
> On Fri, May 01, 2020 at 03:13:14PM -0700, Ian Rogers wrote:
>
> SNIP
>
> > diff --git a/tools/lib/symbol/kallsyms.c b/tools/lib/symbol/kallsyms.c
> > index 1a7a9f877095..e335ac2b9e19 100644
> > --- a/tools/lib/symbol/kallsyms.c
> > +++ b/tools/lib/symbol/kallsyms.c
> > @@ -1,7 +1,9 @@
> > // SPDX-License-Identifier: GPL-2.0
> > #include "symbol/kallsyms.h"
> > +#include "api/io.h"
> > #include <stdio.h>
> > -#include <stdlib.h>
> > +#include <sys/stat.h>
> > +#include <fcntl.h>
> >
> > u8 kallsyms2elf_type(char type)
> > {
> > @@ -15,74 +17,62 @@ bool kallsyms__is_function(char symbol_type)
> > return symbol_type == 'T' || symbol_type == 'W';
> > }
> >
> > -/*
> > - * While we find nice hex chars, build a long_val.
> > - * Return number of chars processed.
> > - */
> > -int hex2u64(const char *ptr, u64 *long_val)
>
> hi,
> when you remove in here hex2u64, you'll break the compile:
>
> LINK perf
> /usr/bin/ld: perf-in.o: in function `modules__parse':
> /home/jolsa/linux-perf/tools/perf/util/symbol.c:607: undefined reference to `hex2u64'
> /usr/bin/ld: /home/jolsa/linux-perf/tools/perf/util/symbol.c:607: undefined reference to `hex2u64'
> /usr/bin/ld: perf-in.o: in function `dso__load_perf_map':
> /home/jolsa/linux-perf/tools/perf/util/symbol.c:1477: undefined reference to `hex2u64'
> /usr/bin/ld: /home/jolsa/linux-perf/tools/perf/util/symbol.c:1483: undefined reference to `hex2u64'
> collect2: error: ld returned 1 exit status
> make[2]: *** [Makefile.perf:629: perf] Error 1
> make[1]: *** [Makefile.perf:225: sub-make] Error 2
> make: *** [Makefile:70: all] Error 2
>
> that hex2u64 move needs to come before this change
Good catch. Fixed in v3.
https://lore.kernel.org/lkml/20200505143625.147832-1-irogers@xxxxxxxxxx/T/#t
Thanks,
Ian
> jirka
>