[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] tools/configure: add options to pass EXTRA_CLFAGS
2012/3/15 Olaf Hering <olaf@xxxxxxxxx>: > # 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 Do we really need to change the order? User-defined flags should appear after necessary tools build flags, if not a user might use some flags that break the build without knowing. > Â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]) The change looks good to me in terms of configure modifications, but I'm not sure of the names, shouldn't qemu-traditional be qemu-xen(-traditional) and qemu-xen be qemu-(xen-)upstream? > ÂAX_SET_FLAGS > > > _______________________________________________ > 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 |