[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] tools/configure: add options to pass EXTRA_CLFAGS



>>> On 15.03.12 at 14:19, Olaf Hering <olaf@xxxxxxxxx> wrote:
> # 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

Wouldn't one rather want them to appear last (to eventually override
other settings, namely the optimization level)?

Jan

> 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 



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.