All of lore.kernel.org
 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 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.