summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--package/setserial/setserial.mk2
-rw-r--r--toolchain/Makefile.in3
-rw-r--r--toolchain/gcc/4.0.4/402-libbackend_dep_gcov-iov.h.patch11
4 files changed, 22 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 80e314c6a..6cb05d30c 100644
--- a/Makefile
+++ b/Makefile
@@ -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)\" \