linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH] perf: add SLANG_INC for slang.h
@ 2012-08-24  3:10 Liang Li
  2012-09-05 20:54 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Liang Li @ 2012-08-24  3:10 UTC (permalink / raw)
  To: a.p.zijlstra, paulus, mingo, acme; +Cc: linux-kernel, richard.purdie

CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
work with hosts that have "/usr/include/slang/slang.h" as well as hosts
that have "/usr/include/slang.h". This path can cause compile warnings
like:

cc1: warning: '/usr/include/slang' doesn't exists.

or

cc1: warning: include location "/usr/include/slang" is unsafe for
cross-compilation [-Wpoison-system-directories]

Then in some cases warnings become errors if WERROR is enabled hence
build errors.

To fix this issue, we can use -idirafter to downgrade the priority of the
default hard coded path. We can also make the slang include directory
a variable, to allow the user to specify SLANG_INC and set their own
include location. And add a '=' prefix to indicate better
compatibility with sysroot/cross compile cases.

Signed-off-by: Liang Li <liang.li@windriver.com>
---
 tools/perf/Makefile | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index b7a7a87..e403c36 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -496,8 +496,10 @@ else
 		msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
 		BASIC_CFLAGS += -DNO_NEWT_SUPPORT
 	else
-		# Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
-		BASIC_CFLAGS += -I/usr/include/slang
+		# Some releases like Fedora has /usr/include/slang/slang.h other than /usr/include/slang.h
+		SLANG_INC ?= -idirafter =/usr/include/slang
+		BASIC_CFLAGS += $(SLANG_INC)
+
 		EXTLIBS += -lnewt -lslang
 		LIB_OBJS += $(OUTPUT)ui/setup.o
 		LIB_OBJS += $(OUTPUT)ui/browser.o
-- 
1.7.11.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH] perf: add SLANG_INC for slang.h
  2012-08-24  3:10 [RFC PATCH] perf: add SLANG_INC for slang.h Liang Li
@ 2012-09-05 20:54 ` Arnaldo Carvalho de Melo
  2012-09-05 21:23   ` Richard Purdie
  0 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-05 20:54 UTC (permalink / raw)
  To: Liang Li; +Cc: a.p.zijlstra, paulus, mingo, linux-kernel, richard.purdie

Em Fri, Aug 24, 2012 at 11:10:39AM +0800, Liang Li escreveu:
> CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
> work with hosts that have "/usr/include/slang/slang.h" as well as hosts
> that have "/usr/include/slang.h". This path can cause compile warnings
> like:
> 
> cc1: warning: '/usr/include/slang' doesn't exists.
> 
> or
> 
> cc1: warning: include location "/usr/include/slang" is unsafe for
> cross-compilation [-Wpoison-system-directories]
> 
> Then in some cases warnings become errors if WERROR is enabled hence
> build errors.
> 
> To fix this issue, we can use -idirafter to downgrade the priority of the
> default hard coded path. We can also make the slang include directory
> a variable, to allow the user to specify SLANG_INC and set their own
> include location. And add a '=' prefix to indicate better
> compatibility with sysroot/cross compile cases.

    CC /home/acme/git/build/perf/builtin-diff.o
In file included from util/../ui/keysyms.h:4,
                 from util/hist.h:142,
                 from builtin-diff.c:11:
util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
In file included from util/../ui/keysyms.h:4,
                 from util/hist.h:142,
                 from util/evsel.h:10,
                 from util/evlist.h:8,
                 from builtin-annotate.c:20:
util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
builtin-annotate.c: In function ‘hists__find_annotations’:
builtin-annotate.c:122: error: ‘SL_KEY_RIGHT’ undeclared (first use in
this function)
builtin-annotate.c:122: error: (Each undeclared identifier is reported
only once
builtin-annotate.c:122: error: for each function it appears in.)
builtin-annotate.c:134: error: ‘SL_KEY_LEFT’ undeclared (first use in
this function)
make: *** [/home/acme/git/build/perf/builtin-annotate.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [/home/acme/git/build/perf/builtin-diff.o] Error 1
make: Leaving directory `/home/git/linux/tools/perf'
[acme@sandy linux]$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.3 (Santiago)
[acme@sandy linux]$

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH] perf: add SLANG_INC for slang.h
  2012-09-05 20:54 ` Arnaldo Carvalho de Melo
@ 2012-09-05 21:23   ` Richard Purdie
  2012-09-05 22:41     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Purdie @ 2012-09-05 21:23 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Liang Li, a.p.zijlstra, paulus, mingo, linux-kernel

On Wed, 2012-09-05 at 13:54 -0700, Arnaldo Carvalho de Melo wrote:
> Em Fri, Aug 24, 2012 at 11:10:39AM +0800, Liang Li escreveu:
> > CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
> > work with hosts that have "/usr/include/slang/slang.h" as well as hosts
> > that have "/usr/include/slang.h". This path can cause compile warnings
> > like:
> > 
> > cc1: warning: '/usr/include/slang' doesn't exists.
> > 
> > or
> > 
> > cc1: warning: include location "/usr/include/slang" is unsafe for
> > cross-compilation [-Wpoison-system-directories]
> > 
> > Then in some cases warnings become errors if WERROR is enabled hence
> > build errors.
> > 
> > To fix this issue, we can use -idirafter to downgrade the priority of the
> > default hard coded path. We can also make the slang include directory
> > a variable, to allow the user to specify SLANG_INC and set their own
> > include location. And add a '=' prefix to indicate better
> > compatibility with sysroot/cross compile cases.
> 
>     CC /home/acme/git/build/perf/builtin-diff.o
> In file included from util/../ui/keysyms.h:4,
>                  from util/hist.h:142,
>                  from builtin-diff.c:11:
> util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> In file included from util/../ui/keysyms.h:4,
>                  from util/hist.h:142,
>                  from util/evsel.h:10,
>                  from util/evlist.h:8,
>                  from builtin-annotate.c:20:
> util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> builtin-annotate.c: In function ‘hists__find_annotations’:
> builtin-annotate.c:122: error: ‘SL_KEY_RIGHT’ undeclared (first use in
> this function)
> builtin-annotate.c:122: error: (Each undeclared identifier is reported
> only once
> builtin-annotate.c:122: error: for each function it appears in.)
> builtin-annotate.c:134: error: ‘SL_KEY_LEFT’ undeclared (first use in
> this function)
> make: *** [/home/acme/git/build/perf/builtin-annotate.o] Error 1
> make: *** Waiting for unfinished jobs....
> make: *** [/home/acme/git/build/perf/builtin-diff.o] Error 1
> make: Leaving directory `/home/git/linux/tools/perf'
> [acme@sandy linux]$ cat /etc/redhat-release 
> Red Hat Enterprise Linux Server release 6.3 (Santiago)
> [acme@sandy linux]$

Does:

SLANG_INC ?= -I=/usr/include/slang

work any better? Its hard to tell from the above error which bit of the
syntax is failing. Which gcc version is it?

Cheers,

Richard





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH] perf: add SLANG_INC for slang.h
  2012-09-05 21:23   ` Richard Purdie
@ 2012-09-05 22:41     ` Arnaldo Carvalho de Melo
  2012-09-06  2:11       ` Liang Li
  0 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-05 22:41 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Liang Li, a.p.zijlstra, paulus, mingo, linux-kernel

Em Wed, Sep 05, 2012 at 10:23:03PM +0100, Richard Purdie escreveu:
> On Wed, 2012-09-05 at 13:54 -0700, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Aug 24, 2012 at 11:10:39AM +0800, Liang Li escreveu:
> > > CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
> > > work with hosts that have "/usr/include/slang/slang.h" as well as hosts
> > > that have "/usr/include/slang.h". This path can cause compile warnings
> > > like:
> > > 
> > > cc1: warning: '/usr/include/slang' doesn't exists.
> > > 
> > > or
> > > 
> > > cc1: warning: include location "/usr/include/slang" is unsafe for
> > > cross-compilation [-Wpoison-system-directories]
> > > 
> > > Then in some cases warnings become errors if WERROR is enabled hence
> > > build errors.
> > > 
> > > To fix this issue, we can use -idirafter to downgrade the priority of the
> > > default hard coded path. We can also make the slang include directory
> > > a variable, to allow the user to specify SLANG_INC and set their own
> > > include location. And add a '=' prefix to indicate better
> > > compatibility with sysroot/cross compile cases.
> > 
> >     CC /home/acme/git/build/perf/builtin-diff.o
> > In file included from util/../ui/keysyms.h:4,
> >                  from util/hist.h:142,
> >                  from builtin-diff.c:11:
> > util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> > util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> > In file included from util/../ui/keysyms.h:4,
> >                  from util/hist.h:142,
> >                  from util/evsel.h:10,
> >                  from util/evlist.h:8,
> >                  from builtin-annotate.c:20:
> > util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> > util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> > builtin-annotate.c: In function ‘hists__find_annotations’:
> > builtin-annotate.c:122: error: ‘SL_KEY_RIGHT’ undeclared (first use in
> > this function)
> > builtin-annotate.c:122: error: (Each undeclared identifier is reported
> > only once
> > builtin-annotate.c:122: error: for each function it appears in.)
> > builtin-annotate.c:134: error: ‘SL_KEY_LEFT’ undeclared (first use in
> > this function)
> > make: *** [/home/acme/git/build/perf/builtin-annotate.o] Error 1
> > make: *** Waiting for unfinished jobs....
> > make: *** [/home/acme/git/build/perf/builtin-diff.o] Error 1
> > make: Leaving directory `/home/git/linux/tools/perf'
> > [acme@sandy linux]$ cat /etc/redhat-release 
> > Red Hat Enterprise Linux Server release 6.3 (Santiago)
> > [acme@sandy linux]$
> 
> Does:
> 
> SLANG_INC ?= -I=/usr/include/slang
> 
> work any better? Its hard to tell from the above error which bit of the

I'll try later

> syntax is failing. Which gcc version is it?

[acme@sandy linux]$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic
--with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) 
[acme@sandy linux]$

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH] perf: add SLANG_INC for slang.h
  2012-09-05 22:41     ` Arnaldo Carvalho de Melo
@ 2012-09-06  2:11       ` Liang Li
  2012-09-06 13:55         ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Liang Li @ 2012-09-06  2:11 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Richard Purdie, a.p.zijlstra, paulus, mingo, linux-kernel

On 2012-09-06 06:41, Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote:
> Em Wed, Sep 05, 2012 at 10:23:03PM +0100, Richard Purdie escreveu:
> > On Wed, 2012-09-05 at 13:54 -0700, Arnaldo Carvalho de Melo wrote:
> > > Em Fri, Aug 24, 2012 at 11:10:39AM +0800, Liang Li escreveu:
> > > > CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
> > > > work with hosts that have "/usr/include/slang/slang.h" as well as hosts
> > > > that have "/usr/include/slang.h". This path can cause compile warnings
> > > > like:
> > > > 
> > > > cc1: warning: '/usr/include/slang' doesn't exists.
> > > > 
> > > > or
> > > > 
> > > > cc1: warning: include location "/usr/include/slang" is unsafe for
> > > > cross-compilation [-Wpoison-system-directories]
> > > > 
> > > > Then in some cases warnings become errors if WERROR is enabled hence
> > > > build errors.
> > > > 
> > > > To fix this issue, we can use -idirafter to downgrade the priority of the
> > > > default hard coded path. We can also make the slang include directory
> > > > a variable, to allow the user to specify SLANG_INC and set their own
> > > > include location. And add a '=' prefix to indicate better
> > > > compatibility with sysroot/cross compile cases.
> > > 
> > >     CC /home/acme/git/build/perf/builtin-diff.o
> > > In file included from util/../ui/keysyms.h:4,
> > >                  from util/hist.h:142,
> > >                  from builtin-diff.c:11:
> > > util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> > > util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> > > In file included from util/../ui/keysyms.h:4,
> > >                  from util/hist.h:142,
> > >                  from util/evsel.h:10,
> > >                  from util/evlist.h:8,
> > >                  from builtin-annotate.c:20:
> > > util/../ui/libslang.h:12:19: error: slang.h: No such file or directory
> > > util/../ui/libslang.h:14:5: error: "SLANG_VERSION" is not defined
> > > builtin-annotate.c: In function ‘hists__find_annotations’:
> > > builtin-annotate.c:122: error: ‘SL_KEY_RIGHT’ undeclared (first use in
> > > this function)
> > > builtin-annotate.c:122: error: (Each undeclared identifier is reported
> > > only once
> > > builtin-annotate.c:122: error: for each function it appears in.)
> > > builtin-annotate.c:134: error: ‘SL_KEY_LEFT’ undeclared (first use in
> > > this function)
> > > make: *** [/home/acme/git/build/perf/builtin-annotate.o] Error 1
> > > make: *** Waiting for unfinished jobs....
> > > make: *** [/home/acme/git/build/perf/builtin-diff.o] Error 1
> > > make: Leaving directory `/home/git/linux/tools/perf'
> > > [acme@sandy linux]$ cat /etc/redhat-release 
> > > Red Hat Enterprise Linux Server release 6.3 (Santiago)
> > > [acme@sandy linux]$
> > 
> > Does:
> > 
> > SLANG_INC ?= -I=/usr/include/slang
> > 
> > work any better? Its hard to tell from the above error which bit of the
> 
> I'll try later
> 
> > syntax is failing. Which gcc version is it?
> 
> [acme@sandy linux]$ gcc -v
> Using built-in specs.
> Target: x86_64-redhat-linux
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info
> --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
> --enable-shared --enable-threads=posix --enable-checking=release
> --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
> --enable-gnu-unique-object
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada
> --enable-java-awt=gtk --disable-dssi
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
> --enable-libgcj-multifile --enable-java-maintainer-mode
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
> --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic
> --with-arch_32=i686 --build=x86_64-redhat-linux
> Thread model: posix
> gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) 
> [acme@sandy linux]$

Seems like there is no slang.h installed. Could you please check:

$ find /usr/include/ -name slang.h

On my FC17:

$ find /usr/include/ -name slang.h
/usr/include/slang/slang.h
/usr/include/slang.h
$ rpm -qf /usr/include/slang.h
slang-devel-2.2.4-3.fc17.x86_64
$ rpm -qf /usr/include/slang/slang.h
slang-devel-2.2.4-3.fc17.x86_64

---

And does 'export SLANG_INC=<to location of the slang.h>' works any
better? :)

Cheers,
		Liang Li

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH] perf: add SLANG_INC for slang.h
  2012-09-06  2:11       ` Liang Li
@ 2012-09-06 13:55         ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-09-06 13:55 UTC (permalink / raw)
  To: Liang Li; +Cc: Richard Purdie, a.p.zijlstra, paulus, mingo, linux-kernel

Em Thu, Sep 06, 2012 at 10:11:22AM +0800, Liang Li escreveu:
> On 2012-09-06 06:41, Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote:
> > > Does:
> > > 
> > > SLANG_INC ?= -I=/usr/include/slang
> > > 
> > > work any better? Its hard to tell from the above error which bit of the
> > 
> > I'll try later
> > 
> > > syntax is failing. Which gcc version is it?
> > 
> > [acme@sandy linux]$ gcc -v
> > Using built-in specs.
> > Target: x86_64-redhat-linux
> > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> > --infodir=/usr/share/info
> > --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
> > --enable-shared --enable-threads=posix --enable-checking=release
> > --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
> > --enable-gnu-unique-object
> > --enable-languages=c,c++,objc,obj-c++,java,fortran,ada
> > --enable-java-awt=gtk --disable-dssi
> > --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
> > --enable-libgcj-multifile --enable-java-maintainer-mode
> > --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
> > --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic
> > --with-arch_32=i686 --build=x86_64-redhat-linux
> > Thread model: posix
> > gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) 
> > [acme@sandy linux]$
> 
> Seems like there is no slang.h installed. Could you please check:
> 
> $ find /usr/include/ -name slang.h
> 
> On my FC17:
> 
> $ find /usr/include/ -name slang.h
> /usr/include/slang/slang.h
> /usr/include/slang.h
> $ rpm -qf /usr/include/slang.h
> slang-devel-2.2.4-3.fc17.x86_64
> $ rpm -qf /usr/include/slang/slang.h
> slang-devel-2.2.4-3.fc17.x86_64

[root@sandy ~]# find /usr/include/ -name slang.h
/usr/include/slang/slang.h
[root@sandy ~]# 
[root@sandy ~]# rpm -qf /usr/include/slang/slang.h
slang-devel-2.2.1-1.el6.x86_64
 
> ---
> 
> And does 'export SLANG_INC=<to location of the slang.h>' works any
> better? :)

Lemme process the other patches first, will try.

- arnaldo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-09-06 13:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-24  3:10 [RFC PATCH] perf: add SLANG_INC for slang.h Liang Li
2012-09-05 20:54 ` Arnaldo Carvalho de Melo
2012-09-05 21:23   ` Richard Purdie
2012-09-05 22:41     ` Arnaldo Carvalho de Melo
2012-09-06  2:11       ` Liang Li
2012-09-06 13:55         ` Arnaldo Carvalho de Melo

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