Message ID | 1329174126-21460-3-git-send-email-trini@ti.com |
---|---|
State | Changes Requested, archived |
Headers | show |
On Monday 13 February 2012 18:02:02 Tom Rini wrote: > isnt possible with /dev/null. isn't > --- a/config.mk > +++ b/config.mk > > -cc-option-sys = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ > - > /dev/null 2>&1; then \ > +cc-option-sys = $(shell mkdir -p $(dir $(CC_TEST_FILE)); \ > + touch $(CC_TEST_FILE); \ > + if $(CC) $(CFLAGS) $(1) -S -o $(CC_TEST_FILE) \ > + -xc $(CC_TEST_FILE) > /dev/null 2>&1; then \ why do you need to touch the file first ? why do you source this test file instead of continuing to source /dev/null ? don't you run into problems if you use cc-option-sys more than once and a previous run wrote something to that file ? then cc-option-sys could fail on later runs ... seems like you should drop the `touch` and keep the -xc /dev/null and only change the -o to $(CC_TEST_FILE) ... -mike
On Mon, Feb 13, 2012 at 10:43 PM, Mike Frysinger <vapier@gentoo.org> wrote: > On Monday 13 February 2012 18:02:02 Tom Rini wrote: >> isnt possible with /dev/null. > > isn't > >> --- a/config.mk >> +++ b/config.mk >> >> -cc-option-sys = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ >> - > /dev/null 2>&1; then \ >> +cc-option-sys = $(shell mkdir -p $(dir $(CC_TEST_FILE)); \ >> + touch $(CC_TEST_FILE); \ >> + if $(CC) $(CFLAGS) $(1) -S -o $(CC_TEST_FILE) \ >> + -xc $(CC_TEST_FILE) > /dev/null 2>&1; then \ > > why do you need to touch the file first ? why do you source this test file > instead of continuing to source /dev/null ? don't you run into problems if > you use cc-option-sys more than once and a previous run wrote something to > that file ? then cc-option-sys could fail on later runs ... > > seems like you should drop the `touch` and keep the -xc /dev/null and only > change the -o to $(CC_TEST_FILE) ... I've also changed the variable to CC_TEST_OFILE and that works, thanks.
diff --git a/config.mk b/config.mk index ddaa477..519bc1b 100644 --- a/config.mk +++ b/config.mk @@ -108,14 +108,14 @@ HOSTCFLAGS += -pedantic # only supported compiler options are used # CC_OPTIONS_CACHE_FILE := $(OBJTREE)/include/generated/cc_options.mk - -$(if $(wildcard $(CC_OPTIONS_CACHE_FILE)),,\ - $(shell mkdir -p $(dir $(CC_OPTIONS_CACHE_FILE)))) +CC_TEST_FILE := $(OBJTREE)/include/generated/cc_test_file.c -include $(CC_OPTIONS_CACHE_FILE) -cc-option-sys = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ - > /dev/null 2>&1; then \ +cc-option-sys = $(shell mkdir -p $(dir $(CC_TEST_FILE)); \ + touch $(CC_TEST_FILE); \ + if $(CC) $(CFLAGS) $(1) -S -o $(CC_TEST_FILE) \ + -xc $(CC_TEST_FILE) > /dev/null 2>&1; then \ echo 'CC_OPTIONS += $(strip $1)' >> $(CC_OPTIONS_CACHE_FILE); \ echo "$(1)"; fi)
Testing for -fstack-usage requires the creation of an output file, which isnt possible with /dev/null. Signed-off-by: Tom Rini <trini@ti.com> --- config.mk | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)