summaryrefslogtreecommitdiffstats
path: root/patches/gcc-4.7.2
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc-4.7.2')
-rw-r--r--patches/gcc-4.7.2/0050-Backport-PR-target-55981-from-mainline.patch120
-rw-r--r--patches/gcc-4.7.2/0051-Backport-PR-target-56028-from-mainline.patch510
-rw-r--r--patches/gcc-4.7.2/0100-no-host-includes.patch55
-rw-r--r--patches/gcc-4.7.2/0101-gcc-i386-use-pure64-CLFS-patch.patch45
-rw-r--r--patches/gcc-4.7.2/0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch34
-rw-r--r--patches/gcc-4.7.2/0200-also-match-uclibc-when-checking-host-os.patch49
-rw-r--r--patches/gcc-4.7.2/0201-missing-execinfo.h.patch24
-rw-r--r--patches/gcc-4.7.2/0202-c99-snprintf.patch24
-rw-r--r--patches/gcc-4.7.2/0203-libmudflap-susv3-legacy.patch62
-rw-r--r--patches/gcc-4.7.2/0300-libiberty-pic.patch24
-rw-r--r--patches/gcc-4.7.2/0301-libstdc-pic.patch58
-rw-r--r--patches/gcc-4.7.2/0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch137
-rw-r--r--patches/gcc-4.7.2/0500-Fix-Argument-list-too-long-error.patch37
-rw-r--r--patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch74
-rw-r--r--patches/gcc-4.7.2/series24
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