diff options
Diffstat (limited to 'patches/gcc-4.7.2')
15 files changed, 0 insertions, 1277 deletions
diff --git a/patches/gcc-4.7.2/0050-Backport-PR-target-55981-from-mainline.patch b/patches/gcc-4.7.2/0050-Backport-PR-target-55981-from-mainline.patch deleted file mode 100644 index 87058ac..0000000 --- a/patches/gcc-4.7.2/0050-Backport-PR-target-55981-from-mainline.patch +++ /dev/null @@ -1,120 +0,0 @@ -From: Uros Bizjak <ubizjak@gmail.com> -Date: Thu, 17 Jan 2013 22:51:00 +0000 -Subject: [PATCH] Backport PR target/55981 from mainline - - Backport from mainline - 2012-01-17 Uros Bizjak <ubizjak@gmail.com> - - PR target/55981 - * config/i386/sync.md (atomic_store<mode>): Generate SWImode - store through atomic_store<mode>_1. - (atomic_store<mode>_1): Macroize insn using SWI mode iterator. - -testsuite/ChangeLog: - - Backport from mainline - 2012-01-17 Uros Bizjak <ubizjak@gmail.com> - - PR target/55981 - * gcc.target/pr55981.c: New test. - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - gcc/ChangeLog | 10 +++++++ - gcc/config/i386/sync.md | 13 +++++++-- - gcc/testsuite/ChangeLog | 8 ++++++ - gcc/testsuite/gcc.target/pr55981.c | 54 ++++++++++++++++++++++++++++++++++++ - 4 files changed, 83 insertions(+), 2 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/pr55981.c - -diff --git a/gcc/config/i386/sync.md b/gcc/config/i386/sync.md -index ddff1e6..79d3305 100644 ---- a/gcc/config/i386/sync.md -+++ b/gcc/config/i386/sync.md -@@ -227,8 +227,9 @@ - DONE; - } - -- /* Otherwise use a normal store. */ -- emit_move_insn (operands[0], operands[1]); -+ /* Otherwise use a store. */ -+ emit_insn (gen_atomic_store<mode>_1 (operands[0], operands[1], -+ operands[2])); - } - /* ... followed by an MFENCE, if required. */ - if (model == MEMMODEL_SEQ_CST) -@@ -236,6 +237,14 @@ - DONE; - }) - -+(define_insn "atomic_store<mode>_1" -+ [(set (match_operand:SWI 0 "memory_operand" "=m") -+ (unspec:SWI [(match_operand:SWI 1 "<nonmemory_operand>" "<r><i>") -+ (match_operand:SI 2 "const_int_operand")] -+ UNSPEC_MOVA))] -+ "" -+ "mov{<imodesuffix>}\t{%1, %0|%0, %1}") -+ - (define_insn_and_split "atomic_storedi_fpu" - [(set (match_operand:DI 0 "memory_operand" "=m,m,m") - (unspec:DI [(match_operand:DI 1 "register_operand" "x,m,?r")] -diff --git a/gcc/testsuite/gcc.target/pr55981.c b/gcc/testsuite/gcc.target/pr55981.c -new file mode 100644 -index 0000000..36498d6 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/pr55981.c -@@ -0,0 +1,54 @@ -+/* { dg-do compile { target { ! { ia32 } } } } */ -+/* { dg-options "-O2" } */ -+ -+volatile int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; -+ -+volatile long long y; -+ -+void -+test () -+{ -+ int a_ = a; -+ int b_ = b; -+ int c_ = c; -+ int d_ = d; -+ int e_ = e; -+ int f_ = f; -+ int g_ = g; -+ int h_ = h; -+ int i_ = i; -+ int j_ = j; -+ int k_ = k; -+ int l_ = l; -+ int m_ = m; -+ int n_ = n; -+ int o_ = o; -+ int p_ = p; -+ -+ int z; -+ -+ for (z = 0; z < 1000; z++) -+ { -+ __atomic_store_n (&y, 0x100000002ll, __ATOMIC_SEQ_CST); -+ __atomic_store_n (&y, 0x300000004ll, __ATOMIC_SEQ_CST); -+ } -+ -+ a = a_; -+ b = b_; -+ c = c_; -+ d = d_; -+ e = e_; -+ f = f_; -+ g = g_; -+ h = h_; -+ i = i_; -+ j = j_; -+ k = k_; -+ l = l_; -+ m = m_; -+ n = n_; -+ o = o_; -+ p = p_; -+} -+ -+/* { dg-final { scan-assembler-times "movabs" 2 } } */ diff --git a/patches/gcc-4.7.2/0051-Backport-PR-target-56028-from-mainline.patch b/patches/gcc-4.7.2/0051-Backport-PR-target-56028-from-mainline.patch deleted file mode 100644 index acebe99..0000000 --- a/patches/gcc-4.7.2/0051-Backport-PR-target-56028-from-mainline.patch +++ /dev/null @@ -1,510 +0,0 @@ -From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> -Date: Sun, 27 Jan 2013 14:28:19 +0000 -Subject: [PATCH] Backport PR target/56028 from mainline - -Backport from mainline 2013-01-22 Uros Bizjak <ubizjak@gmail.com> - - PR target/56028 - * config/i386/i386.md (*movti_internal_rex64): Change (o,riF) - alternative to (o,r). - (*movdi_internal_rex64): Remove (!o,n) alternative. - (DImode immediate->memory splitter): Remove. - (DImode immediate->memory peephole2): Remove. - (movtf): Enable for TARGET_64BIT || TARGET_SSE. - (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r) - alternative to (!o,*r). - (*movtf_internal_sse): New pattern. - (*movxf_internal_rex64): New pattern. - (*movxf_internal): Disable for TARGET_64BIT. - (*movdf_internal_rex64): Remove (!o,F) alternative. - - 2013-01-23 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (*movdf_internal_rex64): Disparage alternatives - involving stack registers slightly. - - 2013-01-24 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/constraints.md (Yf): New constraint. - * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead - of f constraint to conditionaly disable x87 register preferences. - (*movdf_internal): Ditto. - (*movsf_internal): Ditto. - - 2012-01-24 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative. - (*movtf_internal_rex64): Add (!o,C) alternative - (*movxf_internal_rex64): Ditto. - (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives. - -testsuite/ChangeLog: - - Backport from mainline - 2013-01-22 Uros Bizjak <ubizjak@gmail.com> - - PR target/56028 - * gcc.target/i386/pr56028.c: New test. - - 2013-01-24 Uros Bizjak <ubizjak@gmail.com> - - * gcc.target/i386/movsd.c: New test. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@195495 138bc75d-0d04-0410-961f-82ee72b054a4 - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - gcc/ChangeLog | 39 ++++++ - gcc/config/i386/constraints.md | 5 + - gcc/config/i386/i386.md | 197 +++++++++++++++++++------------ - gcc/testsuite/ChangeLog | 12 ++ - gcc/testsuite/gcc.target/i386/movsd.c | 15 +++ - gcc/testsuite/gcc.target/i386/pr56028.c | 54 +++++++++ - 6 files changed, 249 insertions(+), 73 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/i386/movsd.c - create mode 100644 gcc/testsuite/gcc.target/i386/pr56028.c - -diff --git a/gcc/config/i386/constraints.md b/gcc/config/i386/constraints.md -index 5a19307..25327dd 100644 ---- a/gcc/config/i386/constraints.md -+++ b/gcc/config/i386/constraints.md -@@ -92,6 +92,7 @@ - ;; p Integer register when TARGET_PARTIAL_REG_STALL is disabled - ;; d Integer register when integer DFmode moves are enabled - ;; x Integer register when integer XFmode moves are enabled -+;; f x87 register when 80387 floating point arithmetic is enabled - - (define_register_constraint "Yz" "TARGET_SSE ? SSE_FIRST_REG : NO_REGS" - "First SSE register (@code{%xmm0}).") -@@ -118,6 +119,10 @@ - "optimize_function_for_speed_p (cfun) ? GENERAL_REGS : NO_REGS" - "@internal Any integer register when integer XFmode moves are enabled.") - -+(define_register_constraint "Yf" -+ "(ix86_fpmath & FPMATH_387) ? FLOAT_REGS : NO_REGS" -+ "@internal Any x87 register when 80387 FP arithmetic is enabled.") -+ - (define_constraint "z" - "@internal Constant call address operand." - (match_operand 0 "constant_call_address_operand")) -diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md -index eace56d..16dafb3 100644 ---- a/gcc/config/i386/i386.md -+++ b/gcc/config/i386/i386.md -@@ -1824,8 +1824,8 @@ - (set_attr "mode" "OI")]) - - (define_insn "*movti_internal_rex64" -- [(set (match_operand:TI 0 "nonimmediate_operand" "=!r,o,x,x,xm") -- (match_operand:TI 1 "general_operand" "riFo,riF,C,xm,x"))] -+ [(set (match_operand:TI 0 "nonimmediate_operand" "=!r,o,x,x,m") -+ (match_operand:TI 1 "general_operand" "riFo,re,C,xm,x"))] - "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))" - { - switch (which_alternative) -@@ -1928,9 +1928,9 @@ - - (define_insn "*movdi_internal_rex64" - [(set (match_operand:DI 0 "nonimmediate_operand" -- "=r,r ,r,m ,!o,*y,m*y,?*y,?r ,?*Ym,*x,m ,*x,*x,?r ,?*Yi,?*x,?*Ym") -+ "=r,r ,r,m ,*y,m*y,?*y,?r ,?*Ym,*x,m ,*x,*x,?r ,?*Yi,?*x,?*Ym") - (match_operand:DI 1 "general_operand" -- "Z ,rem,i,re,n ,C ,*y ,m ,*Ym,r ,C ,*x,*x,m ,*Yi,r ,*Ym,*x"))] -+ "Z ,rem,i,re,C ,*y ,m ,*Ym,r ,C ,*x,*x,m ,*Yi,r ,*Ym,*x"))] - "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))" - { - switch (get_attr_type (insn)) -@@ -1963,9 +1963,6 @@ - case TYPE_MMX: - return "pxor\t%0, %0"; - -- case TYPE_MULTI: -- return "#"; -- - case TYPE_LEA: - return "lea{q}\t{%E1, %0|%0, %E1}"; - -@@ -1983,16 +1980,14 @@ - } - [(set (attr "type") - (cond [(eq_attr "alternative" "4") -- (const_string "multi") -- (eq_attr "alternative" "5") - (const_string "mmx") -- (eq_attr "alternative" "6,7,8,9") -+ (eq_attr "alternative" "5,6,7,8") - (const_string "mmxmov") -- (eq_attr "alternative" "10") -+ (eq_attr "alternative" "9") - (const_string "sselog1") -- (eq_attr "alternative" "11,12,13,14,15") -+ (eq_attr "alternative" "10,11,12,13,14") - (const_string "ssemov") -- (eq_attr "alternative" "16,17") -+ (eq_attr "alternative" "15,16") - (const_string "ssecvt") - (match_operand 1 "pic_32bit_operand" "") - (const_string "lea") -@@ -2009,18 +2004,18 @@ - (const_string "8") - (const_string "*"))) - (set (attr "prefix_rex") -- (if_then_else (eq_attr "alternative" "8,9") -+ (if_then_else (eq_attr "alternative" "7,8") - (const_string "1") - (const_string "*"))) - (set (attr "prefix_data16") -- (if_then_else (eq_attr "alternative" "11") -+ (if_then_else (eq_attr "alternative" "10") - (const_string "1") - (const_string "*"))) - (set (attr "prefix") -- (if_then_else (eq_attr "alternative" "10,11,12,13,14,15") -+ (if_then_else (eq_attr "alternative" "11,12,13,14,15") - (const_string "maybe_vex") - (const_string "orig"))) -- (set_attr "mode" "SI,DI,DI,DI,SI,DI,DI,DI,DI,DI,TI,DI,TI,DI,DI,DI,DI,DI")]) -+ (set_attr "mode" "SI,DI,DI,DI,DI,DI,DI,DI,DI,TI,DI,TI,DI,DI,DI,DI,DI")]) - - ;; Reload patterns to support multi-word load/store - ;; with non-offsetable address. -@@ -2056,41 +2051,6 @@ - DONE; - }) - --;; Convert impossible stores of immediate to existing instructions. --;; First try to get scratch register and go through it. In case this --;; fails, move by 32bit parts. --(define_peephole2 -- [(match_scratch:DI 2 "r") -- (set (match_operand:DI 0 "memory_operand" "") -- (match_operand:DI 1 "immediate_operand" ""))] -- "TARGET_64BIT && !symbolic_operand (operands[1], DImode) -- && !x86_64_immediate_operand (operands[1], DImode)" -- [(set (match_dup 2) (match_dup 1)) -- (set (match_dup 0) (match_dup 2))]) -- --;; We need to define this as both peepholer and splitter for case --;; peephole2 pass is not run. --;; "&& 1" is needed to keep it from matching the previous pattern. --(define_peephole2 -- [(set (match_operand:DI 0 "memory_operand" "") -- (match_operand:DI 1 "immediate_operand" ""))] -- "TARGET_64BIT && !symbolic_operand (operands[1], DImode) -- && !x86_64_immediate_operand (operands[1], DImode) && 1" -- [(set (match_dup 2) (match_dup 3)) -- (set (match_dup 4) (match_dup 5))] -- "split_double_mode (DImode, &operands[0], 2, &operands[2], &operands[4]);") -- --(define_split -- [(set (match_operand:DI 0 "memory_operand" "") -- (match_operand:DI 1 "immediate_operand" ""))] -- "TARGET_64BIT && ((optimize > 0 && flag_peephole2) -- ? epilogue_completed : reload_completed) -- && !symbolic_operand (operands[1], DImode) -- && !x86_64_immediate_operand (operands[1], DImode)" -- [(set (match_dup 2) (match_dup 3)) -- (set (match_dup 4) (match_dup 5))] -- "split_double_mode (DImode, &operands[0], 2, &operands[2], &operands[4]);") -- - (define_insn "*movdi_internal" - [(set (match_operand:DI 0 "nonimmediate_operand" - "=r ,o ,*y,m*y,*y,*x,m ,*x,*x,*x,m ,*x,*x,?*x,?*Ym") -@@ -2798,7 +2758,7 @@ - (define_expand "movtf" - [(set (match_operand:TF 0 "nonimmediate_operand" "") - (match_operand:TF 1 "nonimmediate_operand" ""))] -- "TARGET_SSE2" -+ "TARGET_64BIT || TARGET_SSE2" - { - ix86_expand_move (TFmode, operands); - DONE; -@@ -2810,11 +2770,10 @@ - "" - "ix86_expand_move (<MODE>mode, operands); DONE;") - --(define_insn "*movtf_internal" -+(define_insn "*movtf_internal_rex64" - [(set (match_operand:TF 0 "nonimmediate_operand" "=x,m,x,?*r ,!o") -- (match_operand:TF 1 "general_operand" "xm,x,C,*roF,F*r"))] -- "TARGET_SSE2 -- && !(MEM_P (operands[0]) && MEM_P (operands[1])) -+ (match_operand:TF 1 "general_operand" "xm,x,C,*roF,*r"))] -+ "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (!can_create_pseudo_p () - || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) - || GET_CODE (operands[1]) != CONST_DOUBLE -@@ -2873,11 +2832,103 @@ - (const_string "TI"))] - (const_string "DI")))]) - -+(define_insn "*movtf_internal_sse2" -+ [(set (match_operand:TF 0 "nonimmediate_operand" "=x,m,x") -+ (match_operand:TF 1 "general_operand" "xm,x,C"))] -+ "TARGET_SSE2 && !TARGET_64BIT -+ && !(MEM_P (operands[0]) && MEM_P (operands[1])) -+ && (!can_create_pseudo_p () -+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) -+ || GET_CODE (operands[1]) != CONST_DOUBLE -+ || (optimize_function_for_size_p (cfun) -+ && standard_sse_constant_p (operands[1]) -+ && !memory_operand (operands[0], TFmode)) -+ || (!TARGET_MEMORY_MISMATCH_STALL -+ && memory_operand (operands[0], TFmode)))" -+{ -+ switch (which_alternative) -+ { -+ case 0: -+ case 1: -+ /* Handle misaligned load/store since we -+ don't have movmisaligntf pattern. */ -+ if (misaligned_operand (operands[0], TFmode) -+ || misaligned_operand (operands[1], TFmode)) -+ { -+ if (get_attr_mode (insn) == MODE_V4SF) -+ return "%vmovups\t{%1, %0|%0, %1}"; -+ else -+ return "%vmovdqu\t{%1, %0|%0, %1}"; -+ } -+ else -+ { -+ if (get_attr_mode (insn) == MODE_V4SF) -+ return "%vmovaps\t{%1, %0|%0, %1}"; -+ else -+ return "%vmovdqa\t{%1, %0|%0, %1}"; -+ } -+ -+ case 2: -+ return standard_sse_constant_opcode (insn, operands[1]); -+ -+ default: -+ gcc_unreachable (); -+ } -+} -+ [(set_attr "type" "ssemov,ssemov,sselog1") -+ (set_attr "prefix" "maybe_vex") -+ (set (attr "mode") -+ (cond [(eq_attr "alternative" "0,2") -+ (if_then_else -+ (match_test "optimize_function_for_size_p (cfun)") -+ (const_string "V4SF") -+ (const_string "TI")) -+ (eq_attr "alternative" "1") -+ (if_then_else -+ (ior (match_test "TARGET_SSE_TYPELESS_STORES") -+ (match_test "optimize_function_for_size_p (cfun)")) -+ (const_string "V4SF") -+ (const_string "TI"))] -+ (const_string "DI")))]) -+ -+(define_insn "*movxf_internal_rex64" -+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,f,?Yx*r ,!o") -+ (match_operand:XF 1 "general_operand" "fm,f,G,Yx*roF,Yx*rC"))] -+ "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) -+ && (!can_create_pseudo_p () -+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) -+ || GET_CODE (operands[1]) != CONST_DOUBLE -+ || (optimize_function_for_size_p (cfun) -+ && standard_80387_constant_p (operands[1]) > 0 -+ && !memory_operand (operands[0], XFmode)) -+ || (!TARGET_MEMORY_MISMATCH_STALL -+ && memory_operand (operands[0], XFmode)))" -+{ -+ switch (which_alternative) -+ { -+ case 0: -+ case 1: -+ return output_387_reg_move (insn, operands); -+ -+ case 2: -+ return standard_80387_constant_opcode (operands[1]); -+ -+ case 3: -+ case 4: -+ return "#"; -+ -+ default: -+ gcc_unreachable (); -+ } -+} -+ [(set_attr "type" "fmov,fmov,fmov,multi,multi") -+ (set_attr "mode" "XF,XF,XF,SI,SI")]) -+ - ;; Possible store forwarding (partial memory) stall in alternative 4. - (define_insn "*movxf_internal" - [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,f,?Yx*r ,!o") -- (match_operand:XF 1 "general_operand" "fm,f,G,Yx*roF,FYx*r"))] -- "!(MEM_P (operands[0]) && MEM_P (operands[1])) -+ (match_operand:XF 1 "general_operand" "fm,f,G,Yx*roF,Yx*rF"))] -+ "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (!can_create_pseudo_p () - || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) - || GET_CODE (operands[1]) != CONST_DOUBLE -@@ -2909,9 +2960,9 @@ - - (define_insn "*movdf_internal_rex64" - [(set (match_operand:DF 0 "nonimmediate_operand" -- "=f,m,f,?r,?m,?r,!o,x,x,x,m,Yi,r ") -+ "=?Yf*f,?m ,?Yf*f,?r,?m,?r,?r,x,x,x,m,Yi,r ") - (match_operand:DF 1 "general_operand" -- "fm,f,G,rm,r ,F ,F ,C,x,m,x,r ,Yi"))] -+ "Yf*fm ,Yf*f ,G ,rm,rC,C ,F ,C,x,m,x,r ,Yi"))] - "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (!can_create_pseudo_p () - || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) -@@ -2937,10 +2988,10 @@ - return "mov{q}\t{%1, %0|%0, %1}"; - - case 5: -- return "movabs{q}\t{%1, %0|%0, %1}"; -+ return "mov{l}\t{%1, %k0|%k0, %1}"; - - case 6: -- return "#"; -+ return "movabs{q}\t{%1, %0|%0, %1}"; - - case 7: - return standard_sse_constant_opcode (insn, operands[1]); -@@ -2982,22 +3033,20 @@ - [(set (attr "type") - (cond [(eq_attr "alternative" "0,1,2") - (const_string "fmov") -- (eq_attr "alternative" "3,4,5") -+ (eq_attr "alternative" "3,4,5,6") - (const_string "imov") -- (eq_attr "alternative" "6") -- (const_string "multi") - (eq_attr "alternative" "7") - (const_string "sselog1") - ] - (const_string "ssemov"))) - (set (attr "modrm") - (if_then_else -- (and (eq_attr "alternative" "5") (eq_attr "type" "imov")) -+ (and (eq_attr "alternative" "6") (eq_attr "type" "imov")) - (const_string "0") - (const_string "*"))) - (set (attr "length_immediate") - (if_then_else -- (and (eq_attr "alternative" "5") (eq_attr "type" "imov")) -+ (and (eq_attr "alternative" "6") (eq_attr "type" "imov")) - (const_string "8") - (const_string "*"))) - (set (attr "prefix") -@@ -3011,8 +3060,10 @@ - (set (attr "mode") - (cond [(eq_attr "alternative" "0,1,2") - (const_string "DF") -- (eq_attr "alternative" "3,4,5,6,11,12") -+ (eq_attr "alternative" "3,4,6,11,12") - (const_string "DI") -+ (eq_attr "alternative" "5") -+ (const_string "SI") - - /* xorps is one byte shorter. */ - (eq_attr "alternative" "7") -@@ -3050,9 +3101,9 @@ - ;; Possible store forwarding (partial memory) stall in alternative 4. - (define_insn "*movdf_internal" - [(set (match_operand:DF 0 "nonimmediate_operand" -- "=f,m,f,?Yd*r ,!o ,x,x,x,m,*x,*x,*x,m") -+ "=Yf*f,m ,Yf*f,?Yd*r ,!o ,x,x,x,m,*x,*x,*x,m") - (match_operand:DF 1 "general_operand" -- "fm,f,G,Yd*roF,FYd*r,C,x,m,x,C ,*x,m ,*x"))] -+ "Yf*fm,Yf*f,G ,Yd*roF,Yd*rF,C,x,m,x,C ,*x,m ,*x"))] - "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (!can_create_pseudo_p () - || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) -@@ -3184,9 +3235,9 @@ - - (define_insn "*movsf_internal" - [(set (match_operand:SF 0 "nonimmediate_operand" -- "=f,m,f,?r ,?m,x,x,x,m,!*y,!m,!*y,?Yi,?r,!*Ym,!r") -+ "=Yf*f,m ,Yf*f,?r ,?m,x,x,x,m,!*y,!m,!*y,?Yi,?r,!*Ym,!r") - (match_operand:SF 1 "general_operand" -- "fm,f,G,rmF,Fr,C,x,m,x,m ,*y,*y ,r ,Yi,r ,*Ym"))] -+ "Yf*fm,Yf*f,G ,rmF,rF,C,x,m,x,m ,*y,*y ,r ,Yi,r ,*Ym"))] - "!(MEM_P (operands[0]) && MEM_P (operands[1])) - && (!can_create_pseudo_p () - || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) -diff --git a/gcc/testsuite/gcc.target/i386/movsd.c b/gcc/testsuite/gcc.target/i386/movsd.c -new file mode 100644 -index 0000000..32a19e7 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/i386/movsd.c -@@ -0,0 +1,15 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O3 -msse2 -mfpmath=sse" } */ -+ -+volatile double y; -+ -+void -+test () -+{ -+ int z; -+ -+ for (z = 0; z < 1000; z++) -+ y = 1.23; -+} -+ -+/* { dg-final { scan-assembler-not "(fld|fst)" } } */ -diff --git a/gcc/testsuite/gcc.target/i386/pr56028.c b/gcc/testsuite/gcc.target/i386/pr56028.c -new file mode 100644 -index 0000000..18ae253 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/i386/pr56028.c -@@ -0,0 +1,54 @@ -+/* { dg-do compile { target { ! { ia32 } } } } */ -+/* { dg-options "-O2" } */ -+ -+volatile int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; -+ -+volatile long long y; -+ -+void -+test () -+{ -+ int a_ = a; -+ int b_ = b; -+ int c_ = c; -+ int d_ = d; -+ int e_ = e; -+ int f_ = f; -+ int g_ = g; -+ int h_ = h; -+ int i_ = i; -+ int j_ = j; -+ int k_ = k; -+ int l_ = l; -+ int m_ = m; -+ int n_ = n; -+ int o_ = o; -+ int p_ = p; -+ -+ int z; -+ -+ for (z = 0; z < 1000; z++) -+ { -+ y = 0x100000002ll; -+ y = 0x300000004ll; -+ } -+ -+ a = a_; -+ b = b_; -+ c = c_; -+ d = d_; -+ e = e_; -+ f = f_; -+ g = g_; -+ h = h_; -+ i = i_; -+ j = j_; -+ k = k_; -+ l = l_; -+ m = m_; -+ n = n_; -+ o = o_; -+ p = p_; -+} -+ -+/* { dg-final { scan-assembler-times "movabs" 2 } } */ diff --git a/patches/gcc-4.7.2/0100-no-host-includes.patch b/patches/gcc-4.7.2/0100-no-host-includes.patch deleted file mode 100644 index 0d901a7..0000000 --- a/patches/gcc-4.7.2/0100-no-host-includes.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:06 +0100 -Subject: [PATCH] no host includes - -With this patch gcc bails out if you include a host include path into -the searchlist (-I). This patch is not intended for upstream and was -inspired by - -http://www.openembedded.org/repo/org.openembedded.dev/packages/gcc/gcc-4.1.1/zecke-no-host-includes.patch - -Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - gcc/incpath.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/gcc/incpath.c b/gcc/incpath.c -index 6693bf5..edddc73 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -429,6 +429,34 @@ add_path (char *path, int chain, int cxx_aware, bool user_supplied_p) - p->construct = 0; - p->user_supplied_p = user_supplied_p; - -+#ifdef CROSS_COMPILE -+ /* A common error when cross compiling is including -+ host headers. This code below will try to fail fast -+ for cross compiling. Currently we consider /usr/include, -+ /opt/include and /sw/include as harmful. */ -+ { -+ unsigned int i; -+ const char *bad_path[] = { -+ "/usr/include", -+ "/usr/local/include", -+ "/sw/include", -+ "/opt/include", -+ }; -+ -+ for (i = 0; i < sizeof(bad_path)/sizeof(bad_path[0]); i++) { -+ if( strstr(p->name, bad_path[i]) == p->name ) { -+ fprintf(stderr,_("\n" -+ "CROSS COMPILE Badness: %s in INCLUDEPATH: %s\n" -+ "\n"), -+ -+ bad_path[i], p->name); -+ -+ exit (FATAL_EXIT_CODE); -+ } -+ } -+ } -+#endif -+ - add_cpp_dir_path (p, chain); - } - diff --git a/patches/gcc-4.7.2/0101-gcc-i386-use-pure64-CLFS-patch.patch b/patches/gcc-4.7.2/0101-gcc-i386-use-pure64-CLFS-patch.patch deleted file mode 100644 index 455593f..0000000 --- a/patches/gcc-4.7.2/0101-gcc-i386-use-pure64-CLFS-patch.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: =?UTF-8?q?Andreas=20Bie=C3=9Fmann?= <andreas@biessmann.de> -Date: Thu, 9 Feb 2012 13:59:12 +0100 -Subject: [PATCH] gcc/i386: use pure64 CLFS patch -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a modified version of -http://trac.cross-lfs.org/browser/patches/gcc-4.6.0-pure64-1.patch to use /lib -instead of /lib64 for x86_64. -This will only work as generic patch, if we do _not_ build multilib x86 -toolchains. - -Signed-off-by: Andreas Bießmann <andreas@biessmann.de> ---- - gcc/config/i386/linux64.h | 4 ++-- - gcc/config/i386/t-linux64 | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h -index 5b0a212..e4d02cc 100644 ---- a/gcc/config/i386/linux64.h -+++ b/gcc/config/i386/linux64.h -@@ -28,6 +28,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define GNU_USER_LINK_EMULATION64 "elf_x86_64" - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" - #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 -index b5d3985..03d8f32 100644 ---- a/gcc/config/i386/t-linux64 -+++ b/gcc/config/i386/t-linux64 -@@ -34,6 +34,6 @@ - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) - MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64 --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) -+MULTILIB_OSDIRNAMES = m64=../lib -+MULTILIB_OSDIRNAMES+= m32=../lib32 - MULTILIB_OSDIRNAMES+= mx32=../libx32 diff --git a/patches/gcc-4.7.2/0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch b/patches/gcc-4.7.2/0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch deleted file mode 100644 index f35a02a..0000000 --- a/patches/gcc-4.7.2/0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Wed, 5 Dec 2012 17:17:52 +0100 -Subject: [PATCH] libgcc: reorder $tmake_file for arm*-*-uclinux* - -arm/t-arm must be first in the list. It overwrites variables instead of -appending, so anything set before is lost. - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - libgcc/config.host | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libgcc/config.host b/libgcc/config.host -index ef9791b..bcb30fa 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -339,7 +339,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" - ;; - arm*-*-uclinux*) # ARM ucLinux -- tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" -+ tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" - case ${host} in - arm*-*-uclinux*eabi) - tmake_file="${tmake_file} arm/t-bpabi" -@@ -347,7 +347,7 @@ arm*-*-uclinux*) # ARM ucLinux - unwind_header=config/arm/unwind-arm.h - ;; - esac -- tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" -+ tmake_file="$tmake_file arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" - extra_parts="$extra_parts crti.o crtn.o" - ;; - arm*-*-ecos-elf) diff --git a/patches/gcc-4.7.2/0200-also-match-uclibc-when-checking-host-os.patch b/patches/gcc-4.7.2/0200-also-match-uclibc-when-checking-host-os.patch deleted file mode 100644 index df5e1cf..0000000 --- a/patches/gcc-4.7.2/0200-also-match-uclibc-when-checking-host-os.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Robert Schwebel <r.schwebel@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:07 +0100 -Subject: [PATCH] also match uclibc when checking host os - -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - contrib/regression/objs-gcc.sh | 4 ++++ - libjava/classpath/ltconfig | 4 ++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh -index 60b0497..6dc7ead 100755 ---- a/contrib/regression/objs-gcc.sh -+++ b/contrib/regression/objs-gcc.sh -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ] - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 -diff --git a/libjava/classpath/ltconfig b/libjava/classpath/ltconfig -index 743d951..ae4ea60 100755 ---- a/libjava/classpath/ltconfig -+++ b/libjava/classpath/ltconfig -@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in --linux-gnu*) ;; -+linux-gnu*|linux-uclibc*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - -@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux*) - version_type=linux - need_lib_prefix=no - need_version=no diff --git a/patches/gcc-4.7.2/0201-missing-execinfo.h.patch b/patches/gcc-4.7.2/0201-missing-execinfo.h.patch deleted file mode 100644 index 29c41f3..0000000 --- a/patches/gcc-4.7.2/0201-missing-execinfo.h.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Schwebel <r.schwebel@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:07 +0100 -Subject: [PATCH] missing execinfo.h - -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - boehm-gc/include/gc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h -index c51e017..a7ba8dc 100644 ---- a/boehm-gc/include/gc.h -+++ b/boehm-gc/include/gc.h -@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb)); - #if defined(__linux__) || defined(__GLIBC__) - # include <features.h> - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ -- && !defined(__ia64__) -+ && !defined(__ia64__) && !defined(__UCLIBC__) - # ifndef GC_HAVE_BUILTIN_BACKTRACE - # define GC_HAVE_BUILTIN_BACKTRACE - # endif diff --git a/patches/gcc-4.7.2/0202-c99-snprintf.patch b/patches/gcc-4.7.2/0202-c99-snprintf.patch deleted file mode 100644 index 2df3649..0000000 --- a/patches/gcc-4.7.2/0202-c99-snprintf.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Schwebel <r.schwebel@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:07 +0100 -Subject: [PATCH] c99 snprintf - -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - libstdc++-v3/include/c_global/cstdio | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libstdc++-v3/include/c_global/cstdio b/libstdc++-v3/include/c_global/cstdio -index e648475..a3b0ad1 100644 ---- a/libstdc++-v3/include/c_global/cstdio -+++ b/libstdc++-v3/include/c_global/cstdio -@@ -140,7 +140,7 @@ namespace std - using ::vsprintf; - } // namespace - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined __UCLIBC__ - - #undef snprintf - #undef vfscanf diff --git a/patches/gcc-4.7.2/0203-libmudflap-susv3-legacy.patch b/patches/gcc-4.7.2/0203-libmudflap-susv3-legacy.patch deleted file mode 100644 index 8171511..0000000 --- a/patches/gcc-4.7.2/0203-libmudflap-susv3-legacy.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: Robert Schwebel <r.schwebel@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:07 +0100 -Subject: [PATCH] libmudflap susv3 legacy - -uclibc does not provide bzero, bcopy, index ... - -This patch was taken from uclibc. - -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - libmudflap/mf-hooks2.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/libmudflap/mf-hooks2.c b/libmudflap/mf-hooks2.c -index c030e69..a5be804 100644 ---- a/libmudflap/mf-hooks2.c -+++ b/libmudflap/mf-hooks2.c -@@ -424,7 +424,7 @@ WRAPPER2(void, bzero, void *s, size_t n) - { - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); -- bzero (s, n); -+ memset (s, 0, n); - } - - -@@ -434,7 +434,7 @@ WRAPPER2(void, bcopy, const void *src, void *dest, size_t n) - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); - MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); -- bcopy (src, dest, n); -+ memmove (dest, src, n); - } - - -@@ -444,7 +444,7 @@ WRAPPER2(int, bcmp, const void *s1, const void *s2, size_t n) - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); - MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); -- return bcmp (s1, s2, n); -+ return n == 0 ? 0 : memcmp (s1, s2, n); - } - - -@@ -453,7 +453,7 @@ WRAPPER2(char *, index, const char *s, int c) - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); -- return index (s, c); -+ return strchr (s, c); - } - - -@@ -462,7 +462,7 @@ WRAPPER2(char *, rindex, const char *s, int c) - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); -- return rindex (s, c); -+ return strrchr (s, c); - } - - /* XXX: stpcpy, memccpy */ diff --git a/patches/gcc-4.7.2/0300-libiberty-pic.patch b/patches/gcc-4.7.2/0300-libiberty-pic.patch deleted file mode 100644 index 6ac495a..0000000 --- a/patches/gcc-4.7.2/0300-libiberty-pic.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:08 +0100 -Subject: [PATCH] libiberty pic - -Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - libiberty/Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index 5280bc1..d7b99dd 100644 ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -248,6 +248,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) - $(AR) $(AR_FLAGS) $(TARGETLIB) \ - $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ - $(RANLIB) $(TARGETLIB); \ -+ cp $(TARGETLIB) ../ ; \ - cd ..; \ - else true; fi - diff --git a/patches/gcc-4.7.2/0301-libstdc-pic.patch b/patches/gcc-4.7.2/0301-libstdc-pic.patch deleted file mode 100644 index 2166828..0000000 --- a/patches/gcc-4.7.2/0301-libstdc-pic.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Date: Tue, 1 Nov 2011 18:25:08 +0100 -Subject: [PATCH] libstdc++ pic - -Install libstdc++_pic.a if we have pic objs. Taken from gentoo. - -Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> -Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> ---- - libstdc++-v3/src/Makefile.am | 7 +++++++ - libstdc++-v3/src/Makefile.in | 9 ++++++++- - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am -index a1eb04d..8fdb33e 100644 ---- a/libstdc++-v3/src/Makefile.am -+++ b/libstdc++-v3/src/Makefile.am -@@ -164,6 +164,13 @@ CXXLINK = \ - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ - - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Symbol versioning for shared libraries. - if ENABLE_SYMVERS - libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ -diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in -index b10d853..871531d 100644 ---- a/libstdc++-v3/src/Makefile.in -+++ b/libstdc++-v3/src/Makefile.in -@@ -732,7 +732,7 @@ install-dvi: install-dvi-recursive - - install-dvi-am: - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-html: install-html-recursive - -@@ -924,6 +924,13 @@ install-debug: build-debug - (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; - -+install-exec-local: -+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ -+ if [ x"$$pic_objs" != x ]; then \ -+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ -+ fi -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/patches/gcc-4.7.2/0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch b/patches/gcc-4.7.2/0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch deleted file mode 100644 index a453e35..0000000 --- a/patches/gcc-4.7.2/0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch +++ /dev/null @@ -1,137 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Mon, 3 Dec 2012 13:49:03 +0100 -Subject: [PATCH] add support for arm-linux-*eabi* triplets; useful for armhf - -This is needed to build with e.g. --target=arm-cortexa8-linux-gnueabihf -Taken from Debian. - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - gcc/ada/gcc-interface/Makefile.in | 2 +- - gcc/config.gcc | 4 ++-- - gcc/testsuite/lib/target-supports.exp | 4 ++-- - libgcc/config.host | 2 +- - libjava/configure.ac | 2 +- - libstdc++-v3/configure.host | 2 +- - .../testsuite/20_util/make_signed/requirements/typedefs-2.cc | 2 +- - .../testsuite/20_util/make_unsigned/requirements/typedefs-2.cc | 2 +- - 8 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in -index f9e7eda..a8ee610 100644 ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -1867,7 +1867,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),) - LIBRARY_VERSION := $(LIB_VERSION) - endif - --ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),) -+ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),) - LIBGNAT_TARGET_PAIRS = \ - a-intnam.ads<a-intnam-linux.ads \ - s-inmaop.adb<s-inmaop-posix.adb \ -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 5fcd192..fbacc3d 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -850,7 +850,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF - esac - tmake_file="${tmake_file} arm/t-arm" - case ${target} in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" - # Define multilib configuration for arm-linux-androideabi. -@@ -877,7 +877,7 @@ arm*-*-uclinux*) # ARM ucLinux - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h" - tmake_file="arm/t-arm arm/t-arm-elf" - case ${target} in -- arm*-*-uclinux*eabi) -+ arm*-*-uclinux*eabi*) - tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" - tmake_file="$tmake_file arm/t-bpabi" - # The BPABI long long divmod functions return a 128-bit value in -diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp -index 63dc0be..fcbdb62 100644 ---- a/gcc/testsuite/lib/target-supports.exp -+++ b/gcc/testsuite/lib/target-supports.exp -@@ -3860,7 +3860,7 @@ proc check_effective_target_sync_int_long { } { - || [istarget i?86-*-*] - || [istarget x86_64-*-*] - || [istarget alpha*-*-*] -- || [istarget arm*-*-linux-gnueabi] -+ || [istarget arm*-*-linux-*eabi*] - || [istarget bfin*-*linux*] - || [istarget hppa*-*linux*] - || [istarget s390*-*-*] -@@ -3890,7 +3890,7 @@ proc check_effective_target_sync_char_short { } { - || [istarget i?86-*-*] - || [istarget x86_64-*-*] - || [istarget alpha*-*-*] -- || [istarget arm*-*-linux-gnueabi] -+ || [istarget arm*-*-linux-*eabi*] - || [istarget hppa*-*linux*] - || [istarget s390*-*-*] - || [istarget powerpc*-*-*] -diff --git a/libgcc/config.host b/libgcc/config.host -index ef9791b..e9da271 100644 ---- a/libgcc/config.host -+++ b/libgcc/config.host -@@ -327,7 +327,7 @@ arm*-*-netbsdelf*) - arm*-*-linux*) # ARM GNU/Linux with ELF - tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" - case ${host} in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" - tm_file="$tm_file arm/bpabi-lib.h" - unwind_header=config/arm/unwind-arm.h -diff --git a/libjava/configure.ac b/libjava/configure.ac -index 8a25a42..0c71b48 100644 ---- a/libjava/configure.ac -+++ b/libjava/configure.ac -@@ -931,7 +931,7 @@ case "${host}" in - # on Darwin -single_module speeds up loading of the dynamic libraries. - extra_ldflags_libjava=-Wl,-single_module - ;; --arm*linux*eabi) -+arm*-*-linux-*eabi*) - # Some of the ARM unwinder code is actually in libstdc++. We - # could in principle replicate it in libgcj, but it's better to - # have a dependency on libstdc++. -diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host -index ca4d819..b0e2cd9 100644 ---- a/libstdc++-v3/configure.host -+++ b/libstdc++-v3/configure.host -@@ -340,7 +340,7 @@ case "${host}" in - fi - esac - case "${host}" in -- arm*-*-linux-*eabi) -+ arm*-*-linux-*eabi*) - port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver" - ;; - esac -diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc -index adf3af4..9c43171 100644 ---- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc -+++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc -@@ -1,5 +1,5 @@ - // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } --// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } } - - // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> - // -diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc -index a1465d3..5a81789 100644 ---- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc -+++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc -@@ -1,5 +1,5 @@ - // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } --// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } -+// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux-*eabi* } } - - // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> - // diff --git a/patches/gcc-4.7.2/0500-Fix-Argument-list-too-long-error.patch b/patches/gcc-4.7.2/0500-Fix-Argument-list-too-long-error.patch deleted file mode 100644 index 8d5eeae..0000000 --- a/patches/gcc-4.7.2/0500-Fix-Argument-list-too-long-error.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Robert Yang <liezhi.yang@windriver.com> -Date: Wed, 5 Dec 2012 17:20:37 +0100 -Subject: [PATCH] Fix "Argument list too long" error - -There would be an "Argument list too long" error when the -build directory is longer than 200, this is caused by: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang <liezhi.yang@windriver.com> - -This was taken from OE. - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - gcc/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 5c3514d..66c013e 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -4597,7 +4597,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype - # We keep the directory structure for files in config or c-family and .def - # files. All other files are flattened to a single directory. - $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) -- headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \ -+ headers="$(sort $(PLUGIN_HEADERS))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ diff --git a/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch b/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch deleted file mode 100644 index 9557be4..0000000 --- a/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Sun, 16 Dec 2012 20:05:00 +0100 -Subject: [PATCH] Backport the change to the hard float loader path. Changes - to /lib/ld-linux-armhf.so.3 - -Taken from linaro-gcc. - -2012-05-04 Michael Hope <michael.hope@linaro.org> - - Backport from mainline r186859: - - gcc/ - 2012-04-26 Michael Hope <michael.hope@linaro.org> - Richard Earnshaw <rearnsha@arm.com> - - * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define. - (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define. - (GLIBC_DYNAMIC_LINKER_DEFAULT): Define. - (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path. - - Backport from mainline r187012: - - gcc/ - 2012-05-01 Richard Earnshaw <rearnsha@arm.com> - - * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef - comparing enumeration values. Update comments. - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - gcc/config/arm/linux-eabi.h | 22 ++++++++++++++++++---- - 1 file changed, 18 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index 80bd825..46d3bc6 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -32,7 +32,8 @@ - while (false) - - /* We default to a soft-float ABI so that binaries can run on all -- target hardware. */ -+ target hardware. If you override this to use the hard-float ABI then -+ change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ - #undef TARGET_DEFAULT_FLOAT_ABI - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT - -@@ -59,10 +60,23 @@ - #undef SUBTARGET_EXTRA_LINK_SPEC - #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION - --/* Use ld-linux.so.3 so that it will be possible to run "classic" -- GNU/Linux binaries on an EABI system. */ -+/* GNU/Linux on ARM currently supports three dynamic linkers: -+ - ld-linux.so.2 - for the legacy ABI -+ - ld-linux.so.3 - for the EABI-derived soft-float ABI -+ - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI. -+ All the dynamic linkers live in /lib. -+ We default to soft-float, but this can be overridden by changing both -+ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ -+ - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT -+ -+#define GLIBC_DYNAMIC_LINKER \ -+ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \ -+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ -+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" - - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ diff --git a/patches/gcc-4.7.2/series b/patches/gcc-4.7.2/series deleted file mode 100644 index 7951514..0000000 --- a/patches/gcc-4.7.2/series +++ /dev/null @@ -1,24 +0,0 @@ -# generated by git-ptx-patches -#tag:base -#tag:Upstream --start-number 050 -0050-Backport-PR-target-55981-from-mainline.patch -0051-Backport-PR-target-56028-from-mainline.patch -#tag:OSELAS.toolchain --start-number 100 -0100-no-host-includes.patch -0101-gcc-i386-use-pure64-CLFS-patch.patch -0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch -#tag:uclibc --start-number 200 -0200-also-match-uclibc-when-checking-host-os.patch -0201-missing-execinfo.h.patch -0202-c99-snprintf.patch -0203-libmudflap-susv3-legacy.patch -#tag:gentoo --start-number 300 -0300-libiberty-pic.patch -0301-libstdc-pic.patch -#tag:debian --start-number 400 -0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch -#tag:OpenEmbedded --start-number 500 -0500-Fix-Argument-list-too-long-error.patch -#tag:Linaro --start-number 600 -0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch -# ea3731c90748fd21a473c04e08e5f9f3 - git-ptx-patches magic |