xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD
@ 2012-05-17 12:16 Roger Pau Monne
  2012-05-17 12:16 ` [PATCH v2 2/4] autoconf: correctly parse *_INCLUDES and *_LIB env vars Roger Pau Monne
                   ` (3 more replies)
  0 siblings, 4 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 12:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Roger Pau Monne

NetBSD doesn't have a gntdev, so libvchan is unable to build due to
the lack of the header files gntalloc.h.

This is the error:

gcc  -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing
-std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement
-D__XEN_TOOLS__ -MMD -MF .init.o.d -fno-optimize-sibling-calls
-I../include -I.
-I/root/xen/xen-netbsd/tools/libvchan/../../tools/xenstore
-I/root/xen/xen-netbsd/tools/libvchan/../../tools/include
-I/root/xen/xen-netbsd/tools/libvchan/../../tools/libxc
-I/root/xen/xen-netbsd/tools/libvchan/../../tools/include  -c -o
init.o init.c
init.c:45:30: fatal error: xen/sys/gntalloc.h: No such file or
directory
compilation terminated.
gmake[3]: *** [init.opic] Error 1
gmake[3]: *** Waiting for unfinished jobs....
init.c:45:30: fatal error: xen/sys/gntalloc.h: No such file or
directory
compilation terminated.

Acked-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
---
 tools/Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 7b14678..fbdf716 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -30,7 +30,7 @@ SUBDIRS-$(CONFIG_NetBSD) += blktap2
 SUBDIRS-$(CONFIG_NetBSD) += xenbackendd
 SUBDIRS-y += libfsimage
 SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
-SUBDIRS-y += libvchan
+SUBDIRS-$(CONFIG_Linux) += libvchan
 
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
-- 
1.7.7.5 (Apple Git-26)

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

* [PATCH v2 2/4] autoconf: correctly parse *_INCLUDES and *_LIB env vars
  2012-05-17 12:16 [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Roger Pau Monne
@ 2012-05-17 12:16 ` Roger Pau Monne
  2012-05-17 12:16 ` [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c Roger Pau Monne
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 12:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Roger Pau Monne

Parse those options correctly, since the "+=" operator is not valid.
Also added CPPFLAGS, so headers checks don't give strange results.

Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
---
 tools/m4/set_cflags_ldflags.m4 |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/m4/set_cflags_ldflags.m4 b/tools/m4/set_cflags_ldflags.m4
index 7e357ba..631e81c 100644
--- a/tools/m4/set_cflags_ldflags.m4
+++ b/tools/m4/set_cflags_ldflags.m4
@@ -1,20 +1,21 @@
 AC_DEFUN([AX_SET_FLAGS],
 [for cflag in $PREPEND_INCLUDES
 do
-    PREPEND_CFLAGS+=" -I$cflag"
+    PREPEND_CFLAGS="$PREPEND_CFLAGS -I$cflag"
 done
 for ldflag in $PREPEND_LIB
 do
-    PREPEND_LDFLAGS+=" -L$ldflag"
+    PREPEND_LDFLAGS="$PREPEND_LDFLAGS -L$ldflag"
 done
 for cflag in $APPEND_INCLUDES
 do
-    APPEND_CFLAGS+=" -I$cflag"
+    APPEND_CFLAGS="$APPEND_CFLAGS -I$cflag"
 done
 for ldflag in $APPEND_LIB
 do
-    APPEND_LDFLAGS+=" -L$ldflag"
+    APPEND_LDFLAGS="$APPEND_LDFLAGS -L$ldflag"
 done
 CFLAGS="$PREPEND_CFLAGS $CFLAGS $APPEND_CFLAGS"
+CPPFLAGS="$CFLAGS"
 LDFLAGS="$PREPEND_LDFLAGS $LDFLAGS $APPEND_LDFLAGS"])
 
-- 
1.7.7.5 (Apple Git-26)

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

* [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 12:16 [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Roger Pau Monne
  2012-05-17 12:16 ` [PATCH v2 2/4] autoconf: correctly parse *_INCLUDES and *_LIB env vars Roger Pau Monne
@ 2012-05-17 12:16 ` Roger Pau Monne
  2012-05-17 13:25   ` Ian Campbell
  2012-05-18 11:13   ` Ian Jackson
  2012-05-17 12:16 ` [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion Roger Pau Monne
  2012-05-17 13:22 ` [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Ian Campbell
  3 siblings, 2 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 12:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Christoph Egger, Roger Pau Monne

genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
libxl.h is already present in the include search path, the old one was
included instead of the new one, giving compilation errors. Since
_pyxl_types.c is generated at compilation time, we can safely set
the path to libxl.h include.

I've only experienced this problem when compiling Xen on NetBSD with
old header files in the include path, Linux seems to not have this
problem.

Cc: Ian Jackson <ian.jackson@citrix.com>
Cc: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
---
 tools/python/genwrap.py |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/python/genwrap.py b/tools/python/genwrap.py
index af8a5e9..0d7cc98 100644
--- a/tools/python/genwrap.py
+++ b/tools/python/genwrap.py
@@ -309,10 +309,12 @@ _hidden int genwrap__defbool_set(PyObject *v, libxl_defbool *db);
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include "libxl.h" /* gah */
+#include "%s" /* gah */
 #include "%s"
 
-""" % tuple((' '.join(sys.argv),) + (os.path.split(decls)[-1:]),))
+""" % tuple((' '.join(sys.argv),) +
+            (os.path.dirname(sys.argv[1]) + "/libxl.h",) +
+            (os.path.split(decls)[-1:]),))
     for ty in types:
         if ty.private:
             continue
-- 
1.7.7.5 (Apple Git-26)

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

* [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-17 12:16 [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Roger Pau Monne
  2012-05-17 12:16 ` [PATCH v2 2/4] autoconf: correctly parse *_INCLUDES and *_LIB env vars Roger Pau Monne
  2012-05-17 12:16 ` [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c Roger Pau Monne
@ 2012-05-17 12:16 ` Roger Pau Monne
  2012-05-18 11:17   ` Ian Jackson
  2012-05-17 13:22 ` [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Ian Campbell
  3 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 12:16 UTC (permalink / raw)
  To: xen-devel; +Cc: Christoph Egger, Ian Jackson, Roger Pau Monne

Tools.mk contains variables that should be used when processing the
top level Config.mk for the tools, specially the CONFIG_DIR variable,
which is not honoring the PREFIX variable correctly, since when
CONFIG_DIR is set the PREFIX var is still not defined.

Including config/Tools.mk before any other includes ensures that
user-set options will be honored.

Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
---
 tools/Rules.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/Rules.mk b/tools/Rules.mk
index a2a1a58..5ded544 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -3,8 +3,8 @@
 # `all' is the default target
 all:
 
-include $(XEN_ROOT)/Config.mk
 -include $(XEN_ROOT)/config/Tools.mk
+include $(XEN_ROOT)/Config.mk
 
 export _INSTALL := $(INSTALL)
 INSTALL = $(XEN_ROOT)/tools/cross-install
-- 
1.7.7.5 (Apple Git-26)

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

* Re: [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD
  2012-05-17 12:16 [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Roger Pau Monne
                   ` (2 preceding siblings ...)
  2012-05-17 12:16 ` [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion Roger Pau Monne
@ 2012-05-17 13:22 ` Ian Campbell
  3 siblings, 0 replies; 27+ messages in thread
From: Ian Campbell @ 2012-05-17 13:22 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: xen-devel@lists.xen.org

On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
> NetBSD doesn't have a gntdev, so libvchan is unable to build due to
> the lack of the header files gntalloc.h.
> 
> This is the error:
> 
> gcc  -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing
> -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement
> -D__XEN_TOOLS__ -MMD -MF .init.o.d -fno-optimize-sibling-calls
> -I../include -I.
> -I/root/xen/xen-netbsd/tools/libvchan/../../tools/xenstore
> -I/root/xen/xen-netbsd/tools/libvchan/../../tools/include
> -I/root/xen/xen-netbsd/tools/libvchan/../../tools/libxc
> -I/root/xen/xen-netbsd/tools/libvchan/../../tools/include  -c -o
> init.o init.c
> init.c:45:30: fatal error: xen/sys/gntalloc.h: No such file or
> directory
> compilation terminated.
> gmake[3]: *** [init.opic] Error 1
> gmake[3]: *** Waiting for unfinished jobs....
> init.c:45:30: fatal error: xen/sys/gntalloc.h: No such file or
> directory
> compilation terminated.
> 
> Acked-by: Christoph Egger <Christoph.Egger@amd.com>
> Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

> ---
>  tools/Makefile |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/tools/Makefile b/tools/Makefile
> index 7b14678..fbdf716 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -30,7 +30,7 @@ SUBDIRS-$(CONFIG_NetBSD) += blktap2
>  SUBDIRS-$(CONFIG_NetBSD) += xenbackendd
>  SUBDIRS-y += libfsimage
>  SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen
> -SUBDIRS-y += libvchan
> +SUBDIRS-$(CONFIG_Linux) += libvchan
>  
>  # do not recurse in to a dir we are about to delete
>  ifneq "$(MAKECMDGOALS)" "distclean"

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 12:16 ` [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c Roger Pau Monne
@ 2012-05-17 13:25   ` Ian Campbell
  2012-05-17 14:02     ` Roger Pau Monne
  2012-05-18 11:13   ` Ian Jackson
  1 sibling, 1 reply; 27+ messages in thread
From: Ian Campbell @ 2012-05-17 13:25 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
> libxl.h is already present in the include search path, the old one was
> included instead of the new one, giving compilation errors. Since
> _pyxl_types.c is generated at compilation time, we can safely set
> the path to libxl.h include.
> 
> I've only experienced this problem when compiling Xen on NetBSD with
> old header files in the include path, Linux seems to not have this
> problem.

Should this be include <> and not "", since libxl.h isn't in the current
dir in this case?

Is the right fix to make sure that the in-tree -I lines come first?
Ian.

> 
> Cc: Ian Jackson <ian.jackson@citrix.com>
> Cc: Christoph Egger <Christoph.Egger@amd.com>
> Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
> ---
>  tools/python/genwrap.py |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/python/genwrap.py b/tools/python/genwrap.py
> index af8a5e9..0d7cc98 100644
> --- a/tools/python/genwrap.py
> +++ b/tools/python/genwrap.py
> @@ -309,10 +309,12 @@ _hidden int genwrap__defbool_set(PyObject *v, libxl_defbool *db);
>  #include <stdint.h>
>  #include <stdlib.h>
>  #include <stdio.h>
> -#include "libxl.h" /* gah */
> +#include "%s" /* gah */
>  #include "%s"
>  
> -""" % tuple((' '.join(sys.argv),) + (os.path.split(decls)[-1:]),))
> +""" % tuple((' '.join(sys.argv),) +
> +            (os.path.dirname(sys.argv[1]) + "/libxl.h",) +
> +            (os.path.split(decls)[-1:]),))
>      for ty in types:
>          if ty.private:
>              continue

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 13:25   ` Ian Campbell
@ 2012-05-17 14:02     ` Roger Pau Monne
  2012-05-17 14:38       ` Ian Campbell
  0 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 14:02 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

Ian Campbell wrote:
> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>> libxl.h is already present in the include search path, the old one was
>> included instead of the new one, giving compilation errors. Since
>> _pyxl_types.c is generated at compilation time, we can safely set
>> the path to libxl.h include.
>>
>> I've only experienced this problem when compiling Xen on NetBSD with
>> old header files in the include path, Linux seems to not have this
>> problem.
>
> Should this be include<>  and not "", since libxl.h isn't in the current
> dir in this case?
>
> Is the right fix to make sure that the in-tree -I lines come first?
> Ian.

Actually I'm not sure if it's possible to make sure the in-tree -I lines 
come first, because the gcc options are automatically generated by 
python build tools (distutils & friends...), so we cannot touch much of 
this (I've looked at distutils.core options, and it seems to be no way 
of setting an order on compiler options, but I'm no expert on python C 
extensions building), so unless we craft our own makefile to build this 
python stuff I think we are stuck with something like this.

>
>> Cc: Ian Jackson<ian.jackson@citrix.com>
>> Cc: Christoph Egger<Christoph.Egger@amd.com>
>> Signed-off-by: Roger Pau Monne<roger.pau@citrix.com>
>> ---
>>   tools/python/genwrap.py |    6 ++++--
>>   1 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/python/genwrap.py b/tools/python/genwrap.py
>> index af8a5e9..0d7cc98 100644
>> --- a/tools/python/genwrap.py
>> +++ b/tools/python/genwrap.py
>> @@ -309,10 +309,12 @@ _hidden int genwrap__defbool_set(PyObject *v, libxl_defbool *db);
>>   #include<stdint.h>
>>   #include<stdlib.h>
>>   #include<stdio.h>
>> -#include "libxl.h" /* gah */
>> +#include "%s" /* gah */
>>   #include "%s"
>>
>> -""" % tuple((' '.join(sys.argv),) + (os.path.split(decls)[-1:]),))
>> +""" % tuple((' '.join(sys.argv),) +
>> +            (os.path.dirname(sys.argv[1]) + "/libxl.h",) +
>> +            (os.path.split(decls)[-1:]),))
>>       for ty in types:
>>           if ty.private:
>>               continue
>
>

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 14:02     ` Roger Pau Monne
@ 2012-05-17 14:38       ` Ian Campbell
  2012-05-17 15:10         ` Roger Pau Monne
  0 siblings, 1 reply; 27+ messages in thread
From: Ian Campbell @ 2012-05-17 14:38 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
> Ian Campbell wrote:
> > On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
> >> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
> >> libxl.h is already present in the include search path, the old one was
> >> included instead of the new one, giving compilation errors. Since
> >> _pyxl_types.c is generated at compilation time, we can safely set
> >> the path to libxl.h include.
> >>
> >> I've only experienced this problem when compiling Xen on NetBSD with
> >> old header files in the include path, Linux seems to not have this
> >> problem.
> >
> > Should this be include<>  and not "", since libxl.h isn't in the current
> > dir in this case?
> >
> > Is the right fix to make sure that the in-tree -I lines come first?
> > Ian.
> 
> Actually I'm not sure if it's possible to make sure the in-tree -I lines 
> come first, because the gcc options are automatically generated by 
> python build tools (distutils & friends...), so we cannot touch much of 
> this (I've looked at distutils.core options, and it seems to be no way 
> of setting an order on compiler options, but I'm no expert on python C 
> extensions building), so unless we craft our own makefile to build this 
> python stuff I think we are stuck with something like this.

Surely distutils puts user supplied options first before system options?
My /usr/lib/python2.5/distutils/command/build_ext.py says:
 
       # Put the Python "system" include dir at the end, so that
        # any local include dirs take precedence.
        self.include_dirs.append(py_include)
        if plat_py_include != py_include:
            self.include_dirs.append(plat_py_include)

So it seems like this is the intention.

Are you sure this isn't just a bug in your version of distutils or
something like that?

My python xl builds end up as:
        building 'xl' extension
        gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
        -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
        -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
        -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
        -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
        -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
        -mno-tls-direct-seg-refs -fPIC -I../../tools/include
        -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
        -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
        build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
        -fno-strict-aliasing -Werror

Which has our local -I options before all the others -- which is
sensible. What do you see with your system?

Ian.

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 14:38       ` Ian Campbell
@ 2012-05-17 15:10         ` Roger Pau Monne
  2012-05-17 15:14           ` Ian Campbell
  0 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-17 15:10 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

Ian Campbell wrote:
> On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
>> Ian Campbell wrote:
>>> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
>>>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>>>> libxl.h is already present in the include search path, the old one was
>>>> included instead of the new one, giving compilation errors. Since
>>>> _pyxl_types.c is generated at compilation time, we can safely set
>>>> the path to libxl.h include.
>>>>
>>>> I've only experienced this problem when compiling Xen on NetBSD with
>>>> old header files in the include path, Linux seems to not have this
>>>> problem.
>>> Should this be include<>   and not "", since libxl.h isn't in the current
>>> dir in this case?
>>>
>>> Is the right fix to make sure that the in-tree -I lines come first?
>>> Ian.
>> Actually I'm not sure if it's possible to make sure the in-tree -I lines
>> come first, because the gcc options are automatically generated by
>> python build tools (distutils&  friends...), so we cannot touch much of
>> this (I've looked at distutils.core options, and it seems to be no way
>> of setting an order on compiler options, but I'm no expert on python C
>> extensions building), so unless we craft our own makefile to build this
>> python stuff I think we are stuck with something like this.
>
> Surely distutils puts user supplied options first before system options?
> My /usr/lib/python2.5/distutils/command/build_ext.py says:
>
>         # Put the Python "system" include dir at the end, so that
>          # any local include dirs take precedence.
>          self.include_dirs.append(py_include)
>          if plat_py_include != py_include:
>              self.include_dirs.append(plat_py_include)
>
> So it seems like this is the intention.
>
> Are you sure this isn't just a bug in your version of distutils or
> something like that?
>
> My python xl builds end up as:
>          building 'xl' extension
>          gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
>          -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
>          -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>          -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
>          -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
>          -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
>          -mno-tls-direct-seg-refs -fPIC -I../../tools/include
>          -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>          -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
>          build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
>          -fno-strict-aliasing -Werror
>
> Which has our local -I options before all the others -- which is
> sensible. What do you see with your system?

This is what I see:

CC="gcc" CFLAGS="-O1 -fno-omit-frame-pointer -m64 -g 
-fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes 
-Wdeclaration-after-statement   -D__XEN_TOOLS__ -MMD -MF .build.d 
-fno-optimize-sibling-calls" python2.7 setup.py build
running build
running build_py
running build_ext
building 'xl' extension

gcc -DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include -I/usr/pkg/include -O1 
-fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall 
-Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD 
-MF .build.d -fno-optimize-sibling-calls -fPIC -I../../tools/include 
-I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl 
-I/usr/pkg/include/python2.7 -c xen/lowlevel/xl/_pyxl_types.c -o 
build/temp.netbsd-6.0_BETA-amd64-2.7/xen/lowlevel/xl/_pyxl_types.o 
-fno-strict-aliasing -Werror

xen/lowlevel/xl/_pyxl_types.c: In function 'genwrap__init':
xen/lowlevel/xl/_pyxl_types.c:4346:78: error: 
'LIBXL_EVENT_TYPE_DOMAIN_CREATE_CONSOLE_AVAILABLE' undeclared (first use 
in this function)
xen/lowlevel/xl/_pyxl_types.c:4346:78: note: each undeclared identifier 
is reported only once for each function it appears in
error: command 'gcc' failed with exit status 1
gmake: *** [build] Error 1
gmake: Leaving directory `/root/xen/xen-netbsd/tools/python'

So this part "-DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include 
-I/usr/pkg/include" comes even before our passed CFLAGS.

My /usr/pkg/lib/python2.7/distutils/command/build_ext.py:

         # Put the Python "system" include dir at the end, so that
         # any local include dirs take precedence.
         self.include_dirs.append(py_include)
         if plat_py_include != py_include:
             self.include_dirs.append(plat_py_include)

	[...]


         # Finally add the user include and library directories if requested
         if self.user:
             user_include = os.path.join(USER_BASE, "include")
             user_lib = os.path.join(USER_BASE, "lib")
             if os.path.isdir(user_include):
                 self.include_dirs.append(user_include)
             if os.path.isdir(user_lib):
                 self.library_dirs.append(user_lib)
                 self.rpath.append(user_lib)

So it says it puts them at the end, but it doesn't do so. I've looked at 
Python 2.7 original source, and this is not a NetBSD port specific bug.

> Ian.
>

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 15:10         ` Roger Pau Monne
@ 2012-05-17 15:14           ` Ian Campbell
  2012-05-18  8:37             ` Christoph Egger
  2012-05-18  8:41             ` Roger Pau Monne
  0 siblings, 2 replies; 27+ messages in thread
From: Ian Campbell @ 2012-05-17 15:14 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

On Thu, 2012-05-17 at 16:10 +0100, Roger Pau Monne wrote:
> Ian Campbell wrote:
> > On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
> >> Ian Campbell wrote:
> >>> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
> >>>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
> >>>> libxl.h is already present in the include search path, the old one was
> >>>> included instead of the new one, giving compilation errors. Since
> >>>> _pyxl_types.c is generated at compilation time, we can safely set
> >>>> the path to libxl.h include.
> >>>>
> >>>> I've only experienced this problem when compiling Xen on NetBSD with
> >>>> old header files in the include path, Linux seems to not have this
> >>>> problem.
> >>> Should this be include<>   and not "", since libxl.h isn't in the current
> >>> dir in this case?
> >>>
> >>> Is the right fix to make sure that the in-tree -I lines come first?
> >>> Ian.
> >> Actually I'm not sure if it's possible to make sure the in-tree -I lines
> >> come first, because the gcc options are automatically generated by
> >> python build tools (distutils&  friends...), so we cannot touch much of
> >> this (I've looked at distutils.core options, and it seems to be no way
> >> of setting an order on compiler options, but I'm no expert on python C
> >> extensions building), so unless we craft our own makefile to build this
> >> python stuff I think we are stuck with something like this.
> >
> > Surely distutils puts user supplied options first before system options?
> > My /usr/lib/python2.5/distutils/command/build_ext.py says:
> >
> >         # Put the Python "system" include dir at the end, so that
> >          # any local include dirs take precedence.
> >          self.include_dirs.append(py_include)
> >          if plat_py_include != py_include:
> >              self.include_dirs.append(plat_py_include)
> >
> > So it seems like this is the intention.
> >
> > Are you sure this isn't just a bug in your version of distutils or
> > something like that?
> >
> > My python xl builds end up as:
> >          building 'xl' extension
> >          gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
> >          -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
> >          -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
> >          -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
> >          -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> >          -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
> >          -mno-tls-direct-seg-refs -fPIC -I../../tools/include
> >          -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
> >          -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
> >          build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
> >          -fno-strict-aliasing -Werror
> >
> > Which has our local -I options before all the others -- which is
> > sensible. What do you see with your system?
> 
> This is what I see:
> 
> CC="gcc" CFLAGS="-O1 -fno-omit-frame-pointer -m64 -g 
> -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes 
> -Wdeclaration-after-statement   -D__XEN_TOOLS__ -MMD -MF .build.d 
> -fno-optimize-sibling-calls" python2.7 setup.py build
> running build
> running build_py
> running build_ext
> building 'xl' extension
> 
> gcc -DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include -I/usr/pkg/include -O1 
> -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall 
> -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD 
> -MF .build.d -fno-optimize-sibling-calls -fPIC -I../../tools/include 
> -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl 
> -I/usr/pkg/include/python2.7 -c xen/lowlevel/xl/_pyxl_types.c -o 
> build/temp.netbsd-6.0_BETA-amd64-2.7/xen/lowlevel/xl/_pyxl_types.o 
> -fno-strict-aliasing -Werror
> 
> xen/lowlevel/xl/_pyxl_types.c: In function 'genwrap__init':
> xen/lowlevel/xl/_pyxl_types.c:4346:78: error: 
> 'LIBXL_EVENT_TYPE_DOMAIN_CREATE_CONSOLE_AVAILABLE' undeclared (first use 
> in this function)
> xen/lowlevel/xl/_pyxl_types.c:4346:78: note: each undeclared identifier 
> is reported only once for each function it appears in
> error: command 'gcc' failed with exit status 1
> gmake: *** [build] Error 1
> gmake: Leaving directory `/root/xen/xen-netbsd/tools/python'
> 
> So this part "-DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include 
> -I/usr/pkg/include" comes even before our passed CFLAGS.
> 
> My /usr/pkg/lib/python2.7/distutils/command/build_ext.py:
> 
>          # Put the Python "system" include dir at the end, so that
>          # any local include dirs take precedence.
>          self.include_dirs.append(py_include)
>          if plat_py_include != py_include:
>              self.include_dirs.append(plat_py_include)
> 
> 	[...]
> 
> 
>          # Finally add the user include and library directories if requested
>          if self.user:
>              user_include = os.path.join(USER_BASE, "include")
>              user_lib = os.path.join(USER_BASE, "lib")
>              if os.path.isdir(user_include):
>                  self.include_dirs.append(user_include)
>              if os.path.isdir(user_lib):
>                  self.library_dirs.append(user_lib)
>                  self.rpath.append(user_lib)
> 
> So it says it puts them at the end, but it doesn't do so. I've looked at 
> Python 2.7 original source, and this is not a NetBSD port specific bug.

You are sure this is that snippet of code adding this? Where
does /usr/pkg/include come from? This only appears to add one -I and you
have two extra.

You aren't using some EXTRA_CFLAGS or similar are you?

Ian.

> 
> > Ian.
> >
> 

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 15:14           ` Ian Campbell
@ 2012-05-18  8:37             ` Christoph Egger
  2012-05-18  8:41               ` Ian Campbell
  2012-05-18  8:44               ` Roger Pau Monne
  2012-05-18  8:41             ` Roger Pau Monne
  1 sibling, 2 replies; 27+ messages in thread
From: Christoph Egger @ 2012-05-18  8:37 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xen.org, Ian Jackson, Roger Pau Monne

On 05/17/12 17:14, Ian Campbell wrote:

> On Thu, 2012-05-17 at 16:10 +0100, Roger Pau Monne wrote:
>> Ian Campbell wrote:
>>> On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
>>>> Ian Campbell wrote:
>>>>> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
>>>>>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>>>>>> libxl.h is already present in the include search path, the old one was
>>>>>> included instead of the new one, giving compilation errors. Since
>>>>>> _pyxl_types.c is generated at compilation time, we can safely set
>>>>>> the path to libxl.h include.
>>>>>>
>>>>>> I've only experienced this problem when compiling Xen on NetBSD with
>>>>>> old header files in the include path, Linux seems to not have this
>>>>>> problem.
>>>>> Should this be include<>   and not "", since libxl.h isn't in the current
>>>>> dir in this case?
>>>>>
>>>>> Is the right fix to make sure that the in-tree -I lines come first?
>>>>> Ian.
>>>> Actually I'm not sure if it's possible to make sure the in-tree -I lines
>>>> come first, because the gcc options are automatically generated by
>>>> python build tools (distutils&  friends...), so we cannot touch much of
>>>> this (I've looked at distutils.core options, and it seems to be no way
>>>> of setting an order on compiler options, but I'm no expert on python C
>>>> extensions building), so unless we craft our own makefile to build this
>>>> python stuff I think we are stuck with something like this.
>>>
>>> Surely distutils puts user supplied options first before system options?
>>> My /usr/lib/python2.5/distutils/command/build_ext.py says:
>>>
>>>         # Put the Python "system" include dir at the end, so that
>>>          # any local include dirs take precedence.
>>>          self.include_dirs.append(py_include)
>>>          if plat_py_include != py_include:
>>>              self.include_dirs.append(plat_py_include)
>>>
>>> So it seems like this is the intention.
>>>
>>> Are you sure this isn't just a bug in your version of distutils or
>>> something like that?
>>>
>>> My python xl builds end up as:
>>>          building 'xl' extension
>>>          gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
>>>          -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
>>>          -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>>>          -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
>>>          -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
>>>          -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
>>>          -mno-tls-direct-seg-refs -fPIC -I../../tools/include
>>>          -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>>>          -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
>>>          build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
>>>          -fno-strict-aliasing -Werror
>>>
>>> Which has our local -I options before all the others -- which is
>>> sensible. What do you see with your system?
>>
>> This is what I see:
>>
>> CC="gcc" CFLAGS="-O1 -fno-omit-frame-pointer -m64 -g 
>> -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes 
>> -Wdeclaration-after-statement   -D__XEN_TOOLS__ -MMD -MF .build.d 
>> -fno-optimize-sibling-calls" python2.7 setup.py build
>> running build
>> running build_py
>> running build_ext
>> building 'xl' extension
>>
>> gcc -DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include -I/usr/pkg/include -O1 
>> -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall 
>> -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD 
>> -MF .build.d -fno-optimize-sibling-calls -fPIC -I../../tools/include 
>> -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl 
>> -I/usr/pkg/include/python2.7 -c xen/lowlevel/xl/_pyxl_types.c -o 
>> build/temp.netbsd-6.0_BETA-amd64-2.7/xen/lowlevel/xl/_pyxl_types.o 
>> -fno-strict-aliasing -Werror
>>
>> xen/lowlevel/xl/_pyxl_types.c: In function 'genwrap__init':
>> xen/lowlevel/xl/_pyxl_types.c:4346:78: error: 
>> 'LIBXL_EVENT_TYPE_DOMAIN_CREATE_CONSOLE_AVAILABLE' undeclared (first use 
>> in this function)
>> xen/lowlevel/xl/_pyxl_types.c:4346:78: note: each undeclared identifier 
>> is reported only once for each function it appears in
>> error: command 'gcc' failed with exit status 1
>> gmake: *** [build] Error 1
>> gmake: Leaving directory `/root/xen/xen-netbsd/tools/python'
>>
>> So this part "-DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include 
>> -I/usr/pkg/include" comes even before our passed CFLAGS.
>>
>> My /usr/pkg/lib/python2.7/distutils/command/build_ext.py:
>>
>>          # Put the Python "system" include dir at the end, so that
>>          # any local include dirs take precedence.
>>          self.include_dirs.append(py_include)
>>          if plat_py_include != py_include:
>>              self.include_dirs.append(plat_py_include)
>>
>> 	[...]
>>
>>
>>          # Finally add the user include and library directories if requested
>>          if self.user:
>>              user_include = os.path.join(USER_BASE, "include")
>>              user_lib = os.path.join(USER_BASE, "lib")
>>              if os.path.isdir(user_include):
>>                  self.include_dirs.append(user_include)
>>              if os.path.isdir(user_lib):
>>                  self.library_dirs.append(user_lib)
>>                  self.rpath.append(user_lib)
>>
>> So it says it puts them at the end, but it doesn't do so. I've looked at 
>> Python 2.7 original source, and this is not a NetBSD port specific bug.
> 
> You are sure this is that snippet of code adding this? Where
> does /usr/pkg/include come from? This only appears to add one -I and you
> have two extra.
>

> You aren't using some EXTRA_CFLAGS or similar are you?


/usr/pkg/include comes from setting PREPEND_LIB=/usr/pkg/include
when running configure.

Christoph

> Ian.
> 
>>
>>> Ian.


-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18  8:37             ` Christoph Egger
@ 2012-05-18  8:41               ` Ian Campbell
  2012-05-18  8:44               ` Roger Pau Monne
  1 sibling, 0 replies; 27+ messages in thread
From: Ian Campbell @ 2012-05-18  8:41 UTC (permalink / raw)
  To: Christoph Egger; +Cc: xen-devel@lists.xen.org, Ian Jackson, Roger Pau Monne

On Fri, 2012-05-18 at 09:37 +0100, Christoph Egger wrote:
> 
> > You aren't using some EXTRA_CFLAGS or similar are you?

> /usr/pkg/include comes from setting PREPEND_LIB=/usr/pkg/include
> when running configure.

Shouldn't you be using APPEND_LIB for this instead?

Ian.

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 15:14           ` Ian Campbell
  2012-05-18  8:37             ` Christoph Egger
@ 2012-05-18  8:41             ` Roger Pau Monne
  2012-05-18  8:52               ` Ian Campbell
  1 sibling, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18  8:41 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

Ian Campbell wrote:
> On Thu, 2012-05-17 at 16:10 +0100, Roger Pau Monne wrote:
>> Ian Campbell wrote:
>>> On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
>>>> Ian Campbell wrote:
>>>>> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
>>>>>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>>>>>> libxl.h is already present in the include search path, the old one was
>>>>>> included instead of the new one, giving compilation errors. Since
>>>>>> _pyxl_types.c is generated at compilation time, we can safely set
>>>>>> the path to libxl.h include.
>>>>>>
>>>>>> I've only experienced this problem when compiling Xen on NetBSD with
>>>>>> old header files in the include path, Linux seems to not have this
>>>>>> problem.
>>>>> Should this be include<>    and not "", since libxl.h isn't in the current
>>>>> dir in this case?
>>>>>
>>>>> Is the right fix to make sure that the in-tree -I lines come first?
>>>>> Ian.
>>>> Actually I'm not sure if it's possible to make sure the in-tree -I lines
>>>> come first, because the gcc options are automatically generated by
>>>> python build tools (distutils&   friends...), so we cannot touch much of
>>>> this (I've looked at distutils.core options, and it seems to be no way
>>>> of setting an order on compiler options, but I'm no expert on python C
>>>> extensions building), so unless we craft our own makefile to build this
>>>> python stuff I think we are stuck with something like this.
>>> Surely distutils puts user supplied options first before system options?
>>> My /usr/lib/python2.5/distutils/command/build_ext.py says:
>>>
>>>          # Put the Python "system" include dir at the end, so that
>>>           # any local include dirs take precedence.
>>>           self.include_dirs.append(py_include)
>>>           if plat_py_include != py_include:
>>>               self.include_dirs.append(plat_py_include)
>>>
>>> So it seems like this is the intention.
>>>
>>> Are you sure this isn't just a bug in your version of distutils or
>>> something like that?
>>>
>>> My python xl builds end up as:
>>>           building 'xl' extension
>>>           gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
>>>           -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
>>>           -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>>>           -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
>>>           -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
>>>           -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
>>>           -mno-tls-direct-seg-refs -fPIC -I../../tools/include
>>>           -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>>>           -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
>>>           build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
>>>           -fno-strict-aliasing -Werror
>>>
>>> Which has our local -I options before all the others -- which is
>>> sensible. What do you see with your system?
>> This is what I see:
>>
>> CC="gcc" CFLAGS="-O1 -fno-omit-frame-pointer -m64 -g
>> -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>> -Wdeclaration-after-statement   -D__XEN_TOOLS__ -MMD -MF .build.d
>> -fno-optimize-sibling-calls" python2.7 setup.py build
>> running build
>> running build_py
>> running build_ext
>> building 'xl' extension
>>
>> gcc -DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include -I/usr/pkg/include -O1
>> -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
>> -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD
>> -MF .build.d -fno-optimize-sibling-calls -fPIC -I../../tools/include
>> -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>> -I/usr/pkg/include/python2.7 -c xen/lowlevel/xl/_pyxl_types.c -o
>> build/temp.netbsd-6.0_BETA-amd64-2.7/xen/lowlevel/xl/_pyxl_types.o
>> -fno-strict-aliasing -Werror
>>
>> xen/lowlevel/xl/_pyxl_types.c: In function 'genwrap__init':
>> xen/lowlevel/xl/_pyxl_types.c:4346:78: error:
>> 'LIBXL_EVENT_TYPE_DOMAIN_CREATE_CONSOLE_AVAILABLE' undeclared (first use
>> in this function)
>> xen/lowlevel/xl/_pyxl_types.c:4346:78: note: each undeclared identifier
>> is reported only once for each function it appears in
>> error: command 'gcc' failed with exit status 1
>> gmake: *** [build] Error 1
>> gmake: Leaving directory `/root/xen/xen-netbsd/tools/python'
>>
>> So this part "-DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include
>> -I/usr/pkg/include" comes even before our passed CFLAGS.
>>
>> My /usr/pkg/lib/python2.7/distutils/command/build_ext.py:
>>
>>           # Put the Python "system" include dir at the end, so that
>>           # any local include dirs take precedence.
>>           self.include_dirs.append(py_include)
>>           if plat_py_include != py_include:
>>               self.include_dirs.append(plat_py_include)
>>
>> 	[...]
>>
>>
>>           # Finally add the user include and library directories if requested
>>           if self.user:
>>               user_include = os.path.join(USER_BASE, "include")
>>               user_lib = os.path.join(USER_BASE, "lib")
>>               if os.path.isdir(user_include):
>>                   self.include_dirs.append(user_include)
>>               if os.path.isdir(user_lib):
>>                   self.library_dirs.append(user_lib)
>>                   self.rpath.append(user_lib)
>>
>> So it says it puts them at the end, but it doesn't do so. I've looked at
>> Python 2.7 original source, and this is not a NetBSD port specific bug.
>
> You are sure this is that snippet of code adding this? Where
> does /usr/pkg/include come from? This only appears to add one -I and you
> have two extra.
>
> You aren't using some EXTRA_CFLAGS or similar are you?

This fault was due to the way NetBSD pkgsrc builds Python, passing 
OPT="-I/usr/include -I/usr/pkg/include ..." to the configure script, 
which then gets saved to a Makefile that is parsed by distutils and 
appended to the build of every extension. A bug report has already been 
sent:

http://mail-index.netbsd.org/pkgsrc-bugs/2012/05/17/msg047735.html

Anyway, I don't think setting libxl.h path in genwrap.py is such a bad 
idea, this file gets regenerated during every build, and we can make 
sure we are always including the correct header (which should happen 
automatically unless there are some underlying problems with Python, 
like on NetBSD).

> Ian.
>
>>> Ian.
>>>
>
>

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18  8:37             ` Christoph Egger
  2012-05-18  8:41               ` Ian Campbell
@ 2012-05-18  8:44               ` Roger Pau Monne
  1 sibling, 0 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18  8:44 UTC (permalink / raw)
  To: Christoph Egger; +Cc: Ian Jackson, Ian Campbell, xen-devel@lists.xen.org

Christoph Egger wrote:
> On 05/17/12 17:14, Ian Campbell wrote:
>
>> On Thu, 2012-05-17 at 16:10 +0100, Roger Pau Monne wrote:
>>> Ian Campbell wrote:
>>>> On Thu, 2012-05-17 at 15:02 +0100, Roger Pau Monne wrote:
>>>>> Ian Campbell wrote:
>>>>>> On Thu, 2012-05-17 at 13:16 +0100, Roger Pau Monne wrote:
>>>>>>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>>>>>>> libxl.h is already present in the include search path, the old one was
>>>>>>> included instead of the new one, giving compilation errors. Since
>>>>>>> _pyxl_types.c is generated at compilation time, we can safely set
>>>>>>> the path to libxl.h include.
>>>>>>>
>>>>>>> I've only experienced this problem when compiling Xen on NetBSD with
>>>>>>> old header files in the include path, Linux seems to not have this
>>>>>>> problem.
>>>>>> Should this be include<>    and not "", since libxl.h isn't in the current
>>>>>> dir in this case?
>>>>>>
>>>>>> Is the right fix to make sure that the in-tree -I lines come first?
>>>>>> Ian.
>>>>> Actually I'm not sure if it's possible to make sure the in-tree -I lines
>>>>> come first, because the gcc options are automatically generated by
>>>>> python build tools (distutils&   friends...), so we cannot touch much of
>>>>> this (I've looked at distutils.core options, and it seems to be no way
>>>>> of setting an order on compiler options, but I'm no expert on python C
>>>>> extensions building), so unless we craft our own makefile to build this
>>>>> python stuff I think we are stuck with something like this.
>>>> Surely distutils puts user supplied options first before system options?
>>>> My /usr/lib/python2.5/distutils/command/build_ext.py says:
>>>>
>>>>          # Put the Python "system" include dir at the end, so that
>>>>           # any local include dirs take precedence.
>>>>           self.include_dirs.append(py_include)
>>>>           if plat_py_include != py_include:
>>>>               self.include_dirs.append(plat_py_include)
>>>>
>>>> So it seems like this is the intention.
>>>>
>>>> Are you sure this isn't just a bug in your version of distutils or
>>>> something like that?
>>>>
>>>> My python xl builds end up as:
>>>>           building 'xl' extension
>>>>           gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
>>>>           -Wstrict-prototypes -O1 -fno-omit-frame-pointer -m32 -march=i686
>>>>           -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>>>>           -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .build.d
>>>>           -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
>>>>           -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
>>>>           -mno-tls-direct-seg-refs -fPIC -I../../tools/include
>>>>           -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>>>>           -I/usr/include/python2.6 -c xen/lowlevel/xl/xl.c -o
>>>>           build/temp.linux-i686-2.6/xen/lowlevel/xl/xl.o
>>>>           -fno-strict-aliasing -Werror
>>>>
>>>> Which has our local -I options before all the others -- which is
>>>> sensible. What do you see with your system?
>>> This is what I see:
>>>
>>> CC="gcc" CFLAGS="-O1 -fno-omit-frame-pointer -m64 -g
>>> -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
>>> -Wdeclaration-after-statement   -D__XEN_TOOLS__ -MMD -MF .build.d
>>> -fno-optimize-sibling-calls" python2.7 setup.py build
>>> running build
>>> running build_py
>>> running build_ext
>>> building 'xl' extension
>>>
>>> gcc -DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include -I/usr/pkg/include -O1
>>> -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
>>> -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD
>>> -MF .build.d -fno-optimize-sibling-calls -fPIC -I../../tools/include
>>> -I../../tools/libxl -I../../tools/libxc -Ixen/lowlevel/xl
>>> -I/usr/pkg/include/python2.7 -c xen/lowlevel/xl/_pyxl_types.c -o
>>> build/temp.netbsd-6.0_BETA-amd64-2.7/xen/lowlevel/xl/_pyxl_types.o
>>> -fno-strict-aliasing -Werror
>>>
>>> xen/lowlevel/xl/_pyxl_types.c: In function 'genwrap__init':
>>> xen/lowlevel/xl/_pyxl_types.c:4346:78: error:
>>> 'LIBXL_EVENT_TYPE_DOMAIN_CREATE_CONSOLE_AVAILABLE' undeclared (first use
>>> in this function)
>>> xen/lowlevel/xl/_pyxl_types.c:4346:78: note: each undeclared identifier
>>> is reported only once for each function it appears in
>>> error: command 'gcc' failed with exit status 1
>>> gmake: *** [build] Error 1
>>> gmake: Leaving directory `/root/xen/xen-netbsd/tools/python'
>>>
>>> So this part "-DNDEBUG -O2 -DHAVE_DB_185_H -I/usr/include
>>> -I/usr/pkg/include" comes even before our passed CFLAGS.
>>>
>>> My /usr/pkg/lib/python2.7/distutils/command/build_ext.py:
>>>
>>>           # Put the Python "system" include dir at the end, so that
>>>           # any local include dirs take precedence.
>>>           self.include_dirs.append(py_include)
>>>           if plat_py_include != py_include:
>>>               self.include_dirs.append(plat_py_include)
>>>
>>> 	[...]
>>>
>>>
>>>           # Finally add the user include and library directories if requested
>>>           if self.user:
>>>               user_include = os.path.join(USER_BASE, "include")
>>>               user_lib = os.path.join(USER_BASE, "lib")
>>>               if os.path.isdir(user_include):
>>>                   self.include_dirs.append(user_include)
>>>               if os.path.isdir(user_lib):
>>>                   self.library_dirs.append(user_lib)
>>>                   self.rpath.append(user_lib)
>>>
>>> So it says it puts them at the end, but it doesn't do so. I've looked at
>>> Python 2.7 original source, and this is not a NetBSD port specific bug.
>> You are sure this is that snippet of code adding this? Where
>> does /usr/pkg/include come from? This only appears to add one -I and you
>> have two extra.
>>
>
>> You aren't using some EXTRA_CFLAGS or similar are you?
>
>
> /usr/pkg/include comes from setting PREPEND_LIB=/usr/pkg/include
> when running configure.

Nope, it came from Python itself, if you take a look at 
/usr/pkg/lib/python2.7/config/Makefile there's and OPT var that gets 
appended to every extension build, before the user supplied flags. Let's 
see if the Python pkg maintainer is happy to remove "OPT", since I don't 
think it does anything (pkg/46459).

> Christoph
>
>> Ian.
>>
>>>> Ian.
>
>

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18  8:41             ` Roger Pau Monne
@ 2012-05-18  8:52               ` Ian Campbell
  2012-05-18  9:14                 ` Roger Pau Monne
  0 siblings, 1 reply; 27+ messages in thread
From: Ian Campbell @ 2012-05-18  8:52 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

On Fri, 2012-05-18 at 09:41 +0100, Roger Pau Monne wrote:
> This fault was due to the way NetBSD pkgsrc builds Python, passing 
> OPT="-I/usr/include -I/usr/pkg/include ..." to the configure script, 
> which then gets saved to a Makefile that is parsed by distutils and 
> appended to the build of every extension. A bug report has already been 
> sent:
> 
> http://mail-index.netbsd.org/pkgsrc-bugs/2012/05/17/msg047735.html
> 
> Anyway, I don't think setting libxl.h path in genwrap.py is such a bad 
> idea, this file gets regenerated during every build, and we can make 
> sure we are always including the correct header (which should happen 
> automatically unless there are some underlying problems with Python, 
> like on NetBSD).

I don't much like having absolute paths in includes. Imagine I moved my
source tree, then very strange errors would occur. Also it should be
unnecessary unless the underlying system has some very weird
properties...

The right thing is to fix the underlying python problem, which it seems
you have in hand.

I considered suggesting using a relative include here but I expect it
would get resolved relative to each of the -I options in turn
(e.g. /usr/include/../libxl/libxl.h or whatever) which would be even
worse IMHO.

Ian.

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18  8:52               ` Ian Campbell
@ 2012-05-18  9:14                 ` Roger Pau Monne
  2012-05-18  9:25                   ` Ian Campbell
  0 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18  9:14 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

Ian Campbell wrote:
> On Fri, 2012-05-18 at 09:41 +0100, Roger Pau Monne wrote:
>> This fault was due to the way NetBSD pkgsrc builds Python, passing
>> OPT="-I/usr/include -I/usr/pkg/include ..." to the configure script,
>> which then gets saved to a Makefile that is parsed by distutils and
>> appended to the build of every extension. A bug report has already been
>> sent:
>>
>> http://mail-index.netbsd.org/pkgsrc-bugs/2012/05/17/msg047735.html
>>
>> Anyway, I don't think setting libxl.h path in genwrap.py is such a bad
>> idea, this file gets regenerated during every build, and we can make
>> sure we are always including the correct header (which should happen
>> automatically unless there are some underlying problems with Python,
>> like on NetBSD).
>
> I don't much like having absolute paths in includes. Imagine I moved my
> source tree, then very strange errors would occur. Also it should be
> unnecessary unless the underlying system has some very weird
> properties...

So at least the correct fix would be to replace

#include "libxl.h"

with

#include <libxl.h>

right?

> The right thing is to fix the underlying python problem, which it seems
> you have in hand.

Yes, I've send a PR, but the python port seems to have no specific 
maintainer, so I don't know how long it will take before someone picks 
it up...

> I considered suggesting using a relative include here but I expect it
> would get resolved relative to each of the -I options in turn
> (e.g. /usr/include/../libxl/libxl.h or whatever) which would be even
> worse IMHO.
>
> Ian.
>
>
>
>

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18  9:14                 ` Roger Pau Monne
@ 2012-05-18  9:25                   ` Ian Campbell
  0 siblings, 0 replies; 27+ messages in thread
From: Ian Campbell @ 2012-05-18  9:25 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, Ian Jackson, xen-devel@lists.xen.org

On Fri, 2012-05-18 at 10:14 +0100, Roger Pau Monne wrote:
> Ian Campbell wrote:
> > On Fri, 2012-05-18 at 09:41 +0100, Roger Pau Monne wrote:
> >> This fault was due to the way NetBSD pkgsrc builds Python, passing
> >> OPT="-I/usr/include -I/usr/pkg/include ..." to the configure script,
> >> which then gets saved to a Makefile that is parsed by distutils and
> >> appended to the build of every extension. A bug report has already been
> >> sent:
> >>
> >> http://mail-index.netbsd.org/pkgsrc-bugs/2012/05/17/msg047735.html
> >>
> >> Anyway, I don't think setting libxl.h path in genwrap.py is such a bad
> >> idea, this file gets regenerated during every build, and we can make
> >> sure we are always including the correct header (which should happen
> >> automatically unless there are some underlying problems with Python,
> >> like on NetBSD).
> >
> > I don't much like having absolute paths in includes. Imagine I moved my
> > source tree, then very strange errors would occur. Also it should be
> > unnecessary unless the underlying system has some very weird
> > properties...
> 
> So at least the correct fix would be to replace
> 
> #include "libxl.h"
> 
> with
> 
> #include <libxl.h>
> 
> right?

I think it ould be strictly speaking correct to make that change,
although I'm not sure it would make a difference unless there was
another libxl.h in tools/python somewhere.

> > The right thing is to fix the underlying python problem, which it seems
> > you have in hand.
> 
> Yes, I've send a PR, but the python port seems to have no specific 
> maintainer, so I don't know how long it will take before someone picks 
> it up...

OK.

Ian.

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-17 12:16 ` [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c Roger Pau Monne
  2012-05-17 13:25   ` Ian Campbell
@ 2012-05-18 11:13   ` Ian Jackson
  2012-05-18 11:17     ` Roger Pau Monne
  1 sibling, 1 reply; 27+ messages in thread
From: Ian Jackson @ 2012-05-18 11:13 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, xen-devel@lists.xen.org

Roger Pau Monne writes ("[PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c"):
> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
> libxl.h is already present in the include search path, the old one was
> included instead of the new one, giving compilation errors. Since
> _pyxl_types.c is generated at compilation time, we can safely set
> the path to libxl.h include.

I'm not sure what you mean by "the old one".  Do you mean one in
/usr/include ?

> I've only experienced this problem when compiling Xen on NetBSD with
> old header files in the include path, Linux seems to not have this
> problem.

The build system should make sure that our own include directories
come before system directories.  Otherwise various other things aren't
going to work either.

Ian.

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-17 12:16 ` [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion Roger Pau Monne
@ 2012-05-18 11:17   ` Ian Jackson
  2012-05-18 11:29     ` Roger Pau Monne
  0 siblings, 1 reply; 27+ messages in thread
From: Ian Jackson @ 2012-05-18 11:17 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, xen-devel@lists.xen.org

Roger Pau Monne writes ("[PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
> Tools.mk contains variables that should be used when processing the
> top level Config.mk for the tools, specially the CONFIG_DIR variable,
> which is not honoring the PREFIX variable correctly, since when
> CONFIG_DIR is set the PREFIX var is still not defined.

I'm not sure I really understand how PREFIX is supposed to work.

In a normal package PREFIX would be set to /usr, /usr/local, /opt, or
whatever, by the person doing the installation.

The code in StdGNU.mk seems to be capable of generating paths like
  /usr/local/var/run/xen
which is a bit mad.

Also PREFIX is set in StdGNU.mk.  Why is it also set in Tools.mk ?

Ian.

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

* Re: [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c
  2012-05-18 11:13   ` Ian Jackson
@ 2012-05-18 11:17     ` Roger Pau Monne
  0 siblings, 0 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18 11:17 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Christoph Egger, xen-devel@lists.xen.org

Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c"):
>> genwrap.py generates _pyxl_types.c, which includes libxl.h, but if
>> libxl.h is already present in the include search path, the old one was
>> included instead of the new one, giving compilation errors. Since
>> _pyxl_types.c is generated at compilation time, we can safely set
>> the path to libxl.h include.
>
> I'm not sure what you mean by "the old one".  Do you mean one in
> /usr/include ?

Yes, in NetBSD case the ones in /usr/pkg/include, that's where Xen 
headers would reside on a normal installation.

>
>> I've only experienced this problem when compiling Xen on NetBSD with
>> old header files in the include path, Linux seems to not have this
>> problem.
>
> The build system should make sure that our own include directories
> come before system directories.  Otherwise various other things aren't
> going to work either.

This only happened when building python extensions because the port 
build of python passes "OPT" to python configure that contains 
-I/usr/pkg/include. And that is used also when building extensions. A 
bug report is in place. The rest of the build system is fine.

> Ian.

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 11:17   ` Ian Jackson
@ 2012-05-18 11:29     ` Roger Pau Monne
  2012-05-18 11:46       ` Ian Jackson
  0 siblings, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18 11:29 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Christoph Egger, xen-devel@lists.xen.org

Ian Jackson wrote:
> Roger Pau Monne writes ("[PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
>> Tools.mk contains variables that should be used when processing the
>> top level Config.mk for the tools, specially the CONFIG_DIR variable,
>> which is not honoring the PREFIX variable correctly, since when
>> CONFIG_DIR is set the PREFIX var is still not defined.
>
> I'm not sure I really understand how PREFIX is supposed to work.
>
> In a normal package PREFIX would be set to /usr, /usr/local, /opt, or
> whatever, by the person doing the installation.
>
> The code in StdGNU.mk seems to be capable of generating paths like
>    /usr/local/var/run/xen
> which is a bit mad.

Not so much, NetBSD has /usr/pkg/etc for example, for configuration of 
packages installed from ports.

Maybe adding the following to config/Linux.mk would be suitable:

XEN_LOCK_DIR = /var/lib
XEN_RUN_DIR = /var/run/xen
XEN_PAGING_DIR = /var/lib/xen/xenpaging
CONFIG_DIR = /etc

So we don't end up putting those under /usr/local or some strange user 
supplied path.

> Also PREFIX is set in StdGNU.mk.  Why is it also set in Tools.mk ?

Configure scripts have a very common option, --prefix, which is saved 
into Tools.mk as PREFIX, this is what should be used as prefix for 
installation.

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 11:29     ` Roger Pau Monne
@ 2012-05-18 11:46       ` Ian Jackson
  2012-05-18 11:52         ` Christoph Egger
  2012-05-18 11:59         ` Roger Pau Monne
  0 siblings, 2 replies; 27+ messages in thread
From: Ian Jackson @ 2012-05-18 11:46 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, xen-devel@lists.xen.org

Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
> Ian Jackson wrote:
> > Also PREFIX is set in StdGNU.mk.  Why is it also set in Tools.mk ?
> 
> Configure scripts have a very common option, --prefix, which is saved 
> into Tools.mk as PREFIX, this is what should be used as prefix for 
> installation.

I know that.  But given that the configure is just for the tools
build, should we honour PREFIX from Config.mk (and ./.config or
command line arguments) or from ./configure ?

Ian.

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 11:46       ` Ian Jackson
@ 2012-05-18 11:52         ` Christoph Egger
  2012-05-18 11:59         ` Roger Pau Monne
  1 sibling, 0 replies; 27+ messages in thread
From: Christoph Egger @ 2012-05-18 11:52 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel@lists.xen.org, Roger Pau Monne

On 05/18/12 13:46, Ian Jackson wrote:

> Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
>> Ian Jackson wrote:
>>> Also PREFIX is set in StdGNU.mk.  Why is it also set in Tools.mk ?
>>
>> Configure scripts have a very common option, --prefix, which is saved 
>> into Tools.mk as PREFIX, this is what should be used as prefix for 
>> installation.
> 
> I know that.  But given that the configure is just for the tools
> build, should we honour PREFIX from Config.mk (and ./.config or
> command line arguments) or from ./configure ?


The one from configure. The point is that the other path variables
also honour the prefix from configure.

Christoph

-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 11:46       ` Ian Jackson
  2012-05-18 11:52         ` Christoph Egger
@ 2012-05-18 11:59         ` Roger Pau Monne
  2012-05-18 13:30           ` Ian Jackson
  1 sibling, 1 reply; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-18 11:59 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Christoph Egger, xen-devel@lists.xen.org

Ian Jackson wrote:
> Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
>> Ian Jackson wrote:
>>> Also PREFIX is set in StdGNU.mk.  Why is it also set in Tools.mk ?
>> Configure scripts have a very common option, --prefix, which is saved
>> into Tools.mk as PREFIX, this is what should be used as prefix for
>> installation.
>
> I know that.  But given that the configure is just for the tools
> build, should we honour PREFIX from Config.mk (and ./.config or
> command line arguments) or from ./configure ?

I think the one from configure, since we have a configure script, better 
make use of it, that is what users expect. I will resend this patch with 
the above changes to config/Linux.mk, is that ok?

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 11:59         ` Roger Pau Monne
@ 2012-05-18 13:30           ` Ian Jackson
  2012-05-18 14:08             ` Christoph Egger
  0 siblings, 1 reply; 27+ messages in thread
From: Ian Jackson @ 2012-05-18 13:30 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: Christoph Egger, xen-devel@lists.xen.org

Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
> Ian Jackson wrote:
> > I know that.  But given that the configure is just for the tools
> > build, should we honour PREFIX from Config.mk (and ./.config or
> > command line arguments) or from ./configure ?
> 
> I think the one from configure, since we have a configure script, better 
> make use of it, that is what users expect.

I guess so.

> I will resend this patch with the above changes to config/Linux.mk,
> is that ok?

I don't think prefixing paths in /var with PREFIX is ever right.
Overriding it in Linux.mk seems like a band-aid.

Ian.

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 13:30           ` Ian Jackson
@ 2012-05-18 14:08             ` Christoph Egger
  2012-05-22 14:48               ` Roger Pau Monne
  0 siblings, 1 reply; 27+ messages in thread
From: Christoph Egger @ 2012-05-18 14:08 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel@lists.xen.org, Roger Pau Monne

On 05/18/12 15:30, Ian Jackson wrote:

> Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
>> Ian Jackson wrote:
>>> I know that.  But given that the configure is just for the tools
>>> build, should we honour PREFIX from Config.mk (and ./.config or
>>> command line arguments) or from ./configure ?
>>
>> I think the one from configure, since we have a configure script, better 
>> make use of it, that is what users expect.
> 
> I guess so.
> 
>> I will resend this patch with the above changes to config/Linux.mk,
>> is that ok?
> 
> I don't think prefixing paths in /var with PREFIX is ever right.
> Overriding it in Linux.mk seems like a band-aid.


One suggestion:

Move all path variables out of config/*.mk and let configure generate
a config/paths.mk.

Christoph

-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

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

* Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion
  2012-05-18 14:08             ` Christoph Egger
@ 2012-05-22 14:48               ` Roger Pau Monne
  0 siblings, 0 replies; 27+ messages in thread
From: Roger Pau Monne @ 2012-05-22 14:48 UTC (permalink / raw)
  To: Christoph Egger; +Cc: Ian Jackson, xen-devel@lists.xen.org

Christoph Egger wrote:
> On 05/18/12 15:30, Ian Jackson wrote:
>
>> Roger Pau Monne writes ("Re: [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion"):
>>> Ian Jackson wrote:
>>>> I know that.  But given that the configure is just for the tools
>>>> build, should we honour PREFIX from Config.mk (and ./.config or
>>>> command line arguments) or from ./configure ?
>>> I think the one from configure, since we have a configure script, better
>>> make use of it, that is what users expect.
>> I guess so.
>>
>>> I will resend this patch with the above changes to config/Linux.mk,
>>> is that ok?
>> I don't think prefixing paths in /var with PREFIX is ever right.
>> Overriding it in Linux.mk seems like a band-aid.
>
>
> One suggestion:
>
> Move all path variables out of config/*.mk and let configure generate
> a config/paths.mk.

What should we do about this? Should I try to fix 
StdGNU.mk/Linux.mk/NetBSD.mk or are we going to move all paths from 
config/*.mk and put them in a single file generated by configure?

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

end of thread, other threads:[~2012-05-22 14:48 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-17 12:16 [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Roger Pau Monne
2012-05-17 12:16 ` [PATCH v2 2/4] autoconf: correctly parse *_INCLUDES and *_LIB env vars Roger Pau Monne
2012-05-17 12:16 ` [PATCH v2 3/4] python: set absolute path to libxl.h on _pyxl_types.c Roger Pau Monne
2012-05-17 13:25   ` Ian Campbell
2012-05-17 14:02     ` Roger Pau Monne
2012-05-17 14:38       ` Ian Campbell
2012-05-17 15:10         ` Roger Pau Monne
2012-05-17 15:14           ` Ian Campbell
2012-05-18  8:37             ` Christoph Egger
2012-05-18  8:41               ` Ian Campbell
2012-05-18  8:44               ` Roger Pau Monne
2012-05-18  8:41             ` Roger Pau Monne
2012-05-18  8:52               ` Ian Campbell
2012-05-18  9:14                 ` Roger Pau Monne
2012-05-18  9:25                   ` Ian Campbell
2012-05-18 11:13   ` Ian Jackson
2012-05-18 11:17     ` Roger Pau Monne
2012-05-17 12:16 ` [PATCH v2 4/4] tools/build: change order of config/Tools.mk inclusion Roger Pau Monne
2012-05-18 11:17   ` Ian Jackson
2012-05-18 11:29     ` Roger Pau Monne
2012-05-18 11:46       ` Ian Jackson
2012-05-18 11:52         ` Christoph Egger
2012-05-18 11:59         ` Roger Pau Monne
2012-05-18 13:30           ` Ian Jackson
2012-05-18 14:08             ` Christoph Egger
2012-05-22 14:48               ` Roger Pau Monne
2012-05-17 13:22 ` [PATCH v2 1/4] build/tools: disable libvchan build on NetBSD Ian Campbell

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