2010-04-04 08:13:33

by Hitoshi Mitake

[permalink] [raw]
Subject: [PATCH] Swap including order of util.h and string.h of util/string.c

Current util/string.c includes headers in this order: string.h, util.h
But this causes build error because __USE_GNU definition
is needed for strndup() definition like this,
% make -j
touch .perf.dev.null
CC util/string.o
cc1: warnings being treated as errors
util/string.c: In function ‘argv_split’:
util/string.c:171: error: implicit declaration of function ‘strndup’
util/string.c:171: error: incompatible implicit declaration of built-in function ‘strndup’

So this patch swaps order of including headers.
util.h defines _GNU_SOURCE, and /usr/include/features.h defines __USE_GNU as 1
if _GNU_SOURCE is defined.

Signed-off-by: Hitoshi Mitake <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/string.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
index d438924..0409fc7 100644
--- a/tools/perf/util/string.c
+++ b/tools/perf/util/string.c
@@ -1,5 +1,5 @@
-#include "string.h"
#include "util.h"
+#include "string.h"

#define K 1024LL
/*
--
1.6.5.2


2010-04-04 14:34:56

by Frederic Weisbecker

[permalink] [raw]
Subject: Re: [PATCH] Swap including order of util.h and string.h of util/string.c

On Sun, Apr 04, 2010 at 05:13:18PM +0900, Hitoshi Mitake wrote:
> Current util/string.c includes headers in this order: string.h, util.h
> But this causes build error because __USE_GNU definition
> is needed for strndup() definition like this,
> % make -j
> touch .perf.dev.null
> CC util/string.o
> cc1: warnings being treated as errors
> util/string.c: In function ‘argv_split’:
> util/string.c:171: error: implicit declaration of function ‘strndup’
> util/string.c:171: error: incompatible implicit declaration of built-in function ‘strndup’


Thanks, I've queued it as I have the same problem and I'm
about to send a perf/core queue.



>
> So this patch swaps order of including headers.
> util.h defines _GNU_SOURCE, and /usr/include/features.h defines __USE_GNU as 1
> if _GNU_SOURCE is defined.
>
> Signed-off-by: Hitoshi Mitake <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Paul Mackerras <[email protected]>
> Cc: Frederic Weisbecker <[email protected]>
> Cc: Arnaldo Carvalho de Melo <[email protected]>
> ---
> tools/perf/util/string.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
> index d438924..0409fc7 100644
> --- a/tools/perf/util/string.c
> +++ b/tools/perf/util/string.c
> @@ -1,5 +1,5 @@
> -#include "string.h"
> #include "util.h"
> +#include "string.h"
>
> #define K 1024LL
> /*
> --
> 1.6.5.2
>

2010-04-04 23:23:48

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] Swap including order of util.h and string.h of util/string.c

Em Sun, Apr 04, 2010 at 04:34:43PM +0200, Frederic Weisbecker escreveu:
> On Sun, Apr 04, 2010 at 05:13:18PM +0900, Hitoshi Mitake wrote:
> > Current util/string.c includes headers in this order: string.h, util.h
> > But this causes build error because __USE_GNU definition
> > is needed for strndup() definition like this,
> > % make -j
> > touch .perf.dev.null
> > CC util/string.o
> > cc1: warnings being treated as errors
> > util/string.c: In function ‘argv_split’:
> > util/string.c:171: error: implicit declaration of function ‘strndup’
> > util/string.c:171: error: incompatible implicit declaration of built-in function ‘strndup’
>
> Thanks, I've queued it as I have the same problem and I'm
> about to send a perf/core queue.

Sorry about that and thanks for queueing it up, keeping this tempo of
getting patches queued up and pushed up upstream for perf is really nice
inasmuch as we keep it sane, and so far I think it is really being
excellent! :-)

- Arnaldo