All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
@ 2015-02-04 17:01 Jan Beulich
  2015-02-04 23:33 ` Don Slutz
  2015-02-05 11:08 ` Ian Jackson
  0 siblings, 2 replies; 24+ messages in thread
From: Jan Beulich @ 2015-02-04 17:01 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Campbell, Ian Jackson, Wei Liu, Stefano Stabellini

[-- Attachment #1: Type: text/plain, Size: 2880 bytes --]

The former gets enforced by our debug builds, the latter appears to be
not uncommon for certain distros' Python packages. Newer glibc warns on
uses of _FORTIFY_SOURCE without optimization being enabled, which with
-Werror causes the build to fail.

Determine Python's intended flags to be passed to the C compiler via
"python-config --cflags", and replace -O0 by -O1 when a non-zero value
gets set for _FORTIFY_SOURCE.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
@@ -2,15 +2,24 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+py_cflags := $(shell $(PYTHON)-config --cflags)
+PY_CFLAGS = $(if $(strip $(py_cflags)),,\
+                 $(error '$(PYTHON)-config --cflags' produced no output))\
+            $(if $(filter -D_FORTIFY_SOURCE=%,\
+                          $(filter-out -D_FORTIFY_SOURCE=0,\
+                                       $(py_cflags))),\
+                 $(patsubst -O0,-O1,$(CFLAGS)),\
+                 $(CFLAGS)) $(APPEND_LDFLAGS)
+
 .PHONY: all
 all: build
 .PHONY: build
 build:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install: all
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
 		--install-scripts=$(LIBEXEC_BIN) --force
 	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -4,6 +4,15 @@ include $(XEN_ROOT)/tools/Rules.mk
 .PHONY: all
 all: build
 
+py_cflags := $(shell $(PYTHON)-config --cflags)
+PY_CFLAGS = $(if $(strip $(py_cflags)),,\
+                 $(error '$(PYTHON)-config --cflags' produced no output))\
+            $(if $(filter -D_FORTIFY_SOURCE=%,\
+                          $(filter-out -D_FORTIFY_SOURCE=0,\
+                                       $(py_cflags))),\
+                 $(patsubst -O0,-O1,$(CFLAGS)),\
+                 $(CFLAGS)) $(LDFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: build
 build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		$(XEN_ROOT)/tools/libxl/idl.py
@@ -11,11 +20,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libx
 		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		xen/lowlevel/xl/_pyxl_types.h \
 		xen/lowlevel/xl/_pyxl_types.c
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
 
 .PHONY: test




[-- Attachment #2: tools-python-build.patch --]
[-- Type: text/plain, Size: 2935 bytes --]

tools: work around collision of -O0 and -D_FORTIFY_SOURCE

The former gets enforced by our debug builds, the latter appears to be
not uncommon for certain distros' Python packages. Newer glibc warns on
uses of _FORTIFY_SOURCE without optimization being enabled, which with
-Werror causes the build to fail.

Determine Python's intended flags to be passed to the C compiler via
"python-config --cflags", and replace -O0 by -O1 when a non-zero value
gets set for _FORTIFY_SOURCE.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
@@ -2,15 +2,24 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+py_cflags := $(shell $(PYTHON)-config --cflags)
+PY_CFLAGS = $(if $(strip $(py_cflags)),,\
+                 $(error '$(PYTHON)-config --cflags' produced no output))\
+            $(if $(filter -D_FORTIFY_SOURCE=%,\
+                          $(filter-out -D_FORTIFY_SOURCE=0,\
+                                       $(py_cflags))),\
+                 $(patsubst -O0,-O1,$(CFLAGS)),\
+                 $(CFLAGS)) $(APPEND_LDFLAGS)
+
 .PHONY: all
 all: build
 .PHONY: build
 build:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install: all
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
 		--install-scripts=$(LIBEXEC_BIN) --force
 	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -4,6 +4,15 @@ include $(XEN_ROOT)/tools/Rules.mk
 .PHONY: all
 all: build
 
+py_cflags := $(shell $(PYTHON)-config --cflags)
+PY_CFLAGS = $(if $(strip $(py_cflags)),,\
+                 $(error '$(PYTHON)-config --cflags' produced no output))\
+            $(if $(filter -D_FORTIFY_SOURCE=%,\
+                          $(filter-out -D_FORTIFY_SOURCE=0,\
+                                       $(py_cflags))),\
+                 $(patsubst -O0,-O1,$(CFLAGS)),\
+                 $(CFLAGS)) $(LDFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: build
 build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		$(XEN_ROOT)/tools/libxl/idl.py
@@ -11,11 +20,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libx
 		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		xen/lowlevel/xl/_pyxl_types.h \
 		xen/lowlevel/xl/_pyxl_types.c
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
 
 .PHONY: test

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-04 17:01 [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Jan Beulich
@ 2015-02-04 23:33 ` Don Slutz
  2015-02-05 10:17   ` Jan Beulich
  2015-02-05 11:08 ` Ian Jackson
  1 sibling, 1 reply; 24+ messages in thread
From: Don Slutz @ 2015-02-04 23:33 UTC (permalink / raw)
  To: Jan Beulich, xen-devel
  Cc: Ian Campbell, Wei Liu, Ian Jackson, Stefano Stabellini

On 02/04/15 12:01, Jan Beulich wrote:
> The former gets enforced by our debug builds, the latter appears to be
> not uncommon for certain distros' Python packages. Newer glibc warns on
> uses of _FORTIFY_SOURCE without optimization being enabled, which with
> -Werror causes the build to fail.
> 
> Determine Python's intended flags to be passed to the C compiler via
> "python-config --cflags", and replace -O0 by -O1 when a non-zero value
> gets set for _FORTIFY_SOURCE.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 

Well, this does not fix debug=y builds for me:

...
make -C python install
make[3]: Entering directory `/home/don/xen-master/tools/python'
CC="gcc" CFLAGS="  -O1 -fno-omit-frame-pointer -m64 -g
-fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
-Wdeclaration-after-statement -Wno-unused-but-set-variable
-Wno-unused-local-typedefs   -O0 -g3 -D__XEN_TOOLS__ -MMD -MF .install.d
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
  " python setup.py install \
        --prefix="/usr" --root="/home/don/xen-master/dist/install" --force
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/xen
copying xen/__init__.py -> build/lib.linux-x86_64-2.7/xen
creating build/lib.linux-x86_64-2.7/xen/lowlevel
copying xen/lowlevel/__init__.py -> build/lib.linux-x86_64-2.7/xen/lowlevel
running build_ext
building 'xc' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/xen
creating build/temp.linux-x86_64-2.7/xen/lowlevel
creating build/temp.linux-x86_64-2.7/xen/lowlevel/xc
gcc -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
-D_GNU_SOURCE -fPIC -fwrapv -O1 -fno-omit-frame-pointer -m64 -g
-fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
-Wdeclaration-after-statement -Wno-unused-but-set-variable
-Wno-unused-local-typedefs -O0 -g3 -D__XEN_TOOLS__ -MMD -MF .install.d
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls
-fPIC -I../../tools/include -I../../tools/libxc/include
-Ixen/lowlevel/xc -I/usr/include/python2.7 -c xen/lowlevel/xc/xc.c -o
build/temp.linux-x86_64-2.7/xen/lowlevel/xc/xc.o -fno-strict-aliasing
-Werror
In file included from /usr/include/limits.h:27:0,
                 from
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/limits.h:169,
                 from
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/syslimits.h:7,
                 from
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/limits.h:34,
                 from /usr/include/python2.7/Python.h:19,
                 from xen/lowlevel/xc/xc.c:7:
/usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires
compiling with optimization (-O) [-Werror=cpp]
cc1: all warnings being treated as errors
error: command 'gcc' failed with exit status 1
make[3]: *** [install] Error 1
make[3]: Leaving directory `/home/don/xen-master/tools/python'
make[2]: *** [subdir-install-python] Error 2
make[2]: Leaving directory `/home/don/xen-master/tools'
make[1]: *** [subdirs-install] Error 2
make[1]: Leaving directory `/home/don/xen-master/tools'
make: *** [install-tools] Error 2


Using this change:

dcs-xen-54:~/xen-master>git show | cat
commit 3cda306a162e55d73c25efc14840e7afeec8d3d3
Author: Don Slutz <dslutz@verizon.com>
Date:   Wed Feb 4 17:57:00 2015 -0500

    tools/Rules.mk: Drop -O0 for debug=y

    This is a partial revert of

    commit 1166ecf781b1016eaa61f8d5ba4fb1fde9d599b6
    Author: Euan Harris <euan.harris@citrix.com>
    Date:   Mon Dec 1 14:21:05 2014 +0000

        tools/Rules.mk: Don't optimize debug builds; add macro debugging
information

    Signed-off-by: Don Slutz <dslutz@verizon.com>

diff --git a/tools/Rules.mk b/tools/Rules.mk
index 74cf37e..8bf603d 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)

 ifeq ($(debug),y)
 # Disable optimizations and enable debugging information for macros
-CFLAGS += -O0 -g3
+CFLAGS += -g3
 endif

 LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)


I can now build with "debug=y" on Fedora 17.

   -Don Slutz




> --- a/tools/pygrub/Makefile
> +++ b/tools/pygrub/Makefile
> @@ -2,15 +2,24 @@
>  XEN_ROOT = $(CURDIR)/../..
>  include $(XEN_ROOT)/tools/Rules.mk
>  
> +py_cflags := $(shell $(PYTHON)-config --cflags)
> +PY_CFLAGS = $(if $(strip $(py_cflags)),,\
> +                 $(error '$(PYTHON)-config --cflags' produced no output))\
> +            $(if $(filter -D_FORTIFY_SOURCE=%,\
> +                          $(filter-out -D_FORTIFY_SOURCE=0,\
> +                                       $(py_cflags))),\
> +                 $(patsubst -O0,-O1,$(CFLAGS)),\
> +                 $(CFLAGS)) $(APPEND_LDFLAGS)
> +
>  .PHONY: all
>  all: build
>  .PHONY: build
>  build:
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
>  
>  .PHONY: install
>  install: all
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
>  		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
>  		--install-scripts=$(LIBEXEC_BIN) --force
>  	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
> --- a/tools/python/Makefile
> +++ b/tools/python/Makefile
> @@ -4,6 +4,15 @@ include $(XEN_ROOT)/tools/Rules.mk
>  .PHONY: all
>  all: build
>  
> +py_cflags := $(shell $(PYTHON)-config --cflags)
> +PY_CFLAGS = $(if $(strip $(py_cflags)),,\
> +                 $(error '$(PYTHON)-config --cflags' produced no output))\
> +            $(if $(filter -D_FORTIFY_SOURCE=%,\
> +                          $(filter-out -D_FORTIFY_SOURCE=0,\
> +                                       $(py_cflags))),\
> +                 $(patsubst -O0,-O1,$(CFLAGS)),\
> +                 $(CFLAGS)) $(LDFLAGS) $(APPEND_LDFLAGS)
> +
>  .PHONY: build
>  build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
>  		$(XEN_ROOT)/tools/libxl/idl.py
> @@ -11,11 +20,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libx
>  		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
>  		xen/lowlevel/xl/_pyxl_types.h \
>  		xen/lowlevel/xl/_pyxl_types.c
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
>  
>  .PHONY: install
>  install:
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
>  		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
>  
>  .PHONY: test
> 
> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
> 

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-04 23:33 ` Don Slutz
@ 2015-02-05 10:17   ` Jan Beulich
  2015-02-05 14:55     ` Don Slutz
  0 siblings, 1 reply; 24+ messages in thread
From: Jan Beulich @ 2015-02-05 10:17 UTC (permalink / raw)
  To: Don Slutz
  Cc: Ian Campbell, Ian Jackson, Wei Liu, xen-devel, Stefano Stabellini

>>> On 05.02.15 at 00:33, <dslutz@verizon.com> wrote:
> On 02/04/15 12:01, Jan Beulich wrote:
>> The former gets enforced by our debug builds, the latter appears to be
>> not uncommon for certain distros' Python packages. Newer glibc warns on
>> uses of _FORTIFY_SOURCE without optimization being enabled, which with
>> -Werror causes the build to fail.
>> 
>> Determine Python's intended flags to be passed to the C compiler via
>> "python-config --cflags", and replace -O0 by -O1 when a non-zero value
>> gets set for _FORTIFY_SOURCE.
>> 
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Well, this does not fix debug=y builds for me:
> [...]
> gcc -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions

Where is this -Wp,-D_FORTIFY_SOURCE=2 coming from? Is
python-config producing this? The patch provided certainly doesn't
deal with that case.

> Using this change:
> 
> dcs-xen-54:~/xen-master>git show | cat
> commit 3cda306a162e55d73c25efc14840e7afeec8d3d3
> Author: Don Slutz <dslutz@verizon.com>
> Date:   Wed Feb 4 17:57:00 2015 -0500
> 
>     tools/Rules.mk: Drop -O0 for debug=y
> 
>     This is a partial revert of
> 
>     commit 1166ecf781b1016eaa61f8d5ba4fb1fde9d599b6
>     Author: Euan Harris <euan.harris@citrix.com>
>     Date:   Mon Dec 1 14:21:05 2014 +0000
> 
>         tools/Rules.mk: Don't optimize debug builds; add macro debugging
> information
> 
>     Signed-off-by: Don Slutz <dslutz@verizon.com>
> 
> diff --git a/tools/Rules.mk b/tools/Rules.mk
> index 74cf37e..8bf603d 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
> 
>  ifeq ($(debug),y)
>  # Disable optimizations and enable debugging information for macros
> -CFLAGS += -O0 -g3
> +CFLAGS += -g3
>  endif
> 
>  LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
> 
> 
> I can now build with "debug=y" on Fedora 17.

If you went through the earlier discussion, you'd have seen that
this was already rejected as a possible fix.

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-04 17:01 [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Jan Beulich
  2015-02-04 23:33 ` Don Slutz
@ 2015-02-05 11:08 ` Ian Jackson
  2015-02-05 11:18   ` Jan Beulich
  1 sibling, 1 reply; 24+ messages in thread
From: Ian Jackson @ 2015-02-05 11:08 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Ian Campbell, xen-devel, Wei Liu, Stefano Stabellini

Jan Beulich writes ("[PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> The former gets enforced by our debug builds, the latter appears to be
> not uncommon for certain distros' Python packages. Newer glibc warns on
> uses of _FORTIFY_SOURCE without optimization being enabled, which with
> -Werror causes the build to fail.
...
> --- a/tools/pygrub/Makefile
> +++ b/tools/pygrub/Makefile
> @@ -2,15 +2,24 @@
>  XEN_ROOT = $(CURDIR)/../..
>  include $(XEN_ROOT)/tools/Rules.mk
>  
> +py_cflags := $(shell $(PYTHON)-config --cflags)
> +PY_CFLAGS = $(if $(strip $(py_cflags)),,\
> +                 $(error '$(PYTHON)-config --cflags' produced no output))\
> +            $(if $(filter -D_FORTIFY_SOURCE=%,\
> +                          $(filter-out -D_FORTIFY_SOURCE=0,\
> +                                       $(py_cflags))),\
> +                 $(patsubst -O0,-O1,$(CFLAGS)),\
> +                 $(CFLAGS)) $(APPEND_LDFLAGS)

There are lots of copies of this.  And it would IMO be better to do at
least the probing in configure, resulting in something like this in
configure:

 [ determine PY_XCFLAGS to be either '' or '-O0' ]
 AC_SUBST(PY_XCFLAGS)

and

 PY_CFLAGS=@PY_CFLAGS@

    CC="$(CC)" CFLAGS="$(CFLAGS) $(PY_XCFLAGS)" $(PYTHON) setup.py build

(I assume that CFLAGS does override what comes out of setup.py.)

thanks,
Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 11:08 ` Ian Jackson
@ 2015-02-05 11:18   ` Jan Beulich
  2015-02-05 12:25     ` Ian Campbell
  2015-02-05 15:26     ` Ian Jackson
  0 siblings, 2 replies; 24+ messages in thread
From: Jan Beulich @ 2015-02-05 11:18 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Ian Campbell, Wei Liu, Euan Harris, xen-devel, Stefano Stabellini

>>> On 05.02.15 at 12:08, <Ian.Jackson@eu.citrix.com> wrote:
> Jan Beulich writes ("[PATCH] tools: work around collision of -O0 and 
> -D_FORTIFY_SOURCE"):
>> The former gets enforced by our debug builds, the latter appears to be
>> not uncommon for certain distros' Python packages. Newer glibc warns on
>> uses of _FORTIFY_SOURCE without optimization being enabled, which with
>> -Werror causes the build to fail.
> ...
>> --- a/tools/pygrub/Makefile
>> +++ b/tools/pygrub/Makefile
>> @@ -2,15 +2,24 @@
>>  XEN_ROOT = $(CURDIR)/../..
>>  include $(XEN_ROOT)/tools/Rules.mk
>>  
>> +py_cflags := $(shell $(PYTHON)-config --cflags)
>> +PY_CFLAGS = $(if $(strip $(py_cflags)),,\
>> +                 $(error '$(PYTHON)-config --cflags' produced no output))\
>> +            $(if $(filter -D_FORTIFY_SOURCE=%,\
>> +                          $(filter-out -D_FORTIFY_SOURCE=0,\
>> +                                       $(py_cflags))),\
>> +                 $(patsubst -O0,-O1,$(CFLAGS)),\
>> +                 $(CFLAGS)) $(APPEND_LDFLAGS)
> 
> There are lots of copies of this.  And it would IMO be better to do at
> least the probing in configure, resulting in something like this in
> configure:
> 
>  [ determine PY_XCFLAGS to be either '' or '-O0' ]
>  AC_SUBST(PY_XCFLAGS)
> 
> and
> 
>  PY_CFLAGS=@PY_CFLAGS@
> 
>     CC="$(CC)" CFLAGS="$(CFLAGS) $(PY_XCFLAGS)" $(PYTHON) setup.py build
> 
> (I assume that CFLAGS does override what comes out of setup.py.)

For one, PY_XCFLAGS='' wouldn't help, as we get -O0 from the
incoming CFLAGS. And then I'm not really intending to fiddle with
the configure scripts (albeit, having done the patch in the presented
form, I expected you to want it done that way) - this and alike is
what I specifically want to stay out of if at all possible. Since in any
event commit 1166ecf781 introduced a regression for multiple
people, perhaps if that is not supposed to be reverted Euan should
look into addressing that regression?

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 11:18   ` Jan Beulich
@ 2015-02-05 12:25     ` Ian Campbell
  2015-02-05 15:26     ` Ian Jackson
  1 sibling, 0 replies; 24+ messages in thread
From: Ian Campbell @ 2015-02-05 12:25 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Euan Harris, xen-devel, Ian Jackson, Wei Liu, Stefano Stabellini

On Thu, 2015-02-05 at 11:18 +0000, Jan Beulich wrote:
> >>> On 05.02.15 at 12:08, <Ian.Jackson@eu.citrix.com> wrote:
> > Jan Beulich writes ("[PATCH] tools: work around collision of -O0 and 
> > -D_FORTIFY_SOURCE"):
> >> The former gets enforced by our debug builds, the latter appears to be
> >> not uncommon for certain distros' Python packages. Newer glibc warns on
> >> uses of _FORTIFY_SOURCE without optimization being enabled, which with
> >> -Werror causes the build to fail.
> > ...
> >> --- a/tools/pygrub/Makefile
> >> +++ b/tools/pygrub/Makefile
> >> @@ -2,15 +2,24 @@
> >>  XEN_ROOT = $(CURDIR)/../..
> >>  include $(XEN_ROOT)/tools/Rules.mk
> >>  
> >> +py_cflags := $(shell $(PYTHON)-config --cflags)
> >> +PY_CFLAGS = $(if $(strip $(py_cflags)),,\
> >> +                 $(error '$(PYTHON)-config --cflags' produced no output))\
> >> +            $(if $(filter -D_FORTIFY_SOURCE=%,\
> >> +                          $(filter-out -D_FORTIFY_SOURCE=0,\
> >> +                                       $(py_cflags))),\
> >> +                 $(patsubst -O0,-O1,$(CFLAGS)),\
> >> +                 $(CFLAGS)) $(APPEND_LDFLAGS)
> > 
> > There are lots of copies of this.  And it would IMO be better to do at
> > least the probing in configure, resulting in something like this in
> > configure:
> > 
> >  [ determine PY_XCFLAGS to be either '' or '-O0' ]
> >  AC_SUBST(PY_XCFLAGS)
> > 
> > and
> > 
> >  PY_CFLAGS=@PY_CFLAGS@
> > 
> >     CC="$(CC)" CFLAGS="$(CFLAGS) $(PY_XCFLAGS)" $(PYTHON) setup.py build
> > 
> > (I assume that CFLAGS does override what comes out of setup.py.)
> 
> For one, PY_XCFLAGS='' wouldn't help, as we get -O0 from the
> incoming CFLAGS. And then I'm not really intending to fiddle with
> the configure scripts (albeit, having done the patch in the presented
> form, I expected you to want it done that way) - this and alike is
> what I specifically want to stay out of if at all possible. Since in any
> event commit 1166ecf781 introduced a regression for multiple
> people, perhaps if that is not supposed to be reverted Euan should
> look into addressing that regression?

Euan -- do you think you might be able to whip up an autoconf-ification
along the lines of what is described above?

Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 10:17   ` Jan Beulich
@ 2015-02-05 14:55     ` Don Slutz
  0 siblings, 0 replies; 24+ messages in thread
From: Don Slutz @ 2015-02-05 14:55 UTC (permalink / raw)
  To: Jan Beulich, Don Slutz
  Cc: Ian Campbell, Ian Jackson, Wei Liu, xen-devel, Stefano Stabellini

On 02/05/15 05:17, Jan Beulich wrote:
>>>> On 05.02.15 at 00:33, <dslutz@verizon.com> wrote:
>> On 02/04/15 12:01, Jan Beulich wrote:
>>> The former gets enforced by our debug builds, the latter appears to be
>>> not uncommon for certain distros' Python packages. Newer glibc warns on
>>> uses of _FORTIFY_SOURCE without optimization being enabled, which with
>>> -Werror causes the build to fail.
>>>
>>> Determine Python's intended flags to be passed to the C compiler via
>>> "python-config --cflags", and replace -O0 by -O1 when a non-zero value
>>> gets set for _FORTIFY_SOURCE.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> Well, this does not fix debug=y builds for me:
>> [...]
>> gcc -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> 
> Where is this -Wp,-D_FORTIFY_SOURCE=2 coming from? Is
> python-config producing this? The patch provided certainly doesn't
> deal with that case.

Here is what I get for python-config:


dcs-xen-54:~/xen-master>python-config --cflags
-I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing
-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
-D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv



> 
>> Using this change:
>>
>> dcs-xen-54:~/xen-master>git show | cat
>> commit 3cda306a162e55d73c25efc14840e7afeec8d3d3
>> Author: Don Slutz <dslutz@verizon.com>
>> Date:   Wed Feb 4 17:57:00 2015 -0500
>>
>>     tools/Rules.mk: Drop -O0 for debug=y
>>
>>     This is a partial revert of
>>
>>     commit 1166ecf781b1016eaa61f8d5ba4fb1fde9d599b6
>>     Author: Euan Harris <euan.harris@citrix.com>
>>     Date:   Mon Dec 1 14:21:05 2014 +0000
>>
>>         tools/Rules.mk: Don't optimize debug builds; add macro debugging
>> information
>>
>>     Signed-off-by: Don Slutz <dslutz@verizon.com>
>>
>> diff --git a/tools/Rules.mk b/tools/Rules.mk
>> index 74cf37e..8bf603d 100644
>> --- a/tools/Rules.mk
>> +++ b/tools/Rules.mk
>> @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>>
>>  ifeq ($(debug),y)
>>  # Disable optimizations and enable debugging information for macros
>> -CFLAGS += -O0 -g3
>> +CFLAGS += -g3
>>  endif
>>
>>  LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
>>
>>
>> I can now build with "debug=y" on Fedora 17.
> 
> If you went through the earlier discussion, you'd have seen that
> this was already rejected as a possible fix.

Sorry I did not see this.

   -Don Slutz

> 
> Jan
> 

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 11:18   ` Jan Beulich
  2015-02-05 12:25     ` Ian Campbell
@ 2015-02-05 15:26     ` Ian Jackson
  2015-02-05 15:46       ` Jan Beulich
  2015-02-05 15:47       ` Euan Harris
  1 sibling, 2 replies; 24+ messages in thread
From: Ian Jackson @ 2015-02-05 15:26 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Ian Campbell, Wei Liu, Euan Harris, xen-devel, Stefano Stabellini

Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> For one, PY_XCFLAGS='' wouldn't help, as we get -O0 from the
> incoming CFLAGS.

Sorry, I meant PY_XCFLAGS='' or -O1 (as appropriate).

> And then I'm not really intending to fiddle with
> the configure scripts (albeit, having done the patch in the presented
> form, I expected you to want it done that way) - this and alike is
> what I specifically want to stay out of if at all possible. Since in any
> event commit 1166ecf781 introduced a regression for multiple
> people, perhaps if that is not supposed to be reverted Euan should
> look into addressing that regression?

Since I'm being difficult, how about if I prepare patch to configure.
Would you be able to test it ?

None of my machines have the broken python setup.

Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 15:26     ` Ian Jackson
@ 2015-02-05 15:46       ` Jan Beulich
  2015-02-05 15:47       ` Euan Harris
  1 sibling, 0 replies; 24+ messages in thread
From: Jan Beulich @ 2015-02-05 15:46 UTC (permalink / raw)
  To: Ian Jackson
  Cc: IanCampbell, Wei Liu, Euan Harris, xen-devel, Stefano Stabellini

>>> On 05.02.15 at 16:26, <Ian.Jackson@eu.citrix.com> wrote:
> Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and 
>> And then I'm not really intending to fiddle with
>> the configure scripts (albeit, having done the patch in the presented
>> form, I expected you to want it done that way) - this and alike is
>> what I specifically want to stay out of if at all possible. Since in any
>> event commit 1166ecf781 introduced a regression for multiple
>> people, perhaps if that is not supposed to be reverted Euan should
>> look into addressing that regression?
> 
> Since I'm being difficult, how about if I prepare patch to configure.
> Would you be able to test it ?

Sure. Thanks!

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 15:26     ` Ian Jackson
  2015-02-05 15:46       ` Jan Beulich
@ 2015-02-05 15:47       ` Euan Harris
  2015-02-05 16:36         ` Ian Jackson
  1 sibling, 1 reply; 24+ messages in thread
From: Euan Harris @ 2015-02-05 15:47 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Ian Campbell, xen-devel, Wei Liu, Jan Beulich, Stefano Stabellini

On Thu, Feb 05, 2015 at 03:26:00PM +0000, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> > For one, PY_XCFLAGS='' wouldn't help, as we get -O0 from the
> > incoming CFLAGS.
> 
> Sorry, I meant PY_XCFLAGS='' or -O1 (as appropriate).
> 
> > And then I'm not really intending to fiddle with
> > the configure scripts (albeit, having done the patch in the presented
> > form, I expected you to want it done that way) - this and alike is
> > what I specifically want to stay out of if at all possible. Since in any
> > event commit 1166ecf781 introduced a regression for multiple
> > people, perhaps if that is not supposed to be reverted Euan should
> > look into addressing that regression?
> 
> Since I'm being difficult, how about if I prepare patch to configure.
> Would you be able to test it ?

If it's not too much trouble, I'd be very grateful if you could do this.
My autotools knowledge is rusty, and I don't know when I'll have the 
opportunity to set up a machine which reproduces the problem (clearly
mine doesn't, otherwise I would have run into this problem before!)

Thanks,
Euan

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

* [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 15:47       ` Euan Harris
@ 2015-02-05 16:36         ` Ian Jackson
  2015-02-05 16:52           ` Jan Beulich
  0 siblings, 1 reply; 24+ messages in thread
From: Ian Jackson @ 2015-02-05 16:36 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson, Don Slutz,
	Euan Harris, Jan Beulich

Some systems have python-config include -D_FORTIFY_SOURCE in the
CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
-O0 is enabled in debug builds (since 1166ecf781).  As a result, on
those systems, debug builds fail.

Work around this problem as follows:
 * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
 * If detected, set the new autoconf substitution and make variable
   PY_NOOPT_CFLAGS to -O1.
 * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
   (which will override the -O0 with -O1 if required).

Overriding the -O0 is better than disabling Fortify because the
latter might have an adverse security impact.  A user who wants to
disable optimisation completely even for Python and also disable
Fortify can set the environment variable
    EXTRA_CFLAGS_XEN_TOOLS='-U_FORTIFY_SOURCE -O0'

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Reported-by: Jan Beulich <JBeulich@suse.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Euan Harris <euan.harris@citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: Don Slutz <dslutz@verizon.com>
---
 config/Tools.mk.in         |    1 +
 m4/python_fortify_noopt.m4 |   29 +++++++++++++++++++++++++++++
 tools/Rules.mk             |    2 +-
 tools/configure            |   37 +++++++++++++++++++++++++++++++++++++
 tools/configure.ac         |    2 ++
 5 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 m4/python_fortify_noopt.m4

diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 30267fa..e7da99d 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -13,6 +13,7 @@ BISON               := @BISON@
 FLEX                := @FLEX@
 PYTHON              := @PYTHON@
 PYTHON_PATH         := @PYTHONPATH@
+PY_NOOPT_CFLAGS     := @PY_NOOPT_CFLAGS@
 PERL                := @PERL@
 CURL_CONFIG         := @CURL@
 XML2_CONFIG         := @XML@
diff --git a/m4/python_fortify_noopt.m4 b/m4/python_fortify_noopt.m4
new file mode 100644
index 0000000..c399fa8
--- /dev/null
+++ b/m4/python_fortify_noopt.m4
@@ -0,0 +1,29 @@
+dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
+dnl
+
+dnl This is necessary because on some systems setup.py includes
+dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
+dnl with -O0.  On those systems we arrange to use -O1 for debug
+dnl builds instead.
+
+AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
+    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
+                   [ax_cv_python_fortify],[
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+    ])
+
+    AS_IF([test x$ax_cv_python_fortify = xyes],[
+        PY_NOOPT_CFLAGS=-O1
+    ], [
+        PY_NOOPT_CFLAGS=''
+    ])
+
+    AC_SUBST(PY_NOOPT_CFLAGS)
+])
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 74cf37e..c96efa2 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
 
 ifeq ($(debug),y)
 # Disable optimizations and enable debugging information for macros
-CFLAGS += -O0 -g3
+CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)
 endif
 
 LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
diff --git a/tools/configure b/tools/configure
index ab04e8c..5fbe736 100755
--- a/tools/configure
+++ b/tools/configure
@@ -652,6 +652,7 @@ PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
 CURSES_LIBS
+PY_NOOPT_CFLAGS
 EGREP
 GREP
 CPP
@@ -3453,6 +3454,10 @@ esac
 
 
 
+
+
+
+
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # serial 1 (pkg-config-0.24)
 #
@@ -7043,6 +7048,38 @@ CPPFLAGS=$ac_previous_cppflags
 LDLFAGS=$ac_previous_ldflags
 
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
+$as_echo_n "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
+if ${ax_cv_python_fortify+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
+$as_echo "$ax_cv_python_fortify" >&6; }
+
+    if test x$ax_cv_python_fortify = xyes; then :
+
+        PY_NOOPT_CFLAGS=-O1
+
+else
+
+        PY_NOOPT_CFLAGS=''
+
+fi
+
+
+
+
 fi
 
 if ! $rump; then
diff --git a/tools/configure.ac b/tools/configure.ac
index d9cbf1f..03dadd7 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -58,6 +58,7 @@ m4_include([../m4/checkpolicy.m4])
 m4_include([../m4/set_cflags_ldflags.m4])
 m4_include([../m4/python_version.m4])
 m4_include([../m4/python_devel.m4])
+m4_include([../m4/python_fortify_noopt.m4])
 m4_include([../m4/ocaml.m4])
 m4_include([../m4/uuid.m4])
 m4_include([../m4/pkg.m4])
@@ -295,6 +296,7 @@ AX_CHECK_PYTHON_VERSION([2], [3])
 
 AS_IF([test "$cross_compiling" != yes], [
     AX_CHECK_PYTHON_DEVEL()
+    AX_CHECK_PYTHON_FORTIFY_NOOPT()
 ])
 
 if ! $rump; then
-- 
1.7.10.4

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 16:36         ` Ian Jackson
@ 2015-02-05 16:52           ` Jan Beulich
  2015-02-05 16:56             ` Ian Jackson
  2015-09-01 14:54             ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE George Dunlap
  0 siblings, 2 replies; 24+ messages in thread
From: Jan Beulich @ 2015-02-05 16:52 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

>>> On 05.02.15 at 17:36, <ian.jackson@eu.citrix.com> wrote:
> Some systems have python-config include -D_FORTIFY_SOURCE in the
> CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
> -O0 is enabled in debug builds (since 1166ecf781).  As a result, on
> those systems, debug builds fail.
> 
> Work around this problem as follows:
>  * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
>  * If detected, set the new autoconf substitution and make variable
>    PY_NOOPT_CFLAGS to -O1.
>  * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
>    (which will override the -O0 with -O1 if required).

Not having tried it out yet (hopefully some time tomorrow), two
a remark and a question:

> --- /dev/null
> +++ b/m4/python_fortify_noopt.m4
> @@ -0,0 +1,29 @@
> +dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
> +dnl
> +
> +dnl This is necessary because on some systems setup.py includes
> +dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
> +dnl with -O0.  On those systems we arrange to use -O1 for debug
> +dnl builds instead.
> +
> +AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
> +    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],

I guess the people having added that would not like to see this
called "brokenly".

> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>  
>  ifeq ($(debug),y)
>  # Disable optimizations and enable debugging information for macros
> -CFLAGS += -O0 -g3
> +CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)

Why would you do this for all of the tools build rather than just the
python components?

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 16:52           ` Jan Beulich
@ 2015-02-05 16:56             ` Ian Jackson
  2015-02-05 17:01               ` Jan Beulich
  2015-02-06  8:19               ` Jan Beulich
  2015-09-01 14:54             ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE George Dunlap
  1 sibling, 2 replies; 24+ messages in thread
From: Ian Jackson @ 2015-02-05 16:56 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> On 05.02.15 at 17:36, <ian.jackson@eu.citrix.com> wrote:
> > +AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
> > +    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
> 
> I guess the people having added that would not like to see this
> called "brokenly".

I think it is correct, and that it is fair to make such a criticism in
a configure script.  If this is too rude I guess we could say
`unfortunately'.

> > --- a/tools/Rules.mk
> > +++ b/tools/Rules.mk
> > @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
> >  
> >  ifeq ($(debug),y)
> >  # Disable optimizations and enable debugging information for macros
> > -CFLAGS += -O0 -g3
> > +CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)
> 
> Why would you do this for all of the tools build rather than just the
> python components?

You're right.  This should be something like:

  CFLAGS += -O0 -g3
 +PY_CFLAGS += $(PY_NOOPT_CFLAGS)

and including PY_CFLAGS in tools/python/Makefile etc.

Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 16:56             ` Ian Jackson
@ 2015-02-05 17:01               ` Jan Beulich
  2015-02-06  8:19               ` Jan Beulich
  1 sibling, 0 replies; 24+ messages in thread
From: Jan Beulich @ 2015-02-05 17:01 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

>>> On 05.02.15 at 17:56, <Ian.Jackson@eu.citrix.com> wrote:
>> > --- a/tools/Rules.mk
>> > +++ b/tools/Rules.mk
>> > @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>> >  
>> >  ifeq ($(debug),y)
>> >  # Disable optimizations and enable debugging information for macros
>> > -CFLAGS += -O0 -g3
>> > +CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)
>> 
>> Why would you do this for all of the tools build rather than just the
>> python components?
> 
> You're right.  This should be something like:
> 
>   CFLAGS += -O0 -g3
>  +PY_CFLAGS += $(PY_NOOPT_CFLAGS)

I'll adjust this before testing. Thanks for the quick turnaround, btw!

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 16:56             ` Ian Jackson
  2015-02-05 17:01               ` Jan Beulich
@ 2015-02-06  8:19               ` Jan Beulich
  2015-02-06  8:22                 ` Jan Beulich
  1 sibling, 1 reply; 24+ messages in thread
From: Jan Beulich @ 2015-02-06  8:19 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

>>> On 05.02.15 at 17:56, <Ian.Jackson@eu.citrix.com> wrote:
> Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and 
>> > --- a/tools/Rules.mk
>> > +++ b/tools/Rules.mk
>> > @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>> >  
>> >  ifeq ($(debug),y)
>> >  # Disable optimizations and enable debugging information for macros
>> > -CFLAGS += -O0 -g3
>> > +CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)
>> 
>> Why would you do this for all of the tools build rather than just the
>> python components?
> 
> You're right.  This should be something like:
> 
>   CFLAGS += -O0 -g3
>  +PY_CFLAGS += $(PY_NOOPT_CFLAGS)
> 
> and including PY_CFLAGS in tools/python/Makefile etc.

Attached the patch I used for testing. While it works okay for me,
I guess the configure part will need further taking care of the
-Wp,-D... variant Don is seeing.

Jan

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-06  8:19               ` Jan Beulich
@ 2015-02-06  8:22                 ` Jan Beulich
  2015-02-06 11:04                   ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Ian Jackson
  0 siblings, 1 reply; 24+ messages in thread
From: Jan Beulich @ 2015-02-06  8:22 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

[-- Attachment #1: Type: text/plain, Size: 128 bytes --]

>>> On 06.02.15 at 09:19, <JBeulich@suse.com> wrote:
> Attached the patch I used for testing.

This time for real.

Jan


[-- Attachment #2: tools-Python-fortify.patch --]
[-- Type: text/plain, Size: 6219 bytes --]

tools: work around collision of -O0 and -D_FORTIFY_SOURCE

Some systems have python-config include -D_FORTIFY_SOURCE in the
CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
-O0 is enabled in debug builds (since 1166ecf781).  As a result, on
those systems, debug builds fail.

Work around this problem as follows:
 * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
 * If detected, set the new autoconf substitution and make variable
   PY_NOOPT_CFLAGS to -O1.
 * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
   (which will override the -O0 with -O1 if required).

Overriding the -O0 is better than disabling Fortify because the
latter might have an adverse security impact.  A user who wants to
disable optimisation completely even for Python and also disable
Fortify can set the environment variable
    EXTRA_CFLAGS_XEN_TOOLS='-U_FORTIFY_SOURCE -O0'

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Reported-by: Jan Beulich <jbeulich@suse.com>

Limit no-optimization override to Python interface code.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -13,6 +13,7 @@ BISON               := @BISON@
 FLEX                := @FLEX@
 PYTHON              := @PYTHON@
 PYTHON_PATH         := @PYTHONPATH@
+PY_NOOPT_CFLAGS     := @PY_NOOPT_CFLAGS@
 PERL                := @PERL@
 CURL_CONFIG         := @CURL@
 XML2_CONFIG         := @XML@
--- /dev/null
+++ b/m4/python_fortify_noopt.m4
@@ -0,0 +1,29 @@
+dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
+dnl
+
+dnl This is necessary because on some systems setup.py includes
+dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
+dnl with -O0.  On those systems we arrange to use -O1 for debug
+dnl builds instead.
+
+AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
+    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
+                   [ax_cv_python_fortify],[
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+    ])
+
+    AS_IF([test x$ax_cv_python_fortify = xyes],[
+        PY_NOOPT_CFLAGS=-O1
+    ], [
+        PY_NOOPT_CFLAGS=''
+    ])
+
+    AC_SUBST(PY_NOOPT_CFLAGS)
+])
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -57,6 +57,8 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(X
 ifeq ($(debug),y)
 # Disable optimizations and enable debugging information for macros
 CFLAGS += -O0 -g3
+# But allow an override to -O0 in case Python enforces -D_FORTIFY_SOURCE=<n>.
+PY_CFLAGS += $(PY_NOOPT_CFLAGS)
 endif
 
 LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
--- a/tools/configure
+++ b/tools/configure
@@ -652,6 +652,7 @@ PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
 CURSES_LIBS
+PY_NOOPT_CFLAGS
 EGREP
 GREP
 CPP
@@ -7043,6 +7044,38 @@ CPPFLAGS=$ac_previous_cppflags
 LDLFAGS=$ac_previous_ldflags
 
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
+$as_echo_n "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
+if ${ax_cv_python_fortify+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
+$as_echo "$ax_cv_python_fortify" >&6; }
+
+    if test x$ax_cv_python_fortify = xyes; then :
+
+        PY_NOOPT_CFLAGS=-O1
+
+else
+
+        PY_NOOPT_CFLAGS=''
+
+fi
+
+
+
+
 fi
 
 if ! $rump; then
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -58,6 +58,7 @@ m4_include([../m4/checkpolicy.m4])
 m4_include([../m4/set_cflags_ldflags.m4])
 m4_include([../m4/python_version.m4])
 m4_include([../m4/python_devel.m4])
+m4_include([../m4/python_fortify_noopt.m4])
 m4_include([../m4/ocaml.m4])
 m4_include([../m4/uuid.m4])
 m4_include([../m4/pkg.m4])
@@ -295,6 +296,7 @@ AX_CHECK_PYTHON_VERSION([2], [3])
 
 AS_IF([test "$cross_compiling" != yes], [
     AX_CHECK_PYTHON_DEVEL()
+    AX_CHECK_PYTHON_FORTIFY_NOOPT()
 ])
 
 if ! $rump; then
--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
@@ -2,15 +2,17 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: all
 all: build
 .PHONY: build
 build:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install: all
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
 		--install-scripts=$(LIBEXEC_BIN) --force
 	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
 .PHONY: all
 all: build
 
+PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: build
 build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		$(XEN_ROOT)/tools/libxl/idl.py
@@ -11,11 +13,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libx
 		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		xen/lowlevel/xl/_pyxl_types.h \
 		xen/lowlevel/xl/_pyxl_types.c
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
 
 .PHONY: test

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages]
  2015-02-06  8:22                 ` Jan Beulich
@ 2015-02-06 11:04                   ` Ian Jackson
  2015-02-06 11:04                     ` [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Ian Jackson
  2015-02-06 15:24                     ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Don Slutz
  0 siblings, 2 replies; 24+ messages in thread
From: Ian Jackson @ 2015-02-06 11:04 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson, Don Slutz,
	Euan Harris, xen-devel

Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> Attached the patch I used for testing. While it works okay for me,
> I guess the configure part will need further taking care of the
> -Wp,-D... variant Don is seeing.

Thanks.  I'm going to pretend my first one was v2, you called your
version v3 and will send out a v4 in just a moment.

Don, can you please test it ?

Thanks,
Ian.

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

* [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-06 11:04                   ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Ian Jackson
@ 2015-02-06 11:04                     ` Ian Jackson
  2015-02-06 16:13                       ` Don Slutz
  2015-02-06 15:24                     ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Don Slutz
  1 sibling, 1 reply; 24+ messages in thread
From: Ian Jackson @ 2015-02-06 11:04 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson, Don Slutz,
	Euan Harris, Jan Beulich

Some systems have python-config include -D_FORTIFY_SOURCE in the
CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
-O0 is enabled in debug builds (since 1166ecf781).  As a result, on
those systems, debug builds fail.

Work around this problem as follows:
 * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
 * If detected, set the new autoconf substitution and make variable
   PY_NOOPT_CFLAGS to -O1.
 * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
   (which will override the -O0 with -O1 if required).

Overriding the -O0 is better than disabling Fortify because the
latter might have an adverse security impact.  A user who wants to
disable optimisation completely even for Python and also disable
Fortify can set the environment variable
    EXTRA_CFLAGS_XEN_TOOLS='-U_FORTIFY_SOURCE -O0'

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Reported-by: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Euan Harris <euan.harris@citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: Don Slutz <dslutz@verizon.com>

---
v4: [Ian Jackson] Spot -Wp,-D_FORTIFY_SOURCE= too
v3: [Jan Beulich] Limit no-optimization override to Python interface code.
v2: [Ian Jackson] Use autoconf
v1: [Jan Beulich] Initial proposal
---
 config/Tools.mk.in         |    1 +
 m4/python_fortify_noopt.m4 |   31 +++++++++++++++++++++++++++++++
 tools/Rules.mk             |    2 ++
 tools/configure            |   39 +++++++++++++++++++++++++++++++++++++++
 tools/configure.ac         |    2 ++
 tools/pygrub/Makefile      |    6 ++++--
 tools/python/Makefile      |    6 ++++--
 7 files changed, 83 insertions(+), 4 deletions(-)
 create mode 100644 m4/python_fortify_noopt.m4

diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 30267fa..e7da99d 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -13,6 +13,7 @@ BISON               := @BISON@
 FLEX                := @FLEX@
 PYTHON              := @PYTHON@
 PYTHON_PATH         := @PYTHONPATH@
+PY_NOOPT_CFLAGS     := @PY_NOOPT_CFLAGS@
 PERL                := @PERL@
 CURL_CONFIG         := @CURL@
 XML2_CONFIG         := @XML@
diff --git a/m4/python_fortify_noopt.m4 b/m4/python_fortify_noopt.m4
new file mode 100644
index 0000000..f9cb52b
--- /dev/null
+++ b/m4/python_fortify_noopt.m4
@@ -0,0 +1,31 @@
+dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
+dnl
+
+dnl This is necessary because on some systems setup.py includes
+dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
+dnl with -O0.  On those systems we arrange to use -O1 for debug
+dnl builds instead.
+
+AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
+    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
+                   [ax_cv_python_fortify],[
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            -Wp,-D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -Wp,-D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+    ])
+
+    AS_IF([test x$ax_cv_python_fortify = xyes],[
+        PY_NOOPT_CFLAGS=-O1
+    ], [
+        PY_NOOPT_CFLAGS=''
+    ])
+
+    AC_SUBST(PY_NOOPT_CFLAGS)
+])
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 74cf37e..3c29d07 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -57,6 +57,8 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
 ifeq ($(debug),y)
 # Disable optimizations and enable debugging information for macros
 CFLAGS += -O0 -g3
+# But allow an override to -O0 in case Python enforces -D_FORTIFY_SOURCE=<n>.
+PY_CFLAGS += $(PY_NOOPT_CFLAGS)
 endif
 
 LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
diff --git a/tools/configure b/tools/configure
index ab04e8c..e7dac75 100755
--- a/tools/configure
+++ b/tools/configure
@@ -652,6 +652,7 @@ PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
 CURSES_LIBS
+PY_NOOPT_CFLAGS
 EGREP
 GREP
 CPP
@@ -3453,6 +3454,10 @@ esac
 
 
 
+
+
+
+
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # serial 1 (pkg-config-0.24)
 #
@@ -7043,6 +7048,40 @@ CPPFLAGS=$ac_previous_cppflags
 LDLFAGS=$ac_previous_ldflags
 
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
+$as_echo_n "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
+if ${ax_cv_python_fortify+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        ax_cv_python_fortify=no
+        for arg in $($PYTHON-config --cflags); do
+            case "$arg" in
+            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            -Wp,-D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
+            -Wp,-D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
+            *) ;;
+            esac
+        done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
+$as_echo "$ax_cv_python_fortify" >&6; }
+
+    if test x$ax_cv_python_fortify = xyes; then :
+
+        PY_NOOPT_CFLAGS=-O1
+
+else
+
+        PY_NOOPT_CFLAGS=''
+
+fi
+
+
+
+
 fi
 
 if ! $rump; then
diff --git a/tools/configure.ac b/tools/configure.ac
index d9cbf1f..03dadd7 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -58,6 +58,7 @@ m4_include([../m4/checkpolicy.m4])
 m4_include([../m4/set_cflags_ldflags.m4])
 m4_include([../m4/python_version.m4])
 m4_include([../m4/python_devel.m4])
+m4_include([../m4/python_fortify_noopt.m4])
 m4_include([../m4/ocaml.m4])
 m4_include([../m4/uuid.m4])
 m4_include([../m4/pkg.m4])
@@ -295,6 +296,7 @@ AX_CHECK_PYTHON_VERSION([2], [3])
 
 AS_IF([test "$cross_compiling" != yes], [
     AX_CHECK_PYTHON_DEVEL()
+    AX_CHECK_PYTHON_FORTIFY_NOOPT()
 ])
 
 if ! $rump; then
diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
index 6fd194c..00e654a 100644
--- a/tools/pygrub/Makefile
+++ b/tools/pygrub/Makefile
@@ -2,15 +2,17 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
+PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: all
 all: build
 .PHONY: build
 build:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install: all
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
 		--install-scripts=$(LIBEXEC_BIN) --force
 	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
diff --git a/tools/python/Makefile b/tools/python/Makefile
index af95119..e933be8 100644
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
 .PHONY: all
 all: build
 
+PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)
+
 .PHONY: build
 build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		$(XEN_ROOT)/tools/libxl/idl.py
@@ -11,11 +13,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
 		xen/lowlevel/xl/_pyxl_types.h \
 		xen/lowlevel/xl/_pyxl_types.c
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
 
 .PHONY: install
 install:
-	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
+	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
 		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
 
 .PHONY: test
-- 
1.7.10.4

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages]
  2015-02-06 11:04                   ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Ian Jackson
  2015-02-06 11:04                     ` [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Ian Jackson
@ 2015-02-06 15:24                     ` Don Slutz
  1 sibling, 0 replies; 24+ messages in thread
From: Don Slutz @ 2015-02-06 15:24 UTC (permalink / raw)
  To: Ian Jackson, Jan Beulich
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	xen-devel

On 02/06/15 06:04, Ian Jackson wrote:
> Jan Beulich writes ("Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
>> Attached the patch I used for testing. While it works okay for me,
>> I guess the configure part will need further taking care of the
>> -Wp,-D... variant Don is seeing.
> 
> Thanks.  I'm going to pretend my first one was v2, you called your
> version v3 and will send out a v4 in just a moment.
> 
> Don, can you please test it ?
> 

Will test it soon.
   -Don Slutz

> Thanks,
> Ian.
> 

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

* Re: [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-06 11:04                     ` [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Ian Jackson
@ 2015-02-06 16:13                       ` Don Slutz
  2015-02-06 17:28                         ` Ian Jackson
  0 siblings, 1 reply; 24+ messages in thread
From: Don Slutz @ 2015-02-06 16:13 UTC (permalink / raw)
  To: Ian Jackson, xen-devel
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Don Slutz, Euan Harris,
	Jan Beulich

On 02/06/15 06:04, Ian Jackson wrote:
> Some systems have python-config include -D_FORTIFY_SOURCE in the
> CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
> -O0 is enabled in debug builds (since 1166ecf781).  As a result, on
> those systems, debug builds fail.
> 
> Work around this problem as follows:
>  * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
>  * If detected, set the new autoconf substitution and make variable
>    PY_NOOPT_CFLAGS to -O1.
>  * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
>    (which will override the -O0 with -O1 if required).
> 
> Overriding the -O0 is better than disabling Fortify because the
> latter might have an adverse security impact.  A user who wants to
> disable optimisation completely even for Python and also disable
> Fortify can set the environment variable
>     EXTRA_CFLAGS_XEN_TOOLS='-U_FORTIFY_SOURCE -O0'
> 
> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
> Reported-by: Jan Beulich <JBeulich@suse.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Ian Campbell <Ian.Campbell@citrix.com>
> CC: Euan Harris <euan.harris@citrix.com>
> CC: Wei Liu <wei.liu2@citrix.com>
> CC: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> CC: Don Slutz <dslutz@verizon.com>
> 
> ---

Works for me so:

Tested-by: Don Slutz <dslutz@verizon.com>

   -Don Slutz


> v4: [Ian Jackson] Spot -Wp,-D_FORTIFY_SOURCE= too
> v3: [Jan Beulich] Limit no-optimization override to Python interface code.
> v2: [Ian Jackson] Use autoconf
> v1: [Jan Beulich] Initial proposal
> ---
>  config/Tools.mk.in         |    1 +
>  m4/python_fortify_noopt.m4 |   31 +++++++++++++++++++++++++++++++
>  tools/Rules.mk             |    2 ++
>  tools/configure            |   39 +++++++++++++++++++++++++++++++++++++++
>  tools/configure.ac         |    2 ++
>  tools/pygrub/Makefile      |    6 ++++--
>  tools/python/Makefile      |    6 ++++--
>  7 files changed, 83 insertions(+), 4 deletions(-)
>  create mode 100644 m4/python_fortify_noopt.m4
> 
> diff --git a/config/Tools.mk.in b/config/Tools.mk.in
> index 30267fa..e7da99d 100644
> --- a/config/Tools.mk.in
> +++ b/config/Tools.mk.in
> @@ -13,6 +13,7 @@ BISON               := @BISON@
>  FLEX                := @FLEX@
>  PYTHON              := @PYTHON@
>  PYTHON_PATH         := @PYTHONPATH@
> +PY_NOOPT_CFLAGS     := @PY_NOOPT_CFLAGS@
>  PERL                := @PERL@
>  CURL_CONFIG         := @CURL@
>  XML2_CONFIG         := @XML@
> diff --git a/m4/python_fortify_noopt.m4 b/m4/python_fortify_noopt.m4
> new file mode 100644
> index 0000000..f9cb52b
> --- /dev/null
> +++ b/m4/python_fortify_noopt.m4
> @@ -0,0 +1,31 @@
> +dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
> +dnl
> +
> +dnl This is necessary because on some systems setup.py includes
> +dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
> +dnl with -O0.  On those systems we arrange to use -O1 for debug
> +dnl builds instead.
> +
> +AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
> +    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
> +                   [ax_cv_python_fortify],[
> +        ax_cv_python_fortify=no
> +        for arg in $($PYTHON-config --cflags); do
> +            case "$arg" in
> +            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
> +            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
> +            -Wp,-D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
> +            -Wp,-D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
> +            *) ;;
> +            esac
> +        done
> +    ])
> +
> +    AS_IF([test x$ax_cv_python_fortify = xyes],[
> +        PY_NOOPT_CFLAGS=-O1
> +    ], [
> +        PY_NOOPT_CFLAGS=''
> +    ])
> +
> +    AC_SUBST(PY_NOOPT_CFLAGS)
> +])
> diff --git a/tools/Rules.mk b/tools/Rules.mk
> index 74cf37e..3c29d07 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -57,6 +57,8 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>  ifeq ($(debug),y)
>  # Disable optimizations and enable debugging information for macros
>  CFLAGS += -O0 -g3
> +# But allow an override to -O0 in case Python enforces -D_FORTIFY_SOURCE=<n>.
> +PY_CFLAGS += $(PY_NOOPT_CFLAGS)
>  endif
>  
>  LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2)
> diff --git a/tools/configure b/tools/configure
> index ab04e8c..e7dac75 100755
> --- a/tools/configure
> +++ b/tools/configure
> @@ -652,6 +652,7 @@ PKG_CONFIG_LIBDIR
>  PKG_CONFIG_PATH
>  PKG_CONFIG
>  CURSES_LIBS
> +PY_NOOPT_CFLAGS
>  EGREP
>  GREP
>  CPP
> @@ -3453,6 +3454,10 @@ esac
>  
>  
>  
> +
> +
> +
> +
>  # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
>  # serial 1 (pkg-config-0.24)
>  #
> @@ -7043,6 +7048,40 @@ CPPFLAGS=$ac_previous_cppflags
>  LDLFAGS=$ac_previous_ldflags
>  
>  
> +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE" >&5
> +$as_echo_n "checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE... " >&6; }
> +if ${ax_cv_python_fortify+:} false; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +
> +        ax_cv_python_fortify=no
> +        for arg in $($PYTHON-config --cflags); do
> +            case "$arg" in
> +            -D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
> +            -D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
> +            -Wp,-D_FORTIFY_SOURCE=0) ax_cv_python_fortify=no ;;
> +            -Wp,-D_FORTIFY_SOURCE=*) ax_cv_python_fortify=yes ;;
> +            *) ;;
> +            esac
> +        done
> +
> +fi
> +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_python_fortify" >&5
> +$as_echo "$ax_cv_python_fortify" >&6; }
> +
> +    if test x$ax_cv_python_fortify = xyes; then :
> +
> +        PY_NOOPT_CFLAGS=-O1
> +
> +else
> +
> +        PY_NOOPT_CFLAGS=''
> +
> +fi
> +
> +
> +
> +
>  fi
>  
>  if ! $rump; then
> diff --git a/tools/configure.ac b/tools/configure.ac
> index d9cbf1f..03dadd7 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -58,6 +58,7 @@ m4_include([../m4/checkpolicy.m4])
>  m4_include([../m4/set_cflags_ldflags.m4])
>  m4_include([../m4/python_version.m4])
>  m4_include([../m4/python_devel.m4])
> +m4_include([../m4/python_fortify_noopt.m4])
>  m4_include([../m4/ocaml.m4])
>  m4_include([../m4/uuid.m4])
>  m4_include([../m4/pkg.m4])
> @@ -295,6 +296,7 @@ AX_CHECK_PYTHON_VERSION([2], [3])
>  
>  AS_IF([test "$cross_compiling" != yes], [
>      AX_CHECK_PYTHON_DEVEL()
> +    AX_CHECK_PYTHON_FORTIFY_NOOPT()
>  ])
>  
>  if ! $rump; then
> diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
> index 6fd194c..00e654a 100644
> --- a/tools/pygrub/Makefile
> +++ b/tools/pygrub/Makefile
> @@ -2,15 +2,17 @@
>  XEN_ROOT = $(CURDIR)/../..
>  include $(XEN_ROOT)/tools/Rules.mk
>  
> +PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(APPEND_LDFLAGS)
> +
>  .PHONY: all
>  all: build
>  .PHONY: build
>  build:
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
>  
>  .PHONY: install
>  install: all
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
>  		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \
>  		--install-scripts=$(LIBEXEC_BIN) --force
>  	set -e; if [ $(BINDIR) != $(LIBEXEC_BIN) -a \
> diff --git a/tools/python/Makefile b/tools/python/Makefile
> index af95119..e933be8 100644
> --- a/tools/python/Makefile
> +++ b/tools/python/Makefile
> @@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
>  .PHONY: all
>  all: build
>  
> +PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)
> +
>  .PHONY: build
>  build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
>  		$(XEN_ROOT)/tools/libxl/idl.py
> @@ -11,11 +13,11 @@ build: genwrap.py $(XEN_ROOT)/tools/libxl/libxl_types.idl \
>  		$(XEN_ROOT)/tools/libxl/libxl_types.idl \
>  		xen/lowlevel/xl/_pyxl_types.h \
>  		xen/lowlevel/xl/_pyxl_types.c
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py build
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
>  
>  .PHONY: install
>  install:
> -	CC="$(CC)" CFLAGS="$(CFLAGS) $(LDFLAGS) $(APPEND_LDFLAGS)" $(PYTHON) setup.py install \
> +	CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py install \
>  		$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
>  
>  .PHONY: test
> 

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

* Re: [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-06 16:13                       ` Don Slutz
@ 2015-02-06 17:28                         ` Ian Jackson
  0 siblings, 0 replies; 24+ messages in thread
From: Ian Jackson @ 2015-02-06 17:28 UTC (permalink / raw)
  To: Don Slutz
  Cc: xen-devel, Wei Liu, Ian Campbell, Stefano Stabellini, Euan Harris,
	Jan Beulich

Don Slutz writes ("Re: [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE"):
> On 02/06/15 06:04, Ian Jackson wrote:
> > Some systems have python-config include -D_FORTIFY_SOURCE in the
> > CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
> > -O0 is enabled in debug builds (since 1166ecf781).  As a result, on
> > those systems, debug builds fail.
> 
> Works for me so:
> 
> Tested-by: Don Slutz <dslutz@verizon.com>

Thanks, I have pushed this to staging.

AFAICT 1166ecf781 (the thing which broke this) isn't in staging-4.5 so
there is no need for a backport.

Thanks,
Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-02-05 16:52           ` Jan Beulich
  2015-02-05 16:56             ` Ian Jackson
@ 2015-09-01 14:54             ` George Dunlap
  2015-09-01 15:10               ` Ian Campbell
  1 sibling, 1 reply; 24+ messages in thread
From: George Dunlap @ 2015-09-01 14:54 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson, Don Slutz,
	Euan Harris, xen-devel

[-- Attachment #1: Type: text/plain, Size: 6206 bytes --]

On Thu, Feb 5, 2015 at 4:52 PM, Jan Beulich <JBeulich@suse.com> wrote:
>>>> On 05.02.15 at 17:36, <ian.jackson@eu.citrix.com> wrote:
>> Some systems have python-config include -D_FORTIFY_SOURCE in the
>> CFLAGS.  But -D_FORTIFY_SOURCE does not (currently) work with -O0, and
>> -O0 is enabled in debug builds (since 1166ecf781).  As a result, on
>> those systems, debug builds fail.
>>
>> Work around this problem as follows:
>>  * In configure, detect -D_FORTIFY_SOURCE in $(python-config --cflags)
>>  * If detected, set the new autoconf substitution and make variable
>>    PY_NOOPT_CFLAGS to -O1.
>>  * In tools/Rules.mk, where we add -O0, also add PY_NOOPT_CFLAGS
>>    (which will override the -O0 with -O1 if required).
>
> Not having tried it out yet (hopefully some time tomorrow), two
> a remark and a question:
>
>> --- /dev/null
>> +++ b/m4/python_fortify_noopt.m4
>> @@ -0,0 +1,29 @@
>> +dnl Defines PY_NOOPT_CFLAGS to either '' or -O1
>> +dnl
>> +
>> +dnl This is necessary because on some systems setup.py includes
>> +dnl -D_FORTIFY_SOURCE but have a -D_FORTIFY_SOURCE which breaks
>> +dnl with -O0.  On those systems we arrange to use -O1 for debug
>> +dnl builds instead.
>> +
>> +AC_DEFUN([AX_CHECK_PYTHON_FORTIFY_NOOPT], [
>> +    AC_CACHE_CHECK([whether Python setup.py brokenly enables -D_FORTIFY_SOURCE],
>
> I guess the people having added that would not like to see this
> called "brokenly".
>
>> --- a/tools/Rules.mk
>> +++ b/tools/Rules.mk
>> @@ -56,7 +56,7 @@ SHLIB_libxenvchan  = -Wl,-rpath-link=$(XEN_LIBVCHAN)
>>
>>  ifeq ($(debug),y)
>>  # Disable optimizations and enable debugging information for macros
>> -CFLAGS += -O0 -g3
>> +CFLAGS += -O0 -g3 $(PY_NOOPT_CFLAGS)
>
> Why would you do this for all of the tools build rather than just the
> python components?

Because CentOS 7 somehow seems to have picked up _FORTIFY_SOURCE for libxc:

gcc  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches   -m64 -mtune=generic -O1
-fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
-Wstrict-prototypes -Wdeclaration-after-statement
-Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O1
-fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
-Wstrict-prototypes -Wdeclaration-after-statement
-Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O0 -g3
-D__XEN_TOOLS__ -MMD -MF .subdirs-install.d -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls  -O1
-fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
-Wstrict-prototypes -Wdeclaration-after-statement
-Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O0 -g3
-D__XEN_TOOLS__ -MMD -MF .subdir-install-libxc.d -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls  -O1
-fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall
-Wstrict-prototypes -Wdeclaration-after-statement
-Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O0 -g3
-D__XEN_TOOLS__ -MMD -MF .build.d -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls -D_GNU_SOURCE
-I../../xen/common/libelf -Werror -Wmissing-prototypes -I. -I./include
-I/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools/libxc/../../tools/include
-pthread -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing
-std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement
-Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O0 -g3
-D__XEN_TOOLS__ -MMD -MF .xc_cpupool.o.d -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls -D_GNU_SOURCE
-I../../xen/common/libelf -Werror -Wmissing-prototypes -I. -I./include
-I/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools/libxc/../../tools/include
-pthread -include
/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools/libxc/../../tools/config.h
 -c -o xc_cpupool.o xc_cpupool.c
In file included from /usr/include/unistd.h:25:0,
                 from xc_private.h:19,
                 from xc_altp2m.c:23:
/usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE
requires compiling with optimization (-O) [-Werror=cpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
In file included from /usr/include/unistd.h:25:0,
                 from xg_private.h:19,
                 from xc_core_x86.c:20:
/usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE
requires compiling with optimization (-O) [-Werror=cpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
In file included from /usr/include/unistd.h:25:0,
                 from xc_private.h:19,
                 from xc_cpupool.c:23:
/usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE
requires compiling with optimization (-O) [-Werror=cpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
In file included from /usr/include/unistd.h:25:0,
                 from xg_private.h:19,
                 from xc_core.c:63:
/usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE
requires compiling with optimization (-O) [-Werror=cpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
make[4]: *** [xc_core_x86.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [xc_cpupool.o] Error 1
cc1: all warnings being treated as errors
make[4]: *** [xc_core.o] Error 1
cc1: all warnings being treated as errors
make[4]: *** [xc_altp2m.o] Error 1
make[4]: Leaving directory
`/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools/libxc'
make[3]: *** [build] Error 2
make[3]: Leaving directory
`/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools/libxc'
make[2]: *** [subdir-install-libxc] Error 2
make[2]: Leaving directory `/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools'
make[1]: *** [subdirs-install] Error 2
make[1]: Leaving directory `/build/centos/git/xen/BUILD/xen-4.6.0rc2x/tools'
make: *** [install-tools] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.mIYLA9 (%build)

I'm not sure exactly how to track down where it came from; it just
seems to appear out of nowhere in the config.log and config.status
(attached).

 -George

[-- Attachment #2: config.log --]
[-- Type: text/x-log, Size: 66598 bytes --]

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Xen Hypervisor Tools configure 4.6, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure --disable-option-checking --prefix=/usr/local --enable-xend --libdir=/usr/lib64 --with-system-seabios=/usr/share/seabios/bios.bin --cache-file=/dev/null --srcdir=.

## --------- ##
## Platform. ##
## --------- ##

hostname = 7e3344c5f3a0
uname -m = x86_64
uname -r = 3.13.0-62-generic
uname -s = Linux
uname -v = #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015

/usr/bin/uname -p = x86_64
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/lib64/ccache
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /sbin/
PATH: /usr/sbin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /home/gdunlap/bin
PATH: /home/gdunlap/hg/performance/tests.hg/lib
PATH: /opt/xensource/bin
PATH: /usr/groups/xencore/systems/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2448: WARNING: Setting CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is not recommended, use PREPEND_INCLUDES, PREPEND_LIB, APPEND_INCLUDES and APPEND_LIB instead when possible.
configure:2459: checking build system type
configure:2473: result: x86_64-unknown-linux-gnu
configure:2493: checking host system type
configure:2506: result: x86_64-unknown-linux-gnu
configure:2581: checking for gcc
configure:2597: found /usr/lib64/ccache/gcc
configure:2608: result: gcc
configure:2837: checking for C compiler version
configure:2846: gcc --version >&5
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2857: $? = 0
configure:2846: gcc -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
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-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) 
configure:2857: $? = 0
configure:2846: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:2857: $? = 4
configure:2846: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:2857: $? = 4
configure:2877: checking whether the C compiler works
configure:2899: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic   conftest.c  >&5
configure:2903: $? = 0
configure:2951: result: yes
configure:2954: checking for C compiler default output file name
configure:2956: result: a.out
configure:2962: checking for suffix of executables
configure:2969: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic   conftest.c  >&5
configure:2973: $? = 0
configure:2995: result: 
configure:3017: checking whether we are cross compiling
configure:3025: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic   conftest.c  >&5
configure:3029: $? = 0
configure:3036: ./conftest
configure:3040: $? = 0
configure:3055: result: no
configure:3060: checking for suffix of object files
configure:3082: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  conftest.c >&5
configure:3086: $? = 0
configure:3107: result: o
configure:3111: checking whether we are using the GNU C compiler
configure:3130: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  conftest.c >&5
configure:3130: $? = 0
configure:3139: result: yes
configure:3148: checking whether gcc accepts -g
configure:3168: gcc -c -g  conftest.c >&5
configure:3168: $? = 0
configure:3209: result: yes
configure:3226: checking for gcc option to accept ISO C89
configure:3289: gcc  -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  conftest.c >&5
configure:3289: $? = 0
configure:3302: result: none needed
configure:3330: checking for special C compiler options needed for large files
configure:3375: result: no
configure:3381: checking for _FILE_OFFSET_BITS value needed for large files
configure:3406: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  conftest.c >&5
configure:3406: $? = 0
configure:3438: result: no
configure:4430: checking for gcc
configure:4457: result: gcc
configure:4686: checking for C compiler version
configure:4695: gcc --version >&5
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4706: $? = 0
configure:4695: gcc -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
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-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) 
configure:4706: $? = 0
configure:4695: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4706: $? = 4
configure:4695: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:4706: $? = 4
configure:4710: checking whether we are using the GNU C compiler
configure:4738: result: yes
configure:4747: checking whether gcc accepts -g
configure:4808: result: yes
configure:4825: checking for gcc option to accept ISO C89
configure:4901: result: none needed
configure:4921: checking whether make sets $(MAKE)
configure:4943: result: yes
configure:4966: checking for a BSD-compatible install
configure:5034: result: /usr/bin/install -c
configure:5047: checking for bison
configure:5080: result: no
configure:5087: checking for flex
configure:5120: result: no
configure:5127: checking for perl
configure:5145: found /usr/bin/perl
configure:5158: result: /usr/bin/perl
configure:5172: checking for awk
configure:5190: found /usr/bin/awk
configure:5203: result: /usr/bin/awk
configure:5260: checking for ocamlc
configure:5276: found /usr/bin/ocamlc
configure:5287: result: ocamlc
configure:5312: result: OCaml version is 4.01.1+dev2-2013-12-18+CLOSED
configure:5321: result: OCaml library path is /usr/lib64/ocaml
configure:5371: checking for ocamlopt
configure:5387: found /usr/bin/ocamlopt
configure:5398: result: ocamlopt
configure:5481: checking for ocamlc.opt
configure:5497: found /usr/bin/ocamlc.opt
configure:5508: result: ocamlc.opt
configure:5585: checking for ocamlopt.opt
configure:5601: found /usr/bin/ocamlopt.opt
configure:5612: result: ocamlopt.opt
configure:5694: checking for ocaml
configure:5710: found /usr/bin/ocaml
configure:5721: result: ocaml
configure:5788: checking for ocamldep
configure:5804: found /usr/bin/ocamldep
configure:5815: result: ocamldep
configure:5882: checking for ocamlmktop
configure:5898: found /usr/bin/ocamlmktop
configure:5909: result: ocamlmktop
configure:5976: checking for ocamlmklib
configure:5992: found /usr/bin/ocamlmklib
configure:6003: result: ocamlmklib
configure:6070: checking for ocamldoc
configure:6100: result: no
configure:6164: checking for ocamlbuild
configure:6180: found /usr/bin/ocamlbuild
configure:6191: result: ocamlbuild
configure:6259: checking for ocamlfind
configure:6275: found /usr/bin/ocamlfind
configure:6286: result: ocamlfind
configure:6315: checking for gawk
configure:6342: result: /usr/bin/awk
configure:6526: checking for checkpolicy
configure:6556: result: no
configure:6596: checking for bash
configure:6627: result: /bin/sh
configure:6651: checking for python
configure:6669: found /usr/bin/python
configure:6682: result: /usr/bin/python
configure:6694: checking for python version >= 2.3 
configure:6704: result: yes
configure:6713: checking how to run the C preprocessor
configure:6744: gcc -E    conftest.c
configure:6744: $? = 0
configure:6758: gcc -E    conftest.c
conftest.c:13:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:6758: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:6783: result: gcc -E
configure:6803: gcc -E    conftest.c
configure:6803: $? = 0
configure:6817: gcc -E    conftest.c
conftest.c:13:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:6817: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:6846: checking for grep that handles long lines and -e
configure:6904: result: /usr/bin/grep
configure:6909: checking for egrep
configure:6971: result: /usr/bin/grep -E
configure:6976: checking for ANSI C header files
configure:6996: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:6996: $? = 0
configure:7069: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       conftest.c  >&5
configure:7069: $? = 0
configure:7069: ./conftest
configure:7069: $? = 0
configure:7080: result: yes
configure:7093: checking for sys/types.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for sys/stat.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for stdlib.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for string.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for memory.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for strings.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for inttypes.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for stdint.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7093: checking for unistd.h
configure:7093: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7093: $? = 0
configure:7093: result: yes
configure:7114: checking for python-config
configure:7132: found /usr/bin/python-config
configure:7145: result: /usr/bin/python-config
configure:7178: checking Python.h usability
configure:7178: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv conftest.c >&5
In file included from /usr/include/python2.7/pyconfig.h:6:0,
                 from /usr/include/python2.7/Python.h:8,
                 from conftest.c:56:
/usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
 #define _POSIX_C_SOURCE 200112L
 ^
In file included from /usr/include/stdio.h:27:0,
                 from conftest.c:23:
/usr/include/features.h:168:0: note: this is the location of the previous definition
 # define _POSIX_C_SOURCE 200809L
 ^
In file included from /usr/include/python2.7/pyconfig.h:6:0,
                 from /usr/include/python2.7/Python.h:8,
                 from conftest.c:56:
/usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
 #define _XOPEN_SOURCE 600
 ^
In file included from /usr/include/stdio.h:27:0,
                 from conftest.c:23:
/usr/include/features.h:170:0: note: this is the location of the previous definition
 # define _XOPEN_SOURCE 700
 ^
configure:7178: $? = 0
configure:7178: result: yes
configure:7178: checking Python.h presence
configure:7178: gcc -E -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv conftest.c
configure:7178: $? = 0
configure:7178: result: yes
configure:7178: checking for Python.h
configure:7178: result: yes
configure:7187: checking for PyArg_ParseTuple in -lpython2.7
configure:7212: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv    -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lpython2.7   >&5
configure:7212: $? = 0
configure:7222: result: yes
configure:7239: checking whether Python setup.py brokenly enables -D_FORTIFY_SOURCE
configure:7257: result: yes
configure:7279: checking for xgettext
configure:7297: found /usr/bin/xgettext
configure:7310: result: /usr/bin/xgettext
configure:7326: checking for as86
configure:7344: found /usr/bin/as86
configure:7357: result: /usr/bin/as86
configure:7371: checking for ld86
configure:7389: found /usr/bin/ld86
configure:7402: result: /usr/bin/ld86
configure:7416: checking for bcc
configure:7434: found /usr/bin/bcc
configure:7447: result: /usr/bin/bcc
configure:7461: checking for iasl
configure:7479: found /usr/bin/iasl
configure:7492: result: /usr/bin/iasl
configure:7507: checking uuid/uuid.h usability
configure:7507: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7507: $? = 0
configure:7507: result: yes
configure:7507: checking uuid/uuid.h presence
configure:7507: gcc -E    conftest.c
configure:7507: $? = 0
configure:7507: result: yes
configure:7507: checking for uuid/uuid.h
configure:7507: result: yes
configure:7510: checking for uuid_clear in -luuid
configure:7535: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -luuid  -lpython2.7  >&5
configure:7535: $? = 0
configure:7544: result: yes
configure:7554: checking uuid.h usability
configure:7554: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
conftest.c:57:18: fatal error: uuid.h: No such file or directory
 #include <uuid.h>
                  ^
compilation terminated.
configure:7554: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <uuid.h>
configure:7554: result: no
configure:7554: checking uuid.h presence
configure:7554: gcc -E    conftest.c
conftest.c:24:18: fatal error: uuid.h: No such file or directory
 #include <uuid.h>
                  ^
compilation terminated.
configure:7554: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| /* end confdefs.h.  */
| #include <uuid.h>
configure:7554: result: no
configure:7554: checking for uuid.h
configure:7554: result: no
configure:7567: checking curses.h usability
configure:7567: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7567: $? = 0
configure:7567: result: yes
configure:7567: checking curses.h presence
configure:7567: gcc -E    conftest.c
configure:7567: $? = 0
configure:7567: result: yes
configure:7567: checking for curses.h
configure:7567: result: yes
configure:7570: checking for clear in -lcurses
configure:7595: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lcurses  -lpython2.7  >&5
configure:7595: $? = 0
configure:7604: result: yes
configure:7618: checking ncurses.h usability
configure:7618: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:7618: $? = 0
configure:7618: result: yes
configure:7618: checking ncurses.h presence
configure:7618: gcc -E    conftest.c
configure:7618: $? = 0
configure:7618: result: yes
configure:7618: checking for ncurses.h
configure:7618: result: yes
configure:7621: checking for clear in -lncurses
configure:7646: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lncurses  -lpython2.7  >&5
configure:7646: $? = 0
configure:7655: result: yes
configure:7694: checking for define_key in -ltinfo
configure:7719: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -ltinfo  -lpython2.7  >&5
configure:7719: $? = 0
configure:7728: result: yes
configure:7792: checking for pkg-config
configure:7810: found /usr/bin/pkg-config
configure:7822: result: /usr/bin/pkg-config
configure:7847: checking pkg-config is at least version 0.9.0
configure:7850: result: yes
configure:7862: checking for glib
configure:7869: $PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12"
configure:7872: $? = 0
configure:7886: $PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12"
configure:7889: $? = 0
configure:7947: result: yes
configure:7953: checking for pixman
configure:7960: $PKG_CONFIG --exists --print-errors "pixman-1 >= 0.21.8"
configure:7963: $? = 0
configure:7977: $PKG_CONFIG --exists --print-errors "pixman-1 >= 0.21.8"
configure:7980: $? = 0
configure:8038: result: yes
configure:8047: checking for wget
configure:8078: result: /bin/false
configure:8148: checking bzlib.h usability
configure:8148: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8148: $? = 0
configure:8148: result: yes
configure:8148: checking bzlib.h presence
configure:8148: gcc -E    conftest.c
configure:8148: $? = 0
configure:8148: result: yes
configure:8148: checking for bzlib.h
configure:8148: result: yes
configure:8151: checking for BZ2_bzDecompressInit in -lbz2
configure:8176: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lbz2  -lpython2.7  >&5
configure:8176: $? = 0
configure:8185: result: yes
configure:8195: checking lzma.h usability
configure:8195: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8195: $? = 0
configure:8195: result: yes
configure:8195: checking lzma.h presence
configure:8195: gcc -E    conftest.c
configure:8195: $? = 0
configure:8195: result: yes
configure:8195: checking for lzma.h
configure:8195: result: yes
configure:8198: checking for lzma_stream_decoder in -llzma
configure:8223: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -llzma  -lpython2.7  >&5
configure:8223: $? = 0
configure:8232: result: yes
configure:8242: checking lzo/lzo1x.h usability
configure:8242: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
conftest.c:58:23: fatal error: lzo/lzo1x.h: No such file or directory
 #include <lzo/lzo1x.h>
                       ^
compilation terminated.
configure:8242: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <lzo/lzo1x.h>
configure:8242: result: no
configure:8242: checking lzo/lzo1x.h presence
configure:8242: gcc -E    conftest.c
conftest.c:25:23: fatal error: lzo/lzo1x.h: No such file or directory
 #include <lzo/lzo1x.h>
                       ^
compilation terminated.
configure:8242: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| /* end confdefs.h.  */
| #include <lzo/lzo1x.h>
configure:8242: result: no
configure:8242: checking for lzo/lzo1x.h
configure:8242: result: no
configure:8292: checking for io_setup in -laio
configure:8317: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -laio  -lpython2.7  >&5
configure:8317: $? = 0
configure:8326: result: yes
configure:8342: checking for MD5 in -lcrypto
configure:8367: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lcrypto  -laio -lpython2.7  >&5
configure:8367: $? = 0
configure:8376: result: yes
configure:8390: checking ext2fs/ext2fs.h usability
configure:8390: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8390: $? = 0
configure:8390: result: yes
configure:8390: checking ext2fs/ext2fs.h presence
configure:8390: gcc -E    conftest.c
configure:8390: $? = 0
configure:8390: result: yes
configure:8390: checking for ext2fs/ext2fs.h
configure:8390: result: yes
configure:8393: checking for ext2fs_open2 in -lext2fs
configure:8418: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lext2fs  -lcrypto -laio -lpython2.7  >&5
configure:8418: $? = 0
configure:8427: result: yes
configure:8442: checking ext4fs/ext2fs.h usability
configure:8442: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
conftest.c:61:27: fatal error: ext4fs/ext2fs.h: No such file or directory
 #include <ext4fs/ext2fs.h>
                           ^
compilation terminated.
configure:8442: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <ext4fs/ext2fs.h>
configure:8442: result: no
configure:8442: checking ext4fs/ext2fs.h presence
configure:8442: gcc -E    conftest.c
conftest.c:28:27: fatal error: ext4fs/ext2fs.h: No such file or directory
 #include <ext4fs/ext2fs.h>
                           ^
compilation terminated.
configure:8442: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| /* end confdefs.h.  */
| #include <ext4fs/ext2fs.h>
configure:8442: result: no
configure:8442: checking for ext4fs/ext2fs.h
configure:8442: result: no
configure:8496: checking for gcry_md_hash_buffer in -lgcrypt
configure:8521: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lgcrypt  -lcrypto -laio -lpython2.7  >&5
/usr/bin/ld: cannot find -lgcrypt
collect2: error: ld returned 1 exit status
configure:8521: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char gcry_md_hash_buffer ();
| int
| main ()
| {
| return gcry_md_hash_buffer ();
|   ;
|   return 0;
| }
configure:8530: result: no
configure:8540: checking for pthread flag
configure:8576: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -pthread       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -pthread conftest.c -lcrypto -laio -lpython2.7   >&5
conftest.c: In function 'main':
conftest.c:32:3: warning: null argument where non-null required (argument 1) [-Wnonnull]
   pthread_create(0,0,0,0);
   ^
conftest.c:32:3: warning: null argument where non-null required (argument 3) [-Wnonnull]
conftest.c:33:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
configure:8576: $? = 0
configure:8592: result: -pthread
configure:8609: checking libutil.h usability
configure:8609: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    -Werror conftest.c >&5
conftest.c:61:21: fatal error: libutil.h: No such file or directory
 #include <libutil.h>
                     ^
compilation terminated.
configure:8609: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <libutil.h>
configure:8609: result: no
configure:8609: checking libutil.h presence
configure:8609: gcc -E    -Werror conftest.c
conftest.c:28:21: fatal error: libutil.h: No such file or directory
 #include <libutil.h>
                     ^
compilation terminated.
configure:8609: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| /* end confdefs.h.  */
| #include <libutil.h>
configure:8609: result: no
configure:8609: checking for libutil.h
configure:8609: result: no
configure:8622: checking for openpty et al
configure:8651: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lcrypto -laio -lpython2.7  -lutil >&5
conftest.c: In function 'main':
conftest.c:33:3: warning: implicit declaration of function 'openpty' [-Wimplicit-function-declaration]
   openpty(0,0,0,0,0);
   ^
conftest.c:34:3: warning: implicit declaration of function 'login_tty' [-Wimplicit-function-declaration]
   login_tty(0);
   ^
conftest.c:35:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
configure:8651: $? = 0
configure:8664: result: -lutil
configure:8669: checking for yajl_alloc in -lyajl
configure:8694: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lyajl  -lcrypto -laio -lpython2.7  -lutil >&5
configure:8694: $? = 0
configure:8703: result: yes
configure:8716: checking for deflateCopy in -lz
configure:8741: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -lz  -lyajl -lcrypto -laio -lpython2.7  -lutil >&5
configure:8741: $? = 0
configure:8750: result: yes
configure:8763: checking for libiconv_open in -liconv
configure:8788: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -liconv  -lz -lyajl -lcrypto -laio -lpython2.7  -lutil >&5
/usr/bin/ld: cannot find -liconv
collect2: error: ld returned 1 exit status
configure:8788: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| #define HAVE_LIBYAJL 1
| #define HAVE_LIBZ 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char libiconv_open ();
| int
| main ()
| {
| return libiconv_open ();
|   ;
|   return 0;
| }
configure:8797: result: no
configure:8806: checking argp.h usability
configure:8806: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8806: $? = 0
configure:8806: result: yes
configure:8806: checking argp.h presence
configure:8806: gcc -E    conftest.c
configure:8806: $? = 0
configure:8806: result: yes
configure:8806: checking for argp.h
configure:8806: result: yes
configure:8809: checking for argp_usage in -largp
configure:8834: gcc -o conftest -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic       -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic conftest.c -largp  -lz -lyajl -lcrypto -laio -lpython2.7  -lutil >&5
/usr/bin/ld: cannot find -largp
collect2: error: ld returned 1 exit status
configure:8834: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| #define HAVE_LIBYAJL 1
| #define HAVE_LIBZ 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char argp_usage ();
| int
| main ()
| {
| return argp_usage ();
|   ;
|   return 0;
| }
configure:8843: result: no
configure:8990: checking yajl/yajl_version.h usability
configure:8990: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking yajl/yajl_version.h presence
configure:8990: gcc -E    conftest.c
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking for yajl/yajl_version.h
configure:8990: result: yes
configure:8990: checking sys/eventfd.h usability
configure:8990: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking sys/eventfd.h presence
configure:8990: gcc -E    conftest.c
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking for sys/eventfd.h
configure:8990: result: yes
configure:8990: checking valgrind/memcheck.h usability
configure:8990: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
conftest.c:65:31: fatal error: valgrind/memcheck.h: No such file or directory
 #include <valgrind/memcheck.h>
                               ^
compilation terminated.
configure:8990: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| #define HAVE_LIBYAJL 1
| #define HAVE_LIBZ 1
| #define HAVE_YAJL_YAJL_VERSION_H 1
| #define HAVE_SYS_EVENTFD_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <valgrind/memcheck.h>
configure:8990: result: no
configure:8990: checking valgrind/memcheck.h presence
configure:8990: gcc -E    conftest.c
conftest.c:32:31: fatal error: valgrind/memcheck.h: No such file or directory
 #include <valgrind/memcheck.h>
                               ^
compilation terminated.
configure:8990: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Xen Hypervisor Tools"
| #define PACKAGE_TARNAME "xen"
| #define PACKAGE_VERSION "4.6"
| #define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
| #define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
| #define PACKAGE_URL "http://www.xen.org/"
| #define HAVE_BLKTAP2 1
| #define HAVE_QEMU_TRADITIONAL 1
| #define HAVE_ROMBIOS 1
| #define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LIBPYTHON2_7 1
| #define INCLUDE_CURSES_H <ncurses.h>
| #define HAVE_LIBAIO 1
| #define HAVE_LIBCRYPTO 1
| #define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
| #define HAVE_LIBYAJL 1
| #define HAVE_LIBZ 1
| #define HAVE_YAJL_YAJL_VERSION_H 1
| #define HAVE_SYS_EVENTFD_H 1
| /* end confdefs.h.  */
| #include <valgrind/memcheck.h>
configure:8990: result: no
configure:8990: checking for valgrind/memcheck.h
configure:8990: result: no
configure:8990: checking utmp.h usability
configure:8990: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic    conftest.c >&5
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking utmp.h presence
configure:8990: gcc -E    conftest.c
configure:8990: $? = 0
configure:8990: result: yes
configure:8990: checking for utmp.h
configure:8990: result: yes
configure:9004: checking for LIBNL3
configure:9011: $PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8"
Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found
Package libnl-route-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-route-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-route-3.0' found
configure:9014: $? = 1
configure:9028: $PKG_CONFIG --exists --print-errors "libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8"
Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found
Package libnl-route-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-route-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-route-3.0' found
configure:9031: $? = 1
configure:9045: result: no
No package 'libnl-3.0' found
No package 'libnl-route-3.0' found
configure:9078: WARNING: Disabling support for Remus network buffering.
    Please install libnl3 libraries, command line tools and devel
    headers - version 3.2.8 or higher
configure:9147: checking for SYSTEMD
configure:9154: $PKG_CONFIG --exists --print-errors "libsystemd-daemon"
Package libsystemd-daemon was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsystemd-daemon.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libsystemd-daemon' found
configure:9157: $? = 1
configure:9171: $PKG_CONFIG --exists --print-errors "libsystemd-daemon"
Package libsystemd-daemon was not found in the pkg-config search path.
Perhaps you should add the directory containing `libsystemd-daemon.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libsystemd-daemon' found
configure:9174: $? = 1
configure:9188: result: no
No package 'libsystemd-daemon' found
configure:9477: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by Xen Hypervisor Tools config.status 4.6, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on 7e3344c5f3a0

config.status:951: creating ../config/Tools.mk
config.status:951: creating hotplug/FreeBSD/rc.d/xencommons
config.status:951: creating hotplug/FreeBSD/rc.d/xendriverdomain
config.status:951: creating hotplug/Linux/init.d/sysconfig.xencommons
config.status:951: creating hotplug/Linux/init.d/xen-watchdog
config.status:951: creating hotplug/Linux/init.d/xencommons
config.status:951: creating hotplug/Linux/init.d/xendomains
config.status:951: creating hotplug/Linux/init.d/xendriverdomain
config.status:951: creating hotplug/Linux/vif-setup
config.status:951: creating hotplug/Linux/xen-hotplug-common.sh
config.status:951: creating hotplug/Linux/xendomains
config.status:951: creating hotplug/NetBSD/rc.d/xencommons
config.status:951: creating hotplug/NetBSD/rc.d/xendriverdomain
config.status:951: creating libxl/xenlight.pc.in
config.status:951: creating libxl/xlutil.pc.in
config.status:951: creating config.h

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_env_APPEND_INCLUDES_set=
ac_cv_env_APPEND_INCLUDES_value=
ac_cv_env_APPEND_LIB_set=
ac_cv_env_APPEND_LIB_value=
ac_cv_env_AS86_set=
ac_cv_env_AS86_value=
ac_cv_env_AWK_set=
ac_cv_env_AWK_value=
ac_cv_env_BASH_set=set
ac_cv_env_BASH_value=/bin/sh
ac_cv_env_BCC_set=
ac_cv_env_BCC_value=
ac_cv_env_BISON_set=
ac_cv_env_BISON_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CURL_set=
ac_cv_env_CURL_value=
ac_cv_env_FLEX_set=
ac_cv_env_FLEX_value=
ac_cv_env_IASL_set=
ac_cv_env_IASL_value=
ac_cv_env_LD86_set=
ac_cv_env_LD86_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBNL3_CFLAGS_set=
ac_cv_env_LIBNL3_CFLAGS_value=
ac_cv_env_LIBNL3_LIBS_set=
ac_cv_env_LIBNL3_LIBS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PERL_set=
ac_cv_env_PERL_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=set
ac_cv_env_PKG_CONFIG_PATH_value='%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_PREPEND_INCLUDES_set=
ac_cv_env_PREPEND_INCLUDES_value=
ac_cv_env_PREPEND_LIB_set=
ac_cv_env_PREPEND_LIB_value=
ac_cv_env_PYTHON_set=
ac_cv_env_PYTHON_value=
ac_cv_env_SYSTEMD_CFLAGS_set=
ac_cv_env_SYSTEMD_CFLAGS_value=
ac_cv_env_SYSTEMD_LIBS_set=
ac_cv_env_SYSTEMD_LIBS_value=
ac_cv_env_XGETTEXT_set=
ac_cv_env_XGETTEXT_value=
ac_cv_env_XML_set=
ac_cv_env_XML_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_glib_CFLAGS_set=
ac_cv_env_glib_CFLAGS_value=
ac_cv_env_glib_LIBS_set=
ac_cv_env_glib_LIBS_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_pixman_CFLAGS_set=
ac_cv_env_pixman_CFLAGS_value=
ac_cv_env_pixman_LIBS_set=
ac_cv_env_pixman_LIBS_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_header_Python_h=yes
ac_cv_header_argp_h=yes
ac_cv_header_bzlib_h=yes
ac_cv_header_curses_h=yes
ac_cv_header_ext2fs_ext2fs_h=yes
ac_cv_header_ext4fs_ext2fs_h=no
ac_cv_header_inttypes_h=yes
ac_cv_header_libutil_h=no
ac_cv_header_lzma_h=yes
ac_cv_header_lzo_lzo1x_h=no
ac_cv_header_memory_h=yes
ac_cv_header_ncurses_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_eventfd_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_header_utmp_h=yes
ac_cv_header_uuid_h=no
ac_cv_header_uuid_uuid_h=yes
ac_cv_header_valgrind_memcheck_h=no
ac_cv_header_yajl_yajl_version_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_lib_aio_io_setup=yes
ac_cv_lib_argp_argp_usage=no
ac_cv_lib_bz2_BZ2_bzDecompressInit=yes
ac_cv_lib_crypto_MD5=yes
ac_cv_lib_curses_clear=yes
ac_cv_lib_ext2fs_ext2fs_open2=yes
ac_cv_lib_gcrypt_gcry_md_hash_buffer=no
ac_cv_lib_iconv_libiconv_open=no
ac_cv_lib_lzma_lzma_stream_decoder=yes
ac_cv_lib_ncurses_clear=yes
ac_cv_lib_python2_7___PyArg_ParseTuple=yes
ac_cv_lib_tinfo_define_key=yes
ac_cv_lib_uuid_uuid_clear=yes
ac_cv_lib_yajl_yajl_alloc=yes
ac_cv_lib_z_deflateCopy=yes
ac_cv_objext=o
ac_cv_path_AS86=/usr/bin/as86
ac_cv_path_AWK=/usr/bin/awk
ac_cv_path_BASH=/bin/sh
ac_cv_path_BCC=/usr/bin/bcc
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_IASL=/usr/bin/iasl
ac_cv_path_LD86=/usr/bin/ld86
ac_cv_path_PERL=/usr/bin/perl
ac_cv_path_PYTHONPATH=/usr/bin/python
ac_cv_path_WGET=/bin/false
ac_cv_path_XGETTEXT=/usr/bin/xgettext
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_pyconfig=/usr/bin/python-config
ac_cv_prog_AWK=/usr/bin/awk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_OCAML=ocaml
ac_cv_prog_ac_ct_OCAMLBUILD=ocamlbuild
ac_cv_prog_ac_ct_OCAMLC=ocamlc
ac_cv_prog_ac_ct_OCAMLCDOTOPT=ocamlc.opt
ac_cv_prog_ac_ct_OCAMLDEP=ocamldep
ac_cv_prog_ac_ct_OCAMLFIND=ocamlfind
ac_cv_prog_ac_ct_OCAMLMKLIB=ocamlmklib
ac_cv_prog_ac_ct_OCAMLMKTOP=ocamlmktop
ac_cv_prog_ac_ct_OCAMLOPT=ocamlopt
ac_cv_prog_ac_ct_OCAMLOPTDOTOPT=ocamlopt.opt
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_sys_file_offset_bits=no
ac_cv_sys_largefile_CC=no
ax_cv_debug=y
ax_cv_githttp=n
ax_cv_monitors=y
ax_cv_ocamltools=y
ax_cv_ovmf=n
ax_cv_pthread_flags=-pthread
ax_cv_ptyfuncs_libs=-lutil
ax_cv_python_fortify=yes
ax_cv_rpath=n
ax_cv_seabios=y
ax_cv_systemd=n
ax_cv_xsmpolicy=y
pkg_cv_glib_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  '
pkg_cv_glib_LIBS='-lglib-2.0  '
pkg_cv_pixman_CFLAGS='-I/usr/include/pixman-1  '
pkg_cv_pixman_LIBS='-lpixman-1  '

## ----------------- ##
## Output variables. ##
## ----------------- ##

APPEND_INCLUDES=''
APPEND_LIB=''
AS86='/usr/bin/as86'
AWK='/usr/bin/awk'
BASH='/bin/sh'
BCC='/usr/bin/bcc'
BISON=''
CC='gcc'
CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
CHECKPOLICY='no'
CONFIG_DIR='/etc'
CONFIG_LEAF_DIR='sysconfig'
CONFIG_RUMP='n'
CPP='gcc -E'
CPPFLAGS='  '
CURL=''
CURSES_LIBS='-lncurses'
DEFS='-DHAVE_CONFIG_H'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
EXEEXT=''
EXTFS_LIBS='-lext2fs'
EXTRA_QEMUU_CONFIGURE_ARGS=''
FETCHER='/bin/false -c -O'
FILE_OFFSET_BITS=''
FLEX=''
FTP=''
GREP='/usr/bin/grep'
IASL='/usr/bin/iasl'
INITD_DIR='/etc/rc.d/init.d'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LD86='/usr/bin/ld86'
LDFLAGS='   -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic'
LIBEXEC_BIN='/usr/local/lib/xen/bin'
LIBNL3_CFLAGS=''
LIBNL3_LIBS=''
LIBOBJS=''
LIBS='-lz -lyajl -lcrypto -laio -lpython2.7  -lutil'
LINUX_BACKEND_MODULES='xen-evtchn xen-gntdev xen-gntalloc xen-blkback xen-netback xen-pciback evtchn gntdev netbk blkbk xen-scsibk usbbk pciback xen-acpi-processor blktap2'
LTLIBOBJS=''
OBJEXT='o'
OCAML='ocaml'
OCAMLBEST='opt'
OCAMLBUILD='ocamlbuild'
OCAMLC='ocamlc.opt'
OCAMLCDOTOPT='ocamlc.opt'
OCAMLDEP='ocamldep'
OCAMLDOC='no'
OCAMLFIND='ocamlfind'
OCAMLLIB='/usr/lib64/ocaml'
OCAMLMKLIB='ocamlmklib'
OCAMLMKTOP='ocamlmktop'
OCAMLOPT='ocamlopt.opt'
OCAMLOPTDOTOPT='ocamlopt.opt'
OCAMLVERSION='4.01.1+dev2-2013-12-18+CLOSED'
PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
PACKAGE_NAME='Xen Hypervisor Tools'
PACKAGE_STRING='Xen Hypervisor Tools 4.6'
PACKAGE_TARNAME='xen'
PACKAGE_URL='http://www.xen.org/'
PACKAGE_VERSION='4.6'
PATH_SEPARATOR=':'
PERL='/usr/bin/perl'
PKG_CONFIG='/usr/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
PREPEND_INCLUDES=''
PREPEND_LIB=''
PTHREAD_CFLAGS='-pthread'
PTHREAD_LDFLAGS='-pthread'
PTHREAD_LIBS=''
PTYFUNCS_LIBS='-lutil'
PYTHON='python'
PYTHONPATH='/usr/bin/python'
PY_NOOPT_CFLAGS='-O1'
SET_MAKE=''
SHAREDIR='/usr/local/share'
SHELL='/bin/sh'
SYSTEMD_CFLAGS=''
SYSTEMD_DIR=''
SYSTEMD_LIBS=''
SYSTEMD_MODULES_LOAD=''
TINFO_LIBS='-ltinfo'
WGET='/bin/false'
XENFIRMWAREDIR='/usr/local/lib/xen/boot'
XENSTORED='/usr/local/sbin/oxenstored'
XEN_CONFIG_DIR='/etc/xen'
XEN_DUMP_DIR='/var/lib/xen/dump'
XEN_LIB_STORED='/var/lib/xenstored'
XEN_LOCK_DIR='/var/lock'
XEN_LOG_DIR='/var/log/xen'
XEN_PAGING_DIR='/var/lib/xen/xenpaging'
XEN_RUN_DIR='/var/run/xen'
XEN_SCRIPT_DIR='/etc/xen/scripts'
XGETTEXT='/usr/bin/xgettext'
XML=''
ac_ct_CC='gcc'
argp_ldflags=''
bindir='/usr/local/bin'
blktap2='y'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
debug='y'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='/usr/local'
githttp='n'
glib_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  '
glib_LIBS='-lglib-2.0  '
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='/usr/lib64'
libexecdir='/usr/local/lib'
libgcrypt='n'
libiconv='n'
localedir='${datarootdir}/locale'
localstatedir='/var'
mandir='${datarootdir}/man'
monitors='y'
ocamltools='y'
oldincludedir='/usr/include'
ovmf='n'
ovmf_path=''
pdfdir='${docdir}'
pixman_CFLAGS='-I/usr/include/pixman-1  '
pixman_LIBS='-lpixman-1  '
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
pyconfig='/usr/bin/python-config'
qemu_traditional='y'
qemu_xen='y'
qemu_xen_path='/usr/local/lib/xen/bin/qemu-system-i386'
qemu_xen_systemd='/usr/local/lib/xen/bin/qemu-system-i386'
remus_netbuf='n'
rombios='y'
rpath='n'
sbindir='/usr/local/sbin'
seabios='y'
seabios_path='/usr/share/seabios/bios.bin'
sharedstatedir='${prefix}/com'
sysconfdir='/etc'
system_aio=''
systemd='n'
target_alias=''
xsmpolicy='n'
zlib=' -DHAVE_BZLIB -lbz2 -DHAVE_LZMA -llzma'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "Xen Hypervisor Tools"
#define PACKAGE_TARNAME "xen"
#define PACKAGE_VERSION "4.6"
#define PACKAGE_STRING "Xen Hypervisor Tools 4.6"
#define PACKAGE_BUGREPORT "xen-devel@lists.xen.org"
#define PACKAGE_URL "http://www.xen.org/"
#define HAVE_BLKTAP2 1
#define HAVE_QEMU_TRADITIONAL 1
#define HAVE_ROMBIOS 1
#define QEMU_XEN_PATH "/usr/local/lib/xen/bin/qemu-system-i386"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_LIBPYTHON2_7 1
#define INCLUDE_CURSES_H <ncurses.h>
#define HAVE_LIBAIO 1
#define HAVE_LIBCRYPTO 1
#define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>
#define HAVE_LIBYAJL 1
#define HAVE_LIBZ 1
#define HAVE_YAJL_YAJL_VERSION_H 1
#define HAVE_SYS_EVENTFD_H 1
#define HAVE_UTMP_H 1

configure: exit 0

[-- Attachment #3: config.status --]
[-- Type: application/octet-stream, Size: 35412 bytes --]

[-- Attachment #4: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-09-01 14:54             ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE George Dunlap
@ 2015-09-01 15:10               ` Ian Campbell
  2015-09-01 16:21                 ` George Dunlap
  0 siblings, 1 reply; 24+ messages in thread
From: Ian Campbell @ 2015-09-01 15:10 UTC (permalink / raw)
  To: George Dunlap, Jan Beulich
  Cc: Wei Liu, Stefano Stabellini, Ian Jackson, Don Slutz, Euan Harris,
	xen-devel

On Tue, 2015-09-01 at 15:54 +0100, George Dunlap wrote:
> 
> I'm not sure exactly how to track down where it came from; it just
> seems to appear out of nowhere in the config.log and config.status
> (attached).

How was configure invoked? Was this a command line build or inside the
rpmbuild stuff?

Ian.

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

* Re: [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
  2015-09-01 15:10               ` Ian Campbell
@ 2015-09-01 16:21                 ` George Dunlap
  0 siblings, 0 replies; 24+ messages in thread
From: George Dunlap @ 2015-09-01 16:21 UTC (permalink / raw)
  To: Ian Campbell
  Cc: Wei Liu, Stefano Stabellini, Ian Jackson, Don Slutz, Euan Harris,
	Jan Beulich, xen-devel

On Tue, Sep 1, 2015 at 4:10 PM, Ian Campbell <ian.campbell@citrix.com> wrote:
> On Tue, 2015-09-01 at 15:54 +0100, George Dunlap wrote:
>>
>> I'm not sure exactly how to track down where it came from; it just
>> seems to appear out of nowhere in the config.log and config.status
>> (attached).
>
> How was configure invoked? Was this a command line build or inside the
> rpmbuild stuff?

Using rpmbuild.  Nothing in the .spec file says it's enabled; but
running "./configure [blah] ; make tools" directly seems to work just
fine, so it must be something w/ rpmbuild.

It would be a Nice To Have to allow debug builds to work with
_FORTIFY_SOURCE, but certainly not urgent.

I think for my purposes I'll just turn off debug builds for now.

 -George

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

end of thread, other threads:[~2015-09-01 16:21 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-04 17:01 [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Jan Beulich
2015-02-04 23:33 ` Don Slutz
2015-02-05 10:17   ` Jan Beulich
2015-02-05 14:55     ` Don Slutz
2015-02-05 11:08 ` Ian Jackson
2015-02-05 11:18   ` Jan Beulich
2015-02-05 12:25     ` Ian Campbell
2015-02-05 15:26     ` Ian Jackson
2015-02-05 15:46       ` Jan Beulich
2015-02-05 15:47       ` Euan Harris
2015-02-05 16:36         ` Ian Jackson
2015-02-05 16:52           ` Jan Beulich
2015-02-05 16:56             ` Ian Jackson
2015-02-05 17:01               ` Jan Beulich
2015-02-06  8:19               ` Jan Beulich
2015-02-06  8:22                 ` Jan Beulich
2015-02-06 11:04                   ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Ian Jackson
2015-02-06 11:04                     ` [PATCH v4] tools: work around collision of -O0 and -D_FORTIFY_SOURCE Ian Jackson
2015-02-06 16:13                       ` Don Slutz
2015-02-06 17:28                         ` Ian Jackson
2015-02-06 15:24                     ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE [and 1 more messages] Don Slutz
2015-09-01 14:54             ` [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE George Dunlap
2015-09-01 15:10               ` Ian Campbell
2015-09-01 16:21                 ` George Dunlap

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.