[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] tools/configure: add options to pass EXTRA_CLFAGS
# HG changeset patch # User Olaf Hering <olaf@xxxxxxxxx> # Date 1331817547 -3600 # Node ID 994ac398f4dc639ad0ca8aaabc4172ab72eb1358 # Parent 6dd1395c07cbc0f1408048f916bc6674dad19ef5 tools/configure: add options to pass EXTRA_CLFAGS Currently qemu-xen gets build with CFLAGS only if CFLAGS was already in the environment during make invocation. If CFLAGS is in environment then make will append all of the various flags specified in xen Makefiles to this environment variable, which is then used in qemu configure. Since qemu-xen is not ready for compiler flags like -std=gnu99 compilation will fail. If CFLAGS is not in environment, then configure will use just "-O2 -g" because make does not export its own CFLAGS variable. >From a distro perspective, its required to build libraries and binaries with certain global cflags. Up to the point when qemu-xen was imported it worked as expected by exporting CFLAGS before 'make tools'. Now qemu-upstream reuses these CFLAGS, but it cant deal with the result. This patch extends configure to recognize three environment variables which will be written to config/Tools.mk so they will be reused with each make invocation: EXTRA_CFLAGS_XEN_TOOLS= specifies CFLAGS for the tools build. EXTRA_CFLAGS_QEMU_TRADITIONAL= specifies CFLAGS for old qemu. EXTRA_CFLAGS_QEMU_XEN= specifies CFLAGS for new qemu. The new feature can be used like this in a rpm xen.spec file: env \ EXTRA_CFLAGS_XEN_TOOLS="${RPM_OPT_FLAGS}" \ EXTRA_CFLAGS_QEMU_TRADITIONAL="${RPM_OPT_FLAGS}" \ EXTRA_CFLAGS_QEMU_XEN="${RPM_OPT_FLAGS}" \ ./configure \ --libdir=%{_libdir} \ --prefix=/usr make To make sure the EXTRA_CFLAGS appear first in the command line tools/Rules.mk must include config/Tools.mk before Config.mk. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> diff -r 6dd1395c07cb -r 994ac398f4dc config/Tools.mk.in --- a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -22,6 +22,10 @@ PREPEND_LIB := @PREPEND_LIB@ APPEND_INCLUDES := @APPEND_INCLUDES@ APPEND_LIB := @APPEND_LIB@ +CFLAGS += @EXTRA_CFLAGS_XEN_TOOLS@ +EXTRA_CFLAGS_QEMU_TRADITIONAL += @EXTRA_CFLAGS_QEMU_TRADITIONAL@ +EXTRA_CFLAGS_QEMU_XEN += @EXTRA_CFLAGS_QEMU_XEN@ + # Download GIT repositories via HTTP or GIT's own protocol? # GIT's protocol is faster and more robust, when it works at all (firewalls # may block it). We make it the default, but if your GIT repository downloads diff -r 6dd1395c07cb -r 994ac398f4dc tools/Makefile --- a/tools/Makefile +++ b/tools/Makefile @@ -122,6 +122,7 @@ subdir-all-qemu-xen-traditional-dir subd set -e; \ $(buildmakevars2shellvars); \ cd qemu-xen-traditional-dir; \ + env CFLAGS="$(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \ $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS); \ $(MAKE) install @@ -146,6 +147,7 @@ subdir-all-qemu-xen-dir subdir-install-q source=.; \ fi; \ cd qemu-xen-dir; \ + env CFLAGS="$(EXTRA_CFLAGS_QEMU_XEN)" \ $$source/configure --enable-xen --target-list=i386-softmmu \ --source-path=$$source \ --extra-cflags="-I$(XEN_ROOT)/tools/include \ diff -r 6dd1395c07cb -r 994ac398f4dc tools/Rules.mk --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -3,8 +3,8 @@ # `all' is the default target all: +include $(XEN_ROOT)/config/Tools.mk include $(XEN_ROOT)/Config.mk -include $(XEN_ROOT)/config/Tools.mk export _INSTALL := $(INSTALL) INSTALL = $(XEN_ROOT)/tools/cross-install diff -r 6dd1395c07cb -r 994ac398f4dc tools/configure.ac --- a/tools/configure.ac +++ b/tools/configure.ac @@ -55,6 +55,12 @@ AC_ARG_VAR([APPEND_INCLUDES], [List of include folders to append to CFLAGS (without -I)]) AC_ARG_VAR([APPEND_LIB], [List of library folders to append to LDFLAGS (without -L)]) +AC_ARG_VAR([EXTRA_CFLAGS_XEN_TOOLS], + [Extra CFLAGS to build tools]) +AC_ARG_VAR([EXTRA_CFLAGS_QEMU_TRADITIONAL], + [Extra CFLAGS to build qemu-traditional]) +AC_ARG_VAR([EXTRA_CFLAGS_QEMU_XEN], + [Extra CFLAGS to build qemu-xen]) AX_SET_FLAGS _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |