* [ERROR] perf build failure on current tip:perf/core @ 2012-01-07 15:42 Namhyung Kim 2012-01-07 17:35 ` Arnaldo Carvalho de Melo 2012-01-08 9:00 ` Ingo Molnar 0 siblings, 2 replies; 14+ messages in thread From: Namhyung Kim @ 2012-01-07 15:42 UTC (permalink / raw) To: Ingo Molnar, Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras Cc: linux-kernel Hi, When I tried to build perf, I was faced with following error: CC util/trace-event-info.o cc1: warnings being treated as errors util/trace-event-info.c: In function ‘record_file’: util/trace-event-info.c:192: error: implicit declaration of function ‘pwrite’ util/trace-event-info.c:192: error: nested extern declaration of ‘pwrite’ make: *** [util/trace-event-info.o] Error 1 The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix copy & paste error in description") and code in mainline (v3.2) doesn't have this problem. Looking at the code, I couldn't find any clue to this. Any idea? FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: namhyung@leonhard:perf$ gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) Thanks. -- Regards, Namhyung Kim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-07 15:42 [ERROR] perf build failure on current tip:perf/core Namhyung Kim @ 2012-01-07 17:35 ` Arnaldo Carvalho de Melo 2012-01-08 9:00 ` Ingo Molnar 1 sibling, 0 replies; 14+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-01-07 17:35 UTC (permalink / raw) To: Namhyung Kim; +Cc: Ingo Molnar, Peter Zijlstra, Paul Mackerras, linux-kernel Em Sun, Jan 08, 2012 at 12:42:29AM +0900, Namhyung Kim escreveu: > Hi, > > When I tried to build perf, I was faced with following error: > > CC util/trace-event-info.o > cc1: warnings being treated as errors > util/trace-event-info.c: In function ‘record_file’: > util/trace-event-info.c:192: error: implicit declaration of function > ‘pwrite’ > util/trace-event-info.c:192: error: nested extern declaration of > ‘pwrite’ > make: *** [util/trace-event-info.o] Error 1 > > The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix > copy & paste error in description") and code in mainline (v3.2) doesn't > have this problem. Looking at the code, I couldn't find any clue to > this. Any idea? > > FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: Yeah, yesterday Joerg reported this as well, I managed to reproduce it on a newly installed ubuntu 10.04.3 (LTS) i686 VM, haven't had time to investigate yet tho. - Arnaldo > namhyung@leonhard:perf$ gcc -v > Using built-in specs. > Target: x86_64-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu > 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs > --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr > --enable-shared --enable-multiarch --enable-linker-build-id > --with-system-zlib --libexecdir=/usr/lib --without-included-gettext > --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 > --program-suffix=-4.4 --enable-nls --enable-clocale=gnu > --enable-libstdcxx-debug --enable-plugin --enable-objc-gc > --disable-werror --with-arch-32=i486 --with-tune=generic > --enable-checking=release --build=x86_64-linux-gnu > --host=x86_64-linux-gnu --target=x86_64-linux-gnu > Thread model: posix > gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) > > Thanks. > > > -- > Regards, > Namhyung Kim > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-07 15:42 [ERROR] perf build failure on current tip:perf/core Namhyung Kim 2012-01-07 17:35 ` Arnaldo Carvalho de Melo @ 2012-01-08 9:00 ` Ingo Molnar 2012-01-08 9:41 ` Namhyung Kim 1 sibling, 1 reply; 14+ messages in thread From: Ingo Molnar @ 2012-01-08 9:00 UTC (permalink / raw) To: Namhyung Kim Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel * Namhyung Kim <namhyung@gmail.com> wrote: > Hi, > > When I tried to build perf, I was faced with following error: > > CC util/trace-event-info.o > cc1: warnings being treated as errors > util/trace-event-info.c: In function ‘record_file’: > util/trace-event-info.c:192: error: implicit declaration of function > ‘pwrite’ > util/trace-event-info.c:192: error: nested extern declaration of > ‘pwrite’ > make: *** [util/trace-event-info.o] Error 1 > > The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix > copy & paste error in description") and code in mainline (v3.2) doesn't > have this problem. Looking at the code, I couldn't find any clue to > this. Any idea? > > FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: Which header does pwrite() belong to on that system - what does 'map pwrite' say? It ought to be unistd.h, which is directly included in util/trace-event-info.c. My guess is that it might be related to: tools/perf/Makefile:ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 Which introduces pwrite64() and defines pwrite() to them. Does the patch below help? It's only a workaround really as pwrite() ought to exist ... Also, i have only tested this on 64-bit. Thanks, Ingo diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index ac6830d..ba8b024 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -189,7 +189,7 @@ static void record_file(const char *file, size_t hdr_sz) if (bigendian()) sizep += sizeof(u64) - hdr_sz; - if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) + if (hdr_sz && pwrite64(output_fd, sizep, hdr_sz, hdr_pos) < 0) die("writing to %s", output_file); } ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 9:00 ` Ingo Molnar @ 2012-01-08 9:41 ` Namhyung Kim 2012-01-08 11:34 ` Ingo Molnar 0 siblings, 1 reply; 14+ messages in thread From: Namhyung Kim @ 2012-01-08 9:41 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel 2012-01-08 (일), 10:00 +0100, Ingo Molnar: > * Namhyung Kim <namhyung@gmail.com> wrote: > > > Hi, > > > > When I tried to build perf, I was faced with following error: > > > > CC util/trace-event-info.o > > cc1: warnings being treated as errors > > util/trace-event-info.c: In function ‘record_file’: > > util/trace-event-info.c:192: error: implicit declaration of function > > ‘pwrite’ > > util/trace-event-info.c:192: error: nested extern declaration of > > ‘pwrite’ > > make: *** [util/trace-event-info.o] Error 1 > > > > The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix > > copy & paste error in description") and code in mainline (v3.2) doesn't > > have this problem. Looking at the code, I couldn't find any clue to > > this. Any idea? > > > > FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: > > Which header does pwrite() belong to on that system - what does > 'map pwrite' say? It ought to be unistd.h, which is directly > included in util/trace-event-info.c. > > My guess is that it might be related to: > > tools/perf/Makefile:ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 > > Which introduces pwrite64() and defines pwrite() to them. > > Does the patch below help? It's only a workaround really as > pwrite() ought to exist ... Also, i have only tested this on > 64-bit. > > Thanks, > > Ingo > > diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c > index ac6830d..ba8b024 100644 > --- a/tools/perf/util/trace-event-info.c > +++ b/tools/perf/util/trace-event-info.c > @@ -189,7 +189,7 @@ static void record_file(const char *file, size_t hdr_sz) > if (bigendian()) > sizep += sizeof(u64) - hdr_sz; > > - if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) > + if (hdr_sz && pwrite64(output_fd, sizep, hdr_sz, hdr_pos) < 0) > die("writing to %s", output_file); > } > Hello, Unfortunately, above patch doesn't work for my system: CC util/trace-event-info.o cc1: warnings being treated as errors util/trace-event-info.c: In function ‘record_file’: util/trace-event-info.c:192: error: implicit declaration of function ‘pwrite64’ util/trace-event-info.c:192: error: nested extern declaration of ‘pwrite64’ And 'map pwrite' on terminal says: $ map pwrite The program 'map' is currently not installed. You can install it by typing: sudo apt-get install sgt-puzzles I don't think this is the package what you said. Anyway quick grep'ing pwrite tells me it's in the unistd.h: $ grep pwrite /usr/include/unistd.h extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, pwrite64) __wur; # define pwrite pwrite64 Thanks. -- Regards, Namhyung Kim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 9:41 ` Namhyung Kim @ 2012-01-08 11:34 ` Ingo Molnar 2012-01-08 12:30 ` Namhyung Kim 0 siblings, 1 reply; 14+ messages in thread From: Ingo Molnar @ 2012-01-08 11:34 UTC (permalink / raw) To: Namhyung Kim Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel * Namhyung Kim <namhyung@gmail.com> wrote: > 2012-01-08 (일), 10:00 +0100, Ingo Molnar: > > * Namhyung Kim <namhyung@gmail.com> wrote: > > > > > Hi, > > > > > > When I tried to build perf, I was faced with following error: > > > > > > CC util/trace-event-info.o > > > cc1: warnings being treated as errors > > > util/trace-event-info.c: In function ‘record_file’: > > > util/trace-event-info.c:192: error: implicit declaration of function > > > ‘pwrite’ > > > util/trace-event-info.c:192: error: nested extern declaration of > > > ‘pwrite’ > > > make: *** [util/trace-event-info.o] Error 1 > > > > > > The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix > > > copy & paste error in description") and code in mainline (v3.2) doesn't > > > have this problem. Looking at the code, I couldn't find any clue to > > > this. Any idea? > > > > > > FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: > > > > Which header does pwrite() belong to on that system - what does > > 'map pwrite' say? It ought to be unistd.h, which is directly > > included in util/trace-event-info.c. > > > > My guess is that it might be related to: > > > > tools/perf/Makefile:ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 > > > > Which introduces pwrite64() and defines pwrite() to them. > > > > Does the patch below help? It's only a workaround really as > > pwrite() ought to exist ... Also, i have only tested this on > > 64-bit. > > > > Thanks, > > > > Ingo > > > > diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c > > index ac6830d..ba8b024 100644 > > --- a/tools/perf/util/trace-event-info.c > > +++ b/tools/perf/util/trace-event-info.c > > @@ -189,7 +189,7 @@ static void record_file(const char *file, size_t hdr_sz) > > if (bigendian()) > > sizep += sizeof(u64) - hdr_sz; > > > > - if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) > > + if (hdr_sz && pwrite64(output_fd, sizep, hdr_sz, hdr_pos) < 0) > > die("writing to %s", output_file); > > } > > > > Hello, > > Unfortunately, above patch doesn't work for my system: > > CC util/trace-event-info.o > cc1: warnings being treated as errors > util/trace-event-info.c: In function ‘record_file’: > util/trace-event-info.c:192: error: implicit declaration of function > ‘pwrite64’ > util/trace-event-info.c:192: error: nested extern declaration of > ‘pwrite64’ > > And 'map pwrite' on terminal says: 'man pwrite' i wanted to say. > $ map pwrite > The program 'map' is currently not installed. You can install it by > typing: > sudo apt-get install sgt-puzzles > > I don't think this is the package what you said. Anyway quick grep'ing > pwrite tells me it's in the unistd.h: > > $ grep pwrite /usr/include/unistd.h > extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, > pwrite64) __wur; > # define pwrite pwrite64 There's multiple definitions there, and we get lost somehow - as unistd.h is included: ~/tip/tools/perf> grep -n unistd.h util/trace-event-info.c 34:#include <unistd.h> Thanks, Ingo ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 11:34 ` Ingo Molnar @ 2012-01-08 12:30 ` Namhyung Kim 2012-01-08 14:03 ` Ingo Molnar 0 siblings, 1 reply; 14+ messages in thread From: Namhyung Kim @ 2012-01-08 12:30 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel Ingo Molnar <mingo@elte.hu> wrote: > * Namhyung Kim <namhyung@gmail.com> wrote: > >> 2012-01-08 (일), 10:00 +0100, Ingo Molnar: >> > * Namhyung Kim <namhyung@gmail.com> wrote: >> > >> > > Hi, >> > > >> > > When I tried to build perf, I was faced with following error: >> > > >> > > CC util/trace-event-info.o >> > > cc1: warnings being treated as errors >> > > util/trace-event-info.c: In function ‘record_file’: >> > > util/trace-event-info.c:192: error: implicit declaration of function >> > > ‘pwrite’ >> > > util/trace-event-info.c:192: error: nested extern declaration of >> > > ‘pwrite’ >> > > make: *** [util/trace-event-info.o] Error 1 >> > > >> > > The code I tried was latest tip:perf/core - 9e183426bfb5 ("perf kvm: Fix >> > > copy & paste error in description") and code in mainline (v3.2) doesn't >> > > have this problem. Looking at the code, I couldn't find any clue to >> > > this. Any idea? >> > > >> > > FYI, my system is Ubuntu 10.04 on x86_64. gcc version is 4.4.3: >> > >> > Which header does pwrite() belong to on that system - what does >> > 'map pwrite' say? It ought to be unistd.h, which is directly >> > included in util/trace-event-info.c. >> > >> > My guess is that it might be related to: >> > >> > tools/perf/Makefile:ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 >> > >> > Which introduces pwrite64() and defines pwrite() to them. >> > >> > Does the patch below help? It's only a workaround really as >> > pwrite() ought to exist ... Also, i have only tested this on >> > 64-bit. >> > >> > Thanks, >> > >> > Ingo >> > >> > diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c >> > index ac6830d..ba8b024 100644 >> > --- a/tools/perf/util/trace-event-info.c >> > +++ b/tools/perf/util/trace-event-info.c >> > @@ -189,7 +189,7 @@ static void record_file(const char *file, size_t hdr_sz) >> > if (bigendian()) >> > sizep += sizeof(u64) - hdr_sz; >> > >> > - if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) >> > + if (hdr_sz && pwrite64(output_fd, sizep, hdr_sz, hdr_pos) < 0) >> > die("writing to %s", output_file); >> > } >> > >> >> Hello, >> >> Unfortunately, above patch doesn't work for my system: >> >> CC util/trace-event-info.o >> cc1: warnings being treated as errors >> util/trace-event-info.c: In function ‘record_file’: >> util/trace-event-info.c:192: error: implicit declaration of function >> ‘pwrite64’ >> util/trace-event-info.c:192: error: nested extern declaration of >> ‘pwrite64’ >> >> And 'map pwrite' on terminal says: > > 'man pwrite' i wanted to say. Ah, OK :) here it is. PREAD(2) Linux Programmer's Manual PREAD(2) NAME pread, pwrite - read from or write to a file descriptor at a given offset SYNOPSIS #define _XOPEN_SOURCE 500 #include <unistd.h> ssize_t pread(int fd, void *buf, size_t count, off_t offset); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); ... And #defining _XOPEN_SOURCE to 500 before the #include doesn't resolve the issue. > >> $ map pwrite >> The program 'map' is currently not installed. You can install it by >> typing: >> sudo apt-get install sgt-puzzles >> >> I don't think this is the package what you said. Anyway quick grep'ing >> pwrite tells me it's in the unistd.h: >> >> $ grep pwrite /usr/include/unistd.h >> extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, >> extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, >> pwrite64) __wur; >> # define pwrite pwrite64 > > There's multiple definitions there, and we get lost somehow - as > unistd.h is included: > > ~/tip/tools/perf> grep -n unistd.h util/trace-event-info.c > 34:#include <unistd.h> > > Thanks, > > Ingo This is the content of my /usr/include/unistd.h: #ifdef __USE_UNIX98 # ifndef __USE_FILE_OFFSET64 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __wur; extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset) __wur; # else # ifdef __REDIRECT extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, __off64_t __offset), pread64) __wur; extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, size_t __nbytes, __off64_t __offset), pwrite64) __wur; # else # define pread pread64 # define pwrite pwrite64 # endif # endif # ifdef __USE_LARGEFILE64 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __wur; extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset) __wur; # endif #endif I think all of pread/write functions are properly defined here: $ echo '#include <unistd.h>' | \ > gcc -xc -E -dM -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 - | \ > grep -e UNIX98 -e LARGEFILE64 -e FILE_OFFSET #define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" #define _LARGEFILE64_SOURCE 1 #define __USE_UNIX98 1 #define __USE_LARGEFILE64 1 #define _FILE_OFFSET_BITS 64 #define __USE_FILE_OFFSET64 1 Thanks, Namhyung ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 12:30 ` Namhyung Kim @ 2012-01-08 14:03 ` Ingo Molnar 2012-01-08 14:50 ` Namhyung Kim 0 siblings, 1 reply; 14+ messages in thread From: Ingo Molnar @ 2012-01-08 14:03 UTC (permalink / raw) To: Namhyung Kim Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel * Namhyung Kim <namhyung@gmail.com> wrote: > >> $ map pwrite > >> The program 'map' is currently not installed. You can install it by > >> typing: > >> sudo apt-get install sgt-puzzles > >> > >> I don't think this is the package what you said. Anyway quick grep'ing > >> pwrite tells me it's in the unistd.h: > >> > >> $ grep pwrite /usr/include/unistd.h > >> extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > >> extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, > >> pwrite64) __wur; > >> # define pwrite pwrite64 > > > > There's multiple definitions there, and we get lost somehow - as > > unistd.h is included: > > > > ~/tip/tools/perf> grep -n unistd.h util/trace-event-info.c > > 34:#include <unistd.h> > > > > Thanks, > > > > Ingo > > This is the content of my /usr/include/unistd.h: > > #ifdef __USE_UNIX98 > # ifndef __USE_FILE_OFFSET64 > extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset) __wur; > extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > __off_t __offset) __wur; > # else > # ifdef __REDIRECT > extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset), > pread64) __wur; > extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, > size_t __nbytes, __off64_t __offset), > pwrite64) __wur; > # else > # define pread pread64 > # define pwrite pwrite64 > # endif > # endif > > # ifdef __USE_LARGEFILE64 > extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) __wur; > extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset) __wur; > # endif > #endif > > I think all of pread/write functions are properly defined here: > > $ echo '#include <unistd.h>' | \ > > gcc -xc -E -dM -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 - | \ > > grep -e UNIX98 -e LARGEFILE64 -e FILE_OFFSET > #define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" > #define _LARGEFILE64_SOURCE 1 > #define __USE_UNIX98 1 > #define __USE_LARGEFILE64 1 > #define _FILE_OFFSET_BITS 64 > #define __USE_FILE_OFFSET64 1 So which preprocessor branch within unistd.h does it get into on your system and why isnt there a pwrite()/pwrite64() prototype once it goes along that path? You could try an ugly approach and edit your unistd.h and put in debug lines like this: #warn got here: __LINE__ and thus see which branch it really gets into. (save a backup copy of unistd.h first ;-) Thanks, Ingo ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 14:03 ` Ingo Molnar @ 2012-01-08 14:50 ` Namhyung Kim 2012-01-08 15:00 ` Ingo Molnar 0 siblings, 1 reply; 14+ messages in thread From: Namhyung Kim @ 2012-01-08 14:50 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel 2012-01-08 (Sun), 15:03 +0100, Ingo Molnar wrote: > * Namhyung Kim <namhyung@gmail.com> wrote: > > > >> $ map pwrite > > >> The program 'map' is currently not installed. You can install it by > > >> typing: > > >> sudo apt-get install sgt-puzzles > > >> > > >> I don't think this is the package what you said. Anyway quick grep'ing > > >> pwrite tells me it's in the unistd.h: > > >> > > >> $ grep pwrite /usr/include/unistd.h > > >> extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > > >> extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, > > >> pwrite64) __wur; > > >> # define pwrite pwrite64 > > > > > > There's multiple definitions there, and we get lost somehow - as > > > unistd.h is included: > > > > > > ~/tip/tools/perf> grep -n unistd.h util/trace-event-info.c > > > 34:#include <unistd.h> > > > > > > Thanks, > > > > > > Ingo > > > > This is the content of my /usr/include/unistd.h: > > > > #ifdef __USE_UNIX98 > > # ifndef __USE_FILE_OFFSET64 > > extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > > __off_t __offset) __wur; > > extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > > __off_t __offset) __wur; > > # else > > # ifdef __REDIRECT > > extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, > > __off64_t __offset), > > pread64) __wur; > > extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, > > size_t __nbytes, __off64_t __offset), > > pwrite64) __wur; > > # else > > # define pread pread64 > > # define pwrite pwrite64 > > # endif > > # endif > > > > # ifdef __USE_LARGEFILE64 > > extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > > __off64_t __offset) __wur; > > extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > > __off64_t __offset) __wur; > > # endif > > #endif > > > > I think all of pread/write functions are properly defined here: > > > > $ echo '#include <unistd.h>' | \ > > > gcc -xc -E -dM -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 - | \ > > > grep -e UNIX98 -e LARGEFILE64 -e FILE_OFFSET > > #define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" > > #define _LARGEFILE64_SOURCE 1 > > #define __USE_UNIX98 1 > > #define __USE_LARGEFILE64 1 > > #define _FILE_OFFSET_BITS 64 > > #define __USE_FILE_OFFSET64 1 > > So which preprocessor branch within unistd.h does it get into on > your system and why isnt there a pwrite()/pwrite64() prototype > once it goes along that path? > > You could try an ugly approach and edit your unistd.h and put in > debug lines like this: > > #warn got here: __LINE__ > > and thus see which branch it really gets into. > > (save a backup copy of unistd.h first ;-) > > Thanks, > > Ingo Hi, Ingo Putting the debug lines told me __USE_UNIX98 is not defined for the file. It's because ctype.h gets included without _GNU_SOURCE and then it includes feature.h AFAICS. Encompassing ctype.h with #define/#undef _GNU_SOURCE or just adding __USE_UNIX98 before unistd.h makes the file compiled, but it seems like an improper solution. What is the right way? Thanks. -- Regards, Namhyung Kim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ERROR] perf build failure on current tip:perf/core 2012-01-08 14:50 ` Namhyung Kim @ 2012-01-08 15:00 ` Ingo Molnar 2012-01-08 15:10 ` [PATCH] perf tools: Fix compile error on x86_64 Ubuntu Namhyung Kim 0 siblings, 1 reply; 14+ messages in thread From: Ingo Molnar @ 2012-01-08 15:00 UTC (permalink / raw) To: Namhyung Kim Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel * Namhyung Kim <namhyung@gmail.com> wrote: > Putting the debug lines told me __USE_UNIX98 is not defined > for the file. It's because ctype.h gets included without > _GNU_SOURCE and then it includes feature.h AFAICS. > Encompassing ctype.h with #define/#undef _GNU_SOURCE or just > adding __USE_UNIX98 before unistd.h makes the file compiled, > but it seems like an improper solution. What is the right way? Could you just remove the ctype.h include? AFAICS it's not needed in that file. Thanks, Ingo ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 15:00 ` Ingo Molnar @ 2012-01-08 15:10 ` Namhyung Kim 2012-01-08 15:12 ` Arnaldo Carvalho de Melo 2012-01-09 7:29 ` [tip:perf/core] " tip-bot for Namhyung Kim 0 siblings, 2 replies; 14+ messages in thread From: Namhyung Kim @ 2012-01-08 15:10 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel ctype.h is not needed here and it breaks build on some system (at least 64bit Ubuntu 10.04) like below. Just get rid of it. CC util/trace-event-info.o cc1: warnings being treated as errors util/trace-event-info.c: In function ‘record_file’: util/trace-event-info.c:192: error: implicit declaration of function ‘pwrite’ util/trace-event-info.c:192: error: nested extern declaration of ‘pwrite’ make: *** [util/trace-event-info.o] Error 1 Signed-off-by: Namhyung Kim <namhyung@gmail.com> --- tools/perf/util/trace-event-info.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index ac6830d8292b..fc22cf5c605f 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -18,7 +18,6 @@ * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -#include <ctype.h> #include "util.h" #include <dirent.h> #include <mntent.h> -- 1.7.8.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 15:10 ` [PATCH] perf tools: Fix compile error on x86_64 Ubuntu Namhyung Kim @ 2012-01-08 15:12 ` Arnaldo Carvalho de Melo 2012-01-08 15:32 ` Ingo Molnar 2012-01-09 7:29 ` [tip:perf/core] " tip-bot for Namhyung Kim 1 sibling, 1 reply; 14+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-01-08 15:12 UTC (permalink / raw) To: Namhyung Kim; +Cc: Ingo Molnar, Peter Zijlstra, Paul Mackerras, linux-kernel Em Mon, Jan 09, 2012 at 12:10:30AM +0900, Namhyung Kim escreveu: > ctype.h is not needed here and it breaks build on some system > (at least 64bit Ubuntu 10.04) like below. Just get rid of it. Thanks, applying it together with your previous patchset. - Arnaldo > CC util/trace-event-info.o > cc1: warnings being treated as errors > util/trace-event-info.c: In function ‘record_file’: > util/trace-event-info.c:192: error: implicit declaration of function ‘pwrite’ > util/trace-event-info.c:192: error: nested extern declaration of ‘pwrite’ > make: *** [util/trace-event-info.o] Error 1 > > Signed-off-by: Namhyung Kim <namhyung@gmail.com> > --- > tools/perf/util/trace-event-info.c | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c > index ac6830d8292b..fc22cf5c605f 100644 > --- a/tools/perf/util/trace-event-info.c > +++ b/tools/perf/util/trace-event-info.c > @@ -18,7 +18,6 @@ > * > * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > */ > -#include <ctype.h> > #include "util.h" > #include <dirent.h> > #include <mntent.h> > -- > 1.7.8.2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 15:12 ` Arnaldo Carvalho de Melo @ 2012-01-08 15:32 ` Ingo Molnar 2012-01-08 15:49 ` Namhyung Kim 0 siblings, 1 reply; 14+ messages in thread From: Ingo Molnar @ 2012-01-08 15:32 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Namhyung Kim, Peter Zijlstra, Paul Mackerras, linux-kernel * Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote: > Em Mon, Jan 09, 2012 at 12:10:30AM +0900, Namhyung Kim escreveu: > > ctype.h is not needed here and it breaks build on some system > > (at least 64bit Ubuntu 10.04) like below. Just get rid of it. > > Thanks, applying it together with your previous patchset. Note that there are other ctype.h inclusions elsewhere as well, which should be considered for removal as well. Thanks, Ingo ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 15:32 ` Ingo Molnar @ 2012-01-08 15:49 ` Namhyung Kim 0 siblings, 0 replies; 14+ messages in thread From: Namhyung Kim @ 2012-01-08 15:49 UTC (permalink / raw) To: Ingo Molnar Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Paul Mackerras, linux-kernel 2012-01-08 (일), 16:32 +0100, Ingo Molnar: > * Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote: > > > Em Mon, Jan 09, 2012 at 12:10:30AM +0900, Namhyung Kim escreveu: > > > ctype.h is not needed here and it breaks build on some system > > > (at least 64bit Ubuntu 10.04) like below. Just get rid of it. > > > > Thanks, applying it together with your previous patchset. > > Note that there are other ctype.h inclusions elsewhere as well, > which should be considered for removal as well. > > Thanks, > > Ingo Hi, I'll look into them as well later. Thanks. -- Regards, Namhyung Kim ^ permalink raw reply [flat|nested] 14+ messages in thread
* [tip:perf/core] perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 15:10 ` [PATCH] perf tools: Fix compile error on x86_64 Ubuntu Namhyung Kim 2012-01-08 15:12 ` Arnaldo Carvalho de Melo @ 2012-01-09 7:29 ` tip-bot for Namhyung Kim 1 sibling, 0 replies; 14+ messages in thread From: tip-bot for Namhyung Kim @ 2012-01-09 7:29 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra, joerg.roedel, namhyung, tglx, mingo Commit-ID: 172d1b0b73256551f100fc00c69e356d047103f5 Gitweb: http://git.kernel.org/tip/172d1b0b73256551f100fc00c69e356d047103f5 Author: Namhyung Kim <namhyung@gmail.com> AuthorDate: Mon, 9 Jan 2012 00:10:30 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Sun, 8 Jan 2012 13:34:55 -0200 perf tools: Fix compile error on x86_64 Ubuntu The ctype.h include is not needed here and it breaks build on some systems (at least 64bit Ubuntu 10.04) like below. Just get rid of it. CC util/trace-event-info.o cc1: warnings being treated as errors util/trace-event-info.c: In function ‘record_file’: util/trace-event-info.c:192: error: implicit declaration of function ‘pwrite’ util/trace-event-info.c:192: error: nested extern declaration of ‘pwrite’ make: *** [util/trace-event-info.o] Error 1 Cc: Ingo Molnar <mingo@elte.hu> Cc: Joerg Roedel <joerg.roedel@amd.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1326035430-7621-1-git-send-email-namhyung@gmail.com Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/trace-event-info.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index ac6830d..fc22cf5 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -18,7 +18,6 @@ * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -#include <ctype.h> #include "util.h" #include <dirent.h> #include <mntent.h> ^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2012-01-09 7:29 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-01-07 15:42 [ERROR] perf build failure on current tip:perf/core Namhyung Kim 2012-01-07 17:35 ` Arnaldo Carvalho de Melo 2012-01-08 9:00 ` Ingo Molnar 2012-01-08 9:41 ` Namhyung Kim 2012-01-08 11:34 ` Ingo Molnar 2012-01-08 12:30 ` Namhyung Kim 2012-01-08 14:03 ` Ingo Molnar 2012-01-08 14:50 ` Namhyung Kim 2012-01-08 15:00 ` Ingo Molnar 2012-01-08 15:10 ` [PATCH] perf tools: Fix compile error on x86_64 Ubuntu Namhyung Kim 2012-01-08 15:12 ` Arnaldo Carvalho de Melo 2012-01-08 15:32 ` Ingo Molnar 2012-01-08 15:49 ` Namhyung Kim 2012-01-09 7:29 ` [tip:perf/core] " tip-bot for Namhyung Kim
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).