diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-02-12 13:38:06 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-02-12 13:38:06 +0000 |
commit | 99cf7293f9eb943e00e2ebca6eee0e36eaa801bd (patch) | |
tree | 1ae33b5d2518286eafc5154cdecb2fd9ed0e3f97 | |
parent | e5b36a686c563bc667406b9e148e9a72948505be (diff) |
- add cc-option and use it to check for stuff that is benefical for PREFER_IMA
- backport the libbackend.o gcov-iov.h dependency fixup from 4.2 to 4.0
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | package/setserial/setserial.mk | 2 | ||||
-rw-r--r-- | toolchain/Makefile.in | 3 | ||||
-rw-r--r-- | toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch | 11 |
4 files changed, 22 insertions, 1 deletions
@@ -38,6 +38,13 @@ endif ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y) +# cc-option +# Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586) +# sets -march=winchip-c6 if supported else falls back to -march=i586 +# without checking the latter. +cc-option = $(shell if $(TARGET_CC) $(TARGET_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ + > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) + ############################################################# # # The list of stuff to build for the target toolchain diff --git a/package/setserial/setserial.mk b/package/setserial/setserial.mk index 604f7df2e..cea3e541a 100644 --- a/package/setserial/setserial.mk +++ b/package/setserial/setserial.mk @@ -27,7 +27,7 @@ endif touch $@ ifeq ($(BR2_PREFER_IMA),y) -SETSERIAL_CFLAGS=--combine -fwhole-program +SETSERIAL_CFLAGS=--combine $(CFLAGS_WHOLE_PROGRAM) endif $(SETSERIAL_DIR)/.configured: $(SETSERIAL_DIR)/.unpacked diff --git a/toolchain/Makefile.in b/toolchain/Makefile.in index 1a2c0f26f..84e2ae42f 100644 --- a/toolchain/Makefile.in +++ b/toolchain/Makefile.in @@ -14,5 +14,8 @@ endif # FIXME -- this is temporary OPTIMIZE_FOR_CPU=$(ARCH) +# late binding check to see if the target cc supports -fwhole-program +CFLAGS_WHOLE_PROGRAM = $(call cc-option,-fwhole-program,) + # gcc has a bunch of needed stuff.... include toolchain/gcc/Makefile.in diff --git a/toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch b/toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch new file mode 100644 index 000000000..89196d9fa --- /dev/null +++ b/toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch @@ -0,0 +1,11 @@ +--- gcc-4.0.4.orig/gcc/Makefile.in 2007-02-12 11:35:43.000000000 +0100 ++++ gcc-4.0.4/gcc/Makefile.in 2007-02-12 11:38:04.000000000 +0100 +@@ -2202,7 +2202,7 @@ mips-tdump.o : mips-tdump.c $(CONFIG_H) + # FIXME: writing proper dependencies for this is a *LOT* of work. + libbackend.o : $(OBJS-common:.o=.c) $(out_file) \ + insn-config.h insn-flags.h insn-codes.h insn-constants.h \ +- insn-attr.h ++ insn-attr.h gcov-iov.h + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \ + -DTARGET_NAME=\"$(target_noncanonical)\" \ + -DLOCALEDIR=\"$(localedir)\" \ |