[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [xen-4.0-testing test] 7147: regressions - FAIL
On 23/05/2011 16:24, "Keir Fraser" <keir@xxxxxxx> wrote: > On 23/05/2011 16:08, "Ian Jackson" <Ian.Jackson@xxxxxxxxxxxxx> wrote: > >> I wrote: >>> At top level: >>> cc1: error: unrecognized command line option "-Wno-unused-but-set-variable" >> >> How about this fix. > > I've been fiddling with a similar principle but much smaller patch (see > below). But it's failing for me in the same way as yours -- *all* optional > flags disappear from my CFLAGS (e.g., -Wno-unused-but-set-variable, which my > gcc-4.5.1 definitely does support). > > So I'm still scratching my head on this one... :-( Here's a nice short one that seems to work for me. It does rely on the compiler emitting the word 'unrecognized' iff the option under test is unrecognised. I strongly suspect this is a safe bet. Unfortunately I can't see any way around grepping the output, since otherwise we can't distinguish the integer-assignment-to-pointer warning from the unrecognised-option warning. I'll refrain from applying it until we have general agreement. -- Keir diff -r 0f670f5146c8 Config.mk --- a/Config.mk Sat May 21 07:55:46 2011 +0100 +++ b/Config.mk Mon May 23 16:32:43 2011 +0100 @@ -72,8 +72,9 @@ PYTHON_PREFIX_ARG ?= --prefix="$(PREFIX) # cc-option: Check if compiler supports first option, else fall back to second. # 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 ;) +cc-option = $(shell if test -z "`echo 'void*p=1;' | \ + $(1) $(2) -S -o /dev/null -xc - 2>&1 | grep unrecognized`"; \ + then echo "$(2)"; else echo "$(3)"; fi ;) # cc-option-add: Add an option to compilation flags, but only if supported. # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6) > > diff -r 0f670f5146c8 Config.mk > --- a/Config.mk Sat May 21 07:55:46 2011 +0100 > +++ b/Config.mk Mon May 23 16:16:54 2011 +0100 > @@ -72,8 +72,10 @@ PYTHON_PREFIX_ARG ?= --prefix="$(PREFIX) > > # cc-option: Check if compiler supports first option, else fall back to > second. > # 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 ;) > +#cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \ > +# /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) > +cc-option = $(shell if test -z "`echo 'void*p=1;' | \ > + $(1) $(2) -S -o /dev/null -xc - 2>&1`"; then echo "$(2)"; > else echo "$(3)"; fi ;) > > # cc-option-add: Add an option to compilation flags, but only if supported. > # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6) > > >> Ian. >> >> diff -r 0f670f5146c8 Config.mk >> --- a/Config.mk Sat May 21 07:55:46 2011 +0100 >> +++ b/Config.mk Mon May 23 16:07:59 2011 +0100 >> @@ -72,8 +72,7 @@ PYTHON_PREFIX_ARG ?= --prefix="$(PREFIX) >> >> # cc-option: Check if compiler supports first option, else fall back to >> second. >> # 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 ;) >> +cc-option = $(shell $(XEN_ROOT)/config/test-cc-option.sh $(1) $(2) $(3)) >> >> # cc-option-add: Add an option to compilation flags, but only if supported. >> # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6) >> diff -r 0f670f5146c8 config/test-cc-option.sh >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/config/test-cc-option.sh Mon May 23 16:07:59 2011 +0100 >> @@ -0,0 +1,31 @@ >> +#!/bin/sh >> +set -e >> + >> +cc="$1" >> +opt="$2" >> +alt="$3" >> + >> +case "$opt" in >> +-Wno-*) >> + # Sadly a broken implementation of the fix to GCC PR 28322 >> + # (actually shipped eg in Debian lenny) makes it hard to spot >> + # whether the compiler recognises a -Wno-foo option without >> + # generating a warning for some other reason. >> + >> + input="${0%-cc-option.sh}-cc-warning.c" >> + if $cc $opt -Wreturn-type -Wno-error -S -o /dev/null "$input" \ >> + >/dev/null 2>&1; then >> + res="$opt" >> + else >> + res="$alt" >> + fi >> + ;; >> +*) >> + if test -z "`$cc $opt $nerr -S -o /dev/null -xc $input 2>&1`"; then >> + res="$opt" >> + else >> + res="$alt" >> + fi >> + ;; >> +esac >> +printf "%s\n" "$res" >> diff -r 0f670f5146c8 config/test-cc-warning.c >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/config/test-cc-warning.c Mon May 23 16:07:59 2011 +0100 >> @@ -0,0 +1,2 @@ >> +extern int bogus(void); >> +int bogus(void) { } > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |