diff options
Diffstat (limited to 'toolchain/gcc')
-rw-r--r-- | toolchain/gcc/4.3.1/901-backport-fix-for-bug-32044.patch | 188 | ||||
-rw-r--r-- | toolchain/gcc/4.3.1/995-short-enums.diff | 42 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/100-uclibc-conf.patch (renamed from toolchain/gcc/4.3.1/100-uclibc-conf.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/104-gnuhurd-uclibc-conf.patch (renamed from toolchain/gcc/4.3.1/104-gnuhurd-uclibc-conf.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/301-missing-execinfo_h.patch (renamed from toolchain/gcc/4.3.1/301-missing-execinfo_h.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/302-c99-snprintf.patch (renamed from toolchain/gcc/4.3.1/302-c99-snprintf.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/305-libmudflap-susv3-legacy.patch (renamed from toolchain/gcc/4.3.1/305-libmudflap-susv3-legacy.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/810-arm-softfloat-libgcc.patch (renamed from toolchain/gcc/4.3.1/810-arm-softfloat-libgcc.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/993-arm_insn-opinit-RTX_CODE-fixup.patch (renamed from toolchain/gcc/4.3.1/993-arm_insn-opinit-RTX_CODE-fixup.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/998-gcc-4.3.0-fix-header.00.patch (renamed from toolchain/gcc/4.3.1/998-gcc-4.3.0-fix-header.00.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/999-4.3.2-armeabi-aapcs-linux.patch | 18 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/999-4.3.3-arm-fix-for-bug-37436.patch | 86 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch (renamed from toolchain/gcc/4.3.1/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/4.3.4/powerpc-link-with-math-lib.patch.conditional | 125 | ||||
-rw-r--r-- | toolchain/gcc/Config.in | 11 |
15 files changed, 234 insertions, 236 deletions
diff --git a/toolchain/gcc/4.3.1/901-backport-fix-for-bug-32044.patch b/toolchain/gcc/4.3.1/901-backport-fix-for-bug-32044.patch deleted file mode 100644 index 9337bf9ee..000000000 --- a/toolchain/gcc/4.3.1/901-backport-fix-for-bug-32044.patch +++ /dev/null @@ -1,188 +0,0 @@ -Index: gcc-4.3.2/gcc/tree-scalar-evolution.c -=================================================================== ---- gcc-4.3.2.orig/gcc/tree-scalar-evolution.c 2009-01-28 10:14:37.000000000 +0100 -+++ gcc-4.3.2/gcc/tree-scalar-evolution.c 2009-01-28 10:17:50.000000000 +0100 -@@ -2716,6 +2716,50 @@ - scalar_evolution_info = NULL; - } - -+/* Returns true if the expression EXPR is considered to be too expensive -+ for scev_const_prop. */ -+ -+bool -+expression_expensive_p (tree expr) -+{ -+ enum tree_code code; -+ -+ if (is_gimple_val (expr)) -+ return false; -+ -+ code = TREE_CODE (expr); -+ if (code == TRUNC_DIV_EXPR -+ || code == CEIL_DIV_EXPR -+ || code == FLOOR_DIV_EXPR -+ || code == ROUND_DIV_EXPR -+ || code == TRUNC_MOD_EXPR -+ || code == CEIL_MOD_EXPR -+ || code == FLOOR_MOD_EXPR -+ || code == ROUND_MOD_EXPR -+ || code == EXACT_DIV_EXPR) -+ { -+ /* Division by power of two is usually cheap, so we allow it. -+ Forbid anything else. */ -+ if (!integer_pow2p (TREE_OPERAND (expr, 1))) -+ return true; -+ } -+ -+ switch (TREE_CODE_CLASS (code)) -+ { -+ case tcc_binary: -+ case tcc_comparison: -+ if (expression_expensive_p (TREE_OPERAND (expr, 1))) -+ return true; -+ -+ /* Fallthru. */ -+ case tcc_unary: -+ return expression_expensive_p (TREE_OPERAND (expr, 0)); -+ -+ default: -+ return true; -+ } -+} -+ - /* Replace ssa names for that scev can prove they are constant by the - appropriate constants. Also perform final value replacement in loops, - in case the replacement expressions are cheap. -@@ -2802,12 +2846,6 @@ - continue; - - niter = number_of_latch_executions (loop); -- /* We used to check here whether the computation of NITER is expensive, -- and avoided final value elimination if that is the case. The problem -- is that it is hard to evaluate whether the expression is too -- expensive, as we do not know what optimization opportunities the -- the elimination of the final value may reveal. Therefore, we now -- eliminate the final values of induction variables unconditionally. */ - if (niter == chrec_dont_know) - continue; - -@@ -2838,7 +2876,15 @@ - /* Moving the computation from the loop may prolong life range - of some ssa names, which may cause problems if they appear - on abnormal edges. */ -- || contains_abnormal_ssa_name_p (def)) -+ || contains_abnormal_ssa_name_p (def) -+ /* Do not emit expensive expressions. The rationale is that -+ when someone writes a code like -+ -+ while (n > 45) n -= 45; -+ -+ he probably knows that n is not large, and does not want it -+ to be turned into n %= 45. */ -+ || expression_expensive_p (def)) - continue; - - /* Eliminate the PHI node and replace it by a computation outside -Index: gcc-4.3.2/gcc/tree-scalar-evolution.h -=================================================================== ---- gcc-4.3.2.orig/gcc/tree-scalar-evolution.h 2009-01-28 10:22:47.000000000 +0100 -+++ gcc-4.3.2/gcc/tree-scalar-evolution.h 2009-01-28 10:23:10.000000000 +0100 -@@ -35,6 +35,7 @@ - extern void scev_analysis (void); - unsigned int scev_const_prop (void); - -+bool expression_expensive_p (tree); - extern bool simple_iv (struct loop *, tree, tree, affine_iv *, bool); - - /* Returns the loop of the polynomial chrec CHREC. */ -Index: gcc-4.3.2/gcc/testsuite/gcc.dg/pr34027-1.c -=================================================================== ---- gcc-4.3.2.orig/gcc/testsuite/gcc.dg/pr34027-1.c 2009-01-28 10:24:09.000000000 +0100 -+++ gcc-4.3.2/gcc/testsuite/gcc.dg/pr34027-1.c 2009-01-28 10:24:43.000000000 +0100 -@@ -8,5 +8,9 @@ - return ns; - } - --/* { dg-final { scan-tree-dump "ns % 10000" "optimized" } } */ -+/* This test was originally introduced to test that we transform -+ to ns % 10000. See the discussion of PR 32044 why we do not do -+ that anymore. */ -+/* { dg-final { scan-tree-dump-times "%" 0 "optimized" } } */ -+/* { dg-final { scan-tree-dump-times "/" 0 "optimized" } } */ - /* { dg-final { cleanup-tree-dump "optimized" } } */ -Index: gcc-4.3.2/gcc/testsuite/gcc.dg/tree-ssa/pr32044.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4.3.2/gcc/testsuite/gcc.dg/tree-ssa/pr32044.c 2009-01-28 10:25:50.000000000 +0100 -@@ -0,0 +1,55 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -fdump-tree-empty -fdump-tree-final_cleanup" } */ -+ -+int foo (int n) -+{ -+ while (n >= 45) -+ n -= 45; -+ -+ return n; -+} -+ -+int bar (int n) -+{ -+ while (n >= 64) -+ n -= 64; -+ -+ return n; -+} -+ -+int bla (int n) -+{ -+ int i = 0; -+ -+ while (n >= 45) -+ { -+ i++; -+ n -= 45; -+ } -+ -+ return i; -+} -+ -+int baz (int n) -+{ -+ int i = 0; -+ -+ while (n >= 64) -+ { -+ i++; -+ n -= 64; -+ } -+ -+ return i; -+} -+ -+/* The loops computing division/modulo by 64 should be eliminated. */ -+/* { dg-final { scan-tree-dump-times "Removing empty loop" 2 "empty" } } */ -+ -+/* There should be no division/modulo in the final dump (division and modulo -+ by 64 are done using bit operations). */ -+/* { dg-final { scan-tree-dump-times "/" 0 "final_cleanup" } } */ -+/* { dg-final { scan-tree-dump-times "%" 0 "final_cleanup" } } */ -+ -+/* { dg-final { cleanup-tree-dump "empty" } } */ -+/* { dg-final { cleanup-tree-dump "final_cleanup" } } */ -Index: gcc-4.3.2/gcc/tree-ssa-loop-ivopts.c -=================================================================== ---- gcc-4.3.2.orig/gcc/tree-ssa-loop-ivopts.c 2009-01-28 10:26:04.000000000 +0100 -+++ gcc-4.3.2/gcc/tree-ssa-loop-ivopts.c 2009-01-28 10:27:09.000000000 +0100 -@@ -3778,7 +3778,12 @@ - return false; - - cand_value_at (loop, cand, use->stmt, nit, &bnd); -+ - *bound = aff_combination_to_tree (&bnd); -+ /* It is unlikely that computing the number of iterations using division -+ would be more profitable than keeping the original induction variable. */ -+ if (expression_expensive_p (*bound)) -+ return false; - return true; - } diff --git a/toolchain/gcc/4.3.1/995-short-enums.diff b/toolchain/gcc/4.3.1/995-short-enums.diff deleted file mode 100644 index 03c470c9e..000000000 --- a/toolchain/gcc/4.3.1/995-short-enums.diff +++ /dev/null @@ -1,42 +0,0 @@ -see gcc PR34205 -Index: gcc-4.3.0/gcc/tree.h -=================================================================== ---- gcc-4.3.0/gcc/tree.h (revision 130511) -+++ gcc-4.3.0/gcc/tree.h (working copy) -@@ -38,6 +38,7 @@ - - LAST_AND_UNUSED_TREE_CODE /* A convenient way to get a value for - NUM_TREE_CODES. */ -+ ,__LAST_AND_UNUSED_TREE_CODE=32767 /* Force 16bit width. */ - }; - - #undef DEFTREECODE -Index: gcc-4.3.0/gcc/rtl.h -=================================================================== ---- gcc-4.3.0/gcc/rtl.h (revision 130511) -+++ gcc-4.3.0/gcc/rtl.h (working copy) -@@ -48,9 +48,11 @@ - #include "rtl.def" /* rtl expressions are documented here */ - #undef DEF_RTL_EXPR - -- LAST_AND_UNUSED_RTX_CODE}; /* A convenient way to get a value for -+ LAST_AND_UNUSED_RTX_CODE /* A convenient way to get a value for - NUM_RTX_CODE. - Assumes default enum value assignment. */ -+ ,__LAST_AND_UNUSED_RTX_CODE=32767 /* Force 16bit width. */ -+}; - - #define NUM_RTX_CODE ((int) LAST_AND_UNUSED_RTX_CODE) - /* The cast here, saves many elsewhere. */ -Index: gcc-4.3.0/gcc/c-common.h -=================================================================== ---- gcc-4.3.0/gcc/c-common.h (revision 130511) -+++ gcc-4.3.0/gcc/c-common.h (working copy) -@@ -125,6 +125,7 @@ - RID_LAST_AT = RID_AT_IMPLEMENTATION, - RID_FIRST_PQ = RID_IN, - RID_LAST_PQ = RID_ONEWAY -+ ,__LAST_AND_UNUSED_RID=32767 /* Force 16bit width. */ - }; - - #define OBJC_IS_AT_KEYWORD(rid) \ diff --git a/toolchain/gcc/4.3.1/100-uclibc-conf.patch b/toolchain/gcc/4.3.4/100-uclibc-conf.patch index cca8c8229..cca8c8229 100644 --- a/toolchain/gcc/4.3.1/100-uclibc-conf.patch +++ b/toolchain/gcc/4.3.4/100-uclibc-conf.patch diff --git a/toolchain/gcc/4.3.1/104-gnuhurd-uclibc-conf.patch b/toolchain/gcc/4.3.4/104-gnuhurd-uclibc-conf.patch index c04dd9ff0..c04dd9ff0 100644 --- a/toolchain/gcc/4.3.1/104-gnuhurd-uclibc-conf.patch +++ b/toolchain/gcc/4.3.4/104-gnuhurd-uclibc-conf.patch diff --git a/toolchain/gcc/4.3.1/301-missing-execinfo_h.patch b/toolchain/gcc/4.3.4/301-missing-execinfo_h.patch index 0e2092f3f..0e2092f3f 100644 --- a/toolchain/gcc/4.3.1/301-missing-execinfo_h.patch +++ b/toolchain/gcc/4.3.4/301-missing-execinfo_h.patch diff --git a/toolchain/gcc/4.3.1/302-c99-snprintf.patch b/toolchain/gcc/4.3.4/302-c99-snprintf.patch index ba51a0e1d..ba51a0e1d 100644 --- a/toolchain/gcc/4.3.1/302-c99-snprintf.patch +++ b/toolchain/gcc/4.3.4/302-c99-snprintf.patch diff --git a/toolchain/gcc/4.3.1/305-libmudflap-susv3-legacy.patch b/toolchain/gcc/4.3.4/305-libmudflap-susv3-legacy.patch index 374b1f865..374b1f865 100644 --- a/toolchain/gcc/4.3.1/305-libmudflap-susv3-legacy.patch +++ b/toolchain/gcc/4.3.4/305-libmudflap-susv3-legacy.patch diff --git a/toolchain/gcc/4.3.1/810-arm-softfloat-libgcc.patch b/toolchain/gcc/4.3.4/810-arm-softfloat-libgcc.patch index 1639c39a8..1639c39a8 100644 --- a/toolchain/gcc/4.3.1/810-arm-softfloat-libgcc.patch +++ b/toolchain/gcc/4.3.4/810-arm-softfloat-libgcc.patch diff --git a/toolchain/gcc/4.3.1/993-arm_insn-opinit-RTX_CODE-fixup.patch b/toolchain/gcc/4.3.4/993-arm_insn-opinit-RTX_CODE-fixup.patch index 69f0c372d..69f0c372d 100644 --- a/toolchain/gcc/4.3.1/993-arm_insn-opinit-RTX_CODE-fixup.patch +++ b/toolchain/gcc/4.3.4/993-arm_insn-opinit-RTX_CODE-fixup.patch diff --git a/toolchain/gcc/4.3.1/998-gcc-4.3.0-fix-header.00.patch b/toolchain/gcc/4.3.4/998-gcc-4.3.0-fix-header.00.patch index 7fe59d2dd..7fe59d2dd 100644 --- a/toolchain/gcc/4.3.1/998-gcc-4.3.0-fix-header.00.patch +++ b/toolchain/gcc/4.3.4/998-gcc-4.3.0-fix-header.00.patch diff --git a/toolchain/gcc/4.3.4/999-4.3.2-armeabi-aapcs-linux.patch b/toolchain/gcc/4.3.4/999-4.3.2-armeabi-aapcs-linux.patch new file mode 100644 index 000000000..f4b1c9c06 --- /dev/null +++ b/toolchain/gcc/4.3.4/999-4.3.2-armeabi-aapcs-linux.patch @@ -0,0 +1,18 @@ +\\\\ followup of PR34205; trying to use aapcs-linux +\\ gcc/ChangeLog +\\ +\\ 2008-09-18 Bernhard Reutner-Fischer <aldot@> +\\ +\\ * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs. +\\ +--- gcc-4.3.2.orig/gcc/config.gcc 2008-09-18 20:33:55.000000000 +0200 ++++ gcc-4.3.2/gcc/config.gcc 2008-09-18 21:38:52.000000000 +0200 +@@ -2921,7 +2921,7 @@ + + case "$with_abi" in + "" \ +- | apcs-gnu | atpcs | aapcs | iwmmxt ) ++ | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux ) + #OK + ;; + *) diff --git a/toolchain/gcc/4.3.4/999-4.3.3-arm-fix-for-bug-37436.patch b/toolchain/gcc/4.3.4/999-4.3.3-arm-fix-for-bug-37436.patch new file mode 100644 index 000000000..99a016fbe --- /dev/null +++ b/toolchain/gcc/4.3.4/999-4.3.3-arm-fix-for-bug-37436.patch @@ -0,0 +1,86 @@ +gcc svn 142778: + +PR target/37436 +* arm.c (arm_legitimate_index): Only accept addresses that are in +canonical form. +* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate. +* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate +for operand1. +(extendqisi2): Likewise. +(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op +predicate for operand1. + +diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.c gcc-4.3.3/gcc/config/arm/arm.c +--- gcc-4.3.3.orig/gcc/config/arm/arm.c 2008-06-11 07:52:55.000000000 -0300 ++++ gcc-4.3.3/gcc/config/arm/arm.c 2009-05-21 16:06:45.000000000 -0300 +@@ -3769,6 +3769,7 @@ + rtx xop1 = XEXP (x, 1); + + return ((arm_address_register_rtx_p (xop0, strict_p) ++ && GET_CODE(xop1) == CONST_INT + && arm_legitimate_index_p (mode, xop1, outer, strict_p)) + || (arm_address_register_rtx_p (xop1, strict_p) + && arm_legitimate_index_p (mode, xop0, outer, strict_p))); +diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.md gcc-4.3.3/gcc/config/arm/arm.md +--- gcc-4.3.3.orig/gcc/config/arm/arm.md 2007-09-04 01:44:47.000000000 -0300 ++++ gcc-4.3.3/gcc/config/arm/arm.md 2009-05-21 16:06:45.000000000 -0300 +@@ -4199,7 +4199,7 @@ + + (define_expand "extendqihi2" + [(set (match_dup 2) +- (ashift:SI (match_operand:QI 1 "general_operand" "") ++ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "") + (const_int 24))) + (set (match_operand:HI 0 "s_register_operand" "") + (ashiftrt:SI (match_dup 2) +@@ -4224,7 +4224,7 @@ + + (define_insn "*arm_extendqihi_insn" + [(set (match_operand:HI 0 "s_register_operand" "=r") +- (sign_extend:HI (match_operand:QI 1 "memory_operand" "Uq")))] ++ (sign_extend:HI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))] + "TARGET_ARM && arm_arch4" + "ldr%(sb%)\\t%0, %1" + [(set_attr "type" "load_byte") +@@ -4235,7 +4235,7 @@ + + (define_expand "extendqisi2" + [(set (match_dup 2) +- (ashift:SI (match_operand:QI 1 "general_operand" "") ++ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "") + (const_int 24))) + (set (match_operand:SI 0 "s_register_operand" "") + (ashiftrt:SI (match_dup 2) +@@ -4267,7 +4267,7 @@ + + (define_insn "*arm_extendqisi" + [(set (match_operand:SI 0 "s_register_operand" "=r") +- (sign_extend:SI (match_operand:QI 1 "memory_operand" "Uq")))] ++ (sign_extend:SI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))] + "TARGET_ARM && arm_arch4 && !arm_arch6" + "ldr%(sb%)\\t%0, %1" + [(set_attr "type" "load_byte") +@@ -4278,7 +4278,8 @@ + + (define_insn "*arm_extendqisi_v6" + [(set (match_operand:SI 0 "s_register_operand" "=r,r") +- (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,Uq")))] ++ (sign_extend:SI ++ (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "r,Uq")))] + "TARGET_ARM && arm_arch6" + "@ + sxtb%?\\t%0, %1 +diff -Nura gcc-4.3.3.orig/gcc/config/arm/predicates.md gcc-4.3.3/gcc/config/arm/predicates.md +--- gcc-4.3.3.orig/gcc/config/arm/predicates.md 2007-08-02 07:49:31.000000000 -0300 ++++ gcc-4.3.3/gcc/config/arm/predicates.md 2009-05-21 16:06:45.000000000 -0300 +@@ -234,6 +234,10 @@ + (match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND, + 0)"))) + ++(define_special_predicate "arm_reg_or_extendqisi_mem_op" ++ (ior (match_operand 0 "arm_extendqisi_mem_op") ++ (match_operand 0 "s_register_operand"))) ++ + (define_predicate "power_of_two_operand" + (match_code "const_int") + { diff --git a/toolchain/gcc/4.3.1/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch b/toolchain/gcc/4.3.4/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch index dcf01f24b..dcf01f24b 100644 --- a/toolchain/gcc/4.3.1/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch +++ b/toolchain/gcc/4.3.4/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch diff --git a/toolchain/gcc/4.3.4/powerpc-link-with-math-lib.patch.conditional b/toolchain/gcc/4.3.4/powerpc-link-with-math-lib.patch.conditional new file mode 100644 index 000000000..9d01ebaf3 --- /dev/null +++ b/toolchain/gcc/4.3.4/powerpc-link-with-math-lib.patch.conditional @@ -0,0 +1,125 @@ +See: http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00237.html +Patch by: Bernhard Reutner-Fischer + +--- gcc-4.3.3/gcc/config/t-slibgcc-elf-ver 2005-02-20 00:44:10.000000000 +1300 ++++ gcc-4.3.3-p/gcc/config/t-slibgcc-elf-ver 2009-05-06 07:05:50.000000000 +1200 +@@ -9,7 +9,7 @@ + SHLIB_OBJS = @shlib_objs@ + SHLIB_DIR = @multilib_dir@ + SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ +-SHLIB_LC = -lc ++SHLIB_LC = @libgcc_libm@ -lc + + SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ + -Wl,--soname=$(SHLIB_SONAME) \ +--- gcc-4.3.3/libgcc/configure 2008-11-21 06:09:53.000000000 +1300 ++++ gcc-4.3.3-p/libgcc/configure 2009-05-06 07:05:50.000000000 +1200 +@@ -272,7 +272,7 @@ + PACKAGE_BUGREPORT='' + + ac_unique_file="static-object.mk" +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS' + ac_subst_files='' + + # Initialize some variables set by options. +@@ -3505,6 +3505,39 @@ + fi + + ++# On powerpc libgcc_s references copysignl which is a libm function but ++# glibc apparently also provides it via libc as opposed to uClibc where ++# it lives in libm. ++echo "$as_me:$LINENO: checking for library containing copysignl" >&5 ++echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6 ++if test "${libgcc_cv_copysignl_lib+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ++ echo '#include <features.h>' > conftest.c ++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c ++ libgcc_cv_copysignl_lib="-lc" ++ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } ++ then ++ libgcc_cv_copysignl_lib="-lm" ++ fi ++ rm -f conftest.* ++ ++fi ++echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5 ++echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6 ++ ++case /${libgcc_cv_copysignl_lib}/ in ++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; ++ *) LIBGCC_LIBM= ;; ++esac ++ ++ + # Conditionalize the makefile for this target machine. + tmake_file_= + for f in ${tmake_file} +@@ -4225,6 +4258,7 @@ + s,@fixed_point@,$fixed_point,;t t + s,@vis_hide@,$vis_hide,;t t + s,@set_have_cc_tls@,$set_have_cc_tls,;t t ++s,@LIBGCC_LIBM@,$LIBGCC_LIBM,;t t + s,@tmake_file@,$tmake_file,;t t + s,@extra_parts@,$extra_parts,;t t + s,@asm_hidden_op@,$asm_hidden_op,;t t +--- gcc-4.3.3/libgcc/configure.ac 2008-11-21 06:09:53.000000000 +1300 ++++ gcc-4.3.3-p/libgcc/configure.ac 2009-05-06 07:05:50.000000000 +1200 +@@ -207,6 +207,27 @@ + fi + AC_SUBST(set_have_cc_tls) + ++# On powerpc libgcc_s references copysignl which is a libm function but ++# glibc apparently also provides it via libc as opposed to uClibc where ++# it lives in libm. ++AC_CACHE_CHECK([for library containing copysignl], ++ libgcc_cv_copysignl_lib, [ ++ echo '#include <features.h>' > conftest.c ++ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c ++ libgcc_cv_copysignl_lib="-lc" ++ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD) ++ then ++ libgcc_cv_copysignl_lib="-lm" ++ fi ++ rm -f conftest.* ++ ]) ++ ++case /${libgcc_cv_copysignl_lib}/ in ++ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; ++ *) LIBGCC_LIBM= ;; ++esac ++AC_SUBST(LIBGCC_LIBM) ++ + # Conditionalize the makefile for this target machine. + tmake_file_= + for f in ${tmake_file} +--- gcc-4.3.3/libgcc/Makefile.in 2008-06-17 21:32:34.000000000 +1200 ++++ gcc-4.3.3-p/libgcc/Makefile.in 2009-05-06 07:05:50.000000000 +1200 +@@ -40,6 +40,7 @@ + decimal_float = @decimal_float@ + enable_decimal_float = @enable_decimal_float@ + fixed_point = @fixed_point@ ++LIBGCC_LIBM = @LIBGCC_LIBM@ + + host_noncanonical = @host_noncanonical@ + +@@ -738,9 +739,10 @@ + @multilib_dir@,$(MULTIDIR),$(subst \ + @shlib_objs@,$(objects),$(subst \ + @shlib_base_name@,libgcc_s,$(subst \ ++ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \ + @shlib_map_file@,$(mapfile),$(subst \ + @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \ +- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))) ++ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))) + + libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts) + # @multilib_flags@ is still needed because this may use diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 76e7f78db..8246a9595 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -47,11 +47,6 @@ choice depends on BR2_RECENT || BR2_DEPRECATED bool "gcc 4.2.4" - config BR2_GCC_VERSION_4_3_1 - depends on !BR2_avr32 && !BR2_nios2 - depends on BR2_DEPRECATED - bool "gcc 4.3.1" - config BR2_GCC_VERSION_4_3_2 depends on !BR2_avr32 && !BR2_nios2 depends on BR2_RECENT || BR2_DEPRECATED @@ -61,6 +56,10 @@ choice depends on !BR2_avr32 && !BR2_nios2 bool "gcc 4.3.3" + config BR2_GCC_VERSION_4_3_4 + depends on !BR2_avr32 && !BR2_nios2 + bool "gcc 4.3.4" + config BR2_GCC_VERSION_4_4_X depends on !BR2_avr32 && !BR2_nios2 bool "gcc 4.4.x" @@ -102,9 +101,9 @@ config BR2_GCC_VERSION default "4.2.2" if BR2_GCC_VERSION_4_2_2 default "4.2.3" if BR2_GCC_VERSION_4_2_3 default "4.2.4" if BR2_GCC_VERSION_4_2_4 - default "4.3.1" if BR2_GCC_VERSION_4_3_1 default "4.3.2" if BR2_GCC_VERSION_4_3_2 default "4.3.3" if BR2_GCC_VERSION_4_3_3 + default "4.3.4" if BR2_GCC_VERSION_4_3_4 default "4.4.1" if BR2_GCC_VERSION_4_4_X default "4.3" if BR2_GCC_VERSION_4_3 |