[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] tools: work around collision of -O0 and -D_FORTIFY_SOURCE
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@xxxxxxxx> > 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@xxxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxxx> 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@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |