* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.