Skip to contentSkip to conversation

perf tool: build fix, remove duplicate declarations

PATCH In review David Ahern 2 participants 4 messages May 30, 2012 – Jun 1, 2012 perf events

lore
Share & tools
lore
#0 lore raw

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
index 1f00388..4ba5206 100644
@@ -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
index 2daaedb..5152592 100644
@@ -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
#1 lore raw

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 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

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 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'

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.

---
  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
index 1f00388..4ba5206 100644
@@ -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
index 2daaedb..5152592 100644
@@ -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);
#2 lore raw

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 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

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 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'

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.h and symbol.h which 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.

---
 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
index 1f00388..4ba5206 100644
@@ -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
index 2daaedb..5152592 100644
@@ -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);
#3 lore raw
Quoted 2 lines · Arnaldo Carvalho de Melo

Strange, I just tested on f14 x86_64 and 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.h and symbol.h which 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