diff --git a/.cvsignore b/.cvsignore
index 01439fd..dbf9cdc 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-binutils-2.18.50.0.6.tar.bz2
+binutils-2.18.50.0.8.tar.bz2
diff --git a/binutils-2.18.50.0.6-pclmul.patch b/binutils-2.18.50.0.6-pclmul.patch
deleted file mode 100644
index 8bec096..0000000
--- a/binutils-2.18.50.0.6-pclmul.patch
+++ /dev/null
@@ -1,636 +0,0 @@
-2008-04-07  H.J. Lu  <hongjiu.lu@intel.com>
-
-gas/
-	* config/tc-i386.c (parse_real_register): Return AVX register
-	only if AVX is enabled.
-gas/testsuite/
-	* gas/i386/att-regs.s: Add AVX register test.
-	* gas/i386/intel-regs.s: Likewise.
-
-	* gas/i386/att-regs.d: Updated.
-	* gas/i386/intel-regs.d: Likewise.
-opcodes/
-	* i386-dis.c (PREFIX_VEX_38XX): Add a tab.
-	(PREFIX_VEX_3AXX): Likewis.
-
-	* i386-opc.tbl: Remove 4 extra blank lines.
-
-2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
-
-gas/
-	* NEWS: Mention XSAVE.  Change CLMUL to PCLMUL.
-
-	* config/tc-i386.c (cpu_arch): Add .pclmul.
-	(md_show_usage): Replace clmul with pclmul.
-	* doc/c-i386.texi: Likewise.
-gas/testsuite/
-	* gas/i386/arch-10-1.l: Replace CLMUL with PCLMUL.
-	* gas/i386/arch-10-2.l: Likewise.
-	* gas/i386/arch-10-3.l: Likewise.
-	* gas/i386/arch-10-4.l: Likewise.
-	* gas/i386/arch-10.s: Likewise.
-	* gas/i386/clmul-intel.d: Likewise.
-	* gas/i386/clmul.d: Likewise.
-	* gas/i386/clmul.s: Likewise.
-	* gas/i386/x86-64-arch-2.s: Likewise.
-	* gas/i386/x86-64-clmul-intel.d: Likewise.
-	* gas/i386/x86-64-clmul.d: Likewise.
-	* gas/i386/x86-64-clmul.s: Likewise.
-
-	* gas/i386/arch-10.d: Replace clmul with pclmul.
-	* gas/i386/x86-64-arch-2.d: Likewise.
-opcodes/
-	* i386-gen.c (cpu_flag_init): Replace CPU_CLMUL_FLAGS/CpuCLMUL
-	with CPU_PCLMUL_FLAGS/CpuPCLMUL.
-	(cpu_flags): Replace CpuCLMUL with CpuPCLMUL.
-	* i386-opc.tbl: Likewise.
-
-	* i386-opc.h (CpuCLMUL): Renamed to ...
-	(CpuPCLMUL): This.
-	(CpuFMA): Updated.
-	(i386_cpu_flags): Replace cpuclmul with cpupclmul.
-
-	* i386-init.h: Regenerated.
-
---- gas/NEWS	3 Apr 2008 14:03:17 -0000	1.92
-+++ gas/NEWS	4 Apr 2008 16:34:23 -0000	1.93
-@@ -2,7 +2,7 @@
- * New command line option -msse2avx for x86 target to encode SSE
-   instructions with VEX prefix.
- 
--* Add Intel AES, CLMUL, AVX/FMA support for x86 target.
-+* Add Intel XSAVE, AES, PCLMUL, AVX/FMA support for x86 target.
- 
- * New command line options, -march=CPU[,+EXTENSION...], -mtune=CPU,
-   -mmnemonic=[att|intel], -msyntax=[att|intel], -mindex-reg,
---- gas/config/tc-i386.c	3 Apr 2008 14:03:18 -0000	1.335
-+++ gas/config/tc-i386.c	7 Apr 2008 13:07:15 -0000	1.337
-@@ -647,8 +647,10 @@ static const arch_entry cpu_arch[] =
-     CPU_XSAVE_FLAGS },
-   { ".aes", PROCESSOR_UNKNOWN,
-     CPU_AES_FLAGS },
-+  { ".pclmul", PROCESSOR_UNKNOWN,
-+    CPU_PCLMUL_FLAGS },
-   { ".clmul", PROCESSOR_UNKNOWN,
--    CPU_CLMUL_FLAGS },
-+    CPU_PCLMUL_FLAGS },
-   { ".fma", PROCESSOR_UNKNOWN,
-     CPU_FMA_FLAGS },
-   { ".3dnow", PROCESSOR_UNKNOWN,
-@@ -7683,6 +7685,9 @@ parse_real_register (char *reg_string, c
-   if (r->reg_type.bitfield.regxmm && !cpu_arch_flags.bitfield.cpusse)
-     return (const reg_entry *) NULL;
- 
-+  if (r->reg_type.bitfield.regymm && !cpu_arch_flags.bitfield.cpuavx)
-+    return (const reg_entry *) NULL;
-+
-   /* Don't allow fake index register unless allow_index_reg isn't 0. */
-   if (!allow_index_reg
-       && (r->reg_num == RegEiz || r->reg_num == RegRiz))
-@@ -8045,7 +8050,7 @@ md_show_usage (stream)
-                            generic32, generic64\n\
-                           EXTENSION is combination of:\n\
-                            mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4,\n\
--                           avx, vmx, smx, xsave, aes, clmul, fma, 3dnow,\n\
-+                           avx, vmx, smx, xsave, aes, pclmul, fma, 3dnow,\n\
- 			   3dnowa, sse4a, sse5, svme, abm, padlock\n"));
-   fprintf (stream, _("\
-   -mtune=CPU              optimize for CPU, CPU is one of:\n\
---- gas/doc/c-i386.texi	3 Apr 2008 14:03:18 -0000	1.25
-+++ gas/doc/c-i386.texi	4 Apr 2008 16:34:23 -0000	1.26
-@@ -125,7 +125,7 @@ accept various extension mnemonics.  For
- @code{smx},
- @code{xsave},
- @code{aes},
--@code{clmul},
-+@code{pclmul},
- @code{fma},
- @code{3dnow},
- @code{3dnowa},
-@@ -832,7 +832,7 @@ supported on the CPU specified.  The cho
- @item @samp{.mmx} @tab @samp{.sse} @tab @samp{.sse2} @tab @samp{.sse3}
- @item @samp{.ssse3} @tab @samp{.sse4.1} @tab @samp{.sse4.2} @tab @samp{.sse4}
- @item @samp{.avx} @tab @samp{.vmx} @tab @samp{.smx} @tab @samp{.xsave}
--@item @samp{.aes} @tab @samp{.clmul} @tab @samp{.fma}
-+@item @samp{.aes} @tab @samp{.pclmul} @tab @samp{.fma}
- @item @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.sse4a} @tab @samp{.sse5}
- @item @samp{.svme} @tab @samp{.abm}
- @item @samp{.padlock}
---- gas/testsuite/gas/i386/arch-10-1.l	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10-1.l	4 Apr 2008 16:34:23 -0000	1.4
-@@ -53,7 +53,7 @@ GAS LISTING .*
- [ 	]*26[ 	]+xgetbv
- [ 	]*27[ 	]+\# AES
- [ 	]*28[ 	]+aesenc  \(%ecx\),%xmm0
--[ 	]*29[ 	]+\# CLMUL
-+[ 	]*29[ 	]+\# PCLMUL
- [ 	]*30[ 	]+pclmulqdq \$8,%xmm1,%xmm0
- [ 	]*31[ 	]+\# FMA
- [ 	]*32[ 	]+vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/arch-10-2.l	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10-2.l	4 Apr 2008 16:34:23 -0000	1.4
-@@ -52,7 +52,7 @@ GAS LISTING .*
- [ 	]*26[ 	]+xgetbv
- [ 	]*27[ 	]+\# AES
- [ 	]*28[ 	]+aesenc  \(%ecx\),%xmm0
--[ 	]*29[ 	]+\# CLMUL
-+[ 	]*29[ 	]+\# PCLMUL
- [ 	]*30[ 	]+pclmulqdq \$8,%xmm1,%xmm0
- [ 	]*31[ 	]+\# FMA
- [ 	]*32[ 	]+vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/arch-10-3.l	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10-3.l	4 Apr 2008 16:34:23 -0000	1.4
-@@ -48,7 +48,7 @@ GAS LISTING .*
- [ 	]*26[ 	]+xgetbv
- [ 	]*27[ 	]+\# AES
- [ 	]*28[ 	]+aesenc  \(%ecx\),%xmm0
--[ 	]*29[ 	]+\# CLMUL
-+[ 	]*29[ 	]+\# PCLMUL
- [ 	]*30[ 	]+pclmulqdq \$8,%xmm1,%xmm0
- [ 	]*31[ 	]+\# FMA
- [ 	]*32[ 	]+vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/arch-10-4.l	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10-4.l	4 Apr 2008 16:34:23 -0000	1.4
-@@ -46,7 +46,7 @@ GAS LISTING .*
- [ 	]*26[ 	]+xgetbv
- [ 	]*27[ 	]+\# AES
- [ 	]*28[ 	]+aesenc  \(%ecx\),%xmm0
--[ 	]*29[ 	]+\# CLMUL
-+[ 	]*29[ 	]+\# PCLMUL
- [ 	]*30[ 	]+pclmulqdq \$8,%xmm1,%xmm0
- [ 	]*31[ 	]+\# FMA
- [ 	]*32[ 	]+vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/arch-10.d	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10.d	4 Apr 2008 16:34:23 -0000	1.4
-@@ -1,4 +1,4 @@
--#as: -march=i686+avx+vmx+smx+xsave+aes+clmul+fma+sse5+3dnowa+svme+padlock
-+#as: -march=i686+avx+vmx+smx+xsave+aes+pclmul+fma+sse5+3dnowa+svme+padlock
- #objdump: -dw
- #name: i386 arch 10
- 
---- gas/testsuite/gas/i386/arch-10.s	3 Apr 2008 14:03:18 -0000	1.3
-+++ gas/testsuite/gas/i386/arch-10.s	4 Apr 2008 16:34:23 -0000	1.4
-@@ -26,7 +26,7 @@ getsec
- xgetbv
- # AES
- aesenc  (%ecx),%xmm0
--# CLMUL
-+# PCLMUL
- pclmulqdq $8,%xmm1,%xmm0
- # FMA
- vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/att-regs.d	18 Feb 2008 08:44:38 -0000	1.1
-+++ gas/testsuite/gas/i386/att-regs.d	7 Apr 2008 14:38:25 -0000	1.3
-@@ -31,9 +31,11 @@ Disassembly of section \.text:
- .*:[ 	]+0f 24 c0[ 	]+mov[ 	]+%tr0,%eax
- .*[ 	]+R_386_32[ 	]+mm0
- .*[ 	]+R_386_32[ 	]+xmm0
-+.*[ 	]+R_386_32[ 	]+ymm0
- .*:[ 	]+dd c0[ 	]+ffree[ 	]+%st(\(0\))?
- .*:[ 	]+0f ef c0[ 	]+pxor[ 	]+%mm0,%mm0
- .*:[ 	]+0f 57 c0[ 	]+xorps[ 	]+%xmm0,%xmm0
-+.*:[ 	]+c5 fc 57 c0[ 	]+vxorps[ 	]+%ymm0,%ymm0,%ymm0
- .*:[ 	]+44[ 	]+inc    %esp
- .*:[ 	]+88 c0[ 	]+mov[ 	]+%al,%al
- .*:[ 	]+66 44[ 	]+inc[ 	]+%sp
---- gas/testsuite/gas/i386/att-regs.s	18 Feb 2008 08:44:38 -0000	1.1
-+++ gas/testsuite/gas/i386/att-regs.s	7 Apr 2008 14:38:25 -0000	1.3
-@@ -32,6 +32,7 @@
- 	mov	tr0, eax
- 	mov	mm0, eax
- 	mov	xmm0, eax
-+	mov	ymm0, eax
- 
- #todo	.arch i387
- 	ffree	st
-@@ -42,6 +43,9 @@
- 	.arch .sse
- 	xorps	xmm0, xmm0
- 
-+	.arch .avx
-+	vxorps	ymm0, ymm0, ymm0
-+
- 	.arch generic64
- 	.code64
- 	mov	r8b, axl
---- gas/testsuite/gas/i386/clmul-intel.d	3 Apr 2008 14:03:18 -0000	1.1
-+++ gas/testsuite/gas/i386/clmul-intel.d	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,6 +1,6 @@
- #source: clmul.s
- #objdump: -dw -Mintel
--#name: i386 CLMUL (Intel mode)
-+#name: i386 PCLMUL (Intel mode)
- 
- .*: +file format .*
- 
---- gas/testsuite/gas/i386/clmul.d	3 Apr 2008 14:03:18 -0000	1.1
-+++ gas/testsuite/gas/i386/clmul.d	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,5 +1,5 @@
- #objdump: -dw
--#name: i386 CLMUL
-+#name: i386 PCLMUL
- 
- .*: +file format .*
- 
---- gas/testsuite/gas/i386/clmul.s	3 Apr 2008 14:03:18 -0000	1.1
-+++ gas/testsuite/gas/i386/clmul.s	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,4 +1,4 @@
--# Check CLMUL new instructions.
-+# Check PCLMUL new instructions.
- 
- 	.text
- foo:
---- gas/testsuite/gas/i386/intel-regs.d	18 Feb 2008 08:44:38 -0000	1.1
-+++ gas/testsuite/gas/i386/intel-regs.d	7 Apr 2008 14:38:25 -0000	1.3
-@@ -31,9 +31,11 @@ Disassembly of section \.text:
- .*:[ 	]+0f 24 c0[ 	]+mov[ 	]+%tr0,%eax
- .*[ 	]+R_386_32[ 	]+mm0
- .*[ 	]+R_386_32[ 	]+xmm0
-+.*[ 	]+R_386_32[ 	]+ymm0
- .*:[ 	]+dd c0[ 	]+ffree[ 	]+%st(\(0\))?
- .*:[ 	]+0f ef c0[ 	]+pxor[ 	]+%mm0,%mm0
- .*:[ 	]+0f 57 c0[ 	]+xorps[ 	]+%xmm0,%xmm0
-+.*:[ 	]+c5 fc 57 c0[ 	]+vxorps[ 	]+%ymm0,%ymm0,%ymm0
- .*:[ 	]+44[ 	]+inc    %esp
- .*:[ 	]+88 c0[ 	]+mov[ 	]+%al,%al
- .*:[ 	]+66 44[ 	]+inc[ 	]+%sp
---- gas/testsuite/gas/i386/intel-regs.s	18 Feb 2008 08:44:38 -0000	1.1
-+++ gas/testsuite/gas/i386/intel-regs.s	7 Apr 2008 14:38:25 -0000	1.3
-@@ -32,6 +32,7 @@
- 	mov	eax, tr0
- 	mov	eax, mm0
- 	mov	eax, xmm0
-+	mov	eax, ymm0
- 
- #todo	.arch i387
- 	ffree	st
-@@ -42,6 +43,9 @@
- 	.arch .sse
- 	xorps	xmm0, xmm0
- 
-+	.arch .avx
-+	vxorps	ymm0, ymm0, ymm0
-+
- 	.arch generic64
- 	.code64
- 	mov	axl, r8b
---- gas/testsuite/gas/i386/x86-64-arch-2.d	3 Apr 2008 14:03:18 -0000	1.2
-+++ gas/testsuite/gas/i386/x86-64-arch-2.d	4 Apr 2008 16:34:23 -0000	1.3
-@@ -1,4 +1,4 @@
--#as: -march=generic64+avx+vmx+smx+xsave+aes+clmul+fma+sse5+3dnowa+svme+padlock
-+#as: -march=generic64+avx+vmx+smx+xsave+aes+pclmul+fma+sse5+3dnowa+svme+padlock
- #objdump: -dw
- #name: x86-64 arch 2
- 
---- gas/testsuite/gas/i386/x86-64-arch-2.s	3 Apr 2008 14:03:18 -0000	1.2
-+++ gas/testsuite/gas/i386/x86-64-arch-2.s	4 Apr 2008 16:34:23 -0000	1.3
-@@ -26,7 +26,7 @@ getsec
- xgetbv
- # AES
- aesenc  (%rcx),%xmm0
--# CLMUL
-+# PCLMUL
- pclmulqdq $8,%xmm1,%xmm0
- # FMA
- vfmaddpd %ymm4,%ymm6,%ymm2,%ymm7
---- gas/testsuite/gas/i386/x86-64-clmul-intel.d	3 Apr 2008 14:03:19 -0000	1.1
-+++ gas/testsuite/gas/i386/x86-64-clmul-intel.d	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,7 +1,7 @@
- #source: x86-64-clmul.s
- #as: -J
- #objdump: -dw -Mintel
--#name: x86-64 CLMUL (Intel mode)
-+#name: x86-64 PCLMUL (Intel mode)
- 
- .*: +file format .*
- 
---- gas/testsuite/gas/i386/x86-64-clmul.d	3 Apr 2008 14:03:19 -0000	1.1
-+++ gas/testsuite/gas/i386/x86-64-clmul.d	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,6 +1,6 @@
- #as: -J
- #objdump: -dw
--#name: x86-64 CLMUL
-+#name: x86-64 PCLMUL
- 
- .*: +file format .*
- 
---- gas/testsuite/gas/i386/x86-64-clmul.s	3 Apr 2008 14:03:19 -0000	1.1
-+++ gas/testsuite/gas/i386/x86-64-clmul.s	4 Apr 2008 16:34:23 -0000	1.2
-@@ -1,4 +1,4 @@
--# Check 64bit CLMUL new instructions.
-+# Check 64bit PCLMUL new instructions.
- 
- 	.text
- foo:
---- opcodes/i386-dis.c	3 Apr 2008 14:03:20 -0000	1.176
-+++ opcodes/i386-dis.c	7 Apr 2008 21:29:50 -0000	1.177
-@@ -875,112 +875,112 @@ fetch_data (struct disassemble_info *inf
- #define PREFIX_VEX_FC		(PREFIX_VEX_FB + 1)
- #define PREFIX_VEX_FD		(PREFIX_VEX_FC + 1)
- #define PREFIX_VEX_FE		(PREFIX_VEX_FD + 1)
--#define PREFIX_VEX_3800	(PREFIX_VEX_FE + 1)
--#define PREFIX_VEX_3801	(PREFIX_VEX_3800 + 1)
--#define PREFIX_VEX_3802	(PREFIX_VEX_3801 + 1)
--#define PREFIX_VEX_3803	(PREFIX_VEX_3802 + 1)
--#define PREFIX_VEX_3804	(PREFIX_VEX_3803 + 1)
--#define PREFIX_VEX_3805	(PREFIX_VEX_3804 + 1)
--#define PREFIX_VEX_3806	(PREFIX_VEX_3805 + 1)
--#define PREFIX_VEX_3807	(PREFIX_VEX_3806 + 1)
--#define PREFIX_VEX_3808	(PREFIX_VEX_3807 + 1)
--#define PREFIX_VEX_3809	(PREFIX_VEX_3808 + 1)
--#define PREFIX_VEX_380A	(PREFIX_VEX_3809 + 1)
--#define PREFIX_VEX_380B	(PREFIX_VEX_380A + 1)
--#define PREFIX_VEX_380C	(PREFIX_VEX_380B + 1)
--#define PREFIX_VEX_380D	(PREFIX_VEX_380C + 1)
--#define PREFIX_VEX_380E	(PREFIX_VEX_380D + 1)
--#define PREFIX_VEX_380F	(PREFIX_VEX_380E + 1)
--#define PREFIX_VEX_3817	(PREFIX_VEX_380F + 1)
--#define PREFIX_VEX_3818	(PREFIX_VEX_3817 + 1)
--#define PREFIX_VEX_3819	(PREFIX_VEX_3818 + 1)
--#define PREFIX_VEX_381A	(PREFIX_VEX_3819 + 1)
--#define PREFIX_VEX_381C	(PREFIX_VEX_381A + 1)
--#define PREFIX_VEX_381D	(PREFIX_VEX_381C + 1)
--#define PREFIX_VEX_381E	(PREFIX_VEX_381D + 1)
--#define PREFIX_VEX_3820	(PREFIX_VEX_381E + 1)
--#define PREFIX_VEX_3821	(PREFIX_VEX_3820 + 1)
--#define PREFIX_VEX_3822	(PREFIX_VEX_3821 + 1)
--#define PREFIX_VEX_3823	(PREFIX_VEX_3822 + 1)
--#define PREFIX_VEX_3824	(PREFIX_VEX_3823 + 1)
--#define PREFIX_VEX_3825	(PREFIX_VEX_3824 + 1)
--#define PREFIX_VEX_3828	(PREFIX_VEX_3825 + 1)
--#define PREFIX_VEX_3829	(PREFIX_VEX_3828 + 1)
--#define PREFIX_VEX_382A	(PREFIX_VEX_3829 + 1)
--#define PREFIX_VEX_382B	(PREFIX_VEX_382A + 1)
--#define PREFIX_VEX_382C	(PREFIX_VEX_382B + 1)
--#define PREFIX_VEX_382D	(PREFIX_VEX_382C + 1)
--#define PREFIX_VEX_382E	(PREFIX_VEX_382D + 1)
--#define PREFIX_VEX_382F	(PREFIX_VEX_382E + 1)
--#define PREFIX_VEX_3830	(PREFIX_VEX_382F + 1)
--#define PREFIX_VEX_3831	(PREFIX_VEX_3830 + 1)
--#define PREFIX_VEX_3832	(PREFIX_VEX_3831 + 1)
--#define PREFIX_VEX_3833	(PREFIX_VEX_3832 + 1)
--#define PREFIX_VEX_3834	(PREFIX_VEX_3833 + 1)
--#define PREFIX_VEX_3835	(PREFIX_VEX_3834 + 1)
--#define PREFIX_VEX_3837	(PREFIX_VEX_3835 + 1)
--#define PREFIX_VEX_3838	(PREFIX_VEX_3837 + 1)
--#define PREFIX_VEX_3839	(PREFIX_VEX_3838 + 1)
--#define PREFIX_VEX_383A	(PREFIX_VEX_3839 + 1)
--#define PREFIX_VEX_383B	(PREFIX_VEX_383A + 1)
--#define PREFIX_VEX_383C	(PREFIX_VEX_383B + 1)
--#define PREFIX_VEX_383D	(PREFIX_VEX_383C + 1)
--#define PREFIX_VEX_383E	(PREFIX_VEX_383D + 1)
--#define PREFIX_VEX_383F	(PREFIX_VEX_383E + 1)
--#define PREFIX_VEX_3840	(PREFIX_VEX_383F + 1)
--#define PREFIX_VEX_3841	(PREFIX_VEX_3840 + 1)
--#define PREFIX_VEX_3A04	(PREFIX_VEX_3841 + 1)
--#define PREFIX_VEX_3A05	(PREFIX_VEX_3A04 + 1)
--#define PREFIX_VEX_3A06	(PREFIX_VEX_3A05 + 1)
--#define PREFIX_VEX_3A08	(PREFIX_VEX_3A06 + 1)
--#define PREFIX_VEX_3A09	(PREFIX_VEX_3A08 + 1)
--#define PREFIX_VEX_3A0A	(PREFIX_VEX_3A09 + 1)
--#define PREFIX_VEX_3A0B	(PREFIX_VEX_3A0A + 1)
--#define PREFIX_VEX_3A0C	(PREFIX_VEX_3A0B + 1)
--#define PREFIX_VEX_3A0D	(PREFIX_VEX_3A0C + 1)
--#define PREFIX_VEX_3A0E	(PREFIX_VEX_3A0D + 1)
--#define PREFIX_VEX_3A0F	(PREFIX_VEX_3A0E + 1)
--#define PREFIX_VEX_3A14	(PREFIX_VEX_3A0F + 1)
--#define PREFIX_VEX_3A15	(PREFIX_VEX_3A14 + 1)
--#define PREFIX_VEX_3A16	(PREFIX_VEX_3A15 + 1)
--#define PREFIX_VEX_3A17	(PREFIX_VEX_3A16 + 1)
--#define PREFIX_VEX_3A18	(PREFIX_VEX_3A17 + 1)
--#define PREFIX_VEX_3A19	(PREFIX_VEX_3A18 + 1)
--#define PREFIX_VEX_3A20	(PREFIX_VEX_3A19 + 1)
--#define PREFIX_VEX_3A21	(PREFIX_VEX_3A20 + 1)
--#define PREFIX_VEX_3A22	(PREFIX_VEX_3A21 + 1)
--#define PREFIX_VEX_3A40	(PREFIX_VEX_3A22 + 1)
--#define PREFIX_VEX_3A41	(PREFIX_VEX_3A40 + 1)
--#define PREFIX_VEX_3A42	(PREFIX_VEX_3A41 + 1)
--#define PREFIX_VEX_3A48	(PREFIX_VEX_3A42 + 1)
--#define PREFIX_VEX_3A49	(PREFIX_VEX_3A48 + 1)
--#define PREFIX_VEX_3A4A	(PREFIX_VEX_3A49 + 1)
--#define PREFIX_VEX_3A4B	(PREFIX_VEX_3A4A + 1)
--#define PREFIX_VEX_3A4C	(PREFIX_VEX_3A4B + 1)
--#define PREFIX_VEX_3A5C	(PREFIX_VEX_3A4C + 1)
--#define PREFIX_VEX_3A5D	(PREFIX_VEX_3A5C + 1)
--#define PREFIX_VEX_3A5E	(PREFIX_VEX_3A5D + 1)
--#define PREFIX_VEX_3A5F	(PREFIX_VEX_3A5E + 1)
--#define PREFIX_VEX_3A60	(PREFIX_VEX_3A5F + 1)
--#define PREFIX_VEX_3A61	(PREFIX_VEX_3A60 + 1)
--#define PREFIX_VEX_3A62	(PREFIX_VEX_3A61 + 1)
--#define PREFIX_VEX_3A63	(PREFIX_VEX_3A62 + 1)
--#define PREFIX_VEX_3A68	(PREFIX_VEX_3A63 + 1)
--#define PREFIX_VEX_3A69	(PREFIX_VEX_3A68 + 1)
--#define PREFIX_VEX_3A6A	(PREFIX_VEX_3A69 + 1)
--#define PREFIX_VEX_3A6B	(PREFIX_VEX_3A6A + 1)
--#define PREFIX_VEX_3A6C	(PREFIX_VEX_3A6B + 1)
--#define PREFIX_VEX_3A6D	(PREFIX_VEX_3A6C + 1)
--#define PREFIX_VEX_3A6E	(PREFIX_VEX_3A6D + 1)
--#define PREFIX_VEX_3A6F	(PREFIX_VEX_3A6E + 1)
--#define PREFIX_VEX_3A78	(PREFIX_VEX_3A6F + 1)
--#define PREFIX_VEX_3A79	(PREFIX_VEX_3A78 + 1)
--#define PREFIX_VEX_3A7A	(PREFIX_VEX_3A79 + 1)
--#define PREFIX_VEX_3A7B	(PREFIX_VEX_3A7A + 1)
--#define PREFIX_VEX_3A7C	(PREFIX_VEX_3A7B + 1)
--#define PREFIX_VEX_3A7D	(PREFIX_VEX_3A7C + 1)
--#define PREFIX_VEX_3A7E	(PREFIX_VEX_3A7D + 1)
--#define PREFIX_VEX_3A7F	(PREFIX_VEX_3A7E + 1)
-+#define PREFIX_VEX_3800		(PREFIX_VEX_FE + 1)
-+#define PREFIX_VEX_3801		(PREFIX_VEX_3800 + 1)
-+#define PREFIX_VEX_3802		(PREFIX_VEX_3801 + 1)
-+#define PREFIX_VEX_3803		(PREFIX_VEX_3802 + 1)
-+#define PREFIX_VEX_3804		(PREFIX_VEX_3803 + 1)
-+#define PREFIX_VEX_3805		(PREFIX_VEX_3804 + 1)
-+#define PREFIX_VEX_3806		(PREFIX_VEX_3805 + 1)
-+#define PREFIX_VEX_3807		(PREFIX_VEX_3806 + 1)
-+#define PREFIX_VEX_3808		(PREFIX_VEX_3807 + 1)
-+#define PREFIX_VEX_3809		(PREFIX_VEX_3808 + 1)
-+#define PREFIX_VEX_380A		(PREFIX_VEX_3809 + 1)
-+#define PREFIX_VEX_380B		(PREFIX_VEX_380A + 1)
-+#define PREFIX_VEX_380C		(PREFIX_VEX_380B + 1)
-+#define PREFIX_VEX_380D		(PREFIX_VEX_380C + 1)
-+#define PREFIX_VEX_380E		(PREFIX_VEX_380D + 1)
-+#define PREFIX_VEX_380F		(PREFIX_VEX_380E + 1)
-+#define PREFIX_VEX_3817		(PREFIX_VEX_380F + 1)
-+#define PREFIX_VEX_3818		(PREFIX_VEX_3817 + 1)
-+#define PREFIX_VEX_3819		(PREFIX_VEX_3818 + 1)
-+#define PREFIX_VEX_381A		(PREFIX_VEX_3819 + 1)
-+#define PREFIX_VEX_381C		(PREFIX_VEX_381A + 1)
-+#define PREFIX_VEX_381D		(PREFIX_VEX_381C + 1)
-+#define PREFIX_VEX_381E		(PREFIX_VEX_381D + 1)
-+#define PREFIX_VEX_3820		(PREFIX_VEX_381E + 1)
-+#define PREFIX_VEX_3821		(PREFIX_VEX_3820 + 1)
-+#define PREFIX_VEX_3822		(PREFIX_VEX_3821 + 1)
-+#define PREFIX_VEX_3823		(PREFIX_VEX_3822 + 1)
-+#define PREFIX_VEX_3824		(PREFIX_VEX_3823 + 1)
-+#define PREFIX_VEX_3825		(PREFIX_VEX_3824 + 1)
-+#define PREFIX_VEX_3828		(PREFIX_VEX_3825 + 1)
-+#define PREFIX_VEX_3829		(PREFIX_VEX_3828 + 1)
-+#define PREFIX_VEX_382A		(PREFIX_VEX_3829 + 1)
-+#define PREFIX_VEX_382B		(PREFIX_VEX_382A + 1)
-+#define PREFIX_VEX_382C		(PREFIX_VEX_382B + 1)
-+#define PREFIX_VEX_382D		(PREFIX_VEX_382C + 1)
-+#define PREFIX_VEX_382E		(PREFIX_VEX_382D + 1)
-+#define PREFIX_VEX_382F		(PREFIX_VEX_382E + 1)
-+#define PREFIX_VEX_3830		(PREFIX_VEX_382F + 1)
-+#define PREFIX_VEX_3831		(PREFIX_VEX_3830 + 1)
-+#define PREFIX_VEX_3832		(PREFIX_VEX_3831 + 1)
-+#define PREFIX_VEX_3833		(PREFIX_VEX_3832 + 1)
-+#define PREFIX_VEX_3834		(PREFIX_VEX_3833 + 1)
-+#define PREFIX_VEX_3835		(PREFIX_VEX_3834 + 1)
-+#define PREFIX_VEX_3837		(PREFIX_VEX_3835 + 1)
-+#define PREFIX_VEX_3838		(PREFIX_VEX_3837 + 1)
-+#define PREFIX_VEX_3839		(PREFIX_VEX_3838 + 1)
-+#define PREFIX_VEX_383A		(PREFIX_VEX_3839 + 1)
-+#define PREFIX_VEX_383B		(PREFIX_VEX_383A + 1)
-+#define PREFIX_VEX_383C		(PREFIX_VEX_383B + 1)
-+#define PREFIX_VEX_383D		(PREFIX_VEX_383C + 1)
-+#define PREFIX_VEX_383E		(PREFIX_VEX_383D + 1)
-+#define PREFIX_VEX_383F		(PREFIX_VEX_383E + 1)
-+#define PREFIX_VEX_3840		(PREFIX_VEX_383F + 1)
-+#define PREFIX_VEX_3841		(PREFIX_VEX_3840 + 1)
-+#define PREFIX_VEX_3A04		(PREFIX_VEX_3841 + 1)
-+#define PREFIX_VEX_3A05		(PREFIX_VEX_3A04 + 1)
-+#define PREFIX_VEX_3A06		(PREFIX_VEX_3A05 + 1)
-+#define PREFIX_VEX_3A08		(PREFIX_VEX_3A06 + 1)
-+#define PREFIX_VEX_3A09		(PREFIX_VEX_3A08 + 1)
-+#define PREFIX_VEX_3A0A		(PREFIX_VEX_3A09 + 1)
-+#define PREFIX_VEX_3A0B		(PREFIX_VEX_3A0A + 1)
-+#define PREFIX_VEX_3A0C		(PREFIX_VEX_3A0B + 1)
-+#define PREFIX_VEX_3A0D		(PREFIX_VEX_3A0C + 1)
-+#define PREFIX_VEX_3A0E		(PREFIX_VEX_3A0D + 1)
-+#define PREFIX_VEX_3A0F		(PREFIX_VEX_3A0E + 1)
-+#define PREFIX_VEX_3A14		(PREFIX_VEX_3A0F + 1)
-+#define PREFIX_VEX_3A15		(PREFIX_VEX_3A14 + 1)
-+#define PREFIX_VEX_3A16		(PREFIX_VEX_3A15 + 1)
-+#define PREFIX_VEX_3A17		(PREFIX_VEX_3A16 + 1)
-+#define PREFIX_VEX_3A18		(PREFIX_VEX_3A17 + 1)
-+#define PREFIX_VEX_3A19		(PREFIX_VEX_3A18 + 1)
-+#define PREFIX_VEX_3A20		(PREFIX_VEX_3A19 + 1)
-+#define PREFIX_VEX_3A21		(PREFIX_VEX_3A20 + 1)
-+#define PREFIX_VEX_3A22		(PREFIX_VEX_3A21 + 1)
-+#define PREFIX_VEX_3A40		(PREFIX_VEX_3A22 + 1)
-+#define PREFIX_VEX_3A41		(PREFIX_VEX_3A40 + 1)
-+#define PREFIX_VEX_3A42		(PREFIX_VEX_3A41 + 1)
-+#define PREFIX_VEX_3A48		(PREFIX_VEX_3A42 + 1)
-+#define PREFIX_VEX_3A49		(PREFIX_VEX_3A48 + 1)
-+#define PREFIX_VEX_3A4A		(PREFIX_VEX_3A49 + 1)
-+#define PREFIX_VEX_3A4B		(PREFIX_VEX_3A4A + 1)
-+#define PREFIX_VEX_3A4C		(PREFIX_VEX_3A4B + 1)
-+#define PREFIX_VEX_3A5C		(PREFIX_VEX_3A4C + 1)
-+#define PREFIX_VEX_3A5D		(PREFIX_VEX_3A5C + 1)
-+#define PREFIX_VEX_3A5E		(PREFIX_VEX_3A5D + 1)
-+#define PREFIX_VEX_3A5F		(PREFIX_VEX_3A5E + 1)
-+#define PREFIX_VEX_3A60		(PREFIX_VEX_3A5F + 1)
-+#define PREFIX_VEX_3A61		(PREFIX_VEX_3A60 + 1)
-+#define PREFIX_VEX_3A62		(PREFIX_VEX_3A61 + 1)
-+#define PREFIX_VEX_3A63		(PREFIX_VEX_3A62 + 1)
-+#define PREFIX_VEX_3A68		(PREFIX_VEX_3A63 + 1)
-+#define PREFIX_VEX_3A69		(PREFIX_VEX_3A68 + 1)
-+#define PREFIX_VEX_3A6A		(PREFIX_VEX_3A69 + 1)
-+#define PREFIX_VEX_3A6B		(PREFIX_VEX_3A6A + 1)
-+#define PREFIX_VEX_3A6C		(PREFIX_VEX_3A6B + 1)
-+#define PREFIX_VEX_3A6D		(PREFIX_VEX_3A6C + 1)
-+#define PREFIX_VEX_3A6E		(PREFIX_VEX_3A6D + 1)
-+#define PREFIX_VEX_3A6F		(PREFIX_VEX_3A6E + 1)
-+#define PREFIX_VEX_3A78		(PREFIX_VEX_3A6F + 1)
-+#define PREFIX_VEX_3A79		(PREFIX_VEX_3A78 + 1)
-+#define PREFIX_VEX_3A7A		(PREFIX_VEX_3A79 + 1)
-+#define PREFIX_VEX_3A7B		(PREFIX_VEX_3A7A + 1)
-+#define PREFIX_VEX_3A7C		(PREFIX_VEX_3A7B + 1)
-+#define PREFIX_VEX_3A7D		(PREFIX_VEX_3A7C + 1)
-+#define PREFIX_VEX_3A7E		(PREFIX_VEX_3A7D + 1)
-+#define PREFIX_VEX_3A7F		(PREFIX_VEX_3A7E + 1)
- 
- #define X86_64_06		0
- #define X86_64_07		(X86_64_06 + 1)
---- opcodes/i386-gen.c	3 Apr 2008 14:03:21 -0000	1.36
-+++ opcodes/i386-gen.c	4 Apr 2008 16:34:22 -0000	1.37
-@@ -104,8 +104,8 @@ static initializer cpu_flag_init [] =
-     "CpuXsave" },
-   { "CPU_AES_FLAGS",
-     "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAES" },
--  { "CPU_CLMUL_FLAGS",
--    "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuCLMUL" },
-+  { "CPU_PCLMUL_FLAGS",
-+    "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuPCLMUL" },
-   { "CPU_FMA_FLAGS",
-     "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuFMA" },
-   { "CPU_3DNOW_FLAGS",
-@@ -263,7 +263,7 @@ static bitfield cpu_flags[] =
-   BITFIELD (CpuABM),
-   BITFIELD (CpuXsave),
-   BITFIELD (CpuAES),
--  BITFIELD (CpuCLMUL),
-+  BITFIELD (CpuPCLMUL),
-   BITFIELD (CpuFMA),
-   BITFIELD (CpuLM),
-   BITFIELD (Cpu64),
---- opcodes/i386-init.h	3 Apr 2008 14:03:21 -0000	1.16
-+++ opcodes/i386-init.h	4 Apr 2008 16:34:22 -0000	1.17
-@@ -146,7 +146,7 @@
-   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1,  \
-       0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
- 
--#define CPU_CLMUL_FLAGS \
-+#define CPU_PCLMUL_FLAGS \
-   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1,  \
-       0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
- 
---- opcodes/i386-opc.h	3 Apr 2008 14:03:21 -0000	1.40
-+++ opcodes/i386-opc.h	4 Apr 2008 16:34:22 -0000	1.41
-@@ -86,10 +86,10 @@
- #define CpuXsave	(CpuAVX + 1)
- /* AES support required */
- #define CpuAES		(CpuXsave + 1)
--/* CLMUL support required */
--#define CpuCLMUL	(CpuAES + 1)
-+/* PCLMUL support required */
-+#define CpuPCLMUL	(CpuAES + 1)
- /* FMA support required */
--#define CpuFMA		(CpuCLMUL + 1)
-+#define CpuFMA		(CpuPCLMUL + 1)
- /* 64bit support available, used by -march= in assembler.  */
- #define CpuLM		(CpuFMA + 1)
- /* 64bit support required  */
-@@ -142,7 +142,7 @@ typedef union i386_cpu_flags
-       unsigned int cpuavx:1;
-       unsigned int cpuxsave:1;
-       unsigned int cpuaes:1;
--      unsigned int cpuclmul:1;
-+      unsigned int cpupclmul:1;
-       unsigned int cpufma:1;
-       unsigned int cpulm:1;
-       unsigned int cpu64:1;
---- opcodes/i386-opc.tbl	3 Apr 2008 14:03:21 -0000	1.36
-+++ opcodes/i386-opc.tbl	7 Apr 2008 17:35:12 -0000	1.38
-@@ -1722,13 +1722,13 @@ aesenclast, 2, 0x660f38dd, None, 3, CpuA
- aesimc, 2, 0x660f38db, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
- aeskeygenassist, 3, 0x660f3adf, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
- 
--// CLMUL
-+// PCLMUL
- 
--pclmulqdq, 3, 0x660f3a44, None, 3, CpuCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
--pclmullqlqdq, 2, 0x660f3a44, 0x0, 3, CpuCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
--pclmulhqlqdq, 2, 0x660f3a44, 0x1, 3, CpuCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
--pclmullqhqdq, 2, 0x660f3a44, 0x10, 3, CpuCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
--pclmulhqhqdq, 2, 0x660f3a44, 0x11, 3, CpuCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-+pclmulqdq, 3, 0x660f3a44, None, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-+pclmullqlqdq, 2, 0x660f3a44, 0x0, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-+pclmulhqlqdq, 2, 0x660f3a44, 0x1, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-+pclmullqhqdq, 2, 0x660f3a44, 0x10, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-+pclmulhqhqdq, 2, 0x660f3a44, 0x11, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
- 
- // AVX instructions.
- 
-@@ -2338,10 +2338,6 @@ vxorps, 3, 0x57, None, 1, CpuAVX, Modrm|
- vzeroall, 0, 0x77, None, 1, CpuAVX, Vex|Vex0F|Vex256|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
- vzeroupper, 0, 0x77, None, 1, CpuAVX, Vex|Vex0F|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
- 
--
--
--
--
- // FMA instructions
- 
- vfmaddpd, 4, 0x6669, None, 1, CpuFMA, Modrm|Vex|Vex0F3A|VexNDS|VexW1|Vex3Sources|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
diff --git a/binutils-2.18.50.0.6-place-orphan.patch b/binutils-2.18.50.0.8-place-orphan.patch
similarity index 58%
rename from binutils-2.18.50.0.6-place-orphan.patch
rename to binutils-2.18.50.0.8-place-orphan.patch
index ae7c001..7d9552b 100644
--- a/binutils-2.18.50.0.6-place-orphan.patch
+++ b/binutils-2.18.50.0.8-place-orphan.patch
@@ -2,8 +2,8 @@
 
 	* emulparams/elf64ppc.sh (OTHER_GOT_RELOC_SECTIONS): Add .rela.opd.
 
---- ld/emulparams/elf64ppc.sh.jj	2003-07-28 10:24:45.000000000 -0400
-+++ ld/emulparams/elf64ppc.sh	2003-08-05 08:35:58.000000000 -0400
+--- ld/emulparams/elf64ppc.sh	2007-03-16 16:48:30.000000000 +0100
++++ ld/emulparams/elf64ppc.sh	2008-07-25 20:11:20.000000000 +0200
 @@ -28,7 +28,8 @@ else
    .toc		0 : { *(.toc) }"
  fi
@@ -12,5 +12,5 @@
 +  .rela.toc	${RELOCATING-0} : { *(.rela.toc) }
 +  .rela.opd	${RELOCATING-0} : { *(.rela.opd) }"
  OTHER_READWRITE_SECTIONS="
-   .toc1		${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc1) }
-   .opd		${RELOCATING-0}${RELOCATING+ALIGN(8)} : { KEEP (*(.opd)) }"
+   .toc1		${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
+   .opd		${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
diff --git a/binutils-2.18.50.0.8-spu_ovl-dependency.patch b/binutils-2.18.50.0.8-spu_ovl-dependency.patch
new file mode 100644
index 0000000..f3f263a
--- /dev/null
+++ b/binutils-2.18.50.0.8-spu_ovl-dependency.patch
@@ -0,0 +1,46 @@
+2008-07-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* Makefile.def: ld's spu_ovl.o depends on gas and binutils.
+	* Makefile.in: Regenerate.
+
+--- Makefile.def	30 Jul 2008 15:03:54 -0000	1.92
++++ Makefile.def	30 Jul 2008 21:18:12 -0000
+@@ -378,6 +378,9 @@ dependencies = { module=all-ld; on=all-b
+ dependencies = { module=all-ld; on=all-build-byacc; };
+ dependencies = { module=all-ld; on=all-build-flex; };
+ dependencies = { module=all-ld; on=all-intl; };
++// spu_ovl.o depends on both gas and binutils/bin2c
++dependencies = { module=all-ld; on=all-gas; };
++dependencies = { module=all-ld; on=all-binutils; };
+ dependencies = { module=configure-gold; on=configure-intl; };
+ dependencies = { module=all-gold; on=all-libiberty; };
+ dependencies = { module=all-gold; on=all-intl; };
+--- Makefile.in	30 Jul 2008 15:03:54 -0000	1.285
++++ Makefile.in	30 Jul 2008 21:18:34 -0000
+@@ -53308,6 +53308,26 @@ all-stageb3g2-ld: maybe-all-stageb3g2-in
+ all-stage4-ld: maybe-all-stage4-intl
+ all-stageprofile-ld: maybe-all-stageprofile-intl
+ all-stagefeedback-ld: maybe-all-stagefeedback-intl
++all-ld: maybe-all-gas
++
++all-stage1-ld: maybe-all-stage1-gas
++all-stage2-ld: maybe-all-stage2-gas
++all-stageb2g0-ld: maybe-all-stageb2g0-gas
++all-stage3-ld: maybe-all-stage3-gas
++all-stageb3g2-ld: maybe-all-stageb3g2-gas
++all-stage4-ld: maybe-all-stage4-gas
++all-stageprofile-ld: maybe-all-stageprofile-gas
++all-stagefeedback-ld: maybe-all-stagefeedback-gas
++all-ld: maybe-all-binutils
++
++all-stage1-ld: maybe-all-stage1-binutils
++all-stage2-ld: maybe-all-stage2-binutils
++all-stageb2g0-ld: maybe-all-stageb2g0-binutils
++all-stage3-ld: maybe-all-stage3-binutils
++all-stageb3g2-ld: maybe-all-stageb3g2-binutils
++all-stage4-ld: maybe-all-stage4-binutils
++all-stageprofile-ld: maybe-all-stageprofile-binutils
++all-stagefeedback-ld: maybe-all-stagefeedback-binutils
+ configure-gold: maybe-configure-intl
+ 
+ configure-stage1-gold: maybe-configure-stage1-intl
diff --git a/binutils-2.18.50.0.8-spu_ovl-fatal.patch b/binutils-2.18.50.0.8-spu_ovl-fatal.patch
new file mode 100644
index 0000000..22c894d
--- /dev/null
+++ b/binutils-2.18.50.0.8-spu_ovl-fatal.patch
@@ -0,0 +1,20 @@
+2008-07-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* emultempl/spuelf.em: Abort on the missing required `spu_ovl.o'.
+
+--- ld/emultempl/spuelf.em	19 Jun 2008 16:14:53 -0000	1.24
++++ ld/emultempl/spuelf.em	30 Jul 2008 18:28:25 -0000
+@@ -57,7 +57,12 @@ char **my_argv;
+ static const char ovl_mgr[] = {
+ EOF
+ 
+-../binutils/bin2c < ${srcdir}/emultempl/spu_ovl.o >> e${EMULATION_NAME}.c
++if ! ../binutils/bin2c < ${srcdir}/emultempl/spu_ovl.o >> e${EMULATION_NAME}.c
++then
++  echo >&2 "Missing ${srcdir}/emultempl/spu_ovl.o"
++  echo >&2 "You must build gas/as-new with --target=spu to build spu_ovl.o"
++  exit 1
++fi
+ 
+ fragment <<EOF
+ };
diff --git a/binutils-2.18.50.0.6-symbolic-envvar-revert.patch b/binutils-2.18.50.0.8-symbolic-envvar-revert.patch
similarity index 75%
rename from binutils-2.18.50.0.6-symbolic-envvar-revert.patch
rename to binutils-2.18.50.0.8-symbolic-envvar-revert.patch
index 9ed4170..1e32462 100644
--- a/binutils-2.18.50.0.6-symbolic-envvar-revert.patch
+++ b/binutils-2.18.50.0.8-symbolic-envvar-revert.patch
@@ -1,16 +1,18 @@
---- ld/NEWS.jj	2007-05-11 11:24:08.000000000 -0400
-+++ ld/NEWS	2007-06-12 05:04:49.000000000 -0400
+It reverts the H.J. Lu's binutils custom patch.
+
+--- ld/NEWS	2008-07-10 17:33:23.000000000 +0200
++++ ld/NEWS	2008-07-30 21:24:25.000000000 +0200
 @@ -1,7 +1,4 @@
  -*- text -*-
 -* ELF: Support environment variables, LD_SYMBOLIC for -Bsymbolic and
 -  LD_SYMBOLIC_FUNCTIONS for -Bsymbolic-functions.
 -
- Changes in 2.18:
+ * Linker script input section filespecs may now specify a file within an
+  archive by writing "archive:file".
  
- * Linker sources now released under version 3 of the GNU General Public
---- ld/ld.texinfo.jj	2007-05-11 11:24:08.000000000 -0400
-+++ ld/ld.texinfo	2007-06-12 05:04:33.000000000 -0400
-@@ -1142,21 +1142,14 @@ When creating a shared library, bind ref
+--- ld/ld.texinfo	2008-07-10 17:33:23.000000000 +0200
++++ ld/ld.texinfo	2008-07-30 21:24:05.000000000 +0200
+@@ -1147,21 +1147,14 @@ When creating a shared library, bind ref
  definition within the shared library, if any.  Normally, it is possible
  for a program linked against a shared library to override the definition
  within the shared library.  This option is only meaningful on ELF
@@ -34,9 +36,9 @@
  
  @kindex --dynamic-list=@var{dynamic-list-file}
  @item --dynamic-list=@var{dynamic-list-file}
---- ld/ldmain.c.jj	2007-05-11 11:24:08.000000000 -0400
-+++ ld/ldmain.c	2007-06-12 05:05:48.000000000 -0400
-@@ -254,11 +254,6 @@ main (int argc, char **argv)
+--- ld/ldmain.c	2008-07-10 17:33:23.000000000 +0200
++++ ld/ldmain.c	2008-07-30 21:24:05.000000000 +0200
+@@ -258,11 +258,6 @@ main (int argc, char **argv)
    command_line.warn_search_mismatch = TRUE;
    command_line.check_section_addresses = TRUE;
  
diff --git a/binutils.spec b/binutils.spec
index 5f25774..44e8768 100644
--- a/binutils.spec
+++ b/binutils.spec
@@ -1,22 +1,44 @@
+%define _default_patch_fuzz 2
+# rpmbuild parameters:
+# --define "binutils_target arm-linux-gnu" to create arm-linux-gnu-binutils.
+# --with debug: Build without optimizations and without splitting the debuginfo.
+# --without testsuite: Do not run the testsuite.  Default is to run it.
+
+%if 0%{!?binutils_target:1}
+%define binutils_target %{_target_platform}
+%define isnative 1
+%else
+%define cross %{binutils_target}-
+%define isnative 0
+%endif
+
 Summary: A GNU collection of binary utilities.
-Name: binutils
-Version: 2.18.50.0.6
-Release: 4%{?dist}
+Name: %{?cross}binutils%{?_with_debug:-debug}
+Version: 2.18.50.0.8
+Release: 1%{?dist}
 License: GPLv3+
 Group: Development/Tools
 URL: http://sources.redhat.com/binutils
 Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2
 Patch1: binutils-2.18.50.0.6-ltconfig-multilib.patch
 Patch2: binutils-2.18.50.0.6-ppc64-pie.patch
-Patch3: binutils-2.18.50.0.6-place-orphan.patch
+Patch3: binutils-2.18.50.0.8-place-orphan.patch
 Patch4: binutils-2.18.50.0.6-ia64-lib64.patch
 Patch5: binutils-2.18.50.0.6-build-fixes.patch
-Patch6: binutils-2.18.50.0.6-symbolic-envvar-revert.patch
+Patch6: binutils-2.18.50.0.8-symbolic-envvar-revert.patch
 Patch7: binutils-2.18.50.0.6-version.patch
-Patch8: binutils-2.18.50.0.6-pclmul.patch
+Patch8: binutils-2.18.50.0.8-spu_ovl-fatal.patch
+Patch9: binutils-2.18.50.0.8-spu_ovl-dependency.patch
+
+%if 0%{?_with_debug:1}
+# Define this if you want to skip the strip step and preserve debug info.
+# Useful for testing.
+%define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list
+%define debug_package %{nil}
+%endif
 
 Buildroot: %{_tmppath}/binutils-root
-BuildRequires: texinfo >= 4.0, dejagnu, gettext, flex, bison
+BuildRequires: texinfo >= 4.0, dejagnu, gettext, flex, bison, automake, autoconf
 Conflicts: gcc-c++ < 4.0.0
 Prereq: /sbin/install-info
 %ifarch ia64
@@ -54,7 +76,7 @@ have a stable ABI.  Developers starting new projects are strongly encouraged
 to consider using libelf instead of BFD.
 
 %prep
-%setup -q
+%setup -q -n binutils-%{version}
 %patch1 -p0 -b .ltconfig-multilib~
 %patch2 -p0 -b .ppc64-pie~
 %patch3 -p0 -b .place-orphan~
@@ -66,9 +88,12 @@ to consider using libelf instead of BFD.
 %patch5 -p0 -b .build-fixes~
 %patch6 -p0 -b .symbolic-envvar-revert~
 %patch7 -p0 -b .version~
-%patch8 -p0 -b .pclmul~
+%patch8 -p0 -b .spu_ovl-fatal~
+%patch9 -p0 -b .spu_ovl-dependency~
 
-# On ppc64 we might use 64K pages
+# We cannot run autotools as there is an exact requirement of autoconf-2.59.
+
+# On ppc64 we might use 64KiB pages
 sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
 # LTP sucks
 perl -pi -e 's/i\[3-7\]86/i[34567]86/g' */conf*
@@ -79,39 +104,99 @@ if gcc %{optflags} -v --help 2>&1 | grep -q -- -Bsymbolic-functions; then
 sed -i -e 's/^libbfd_la_LDFLAGS = /&-Wl,-Bsymbolic-functions /' bfd/Makefile.{am,in}
 sed -i -e 's/^libopcodes_la_LDFLAGS = /&-Wl,-Bsymbolic-functions /' opcodes/Makefile.{am,in}
 fi
+# $PACKAGE is used for the gettext catalog name.
+sed -i -e 's/^ PACKAGE=/ PACKAGE=%{?cross}/' */configure
+# Undo the name change to run the testsuite.
+for tool in binutils gas ld
+do
+  sed -i -e "2aDEJATOOL = $tool" $tool/Makefile.am
+  sed -i -e "s/^DEJATOOL = .*/DEJATOOL = $tool/" $tool/Makefile.in
+done
 touch */configure
 
 %build
-mkdir build-%{_target_platform}
-cd build-%{_target_platform}
+echo target is %{binutils_target}
+export CFLAGS="$RPM_OPT_FLAGS"
 CARGS=
-%ifarch sparc ppc s390
-CARGS=--enable-64-bit-bfd
+
+case %{binutils_target} in sparc*|ppc*|s390*)
+  CARGS="$CARGS --enable-64-bit-bfd"
+  ;;
+esac
+
+case %{binutils_target} in ia64*)
+  CARGS="--enable-targets=i386-linux"
+  ;;
+esac
+
+case %{binutils_target} in ppc*|ppc64*)
+  CARGS="--enable-targets=spu"
+  # This file is present in CVS but missing in H. J. Lu's snapshots.
+  # To include it for --enable-targets=spu we need to build gas by --target=spu.
+  ! test -f ld/emultempl/spu_ovl.o
+  mkdir build-spu
+  cd build-spu
+  CFLAGS="${CFLAGS:-%optflags} -O0 -s" ../configure \
+    --target=spu --disable-shared --enable-static --disable-werror \
+    --with-bugurl=http://bugzilla.redhat.com/bugzilla/
+  make %{_smp_mflags} all
+  cd ..
+  test -f ld/emultempl/spu_ovl.o
+  rm -rf build-spu
+  ;;
+esac
+
+mkdir build-%{binutils_target}
+cd build-%{binutils_target}
+
+%if 0%{?_with_debug:1}
+# --enable-werror could conflict with `-Wall -O0' but this is no longer true
+# for recent GCCs.
+CFLAGS="$CFLAGS -O0 -ggdb2"
 %endif
-%ifarch ia64
-CARGS=--enable-targets=i386-linux
+
+# We could optimize the cross builds size by --enable-shared but the produced
+# binaries may be less convenient in the embedded environment.
+CC="gcc -L`pwd`/bfd/.libs/" ../configure \
+%if %{isnative}
+  %{binutils_target} \
+  --enable-shared \
+%else
+  --target %{binutils_target} --enable-targets=%{_host} \
+  --disable-shared \
+  --with-sysroot=%{_prefix}/%{binutils_target}/sys-root \
 %endif
-CC="gcc -L`pwd`/bfd/.libs/" CFLAGS="${CFLAGS:-%optflags}" ../configure \
-  %{_target_platform} --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
+  $CARGS \
+  --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \
   --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
   --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
   --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
   --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
-  --infodir=%{_infodir} --enable-shared $CARGS --disable-werror \
+  --infodir=%{_infodir} --disable-werror \
   --with-bugurl=http://bugzilla.redhat.com/bugzilla/
 make %{_smp_mflags} tooldir=%{_prefix} all
+# Fix: Found '%{buildroot}' in installed files; aborting
+if [ -f ld/eelf32_spu.c ]
+then
+  sed -i -e 's#%{buildroot}##g' ld/eelf32_spu.c
+fi
 make %{_smp_mflags} tooldir=%{_prefix} info
+%if 0%{?_without_testsuite:1}
+echo ====================TESTSUITE DISABLED=========================
+%else
 make -k check < /dev/null > check.log 2>&1 || :
 echo ====================TESTING=========================
 cat check.log
 echo ====================TESTING END=====================
 cd ..
+%endif
 
 %install
 rm -rf %{buildroot}
 mkdir -p %{buildroot}%{_prefix}
-cd build-%{_target_platform}
+cd build-%{binutils_target}
 %makeinstall
+%if %{isnative}
 make prefix=%{buildroot}%{_prefix} infodir=%{buildroot}%{_infodir} install-info
 gzip -q9f %{buildroot}%{_infodir}/*.info*
 
@@ -141,10 +226,6 @@ rm -f %{buildroot}%{_prefix}/%{_lib}/lib{bfd,opcodes}.so
 # Remove libtool files, which reference the .so libs
 rm -f %{buildroot}%{_prefix}/%{_lib}/lib{bfd,opcodes}.la
 
-# This one comes from gcc
-rm -f %{buildroot}%{_infodir}/dir
-rm -rf %{buildroot}%{_prefix}/%{_target_platform}
-
 %ifarch %{ix86} x86_64 ppc ppc64 s390 s390x sparc sparc64
 sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$~#include <bits/wordsize.h>~;}' \
 %ifarch %{ix86} x86_64
@@ -162,22 +243,36 @@ sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$~#include <bits/wordsize.h>~;}' \
 %endif
 touch -r ../bfd/bfd-in2.h %{buildroot}%{_prefix}/include/bfd.h
 
+%else # !%{isnative}
+# For cross-binutils we drop the documentation.
+rm -rf %{buildroot}%{_infodir}
+# We keep these as one can have native + cross binutils of different versions.
+#rm -rf %{buildroot}%{_prefix}/share/locale
+#rm -rf %{buildroot}%{_mandir}
+rm -rf %{buildroot}%{_prefix}/%{_lib}/libiberty.a
+%endif # !%{isnative}
+
+# This one comes from gcc
+rm -f %{buildroot}%{_infodir}/dir
+rm -rf %{buildroot}%{_prefix}/%{binutils_target}
+
 cd ..
-%find_lang binutils
-%find_lang opcodes
-%find_lang bfd
-%find_lang gas
-%find_lang ld
-%find_lang gprof
-cat opcodes.lang >> binutils.lang
-cat bfd.lang >> binutils.lang
-cat gas.lang >> binutils.lang
-cat ld.lang >> binutils.lang
-cat gprof.lang >> binutils.lang
+%find_lang %{?cross}binutils
+%find_lang %{?cross}opcodes
+%find_lang %{?cross}bfd
+%find_lang %{?cross}gas
+%find_lang %{?cross}ld
+%find_lang %{?cross}gprof
+cat %{?cross}opcodes.lang >> %{?cross}binutils.lang
+cat %{?cross}bfd.lang >> %{?cross}binutils.lang
+cat %{?cross}gas.lang >> %{?cross}binutils.lang
+cat %{?cross}ld.lang >> %{?cross}binutils.lang
+cat %{?cross}gprof.lang >> %{?cross}binutils.lang
 
 %clean
 rm -rf %{buildroot}
 
+%if %{isnative}
 %post
 /sbin/ldconfig
 /sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz
@@ -208,12 +303,14 @@ exit 0
 if [ $1 = 0 ] ;then
   /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
 fi
+%endif # %{isnative}
 
-%files -f binutils.lang
+%files -f %{?cross}binutils.lang
 %defattr(-,root,root)
 %doc README
 %{_prefix}/bin/*
 %{_mandir}/man1/*
+%if %{isnative}
 %{_prefix}/%{_lib}/lib*.so
 %{_infodir}/[^b]*info*
 %{_infodir}/binutils*info*
@@ -223,8 +320,19 @@ fi
 %{_prefix}/include/*
 %{_prefix}/%{_lib}/lib*.a
 %{_infodir}/bfd*info*
+%endif # %{isnative}
 
 %changelog
+* Thu Jul 31 2008 Jan Kratochvil <jan.kratochvil@redhat.com> 2.18.50.0.8-1
+- Update to 2.18.50.0.8.
+  - Drop the .clmul -> .pclmul renaming backport.
+- Add %%{binutils_target} macro to support building cross-binutils.
+  (David Woodhouse)
+- Support `--without testsuite' to suppress the testsuite run.
+- Support `--with debug' to build without optimizations.
+- Refresh the patchset with fuzz 0 (for new rpmbuild).
+- Enable the spu target on ppc/ppc64 (BZ 455242).
+
 * Wed Jul 16 2008 Jan Kratochvil <jan.kratochvil@redhat.com> 2.18.50.0.6-4
 - include the `dist' tag in the Release number
 - libbfd.a symbols visibility is now hidden (for #447426, suggested by Jakub)
diff --git a/sources b/sources
index 6d2d59d..6b9c9b2 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-9e474d739355c15ba6ecf5fd9fae8608  binutils-2.18.50.0.6.tar.bz2
+a49df3481468f281f42afbf915e10db2  binutils-2.18.50.0.8.tar.bz2