Re: [PATCH v2 05/12] perf tools: include basename for non-glibc systems

From: Pekka Enberg
Date: Sat Sep 08 2012 - 05:09:48 EST


On Sat, Sep 8, 2012 at 3:43 AM, Irina Tirdea <irina.tirdea@xxxxxxxxx> wrote:
> From: Irina Tirdea <irina.tirdea@xxxxxxxxx>
>
> perf uses the glibc version of basename(), by defining _GNU_SOURCE, including
> string.h and not including libgen.h. The glibc version of basename is better
> than the POSIX version since it does not modify its argument.
>
> Android has only one version of basename which is defined in libgen.h.
> This version is the same as the glibc version.
>
> Error on Android:
> util/annotate.c: In function 'symbol__annotate_printf':
> util/annotate.c:503:3: error: implicit declaration of function 'basename'
> [-Werror=implicit-function-declaration]
> util/annotate.c:503:3: error: nested extern declaration of 'basename'
> [-Werror=nested-externs]
> util/annotate.c:503:14: error: assignment makes pointer from integer without
> a cast [-Werror]
>
> On Android libgen.h should be included to define basename.
>
> Signed-off-by: Irina Tirdea <irina.tirdea@xxxxxxxxx>
> ---
> tools/perf/util/symbol.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
> index fc4b1e6..d3b330c 100644
> --- a/tools/perf/util/symbol.h
> +++ b/tools/perf/util/symbol.h
> @@ -10,6 +10,9 @@
> #include <linux/rbtree.h>
> #include <stdio.h>
> #include <byteswap.h>
> +#if defined(__BIONIC__)
> +#include <libgen.h>
> +#endif

It's safe to include <libgen.h> on glibc Linux systems as well, no? So
there's no need to check for __BIONIC__.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/