[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Replace test-gcc-flag with Linux-style cc-option.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Node ID b2e71d5740452c0c8fb5043a6a7f73fdeb7bcdfb # Parent 1e8ba8d2117548d4f13b7b438d1e992b1815f580 Replace test-gcc-flag with Linux-style cc-option. Improve on Linux implementation by looking for any output on stdout/stderr. This indicates badness. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- Config.mk | 9 ++++++--- tools/firmware/hvmloader/Makefile | 6 +++--- tools/firmware/vmxassist/Makefile | 6 +++--- tools/ioemu/Makefile.target | 2 +- xen/arch/x86/Rules.mk | 30 +++++++++++++++--------------- 5 files changed, 28 insertions(+), 25 deletions(-) diff -r 1e8ba8d21175 -r b2e71d574045 Config.mk --- a/Config.mk Wed Oct 18 18:41:47 2006 +0100 +++ b/Config.mk Wed Oct 18 19:14:34 2006 +0100 @@ -26,7 +26,10 @@ EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBDIR) EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBDIR) endif -test-gcc-flag = $(shell $(1) -v --help 2>&1 | grep " $(2) " >/dev/null 2>&1 && echo $(2)) +# cc-option +# Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586) +cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \ + /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) ifneq ($(debug),y) CFLAGS += -DNDEBUG @@ -42,8 +45,8 @@ CFLAGS += -Wall -Wstrict-prototypes # result of any casted expression causes a warning. CFLAGS += -Wno-unused-value -HOSTCFLAGS += $(call test-gcc-flag,$(HOSTCC),-Wdeclaration-after-statement) -CFLAGS += $(call test-gcc-flag,$(CC),-Wdeclaration-after-statement) +HOSTCFLAGS += $(call cc-option,$(HOSTCC),-Wdeclaration-after-statement,) +CFLAGS += $(call cc-option,$(CC),-Wdeclaration-after-statement,) LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i)) diff -r 1e8ba8d21175 -r b2e71d574045 tools/firmware/hvmloader/Makefile --- a/tools/firmware/hvmloader/Makefile Wed Oct 18 18:41:47 2006 +0100 +++ b/tools/firmware/hvmloader/Makefile Wed Oct 18 19:14:34 2006 +0100 @@ -32,9 +32,9 @@ XENINC =-I$(XEN_ROOT)/tools/libxc XENINC =-I$(XEN_ROOT)/tools/libxc # Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call test-gcc-flag,$(CC),-nopie) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all) +CFLAGS += $(call cc-option,$(CC),-nopie,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) OBJCOPY = objcopy CFLAGS += $(DEFINES) -I. $(XENINC) -fno-builtin -O2 -msoft-float diff -r 1e8ba8d21175 -r b2e71d574045 tools/firmware/vmxassist/Makefile --- a/tools/firmware/vmxassist/Makefile Wed Oct 18 18:41:47 2006 +0100 +++ b/tools/firmware/vmxassist/Makefile Wed Oct 18 19:14:34 2006 +0100 @@ -32,9 +32,9 @@ XENINC=-I$(XEN_ROOT)/tools/libxc XENINC=-I$(XEN_ROOT)/tools/libxc # Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call test-gcc-flag,$(CC),-nopie) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all) +CFLAGS += $(call cc-option,$(CC),-nopie,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) CPP = cpp -P OBJCOPY = objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0 diff -r 1e8ba8d21175 -r b2e71d574045 tools/ioemu/Makefile.target --- a/tools/ioemu/Makefile.target Wed Oct 18 18:41:47 2006 +0100 +++ b/tools/ioemu/Makefile.target Wed Oct 18 19:14:34 2006 +0100 @@ -23,7 +23,7 @@ DEFINES+=-I$(SRC_PATH)/linux-user -I$(SR DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH) endif CFLAGS+=-Wall -O2 -g -fno-strict-aliasing -SSE2 := $(call test-gcc-flag,$(CC),-msse2) +SSE2 := $(call cc-option,$(CC),-msse2,) ifeq ($(SSE2),-msse2) CFLAGS += -DUSE_SSE2=1 -msse2 endif diff -r 1e8ba8d21175 -r b2e71d574045 xen/arch/x86/Rules.mk --- a/xen/arch/x86/Rules.mk Wed Oct 18 18:41:47 2006 +0100 +++ b/xen/arch/x86/Rules.mk Wed Oct 18 19:14:34 2006 +0100 @@ -11,26 +11,26 @@ pae ?= n pae ?= n supervisor_mode_kernel ?= n -CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing -CFLAGS += -iwithprefix include -Werror -Wno-pointer-arith -pipe -CFLAGS += -I$(BASEDIR)/include -CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-generic -CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-default +CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing +CFLAGS += -iwithprefix include -Werror -Wno-pointer-arith -pipe +CFLAGS += -I$(BASEDIR)/include +CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-generic +CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-default # Prevent floating-point variables from creeping into Xen. -CFLAGS += -msoft-float +CFLAGS += -msoft-float # Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call test-gcc-flag,$(CC),-nopie) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector) -CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all) +CFLAGS += $(call cc-option,$(CC),-nopie,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) ifeq ($(TARGET_SUBARCH)$(pae),x86_32y) -CFLAGS += -DCONFIG_X86_PAE=1 +CFLAGS += -DCONFIG_X86_PAE=1 endif ifeq ($(supervisor_mode_kernel),y) -CFLAGS += -DCONFIG_X86_SUPERVISOR_MODE_KERNEL=1 +CFLAGS += -DCONFIG_X86_SUPERVISOR_MODE_KERNEL=1 endif ifeq ($(XEN_TARGET_ARCH),x86_32) @@ -39,11 +39,11 @@ endif endif ifeq ($(TARGET_SUBARCH),x86_64) -CFLAGS += -mno-red-zone -fpic -fno-reorder-blocks -CFLAGS += -fno-asynchronous-unwind-tables +CFLAGS += -mno-red-zone -fpic -fno-reorder-blocks +CFLAGS += -fno-asynchronous-unwind-tables # -fvisibility=hidden reduces -fpic cost, if it's available -CFLAGS += $(shell $(CC) -v --help 2>&1 | grep " -fvisibility=" | \ - grep -q hidden && echo "-DGCC_HAS_VISIBILITY_ATTRIBUTE") +CFLAGS += $(call cc-option,$(CC),-fvisibility=hidden,) +CFLAGS := $(subst -fvisibility=hidden,-DGCC_HAS_VISIBILITY_ATTRIBUTE,$(CFLAGS)) x86_32 := n x86_64 := y endif _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |