perf tool: build fix, remove duplicate declarations
PATCH 1/1 perf tool: build fix, remove duplicate declarations
I'm sure I have some gremlins running around today, but I am consistently hitting this compile failure on Fedora 14 and 16:
In file included from util/sort.h:12:0,
from builtin-diff.c:15:
util/string.h:7:5: error: redundant redeclaration of ‘hex2u64’ [-Werror=redundant-decls] util/symbol.h:32:5: note: previous declaration of ‘hex2u64’ was here util/string.h:8:7: error: redundant redeclaration of ‘strxfrchar’ [-Werror=redundant-decls] util/symbol.h:33:7: note: previous declaration of ‘strxfrchar’ was here util/string.h:9:5: error: redundant redeclaration of ‘perf_atoll’ [-Werror=redundant-decls] util/util.h:238:5: note: previous declaration of ‘perf_atoll’ was here util/string.h:10:8: error: redundant redeclaration of ‘argv_split’ [-Werror=redundant-decls] util/util.h:239:8: note: previous declaration of ‘argv_split’ was here util/string.h:11:6: error: redundant redeclaration of ‘argv_free’ [-Werror=redundant-decls] util/util.h:240:6: note: previous declaration of ‘argv_free’ was here util/string.h:12:6: error: redundant redeclaration of ‘strglobmatch’ [-Werror=redundant-decls] util/util.h:241:6: note: previous declaration of ‘strglobmatch’ was here util/string.h:13:6: error: redundant redeclaration of ‘strlazymatch’ [-Werror=redundant-decls] util/util.h:242:6: note: previous declaration of ‘strlazymatch’ was here
cc1: all warnings being treated as errors
make: *** [/tmp/pbuild/builtin-diff.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/opt/sw/ahern/perf.git/tools/perf'
Fix it by removing duplicates.
--- tools/perf/util/symbol.h | 4 +--- tools/perf/util/util.h | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-)
tools/perf/util/symbol.h +1 -3
@@ -9,6 +9,7 @@#include <linux/list.h> #include <linux/rbtree.h> #include <stdio.h> +#include "string.h" #ifdef HAVE_CPLUS_DEMANGLE extern char *cplus_demangle (const char *,int );
@@ -29,9 +30,6 @@ static inline char *bfd_demangle(void __used *v, const char __used *c,#endif #endif -int hex2u64 (const char *ptr,u64 *val); -char *strxfrchar (char *s,char from,char to); -/* * libelf 0.8.x and earlier do not support ELF_C_READ_MMAP; * for newer versions we can use mmap to reduce memory usage:
tools/perf/util/util.h +1 -5
@@ -78,6 +78,7 @@#include "../../../include/linux/magic.h" #include "types.h" #include <sys/ttydefaults.h> +#include "string.h" extern const char *graph_line;extern const char *graph_dotted_line;
@@ -235,11 +236,6 @@ static inline int sane_case(int x, int high)int mkdir_p (char *path,mode_t mode);int copyfile (const char *from,const char *to); -s64 perf_atoll (const char *str); -char **argv_split (const char *str,int *argcp); -void argv_free (char **argv); -bool strglobmatch (const char *str,const char *pat); -bool strlazymatch (const char *str,const char *pat);int strtailcmp (const char *s1,const char *s2);unsigned long convert_unit (unsigned long value,char *unit);int readn (int fd,void *buf,size_t size);
Signature · 1 line
1.7.10.1
Arnaldo:
Quoted 15 lines · David Ahern
I'm sure I have some gremlins running around today, but I am consistently hitting this compile failure on Fedora 14 and 16:
In file included from
util/sort.h:12:0,from builtin-diff.c:15:
util/string.h:7:5: error: redundant redeclaration of ‘hex2u64’ [-Werror=redundant-decls]util/symbol.h:32:5: note: previous declaration of ‘hex2u64’ was hereutil/string.h:8:7: error: redundant redeclaration of ‘strxfrchar’ [-Werror=redundant-decls]util/symbol.h:33:7: note: previous declaration of ‘strxfrchar’ was hereutil/string.h:9:5: error: redundant redeclaration of ‘perf_atoll’ [-Werror=redundant-decls]util/util.h:238:5: note: previous declaration of ‘perf_atoll’ was hereutil/string.h:10:8: error: redundant redeclaration of ‘argv_split’ [-Werror=redundant-decls]util/util.h:239:8: note: previous declaration of ‘argv_split’ was hereutil/string.h:11:6: error: redundant redeclaration of ‘argv_free’ [-Werror=redundant-decls]util/util.h:240:6: note: previous declaration of ‘argv_free’ was here
Quoted 8 lines
util/string.h:12:6: error: redundant redeclaration of ‘strglobmatch’ [-Werror=redundant-decls]util/util.h:241:6: note: previous declaration of ‘strglobmatch’ was hereutil/string.h:13:6: error: redundant redeclaration of ‘strlazymatch’ [-Werror=redundant-decls]util/util.h:242:6: note: previous declaration of ‘strlazymatch’ was here
cc1: all warnings being treated as errors
make: *** [/tmp/pbuild/builtin-diff.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/opt/sw/ahern/perf.git/tools/perf'
You are probably not hitting this compile problem, and I have no idea why I am suddenly hitting it on F14 and F16 (my usual test servers; i have always hit this on older systems), but nonetheless there are duplicate declarations between util.h and symbol.h which should be fixed.
David
Quoted 55 lines
Fix it by removing duplicates.
Signed-off-by David Ahern<[email protected]>--- tools/perf/util/symbol.h | 4 +--- tools/perf/util/util.h | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-)tools/perf/util/symbol.h +1
-3@@ -9,6 +9,7 @@#include <linux/list.h> #include <linux/rbtree.h> #include <stdio.h> +#include "string.h" #ifdef HAVE_CPLUS_DEMANGLE extern char *cplus_demangle (const char *,int );@@ -29,9 +30,6 @@ static inline char *bfd_demangle(void __used *v, const char __used *c,#endif #endif -int hex2u64 (const char *ptr,u64 *val); -char *strxfrchar (char *s,char from,char to); -/* * libelf 0.8.x and earlier do not support ELF_C_READ_MMAP; * for newer versions we can use mmap to reduce memory usage: tools/perf/util/util.h +1
-5@@ -78,6 +78,7 @@#include "../../../include/linux/magic.h" #include "types.h" #include <sys/ttydefaults.h> +#include "string.h" extern const char *graph_line;extern const char *graph_dotted_line;@@ -235,11 +236,6 @@ static inline int sane_case(int x, int high)int mkdir_p (char *path,mode_t mode);int copyfile (const char *from,const char *to); -s64 perf_atoll (const char *str); -char **argv_split (const char *str,int *argcp); -void argv_free (char **argv); -bool strglobmatch (const char *str,const char *pat); -bool strlazymatch (const char *str,const char *pat);int strtailcmp (const char *s1,const char *s2);unsigned long convert_unit (unsigned long value,char *unit);int readn (int fd,void *buf,size_t size);
Em Thu, May 31, 2012 at 11:22:51PM -0600, David Ahern escreveu:
Quoted 27 lines
Arnaldo:
Quoted 15 lines · David Ahern
I'm sure I have some gremlins running around today, but I am consistently hitting this compile failure on Fedora 14 and 16:
In file included from
util/sort.h:12:0,from builtin-diff.c:15:
util/string.h:7:5: error: redundant redeclaration of ‘hex2u64’ [-Werror=redundant-decls]util/symbol.h:32:5: note: previous declaration of ‘hex2u64’ was hereutil/string.h:8:7: error: redundant redeclaration of ‘strxfrchar’ [-Werror=redundant-decls]util/symbol.h:33:7: note: previous declaration of ‘strxfrchar’ was hereutil/string.h:9:5: error: redundant redeclaration of ‘perf_atoll’ [-Werror=redundant-decls]util/util.h:238:5: note: previous declaration of ‘perf_atoll’ was hereutil/string.h:10:8: error: redundant redeclaration of ‘argv_split’ [-Werror=redundant-decls]util/util.h:239:8: note: previous declaration of ‘argv_split’ was hereutil/string.h:11:6: error: redundant redeclaration of ‘argv_free’ [-Werror=redundant-decls]util/util.h:240:6: note: previous declaration of ‘argv_free’ was hereQuoted 8 lines
util/string.h:12:6: error: redundant redeclaration of ‘strglobmatch’ [-Werror=redundant-decls]util/util.h:241:6: note: previous declaration of ‘strglobmatch’ was hereutil/string.h:13:6: error: redundant redeclaration of ‘strlazymatch’ [-Werror=redundant-decls]util/util.h:242:6: note: previous declaration of ‘strlazymatch’ was here
cc1: all warnings being treated as errors
make: *** [/tmp/pbuild/builtin-diff.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/opt/sw/ahern/perf.git/tools/perf'
Quoted 1 line
You are probably not hitting this compile problem, and I have no
Strange, I just tested on f14 x86_64 and i386, in addition to RHEL6.2, no problems :-\
Quoted 4 lines
idea why I am suddenly hitting it on F14 and F16 (my usual test servers; i have always hit this on older systems), but nonetheless there are duplicate declarations between
util.handsymbol.hwhich should be fixed.
Yeah, but the patch is not applying on my perf/urgent branch, can you take a look?
Quoted 58 lines
David
Quoted 55 lines
Fix it by removing duplicates.
Signed-off-by David Ahern<[email protected]>--- tools/perf/util/symbol.h | 4 +--- tools/perf/util/util.h | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-)tools/perf/util/symbol.h +1
-3@@ -9,6 +9,7 @@#include <linux/list.h> #include <linux/rbtree.h> #include <stdio.h> +#include "string.h" #ifdef HAVE_CPLUS_DEMANGLE extern char *cplus_demangle (const char *,int );@@ -29,9 +30,6 @@ static inline char *bfd_demangle(void __used *v, const char __used *c,#endif #endif -int hex2u64 (const char *ptr,u64 *val); -char *strxfrchar (char *s,char from,char to); -/* * libelf 0.8.x and earlier do not support ELF_C_READ_MMAP; * for newer versions we can use mmap to reduce memory usage: tools/perf/util/util.h +1
-5@@ -78,6 +78,7 @@#include "../../../include/linux/magic.h" #include "types.h" #include <sys/ttydefaults.h> +#include "string.h" extern const char *graph_line;extern const char *graph_dotted_line;@@ -235,11 +236,6 @@ static inline int sane_case(int x, int high)int mkdir_p (char *path,mode_t mode);int copyfile (const char *from,const char *to); -s64 perf_atoll (const char *str); -char **argv_split (const char *str,int *argcp); -void argv_free (char **argv); -bool strglobmatch (const char *str,const char *pat); -bool strlazymatch (const char *str,const char *pat);int strtailcmp (const char *s1,const char *s2);unsigned long convert_unit (unsigned long value,char *unit);int readn (int fd,void *buf,size_t size);
Quoted 2 lines · Arnaldo Carvalho de Melo
Strange, I just tested on f14
x86_64and i386, in addition to RHEL6.2, no problems :-\
Very strange. I thought I had chased away all of the local gremlins, but a freshly created and fully updated F16-32bit VM and an older F14-64-bit are both hitting this.
Quoted 8 lines
Quoted 5 lines
idea why I am suddenly hitting it on F14 and F16 (my usual test servers; i have always hit this on older systems), but nonetheless there are duplicate declarations between
util.handsymbol.hwhich should be fixed.Yeah, but the patch is not applying on my perf/urgent branch, can you take a look?
the recent byteswap include. I'll re-spin.
David