summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2015-01-08 00:11:40 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-04-08 10:53:09 +0100
commit2be79f0b1d0d53b8750d28013543b7ee853c1b42 (patch)
treef3586a5ff28b61c572df87938881ce3455f72cd9 /meta/recipes-devtools/binutils
parentb3b6cfb48bb61f2efdd5c2325fcce3209b7894c7 (diff)
downloadpoky-2be79f0b1d0d53b8750d28013543b7ee853c1b42.tar.gz
binutils: upgrade to 2.25
* Remove the following patches since they are already in the new code: binutils/fix-pr15815.patch binutils/fix-pr16428.patch binutils/fix-pr16476.patch binutils/fix-pr2404.patch binutils/replace_macros_with_static_inline.patch binutils/binutils_CVE-2014-8484.patch binutils/binutils_CVE-2014-8485.patch binutils/binutils_CVE-2014-8501.patch binutils/binutils_CVE-2014-8502.patch binutils/binutils_CVE-2014-8502_1.patch binutils/binutils_CVE-2014-8503.patch binutils/binutils_CVE-2014-8504.patch binutils/binutils_CVE-2014-8737.patch * The file src-release is gone. * Updated patches for the new code. (From OE-Core rev: a8446ea78daa5875de43eb5bcccd8f536ea07e1c) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Conflicts: meta/conf/distro/include/tcmode-default.inc Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/binutils')
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.25.inc (renamed from meta/recipes-devtools/binutils/binutils-2.24.inc)20
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian_2.25.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-canadian_2.24.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross_2.25.bb (renamed from meta/recipes-devtools/binutils/binutils-cross_2.24.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-crosssdk_2.25.bb (renamed from meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils-poison.patch40
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils-xlp-support.patch296
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch67
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch102
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch60
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch89
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch523
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch47
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch75
-rw-r--r--meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch177
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr15815.patch36
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr16428.patch123
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr16476.patch220
-rw-r--r--meta/recipes-devtools/binutils/binutils/fix-pr2404.patch76
-rw-r--r--meta/recipes-devtools/binutils/binutils/libtool-2.4-update.patch301
-rw-r--r--meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch38
-rw-r--r--meta/recipes-devtools/binutils/binutils/replace_macros_with_static_inline.patch188
-rw-r--r--meta/recipes-devtools/binutils/binutils_2.25.bb (renamed from meta/recipes-devtools/binutils/binutils_2.24.bb)0
22 files changed, 339 insertions, 2139 deletions
diff --git a/meta/recipes-devtools/binutils/binutils-2.24.inc b/meta/recipes-devtools/binutils/binutils-2.25.inc
index 63c928712e..d69b519542 100644
--- a/meta/recipes-devtools/binutils/binutils-2.24.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.25.inc
@@ -1,5 +1,4 @@
1LIC_FILES_CHKSUM="\ 1LIC_FILES_CHKSUM="\
2 file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
3 file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ 2 file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
4 file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ 3 file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\
5 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ 4 file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\
@@ -25,22 +24,7 @@ SRC_URI = "\
25 file://binutils-armv5e.patch \ 24 file://binutils-armv5e.patch \
26 file://mips64-default-ld-emulation.patch \ 25 file://mips64-default-ld-emulation.patch \
27 file://binutils-xlp-support.patch \ 26 file://binutils-xlp-support.patch \
28 file://fix-pr15815.patch \
29 file://fix-pr2404.patch \
30 file://fix-pr16476.patch \
31 file://fix-pr16428.patch \
32 file://replace_macros_with_static_inline.patch \
33 file://0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch \
34 file://binutils-uninitialised-warning.patch \
35 file://binutils_CVE-2014-8484.patch \
36 file://binutils_CVE-2014-8485.patch \
37 file://binutils_CVE-2014-8501.patch \
38 file://binutils_CVE-2014-8502_1.patch \
39 file://binutils_CVE-2014-8502.patch \
40 file://binutils_CVE-2014-8503.patch \
41 file://binutils_CVE-2014-8504.patch \
42 file://binutils_CVE-2014-8737.patch \
43 " 27 "
28SRC_URI[md5sum] = "d9f3303f802a5b6b0bb73a335ab89d66"
29SRC_URI[sha256sum] = "22defc65cfa3ef2a3395faaea75d6331c6e62ea5dfacfed3e2ec17b08c882923"
44 30
45SRC_URI[md5sum] = "e0f71a7b2ddab0f8612336ac81d9636b"
46SRC_URI[sha256sum] = "e5e8c5be9664e7f7f96e0d09919110ab5ad597794f5b1809871177a0f0f14137"
diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.24.bb b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.25.bb
index 5dbaa03017..5dbaa03017 100644
--- a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.24.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.25.bb
diff --git a/meta/recipes-devtools/binutils/binutils-cross_2.24.bb b/meta/recipes-devtools/binutils/binutils-cross_2.25.bb
index fbd1f7d25a..fbd1f7d25a 100644
--- a/meta/recipes-devtools/binutils/binutils-cross_2.24.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross_2.25.bb
diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.25.bb
index b6d9a215e1..b6d9a215e1 100644
--- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.24.bb
+++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.25.bb
diff --git a/meta/recipes-devtools/binutils/binutils/binutils-poison.patch b/meta/recipes-devtools/binutils/binutils/binutils-poison.patch
index 996c023810..eb540766dc 100644
--- a/meta/recipes-devtools/binutils/binutils/binutils-poison.patch
+++ b/meta/recipes-devtools/binutils/binutils/binutils-poison.patch
@@ -106,10 +106,10 @@ Index: binutils-2.24/ld/configure
106 106
107 # Check whether --enable-got was given. 107 # Check whether --enable-got was given.
108 if test "${enable_got+set}" = set; then : 108 if test "${enable_got+set}" = set; then :
109Index: binutils-2.24/ld/configure.in 109Index: binutils-2.24/ld/configure.ac
110=================================================================== 110===================================================================
111--- binutils-2.24.orig/ld/configure.in 2013-12-15 11:46:17.000000000 -0800 111--- binutils-2.24.orig/ld/configure.ac 2013-12-15 11:46:17.000000000 -0800
112+++ binutils-2.24/ld/configure.in 2013-12-15 11:46:59.810435651 -0800 112+++ binutils-2.24/ld/configure.ac 2013-12-15 11:46:59.810435651 -0800
113@@ -87,6 +87,16 @@ 113@@ -87,6 +87,16 @@
114 AC_SUBST(TARGET_SYSTEM_ROOT) 114 AC_SUBST(TARGET_SYSTEM_ROOT)
115 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) 115 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
@@ -214,10 +214,10 @@ Index: binutils-2.24/ld/lexsup.c
214=================================================================== 214===================================================================
215--- binutils-2.24.orig/ld/lexsup.c 2013-12-15 11:46:17.000000000 -0800 215--- binutils-2.24.orig/ld/lexsup.c 2013-12-15 11:46:17.000000000 -0800
216+++ binutils-2.24/ld/lexsup.c 2013-12-15 11:49:28.950434490 -0800 216+++ binutils-2.24/ld/lexsup.c 2013-12-15 11:49:28.950434490 -0800
217@@ -507,6 +507,14 @@ 217@@ -513,6 +513,14 @@ static const struct ld_option ld_options[] =
218 OPTION_IGNORE_UNRESOLVED_SYMBOL}, 218 { {"pop-state", no_argument, NULL, OPTION_POP_STATE},
219 '\0', N_("SYMBOL"), 219 '\0', NULL, N_("Pop state of flags governing input file handling"),
220 N_("Unresolved SYMBOL will not cause an error or warning"), TWO_DASHES }, 220 TWO_DASHES },
221+ { {"no-poison-system-directories", no_argument, NULL, 221+ { {"no-poison-system-directories", no_argument, NULL,
222+ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, 222+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
223+ '\0', NULL, N_("Do not warn for -L options using system directories"), 223+ '\0', NULL, N_("Do not warn for -L options using system directories"),
@@ -229,18 +229,18 @@ Index: binutils-2.24/ld/lexsup.c
229 }; 229 };
230 230
231 #define OPTION_COUNT ARRAY_SIZE (ld_options) 231 #define OPTION_COUNT ARRAY_SIZE (ld_options)
232@@ -1442,6 +1450,14 @@ 232@@ -1474,6 +1482,14 @@ parse_args (unsigned argc, char **argv)
233 einfo (_("%P%X: --hash-size needs a numeric argument\n")); 233 free (oldp);
234 } 234 }
235 break; 235 break;
236+ 236+
237+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: 237+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
238+ command_line.poison_system_directories = FALSE; 238+ command_line.poison_system_directories = FALSE;
239+ break; 239+ break;
240+ 240+
241+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: 241+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
242+ command_line.error_poison_system_directories = TRUE; 242+ command_line.error_poison_system_directories = TRUE;
243+ break; 243+ break;
244 } 244 }
245 } 245 }
246 246
@@ -248,10 +248,10 @@ Index: binutils-2.24/ld/ldlex.h
248=================================================================== 248===================================================================
249--- binutils-2.24.orig/ld/ldlex.h 2013-12-15 11:46:17.000000000 -0800 249--- binutils-2.24.orig/ld/ldlex.h 2013-12-15 11:46:17.000000000 -0800
250+++ binutils-2.24/ld/ldlex.h 2013-12-15 11:47:43.230435299 -0800 250+++ binutils-2.24/ld/ldlex.h 2013-12-15 11:47:43.230435299 -0800
251@@ -138,6 +138,8 @@ 251@@ -140,6 +140,8 @@ enum option_values
252 OPTION_DEFAULT_SCRIPT,
253 OPTION_PRINT_OUTPUT_FORMAT,
254 OPTION_IGNORE_UNRESOLVED_SYMBOL, 252 OPTION_IGNORE_UNRESOLVED_SYMBOL,
253 OPTION_PUSH_STATE,
254 OPTION_POP_STATE,
255+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, 255+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
256+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, 256+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
257 }; 257 };
diff --git a/meta/recipes-devtools/binutils/binutils/binutils-xlp-support.patch b/meta/recipes-devtools/binutils/binutils/binutils-xlp-support.patch
index a1999184be..b03bb28237 100644
--- a/meta/recipes-devtools/binutils/binutils/binutils-xlp-support.patch
+++ b/meta/recipes-devtools/binutils/binutils/binutils-xlp-support.patch
@@ -16,75 +16,73 @@ Netlogic. Also, update vendor name to NLM wherever applicable.
16 bfd/cpu-mips.c | 6 ++++-- 16 bfd/cpu-mips.c | 6 ++++--
17 bfd/elfxx-mips.c | 8 ++++++++ 17 bfd/elfxx-mips.c | 8 ++++++++
18 binutils/readelf.c | 1 + 18 binutils/readelf.c | 1 +
19 config.sub | 6 ++++++ 19 gas/config/tc-mips.c | 4 +++-
20 gas/config/tc-mips.c | 7 ++++++-
21 gas/configure | 3 +++ 20 gas/configure | 3 +++
22 gas/configure.tgt | 2 +- 21 gas/configure.tgt | 2 +-
23 gas/doc/c-mips.texi | 3 ++-
24 include/elf/mips.h | 1 + 22 include/elf/mips.h | 1 +
25 include/opcode/mips.h | 6 +++++- 23 include/opcode/mips.h | 10 ++++++++--
26 ld/configure.tgt | 2 ++ 24 ld/configure.tgt | 2 ++
27 opcodes/mips-dis.c | 6 ++++++ 25 opcodes/mips-dis.c | 12 +++++-------
28 opcodes/mips-opc.c | 31 ++++++++++++++++++++----------- 26 opcodes/mips-opc.c | 33 +++++++++++++++++++++------------
29 17 files changed, 73 insertions(+), 17 deletions(-) 27 15 files changed, 65 insertions(+), 25 deletions(-)
30 28
31Index: binutils-2.24/bfd/aoutx.h 29diff --git a/bfd/aoutx.h b/bfd/aoutx.h
32=================================================================== 30index 9385a98..a88df99 100644
33--- binutils-2.24.orig/bfd/aoutx.h 2013-12-15 13:07:57.180399300 -0800 31--- a/bfd/aoutx.h
34+++ binutils-2.24/bfd/aoutx.h 2013-12-15 13:08:03.397065919 -0800 32+++ b/bfd/aoutx.h
35@@ -798,6 +798,7 @@ 33@@ -802,6 +802,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
36 case bfd_mach_mipsisa64r2: 34 case bfd_mach_mipsisa64r6:
37 case bfd_mach_mips_sb1: 35 case bfd_mach_mips_sb1:
38 case bfd_mach_mips_xlr: 36 case bfd_mach_mips_xlr:
39+ case bfd_mach_mips_xlp: 37+ case bfd_mach_mips_xlp:
40 /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */ 38 /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */
41 arch_flags = M_MIPS2; 39 arch_flags = M_MIPS2;
42 break; 40 break;
43Index: binutils-2.24/bfd/archures.c 41diff --git a/bfd/archures.c b/bfd/archures.c
44=================================================================== 42index c9fd6c8..547bd09 100644
45--- binutils-2.24.orig/bfd/archures.c 2013-12-15 13:07:57.180399300 -0800 43--- a/bfd/archures.c
46+++ binutils-2.24/bfd/archures.c 2013-12-15 13:08:03.397065919 -0800 44+++ b/bfd/archures.c
47@@ -178,6 +178,7 @@ 45@@ -180,6 +180,7 @@ DESCRIPTION
48 .#define bfd_mach_mips_octeonp 6601 46 .#define bfd_mach_mips_octeonp 6601
49 .#define bfd_mach_mips_octeon2 6502 47 .#define bfd_mach_mips_octeon2 6502
50 .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *} 48 .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *}
51+.#define bfd_mach_mips_xlp 887680 {* decimal 'XLP' *} 49+.#define bfd_mach_mips_xlp 887680 {* decimal 'XLP' *}
52 .#define bfd_mach_mipsisa32 32 50 .#define bfd_mach_mipsisa32 32
53 .#define bfd_mach_mipsisa32r2 33 51 .#define bfd_mach_mipsisa32r2 33
54 .#define bfd_mach_mipsisa64 64 52 .#define bfd_mach_mipsisa32r3 34
55Index: binutils-2.24/bfd/bfd-in2.h 53diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
56=================================================================== 54index c7a2bb5..413b773 100644
57--- binutils-2.24.orig/bfd/bfd-in2.h 2013-12-15 13:07:57.180399300 -0800 55--- a/bfd/bfd-in2.h
58+++ binutils-2.24/bfd/bfd-in2.h 2013-12-15 13:08:03.400399254 -0800 56+++ b/bfd/bfd-in2.h
59@@ -1933,6 +1933,7 @@ 57@@ -1967,6 +1967,7 @@ enum bfd_architecture
60 #define bfd_mach_mips_octeonp 6601 58 #define bfd_mach_mips_octeonp 6601
61 #define bfd_mach_mips_octeon2 6502 59 #define bfd_mach_mips_octeon2 6502
62 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ 60 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */
63+#define bfd_mach_mips_xlp 887680 /* decimal 'XLP' */ 61+#define bfd_mach_mips_xlp 887680 /* decimal 'XLP' */
64 #define bfd_mach_mipsisa32 32 62 #define bfd_mach_mipsisa32 32
65 #define bfd_mach_mipsisa32r2 33 63 #define bfd_mach_mipsisa32r2 33
66 #define bfd_mach_mipsisa64 64 64 #define bfd_mach_mipsisa32r3 34
67Index: binutils-2.24/bfd/config.bfd 65diff --git a/bfd/config.bfd b/bfd/config.bfd
68=================================================================== 66index 03d2c6f..91cedb8 100644
69--- binutils-2.24.orig/bfd/config.bfd 2013-12-15 13:08:03.047065922 -0800 67--- a/bfd/config.bfd
70+++ binutils-2.24/bfd/config.bfd 2013-12-15 13:08:03.400399254 -0800 68+++ b/bfd/config.bfd
71@@ -1032,6 +1032,11 @@ 69@@ -1041,6 +1041,11 @@ case "${targ}" in
72 targ_defvec=bfd_elf32_littlemips_vec 70 targ_defvec=mips_elf32_le_vec
73 targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 71 targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
74 ;; 72 ;;
75+ mipsisa64*-*-elf*) 73+ mipsisa64*-*-elf*)
76+ targ_defvec=bfd_elf32_tradbigmips_vec 74+ targ_defvec=mips_elf32_trad_be_vec
77+ targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec" 75+ targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
78+ want64=true 76+ want64=true
79+ ;; 77+ ;;
80 mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks | mips*-*-windiss) 78 mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks | mips*-*-windiss)
81 targ_defvec=bfd_elf32_bigmips_vec 79 targ_defvec=mips_elf32_be_vec
82 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 80 targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
83Index: binutils-2.24/bfd/cpu-mips.c 81diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
84=================================================================== 82index b617aaa..19a99d1 100644
85--- binutils-2.24.orig/bfd/cpu-mips.c 2013-12-15 13:07:57.180399300 -0800 83--- a/bfd/cpu-mips.c
86+++ binutils-2.24/bfd/cpu-mips.c 2013-12-15 13:08:03.400399254 -0800 84+++ b/bfd/cpu-mips.c
87@@ -99,7 +99,8 @@ 85@@ -103,7 +103,8 @@ enum
88 I_mipsocteonp, 86 I_mipsocteonp,
89 I_mipsocteon2, 87 I_mipsocteon2,
90 I_xlr, 88 I_xlr,
@@ -94,7 +92,7 @@ Index: binutils-2.24/bfd/cpu-mips.c
94 }; 92 };
95 93
96 #define NN(index) (&arch_info_struct[(index) + 1]) 94 #define NN(index) (&arch_info_struct[(index) + 1])
97@@ -143,7 +144,8 @@ 95@@ -153,7 +154,8 @@ static const bfd_arch_info_type arch_info_struct[] =
98 N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)), 96 N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)),
99 N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)), 97 N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)),
100 N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)), 98 N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
@@ -104,11 +102,11 @@ Index: binutils-2.24/bfd/cpu-mips.c
104 }; 102 };
105 103
106 /* The default architecture is mips:3000, but with a machine number of 104 /* The default architecture is mips:3000, but with a machine number of
107Index: binutils-2.24/bfd/elfxx-mips.c 105diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
108=================================================================== 106index a0cc26e..672d5b3 100644
109--- binutils-2.24.orig/bfd/elfxx-mips.c 2013-12-15 13:07:57.180399300 -0800 107--- a/bfd/elfxx-mips.c
110+++ binutils-2.24/bfd/elfxx-mips.c 2013-12-15 13:08:03.400399254 -0800 108+++ b/bfd/elfxx-mips.c
111@@ -6404,6 +6404,9 @@ 109@@ -6608,6 +6608,9 @@ _bfd_elf_mips_mach (flagword flags)
112 case E_MIPS_MACH_XLR: 110 case E_MIPS_MACH_XLR:
113 return bfd_mach_mips_xlr; 111 return bfd_mach_mips_xlr;
114 112
@@ -118,7 +116,7 @@ Index: binutils-2.24/bfd/elfxx-mips.c
118 default: 116 default:
119 switch (flags & EF_MIPS_ARCH) 117 switch (flags & EF_MIPS_ARCH)
120 { 118 {
121@@ -11622,6 +11625,10 @@ 119@@ -11878,6 +11881,10 @@ mips_set_isa_flags (bfd *abfd)
122 val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; 120 val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2;
123 break; 121 break;
124 122
@@ -129,31 +127,31 @@ Index: binutils-2.24/bfd/elfxx-mips.c
129 case bfd_mach_mipsisa32: 127 case bfd_mach_mipsisa32:
130 val = E_MIPS_ARCH_32; 128 val = E_MIPS_ARCH_32;
131 break; 129 break;
132@@ -14202,6 +14209,7 @@ 130@@ -14753,6 +14760,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
133 { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp },
134 { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, 131 { bfd_mach_mips_octeonp, bfd_mach_mips_octeon },
135 { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, 132 { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 },
133 { bfd_mach_mips_loongson_3a, bfd_mach_mipsisa64r2 },
136+ { bfd_mach_mips_xlp, bfd_mach_mipsisa64r2 }, 134+ { bfd_mach_mips_xlp, bfd_mach_mipsisa64r2 },
137 135
138 /* MIPS64 extensions. */ 136 /* MIPS64 extensions. */
139 { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 }, 137 { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
140Index: binutils-2.24/binutils/readelf.c 138diff --git a/binutils/readelf.c b/binutils/readelf.c
141=================================================================== 139index 0c00b2f..6e9d5e4 100644
142--- binutils-2.24.orig/binutils/readelf.c 2013-12-15 13:07:57.180399300 -0800 140--- a/binutils/readelf.c
143+++ binutils-2.24/binutils/readelf.c 2013-12-15 13:08:03.403732587 -0800 141+++ b/binutils/readelf.c
144@@ -2602,6 +2602,7 @@ 142@@ -2898,6 +2898,7 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
145 case E_MIPS_MACH_OCTEON: strcat (buf, ", octeon"); break;
146 case E_MIPS_MACH_OCTEON2: strcat (buf, ", octeon2"); break; 143 case E_MIPS_MACH_OCTEON2: strcat (buf, ", octeon2"); break;
144 case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break;
147 case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break; 145 case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break;
148+ case E_MIPS_MACH_XLP: strcat (buf, ", xlp"); break; 146+ case E_MIPS_MACH_XLP: strcat (buf, ", xlp"); break;
149 case 0: 147 case 0:
150 /* We simply ignore the field in this case to avoid confusion: 148 /* We simply ignore the field in this case to avoid confusion:
151 MIPS ELF does not specify EF_MIPS_MACH, it is a GNU 149 MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
152Index: binutils-2.24/gas/config/tc-mips.c 150diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
153=================================================================== 151index c3e3e2a..8d64344 100644
154--- binutils-2.24.orig/gas/config/tc-mips.c 2013-12-15 13:07:57.180399300 -0800 152--- a/gas/config/tc-mips.c
155+++ binutils-2.24/gas/config/tc-mips.c 2013-12-15 13:17:19.943728439 -0800 153+++ b/gas/config/tc-mips.c
156@@ -486,6 +486,7 @@ 154@@ -551,6 +551,7 @@ static int mips_32bitmode = 0;
157 || mips_opts.arch == CPU_RM7000 \ 155 || mips_opts.arch == CPU_RM7000 \
158 || mips_opts.arch == CPU_VR5500 \ 156 || mips_opts.arch == CPU_VR5500 \
159 || mips_opts.micromips \ 157 || mips_opts.micromips \
@@ -161,7 +159,7 @@ Index: binutils-2.24/gas/config/tc-mips.c
161 ) 159 )
162 160
163 /* Whether the processor uses hardware interlocks to protect reads 161 /* Whether the processor uses hardware interlocks to protect reads
164@@ -515,6 +516,7 @@ 162@@ -580,6 +581,7 @@ static int mips_32bitmode = 0;
165 && mips_opts.isa != ISA_MIPS3) \ 163 && mips_opts.isa != ISA_MIPS3) \
166 || mips_opts.arch == CPU_R4300 \ 164 || mips_opts.arch == CPU_R4300 \
167 || mips_opts.micromips \ 165 || mips_opts.micromips \
@@ -169,7 +167,7 @@ Index: binutils-2.24/gas/config/tc-mips.c
169 ) 167 )
170 168
171 /* Whether the processor uses hardware interlocks to protect reads 169 /* Whether the processor uses hardware interlocks to protect reads
172@@ -17794,7 +17796,7 @@ 170@@ -18682,7 +18684,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
173 /* Broadcom XLP. 171 /* Broadcom XLP.
174 XLP is mostly like XLR, with the prominent exception that it is 172 XLP is mostly like XLR, with the prominent exception that it is
175 MIPS64R2 rather than MIPS64. */ 173 MIPS64R2 rather than MIPS64. */
@@ -178,13 +176,13 @@ Index: binutils-2.24/gas/config/tc-mips.c
178 176
179 /* End marker */ 177 /* End marker */
180 { NULL, 0, 0, 0, 0 } 178 { NULL, 0, 0, 0, 0 }
181Index: binutils-2.24/gas/configure 179diff --git a/gas/configure b/gas/configure
182=================================================================== 180index 9529f1a..63bba5b 100755
183--- binutils-2.24.orig/gas/configure 2013-12-15 13:08:01.127065936 -0800 181--- a/gas/configure
184+++ binutils-2.24/gas/configure 2013-12-15 13:08:03.407065920 -0800 182+++ b/gas/configure
185@@ -12697,6 +12697,9 @@ 183@@ -12808,6 +12808,9 @@ _ACEOF
186 mipsisa64r2 | mipsisa64r2el) 184 mipsisa64r6 | mipsisa64r6el)
187 mips_cpu=mips64r2 185 mips_cpu=mips64r6
188 ;; 186 ;;
189+ mipsisa64r2nlm | mipsisa64r2nlmel) 187+ mipsisa64r2nlm | mipsisa64r2nlmel)
190+ mips_cpu=xlp 188+ mips_cpu=xlp
@@ -192,36 +190,36 @@ Index: binutils-2.24/gas/configure
192 mipstx39 | mipstx39el) 190 mipstx39 | mipstx39el)
193 mips_cpu=r3900 191 mips_cpu=r3900
194 ;; 192 ;;
195Index: binutils-2.24/gas/configure.tgt 193diff --git a/gas/configure.tgt b/gas/configure.tgt
196=================================================================== 194index 05546ca..bb859d6 100644
197--- binutils-2.24.orig/gas/configure.tgt 2013-12-15 13:08:00.783732605 -0800 195--- a/gas/configure.tgt
198+++ binutils-2.24/gas/configure.tgt 2013-12-15 13:08:03.407065920 -0800 196+++ b/gas/configure.tgt
199@@ -325,7 +325,7 @@ 197@@ -332,7 +332,7 @@ case ${generic_target} in
200 fmt=elf em=freebsd ;;
201 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;; 198 mips-*-sysv4*MP* | mips-*-gnu*) fmt=elf em=tmips ;;
202 mips*-sde-elf* | mips*-mti-elf*) fmt=elf em=tmips ;; 199 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
200 fmt=elf em=tmips ;;
203- mips-*-elf* | mips-*-rtems*) fmt=elf ;; 201- mips-*-elf* | mips-*-rtems*) fmt=elf ;;
204+ mips-*-elf* | mips-*-rtems*) fmt=elf em=tmips ;; 202+ mips-*-elf* | mips-*-rtems*) fmt=elf em=tmips ;;
205 mips-*-netbsd*) fmt=elf em=tmips ;; 203 mips-*-netbsd*) fmt=elf em=tmips ;;
206 mips-*-openbsd*) fmt=elf em=tmips ;; 204 mips-*-openbsd*) fmt=elf em=tmips ;;
207 205
208Index: binutils-2.24/include/elf/mips.h 206diff --git a/include/elf/mips.h b/include/elf/mips.h
209=================================================================== 207index 2ed6acd..899b1e5 100644
210--- binutils-2.24.orig/include/elf/mips.h 2013-12-15 13:07:57.180399300 -0800 208--- a/include/elf/mips.h
211+++ binutils-2.24/include/elf/mips.h 2013-12-15 13:08:03.407065920 -0800 209+++ b/include/elf/mips.h
212@@ -274,6 +274,7 @@ 210@@ -285,6 +285,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
213 #define E_MIPS_MACH_SB1 0x008a0000 211 #define E_MIPS_MACH_SB1 0x008a0000
214 #define E_MIPS_MACH_OCTEON 0x008b0000 212 #define E_MIPS_MACH_OCTEON 0x008b0000
215 #define E_MIPS_MACH_XLR 0x008c0000 213 #define E_MIPS_MACH_XLR 0x008c0000
216+#define E_MIPS_MACH_XLP 0x008e0000 214+#define E_MIPS_MACH_XLP 0x008f0000
217 #define E_MIPS_MACH_OCTEON2 0x008d0000 215 #define E_MIPS_MACH_OCTEON2 0x008d0000
216 #define E_MIPS_MACH_OCTEON3 0x008e0000
218 #define E_MIPS_MACH_5400 0x00910000 217 #define E_MIPS_MACH_5400 0x00910000
219 #define E_MIPS_MACH_5900 0x00920000 218diff --git a/include/opcode/mips.h b/include/opcode/mips.h
220Index: binutils-2.24/include/opcode/mips.h 219index ef26167..ef53ec6 100644
221=================================================================== 220--- a/include/opcode/mips.h
222--- binutils-2.24.orig/include/opcode/mips.h 2013-12-15 13:07:57.180399300 -0800 221+++ b/include/opcode/mips.h
223+++ binutils-2.24/include/opcode/mips.h 2013-12-15 13:40:11.130384844 -0800 222@@ -1227,8 +1227,10 @@ static const unsigned int mips_isa_table[] = {
224@@ -1092,8 +1092,10 @@
225 #define INSN_LOONGSON_2F 0x80000000 223 #define INSN_LOONGSON_2F 0x80000000
226 /* Loongson 3A. */ 224 /* Loongson 3A. */
227 #define INSN_LOONGSON_3A 0x00000400 225 #define INSN_LOONGSON_3A 0x00000400
@@ -234,7 +232,7 @@ Index: binutils-2.24/include/opcode/mips.h
234 232
235 /* DSP ASE */ 233 /* DSP ASE */
236 #define ASE_DSP 0x00000001 234 #define ASE_DSP 0x00000001
237@@ -1172,6 +1174,7 @@ 235@@ -1324,6 +1326,7 @@ static const unsigned int mips_isa_table[] = {
238 #define CPU_OCTEONP 6601 236 #define CPU_OCTEONP 6601
239 #define CPU_OCTEON2 6502 237 #define CPU_OCTEON2 6502
240 #define CPU_XLR 887682 /* decimal 'XLR' */ 238 #define CPU_XLR 887682 /* decimal 'XLR' */
@@ -242,9 +240,9 @@ Index: binutils-2.24/include/opcode/mips.h
242 240
243 /* Return true if the given CPU is included in INSN_* mask MASK. */ 241 /* Return true if the given CPU is included in INSN_* mask MASK. */
244 242
245@@ -1239,6 +1242,9 @@ 243@@ -1398,6 +1401,9 @@ cpu_is_member (int cpu, unsigned int mask)
246 case CPU_XLR: 244 return ((mask & INSN_ISA_MASK) == INSN_ISA32R6)
247 return (mask & INSN_XLR) != 0; 245 || ((mask & INSN_ISA_MASK) == INSN_ISA64R6);
248 246
249+ case CPU_XLP: 247+ case CPU_XLP:
250+ return (mask & INSN_XLP) != 0; 248+ return (mask & INSN_XLP) != 0;
@@ -252,12 +250,12 @@ Index: binutils-2.24/include/opcode/mips.h
252 default: 250 default:
253 return FALSE; 251 return FALSE;
254 } 252 }
255Index: binutils-2.24/ld/configure.tgt 253diff --git a/ld/configure.tgt b/ld/configure.tgt
256=================================================================== 254index 740b2ea..4df13a7 100644
257--- binutils-2.24.orig/ld/configure.tgt 2013-12-15 13:08:03.047065922 -0800 255--- a/ld/configure.tgt
258+++ binutils-2.24/ld/configure.tgt 2013-12-15 13:08:03.407065920 -0800 256+++ b/ld/configure.tgt
259@@ -457,6 +457,8 @@ 257@@ -462,6 +462,8 @@ mips*el-sde-elf*) targ_emul=elf32ltsmip
260 mips*-sde-elf* | mips*-mti-elf*) 258 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
261 targ_emul=elf32btsmip 259 targ_emul=elf32btsmip
262 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;; 260 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
263+mipsisa64*-*-elf*) targ_emul=elf32btsmip 261+mipsisa64*-*-elf*) targ_emul=elf32btsmip
@@ -265,13 +263,13 @@ Index: binutils-2.24/ld/configure.tgt
265 mips64*el-ps2-elf*) targ_emul=elf32lr5900n32 263 mips64*el-ps2-elf*) targ_emul=elf32lr5900n32
266 targ_extra_emuls="elf32lr5900" 264 targ_extra_emuls="elf32lr5900"
267 targ_extra_libpath=$targ_extra_emuls ;; 265 targ_extra_libpath=$targ_extra_emuls ;;
268Index: binutils-2.24/opcodes/mips-dis.c 266diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
269=================================================================== 267index 1eb1d45..d6881af 100644
270--- binutils-2.24.orig/opcodes/mips-dis.c 2013-12-15 13:07:57.180399300 -0800 268--- a/opcodes/mips-dis.c
271+++ binutils-2.24/opcodes/mips-dis.c 2013-12-15 13:39:50.243718329 -0800 269+++ b/opcodes/mips-dis.c
272@@ -554,13 +554,11 @@ 270@@ -655,13 +655,11 @@ const struct mips_arch_choice mips_arch_choices[] =
273 mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), 271 mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
274 mips_hwr_names_numeric }, 272 mips_cp1_names_mips3264, mips_hwr_names_numeric },
275 273
276- /* XLP is mostly like XLR, with the prominent exception it is being 274- /* XLP is mostly like XLR, with the prominent exception it is being
277- MIPS64R2. */ 275- MIPS64R2. */
@@ -279,7 +277,7 @@ Index: binutils-2.24/opcodes/mips-dis.c
279- ISA_MIPS64R2 | INSN_XLR, 0, 277- ISA_MIPS64R2 | INSN_XLR, 0,
280- mips_cp0_names_xlr, 278- mips_cp0_names_xlr,
281- mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), 279- mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
282- mips_hwr_names_numeric }, 280- mips_cp1_names_mips3264, mips_hwr_names_numeric },
283+ { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP, 281+ { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP,
284+ ISA_MIPS64R2 | INSN_XLP, 0, 282+ ISA_MIPS64R2 | INSN_XLP, 0,
285+ mips_cp0_names_mips3264r2, 283+ mips_cp0_names_mips3264r2,
@@ -288,11 +286,11 @@ Index: binutils-2.24/opcodes/mips-dis.c
288 286
289 /* This entry, mips16, is here only for ISA/processor selection; do 287 /* This entry, mips16, is here only for ISA/processor selection; do
290 not print its name. */ 288 not print its name. */
291Index: binutils-2.24/opcodes/mips-opc.c 289diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
292=================================================================== 290index 2c3bbad..86eb95b 100644
293--- binutils-2.24.orig/opcodes/mips-opc.c 2013-12-15 13:07:57.180399300 -0800 291--- a/opcodes/mips-opc.c
294+++ binutils-2.24/opcodes/mips-opc.c 2013-12-15 13:27:30.573724118 -0800 292+++ b/opcodes/mips-opc.c
295@@ -262,7 +262,8 @@ 293@@ -319,7 +319,8 @@ decode_mips_operand (const char *p)
296 #define IOCT (INSN_OCTEON | INSN_OCTEONP | INSN_OCTEON2) 294 #define IOCT (INSN_OCTEON | INSN_OCTEONP | INSN_OCTEON2)
297 #define IOCTP (INSN_OCTEONP | INSN_OCTEON2) 295 #define IOCTP (INSN_OCTEONP | INSN_OCTEON2)
298 #define IOCT2 INSN_OCTEON2 296 #define IOCT2 INSN_OCTEON2
@@ -302,67 +300,69 @@ Index: binutils-2.24/opcodes/mips-opc.c
302 #define IVIRT ASE_VIRT 300 #define IVIRT ASE_VIRT
303 #define IVIRT64 ASE_VIRT64 301 #define IVIRT64 ASE_VIRT64
304 302
305@@ -881,6 +882,7 @@ 303@@ -956,6 +957,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
306 {"cins", "t,r,+p,+S", 0x70000032, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 }, 304 {"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
307 {"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, 0 }, 305 {"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
308 {"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, 0 }, 306 {"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
309+{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, 307+{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 },
310 {"ctc0", "t,G", 0x40c00000, 0xffe007ff, RD_1|WR_CC|COD, 0, I1, 0, IOCT|IOCTP|IOCT2 }, 308 /* ctc0 is at the bottom of the table. */
311 {"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|COD|FP_S, 0, I1, 0, 0 }, 309 {"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
312 {"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|COD|FP_S, 0, I1, 0, 0 }, 310 {"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
313@@ -913,10 +915,11 @@ 311@@ -988,12 +990,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
314 {"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 }, 312 {"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 },
315 {"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 }, 313 {"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 },
316 {"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 }, 314 {"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 },
317-{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 }, 315-{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 },
318+{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR|XLP, 0, 0 }, 316+{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR|XLP, 0, 0 },
319 {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5, 0, 0 }, 317 {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5, 0, 0 },
320 {"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, 0 }, 318 {"dclo", "d,s", 0x00000053, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 },
321 {"dclz", "U,s", 0x70000024, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, 0 }, 319 {"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 },
320 {"dclz", "d,s", 0x00000052, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 },
321 {"dclz", "U,s", 0x70000024, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 },
322+{"dcrc", "d,s,t", 0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, 322+{"dcrc", "d,s,t", 0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 },
323 /* dctr and dctw are used on the r5000. */ 323 /* dctr and dctw are used on the r5000. */
324 {"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 }, 324 {"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
325 {"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 }, 325 {"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
326@@ -980,6 +983,7 @@ 326@@ -1065,6 +1068,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
327 {"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LCD, 0, I64, 0, 0 }, 327 {"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 },
328 {"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LCD, 0, 0, IVIRT64, 0 }, 328 {"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
329 {"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LCD, 0, 0, IVIRT64, 0 }, 329 {"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
330+{"dmfur", "t,d", 0x7000001e, 0xffe007ff, WR_1, 0, XLP, 0, 0 }, 330+{"dmfur", "t,d", 0x7000001e, 0xffe007ff, WR_1, 0, XLP, 0, 0 },
331 {"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 }, 331 {"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
332 {"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 }, 332 {"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
333 {"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|COD, 0, I3, 0, EE }, 333 {"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE },
334@@ -994,6 +998,8 @@ 334@@ -1079,6 +1083,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
335 /* dmtc2 is at the bottom of the table. */ 335 /* dmtc2 is at the bottom of the table. */
336 /* dmfc3 is at the bottom of the table. */ 336 /* dmfc3 is at the bottom of the table. */
337 /* dmtc3 is at the bottom of the table. */ 337 /* dmtc3 is at the bottom of the table. */
338 {"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
338+{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 }, 339+{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 },
339+{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, 340+{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 },
341 {"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
340 {"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 }, 342 {"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 },
341 {"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, M32 }, 343@@ -1229,9 +1235,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
342 {"dmul", "d,v,I", 0, (int) M_DMUL_I, INSN_MACRO, 0, I3, 0, M32 }, 344 {"ld", "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1, RD_pc, I69, 0, 0 },
343@@ -1134,9 +1140,9 @@
344 /* The macro has to be first to handle o32 correctly. */
345 {"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 }, 345 {"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 },
346 {"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3, 0, I3, 0, 0 }, 346 {"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, 0 },
347-{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 347-{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
348-{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 348-{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
349-{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 349-{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
350+{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 350+{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
351+{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 351+{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
352+{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 352+{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
353 {"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF }, 353 {"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
354 {"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF }, 354 {"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
355 {"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF }, 355 {"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
356@@ -1288,7 +1294,7 @@ 356@@ -1396,7 +1402,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
357 {"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 }, 357 {"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
358 {"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 }, 358 {"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 },
359 {"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 }, 359 {"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 },
360-{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR, 0, 0 }, 360-{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 },
361+{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR|XLP, 0, 0 }, 361+{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR|XLP, 0, 0 },
362 {"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 }, 362 {"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 },
363 {"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 }, 363 {"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
364 {"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 }, 364 {"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
365@@ -1332,10 +1338,13 @@ 365@@ -1441,10 +1447,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
366 /* move is at the top of the table. */ 366 /* move is at the top of the table. */
367 {"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 }, 367 {"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
368 {"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 }, 368 {"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 },
@@ -375,28 +375,28 @@ Index: binutils-2.24/opcodes/mips-opc.c
375+{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR|XLP, 0, 0 }, 375+{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR|XLP, 0, 0 },
376+{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR|XLP, 0, 0 }, 376+{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR|XLP, 0, 0 },
377+{"msgsync", "", 0x4a000004, 0xffffffff,0, 0, XLP, 0, 0 }, 377+{"msgsync", "", 0x4a000004, 0xffffffff,0, 0, XLP, 0, 0 },
378 {"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, 0 }, 378 {"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, I37 },
379 {"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 }, 379 {"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
380 {"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 }, 380 {"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
381@@ -1381,7 +1390,7 @@ 381@@ -1494,7 +1503,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
382 {"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 }, 382 {"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 },
383 {"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 }, 383 {"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 },
384 {"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 }, 384 {"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
385-{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR, 0, 0 }, 385-{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 },
386+{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR|XLP, 0, 0 }, 386+{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR|XLP, 0, 0 },
387 {"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 }, 387 {"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
388 {"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 }, 388 {"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
389 {"mtm2", "s", 0x7000000d, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 }, 389 {"mtm2", "s", 0x7000000d, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
390@@ -1802,9 +1811,9 @@ 390@@ -1924,9 +1933,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
391 {"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, 0}, 391 {"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, I37},
392 {"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 }, 392 {"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 },
393 {"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 }, 393 {"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 },
394-{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 394-{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
395-{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 395-{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
396-{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR, 0, 0 }, 396-{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 },
397+{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 397+{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
398+{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 398+{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
399+{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, 399+{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 },
400 {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2 }, 400 {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
401 {"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2 }, 401 {"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
402 {"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 }, 402 {"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 },
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch
deleted file mode 100644
index e789499477..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8484 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From bd25671c6f202c4a5108883caa2adb24ff6f361f Mon Sep 17 00:00:00 2001
10From: Alan Modra <amodra@gmail.com>
11Date: Fri, 29 Aug 2014 10:36:29 +0930
12Subject: [PATCH] Report an error for S-records with less than the miniumum
13 size
14
15 * srec.c (srec_scan): Revert last change. Report an error for
16 S-records with less than the miniumum byte count.
17---
18 bfd/ChangeLog | 5 +++++
19 bfd/srec.c | 18 +++++++++++++++---
20 2 files changed, 20 insertions(+), 3 deletions(-)
21
22Index: binutils-2.24/bfd/srec.c
23===================================================================
24--- binutils-2.24.orig/bfd/srec.c
25+++ binutils-2.24/bfd/srec.c
26@@ -455,7 +455,7 @@ srec_scan (bfd *abfd)
27 {
28 file_ptr pos;
29 char hdr[3];
30- unsigned int bytes;
31+ unsigned int bytes, min_bytes;
32 bfd_vma address;
33 bfd_byte *data;
34 unsigned char check_sum;
35@@ -478,6 +478,19 @@ srec_scan (bfd *abfd)
36 }
37
38 check_sum = bytes = HEX (hdr + 1);
39+ min_bytes = 3;
40+ if (hdr[0] == '2' || hdr[0] == '8')
41+ min_bytes = 4;
42+ else if (hdr[0] == '3' || hdr[0] == '7')
43+ min_bytes = 5;
44+ if (bytes < min_bytes)
45+ {
46+ (*_bfd_error_handler) (_("%B:%d: byte count %d too small\n"),
47+ abfd, lineno, bytes);
48+ bfd_set_error (bfd_error_bad_value);
49+ goto error_return;
50+ }
51+
52 if (bytes * 2 > bufsize)
53 {
54 if (buf != NULL)
55Index: binutils-2.24/bfd/ChangeLog
56===================================================================
57--- binutils-2.24.orig/bfd/ChangeLog
58+++ binutils-2.24/bfd/ChangeLog
59@@ -1,3 +1,8 @@
60+2014-08-29 Alan Modra <amodra@gmail.com>
61+
62+ * srec.c (srec_scan): Revert last change. Report an error for
63+ S-records with less than the miniumum byte count.
64+
65 2013-12-02 Tristan Gingold <gingold@adacore.com>
66
67 * configure.in: Bump version to 2.24
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch
deleted file mode 100644
index ec3308b4f4..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch
+++ /dev/null
@@ -1,102 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8485 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From 493a33860c71cac998f1a56d6d87d6faa801fbaa Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Mon, 27 Oct 2014 12:43:16 +0000
12Subject: [PATCH] This patch closes a potential security hole in applications
13 that use the bfd library to parse binaries containing maliciously corrupt
14 section group headers.
15
16 PR binutils/17510
17 * elf.c (setup_group): Improve handling of corrupt group
18 sections.
19---
20 bfd/ChangeLog | 6 ++++++
21 bfd/elf.c | 34 ++++++++++++++++++++++++++++++----
22 2 files changed, 36 insertions(+), 4 deletions(-)
23
24Index: binutils-2.24/bfd/elf.c
25===================================================================
26--- binutils-2.24.orig/bfd/elf.c
27+++ binutils-2.24/bfd/elf.c
28@@ -608,9 +608,10 @@ setup_group (bfd *abfd, Elf_Internal_Shd
29 if (shdr->contents == NULL)
30 {
31 _bfd_error_handler
32- (_("%B: Corrupt size field in group section header: 0x%lx"), abfd, shdr->sh_size);
33+ (_("%B: corrupt size field in group section header: 0x%lx"), abfd, shdr->sh_size);
34 bfd_set_error (bfd_error_bad_value);
35- return FALSE;
36+ -- num_group;
37+ continue;
38 }
39
40 memset (shdr->contents, 0, amt);
41@@ -618,7 +619,16 @@ setup_group (bfd *abfd, Elf_Internal_Shd
42 if (bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0
43 || (bfd_bread (shdr->contents, shdr->sh_size, abfd)
44 != shdr->sh_size))
45- return FALSE;
46+ {
47+ _bfd_error_handler
48+ (_("%B: invalid size field in group section header: 0x%lx"), abfd, shdr->sh_size);
49+ bfd_set_error (bfd_error_bad_value);
50+ -- num_group;
51+ /* PR 17510: If the group contents are even partially
52+ corrupt, do not allow any of the contents to be used. */
53+ memset (shdr->contents, 0, amt);
54+ continue;
55+ }
56
57 /* Translate raw contents, a flag word followed by an
58 array of elf section indices all in target byte order,
59@@ -651,6 +661,21 @@ setup_group (bfd *abfd, Elf_Internal_Shd
60 }
61 }
62 }
63+
64+ /* PR 17510: Corrupt binaries might contain invalid groups. */
65+ if (num_group != (unsigned) elf_tdata (abfd)->num_group)
66+ {
67+ elf_tdata (abfd)->num_group = num_group;
68+
69+ /* If all groups are invalid then fail. */
70+ if (num_group == 0)
71+ {
72+ elf_tdata (abfd)->group_sect_ptr = NULL;
73+ elf_tdata (abfd)->num_group = num_group = -1;
74+ (*_bfd_error_handler) (_("%B: no valid group sections found"), abfd);
75+ bfd_set_error (bfd_error_bad_value);
76+ }
77+ }
78 }
79 }
80
81@@ -716,6 +741,7 @@ setup_group (bfd *abfd, Elf_Internal_Shd
82 {
83 (*_bfd_error_handler) (_("%B: no group info for section %A"),
84 abfd, newsect);
85+ return FALSE;
86 }
87 return TRUE;
88 }
89Index: binutils-2.24/bfd/ChangeLog
90===================================================================
91--- binutils-2.24.orig/bfd/ChangeLog
92+++ binutils-2.24/bfd/ChangeLog
93@@ -1,3 +1,9 @@
94+2014-10-27 Nick Clifton <nickc@redhat.com>
95+
96+ PR binutils/17510
97+ * elf.c (setup_group): Improve handling of corrupt group
98+ sections.
99+
100 2014-08-29 Alan Modra <amodra@gmail.com>
101
102 * srec.c (srec_scan): Revert last change. Report an error for
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch
deleted file mode 100644
index a48fe9b23b..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8501 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From 7e1e19887abd24aeb15066b141cdff5541e0ec8e Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Mon, 27 Oct 2014 14:45:06 +0000
12Subject: [PATCH] Fix a seg-fault in strings and other binutuils when parsing a
13 corrupt PE executable with an invalid value in the NumberOfRvaAndSizes field
14 of the AOUT header.
15
16 PR binutils/17512
17 * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Handle corrupt binaries
18 with an invalid value for NumberOfRvaAndSizes.
19---
20 bfd/ChangeLog | 4 ++++
21 bfd/peXXigen.c | 12 ++++++++++++
22 2 files changed, 16 insertions(+)
23
24Index: binutils-2.24/bfd/peXXigen.c
25===================================================================
26--- binutils-2.24.orig/bfd/peXXigen.c
27+++ binutils-2.24/bfd/peXXigen.c
28@@ -460,6 +460,18 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
29 {
30 int idx;
31
32+ /* PR 17512: Corrupt PE binaries can cause seg-faults. */
33+ if (a->NumberOfRvaAndSizes > 16)
34+ {
35+ (*_bfd_error_handler)
36+ (_("%B: aout header specifies an invalid number of data-directory entries: %d"),
37+ abfd, a->NumberOfRvaAndSizes);
38+ /* Paranoia: If the number is corrupt, then assume that the
39+ actual entries themselves might be corrupt as well. */
40+ a->NumberOfRvaAndSizes = 0;
41+ }
42+
43+
44 for (idx = 0; idx < a->NumberOfRvaAndSizes; idx++)
45 {
46 /* If data directory is empty, rva also should be 0. */
47Index: binutils-2.24/bfd/ChangeLog
48===================================================================
49--- binutils-2.24.orig/bfd/ChangeLog
50+++ binutils-2.24/bfd/ChangeLog
51@@ -1,5 +1,9 @@
52 2014-10-27 Nick Clifton <nickc@redhat.com>
53
54+ PR binutils/17512
55+ * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Handle corrupt binaries
56+ with an invalid value for NumberOfRvaAndSizes.
57+
58 PR binutils/17510
59 * elf.c (setup_group): Improve handling of corrupt group
60 sections.
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch
deleted file mode 100644
index 05af65bad1..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch
+++ /dev/null
@@ -1,89 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8502 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From 5a4b0ccc20ba30caef53b01bee2c0aaa5b855339 Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Tue, 28 Oct 2014 15:42:56 +0000
12Subject: [PATCH] More fixes for corrupt binaries crashing the binutils.
13
14 PR binutils/17512
15 * elf.c (bfd_section_from_shdr): Allocate and free the recursion
16 detection table on a per-bfd basis.
17 * peXXigen.c (pe_print_edata): Handle binaries with a truncated
18 export table.
19---
20 bfd/ChangeLog | 8 ++++++++
21 bfd/elf.c | 16 +++++++++++++---
22 bfd/peXXigen.c | 9 +++++++++
23 3 files changed, 30 insertions(+), 3 deletions(-)
24
25Index: binutils-2.24/bfd/peXXigen.c
26===================================================================
27--- binutils-2.24.orig/bfd/peXXigen.c
28+++ binutils-2.24/bfd/peXXigen.c
29@@ -1438,6 +1438,15 @@ pe_print_edata (bfd * abfd, void * vfile
30 }
31 }
32
33+ /* PR 17512: Handle corrupt PE binaries. */
34+ if (datasize < 36)
35+ {
36+ fprintf (file,
37+ _("\nThere is an export table in %s, but it is too small (%d)\n"),
38+ section->name, (int) datasize);
39+ return TRUE;
40+ }
41+
42 fprintf (file, _("\nThere is an export table in %s at 0x%lx\n"),
43 section->name, (unsigned long) addr);
44
45Index: binutils-2.24/bfd/elf.c
46===================================================================
47--- binutils-2.24.orig/bfd/elf.c
48+++ binutils-2.24/bfd/elf.c
49@@ -1576,6 +1576,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
50 const char *name;
51 bfd_boolean ret = TRUE;
52 static bfd_boolean * sections_being_created = NULL;
53+ static bfd * sections_being_created_abfd = NULL;
54 static unsigned int nesting = 0;
55
56 if (shindex >= elf_numsections (abfd))
57@@ -1588,13 +1589,20 @@ bfd_section_from_shdr (bfd *abfd, unsign
58 loop. Detect this here, by refusing to load a section that we are
59 already in the process of loading. We only trigger this test if
60 we have nested at least three sections deep as normal ELF binaries
61- can expect to recurse at least once. */
62+ can expect to recurse at least once.
63+
64+ FIXME: It would be better if this array was attached to the bfd,
65+ rather than being held in a static pointer. */
66+
67+ if (sections_being_created_abfd != abfd)
68+ sections_being_created = NULL;
69
70 if (sections_being_created == NULL)
71 {
72 /* FIXME: It would be more efficient to attach this array to the bfd somehow. */
73 sections_being_created = (bfd_boolean *)
74 bfd_zalloc (abfd, elf_numsections (abfd) * sizeof (bfd_boolean));
75+ sections_being_created_abfd = abfd;
76 }
77 if (sections_being_created [shindex])
78 {
79@@ -2098,7 +2106,10 @@ bfd_section_from_shdr (bfd *abfd, unsign
80 if (sections_being_created)
81 sections_being_created [shindex] = FALSE;
82 if (-- nesting == 0)
83+ {
84 sections_being_created = NULL;
85+ sections_being_created_abfd = abfd;
86+ }
87 return ret;
88 }
89
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch
deleted file mode 100644
index 9e0c9c8b3c..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch
+++ /dev/null
@@ -1,523 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8502 supporting patch.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From bf67003b4567600ed3022a439207ac8f26454f91 Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Mon, 27 Oct 2014 18:05:37 +0000
12Subject: [PATCH] This fixes more seg-faults in tools like "strings" and
13 "objdump" when presented with corrupt binaries.
14
15 PR binutils/17512
16 * elf.c (bfd_section_from_shdr): Detect and warn about ELF
17 binaries with a group of sections linked by the string table
18 indicies.
19 * peXXigen.c (pe_print_edata): Detect out of range rvas and
20 entry counts for the Export Address table, Name Pointer table
21 and Ordinal table.
22---
23 bfd/ChangeLog | 5 ++
24 bfd/elf.c | 194 ++++++++++++++++++++++++++++++++++++++-------------------
25 bfd/peXXigen.c | 18 +++++-
26 3 files changed, 150 insertions(+), 67 deletions(-)
27
28Index: binutils-2.24/bfd/elf.c
29===================================================================
30--- binutils-2.24.orig/bfd/elf.c
31+++ binutils-2.24/bfd/elf.c
32@@ -1574,38 +1574,67 @@ bfd_section_from_shdr (bfd *abfd, unsign
33 Elf_Internal_Ehdr *ehdr;
34 const struct elf_backend_data *bed;
35 const char *name;
36+ bfd_boolean ret = TRUE;
37+ static bfd_boolean * sections_being_created = NULL;
38+ static unsigned int nesting = 0;
39
40 if (shindex >= elf_numsections (abfd))
41 return FALSE;
42
43+ if (++ nesting > 3)
44+ {
45+ /* PR17512: A corrupt ELF binary might contain a recursive group of
46+ sections, each the string indicies pointing to the next in the
47+ loop. Detect this here, by refusing to load a section that we are
48+ already in the process of loading. We only trigger this test if
49+ we have nested at least three sections deep as normal ELF binaries
50+ can expect to recurse at least once. */
51+
52+ if (sections_being_created == NULL)
53+ {
54+ /* FIXME: It would be more efficient to attach this array to the bfd somehow. */
55+ sections_being_created = (bfd_boolean *)
56+ bfd_zalloc (abfd, elf_numsections (abfd) * sizeof (bfd_boolean));
57+ }
58+ if (sections_being_created [shindex])
59+ {
60+ (*_bfd_error_handler)
61+ (_("%B: warning: loop in section dependencies detected"), abfd);
62+ return FALSE;
63+ }
64+ sections_being_created [shindex] = TRUE;
65+ }
66+
67 hdr = elf_elfsections (abfd)[shindex];
68 ehdr = elf_elfheader (abfd);
69 name = bfd_elf_string_from_elf_section (abfd, ehdr->e_shstrndx,
70 hdr->sh_name);
71 if (name == NULL)
72- return FALSE;
73+ goto fail;
74
75 bed = get_elf_backend_data (abfd);
76 switch (hdr->sh_type)
77 {
78 case SHT_NULL:
79 /* Inactive section. Throw it away. */
80- return TRUE;
81+ goto success;
82
83- case SHT_PROGBITS: /* Normal section with contents. */
84- case SHT_NOBITS: /* .bss section. */
85- case SHT_HASH: /* .hash section. */
86- case SHT_NOTE: /* .note section. */
87+ case SHT_PROGBITS: /* Normal section with contents. */
88+ case SHT_NOBITS: /* .bss section. */
89+ case SHT_HASH: /* .hash section. */
90+ case SHT_NOTE: /* .note section. */
91 case SHT_INIT_ARRAY: /* .init_array section. */
92 case SHT_FINI_ARRAY: /* .fini_array section. */
93 case SHT_PREINIT_ARRAY: /* .preinit_array section. */
94 case SHT_GNU_LIBLIST: /* .gnu.liblist section. */
95 case SHT_GNU_HASH: /* .gnu.hash section. */
96- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
97+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
98+ goto success;
99
100 case SHT_DYNAMIC: /* Dynamic linking information. */
101 if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
102- return FALSE;
103+ goto fail;
104+
105 if (hdr->sh_link > elf_numsections (abfd))
106 {
107 /* PR 10478: Accept Solaris binaries with a sh_link
108@@ -1619,11 +1648,11 @@ bfd_section_from_shdr (bfd *abfd, unsign
109 break;
110 /* Otherwise fall through. */
111 default:
112- return FALSE;
113+ goto fail;
114 }
115 }
116 else if (elf_elfsections (abfd)[hdr->sh_link] == NULL)
117- return FALSE;
118+ goto fail;
119 else if (elf_elfsections (abfd)[hdr->sh_link]->sh_type != SHT_STRTAB)
120 {
121 Elf_Internal_Shdr *dynsymhdr;
122@@ -1652,24 +1681,26 @@ bfd_section_from_shdr (bfd *abfd, unsign
123 }
124 }
125 }
126- break;
127+ goto success;
128
129- case SHT_SYMTAB: /* A symbol table */
130+ case SHT_SYMTAB: /* A symbol table. */
131 if (elf_onesymtab (abfd) == shindex)
132- return TRUE;
133+ goto success;
134
135 if (hdr->sh_entsize != bed->s->sizeof_sym)
136- return FALSE;
137+ goto fail;
138+
139 if (hdr->sh_info * hdr->sh_entsize > hdr->sh_size)
140 {
141 if (hdr->sh_size != 0)
142- return FALSE;
143+ goto fail;
144 /* Some assemblers erroneously set sh_info to one with a
145 zero sh_size. ld sees this as a global symbol count
146 of (unsigned) -1. Fix it here. */
147 hdr->sh_info = 0;
148- return TRUE;
149+ goto success;
150 }
151+
152 BFD_ASSERT (elf_onesymtab (abfd) == 0);
153 elf_onesymtab (abfd) = shindex;
154 elf_tdata (abfd)->symtab_hdr = *hdr;
155@@ -1686,7 +1717,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
156 && (abfd->flags & DYNAMIC) != 0
157 && ! _bfd_elf_make_section_from_shdr (abfd, hdr, name,
158 shindex))
159- return FALSE;
160+ goto fail;
161
162 /* Go looking for SHT_SYMTAB_SHNDX too, since if there is one we
163 can't read symbols without that section loaded as well. It
164@@ -1712,26 +1743,29 @@ bfd_section_from_shdr (bfd *abfd, unsign
165 break;
166 }
167 if (i != shindex)
168- return bfd_section_from_shdr (abfd, i);
169+ ret = bfd_section_from_shdr (abfd, i);
170 }
171- return TRUE;
172+ goto success;
173
174- case SHT_DYNSYM: /* A dynamic symbol table */
175+ case SHT_DYNSYM: /* A dynamic symbol table. */
176 if (elf_dynsymtab (abfd) == shindex)
177- return TRUE;
178+ goto success;
179
180 if (hdr->sh_entsize != bed->s->sizeof_sym)
181- return FALSE;
182+ goto fail;
183+
184 if (hdr->sh_info * hdr->sh_entsize > hdr->sh_size)
185 {
186 if (hdr->sh_size != 0)
187- return FALSE;
188+ goto fail;
189+
190 /* Some linkers erroneously set sh_info to one with a
191 zero sh_size. ld sees this as a global symbol count
192 of (unsigned) -1. Fix it here. */
193 hdr->sh_info = 0;
194- return TRUE;
195+ goto success;
196 }
197+
198 BFD_ASSERT (elf_dynsymtab (abfd) == 0);
199 elf_dynsymtab (abfd) = shindex;
200 elf_tdata (abfd)->dynsymtab_hdr = *hdr;
201@@ -1740,34 +1774,38 @@ bfd_section_from_shdr (bfd *abfd, unsign
202
203 /* Besides being a symbol table, we also treat this as a regular
204 section, so that objcopy can handle it. */
205- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
206+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
207+ goto success;
208
209- case SHT_SYMTAB_SHNDX: /* Symbol section indices when >64k sections */
210+ case SHT_SYMTAB_SHNDX: /* Symbol section indices when >64k sections. */
211 if (elf_symtab_shndx (abfd) == shindex)
212- return TRUE;
213+ goto success;
214
215 BFD_ASSERT (elf_symtab_shndx (abfd) == 0);
216 elf_symtab_shndx (abfd) = shindex;
217 elf_tdata (abfd)->symtab_shndx_hdr = *hdr;
218 elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->symtab_shndx_hdr;
219- return TRUE;
220+ goto success;
221
222- case SHT_STRTAB: /* A string table */
223+ case SHT_STRTAB: /* A string table. */
224 if (hdr->bfd_section != NULL)
225- return TRUE;
226+ goto success;
227+
228 if (ehdr->e_shstrndx == shindex)
229 {
230 elf_tdata (abfd)->shstrtab_hdr = *hdr;
231 elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->shstrtab_hdr;
232- return TRUE;
233+ goto success;
234 }
235+
236 if (elf_elfsections (abfd)[elf_onesymtab (abfd)]->sh_link == shindex)
237 {
238 symtab_strtab:
239 elf_tdata (abfd)->strtab_hdr = *hdr;
240 elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->strtab_hdr;
241- return TRUE;
242+ goto success;
243 }
244+
245 if (elf_elfsections (abfd)[elf_dynsymtab (abfd)]->sh_link == shindex)
246 {
247 dynsymtab_strtab:
248@@ -1776,8 +1814,9 @@ bfd_section_from_shdr (bfd *abfd, unsign
249 elf_elfsections (abfd)[shindex] = hdr;
250 /* We also treat this as a regular section, so that objcopy
251 can handle it. */
252- return _bfd_elf_make_section_from_shdr (abfd, hdr, name,
253- shindex);
254+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name,
255+ shindex);
256+ goto success;
257 }
258
259 /* If the string table isn't one of the above, then treat it as a
260@@ -1795,9 +1834,9 @@ bfd_section_from_shdr (bfd *abfd, unsign
261 {
262 /* Prevent endless recursion on broken objects. */
263 if (i == shindex)
264- return FALSE;
265+ goto fail;
266 if (! bfd_section_from_shdr (abfd, i))
267- return FALSE;
268+ goto fail;
269 if (elf_onesymtab (abfd) == i)
270 goto symtab_strtab;
271 if (elf_dynsymtab (abfd) == i)
272@@ -1805,7 +1844,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
273 }
274 }
275 }
276- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
277+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
278+ goto success;
279
280 case SHT_REL:
281 case SHT_RELA:
282@@ -1820,7 +1860,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
283 if (hdr->sh_entsize
284 != (bfd_size_type) (hdr->sh_type == SHT_REL
285 ? bed->s->sizeof_rel : bed->s->sizeof_rela))
286- return FALSE;
287+ goto fail;
288
289 /* Check for a bogus link to avoid crashing. */
290 if (hdr->sh_link >= num_sec)
291@@ -1828,8 +1868,9 @@ bfd_section_from_shdr (bfd *abfd, unsign
292 ((*_bfd_error_handler)
293 (_("%B: invalid link %lu for reloc section %s (index %u)"),
294 abfd, hdr->sh_link, name, shindex));
295- return _bfd_elf_make_section_from_shdr (abfd, hdr, name,
296- shindex);
297+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name,
298+ shindex);
299+ goto success;
300 }
301
302 /* For some incomprehensible reason Oracle distributes
303@@ -1870,7 +1911,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
304 if ((elf_elfsections (abfd)[hdr->sh_link]->sh_type == SHT_SYMTAB
305 || elf_elfsections (abfd)[hdr->sh_link]->sh_type == SHT_DYNSYM)
306 && ! bfd_section_from_shdr (abfd, hdr->sh_link))
307- return FALSE;
308+ goto fail;
309
310 /* If this reloc section does not use the main symbol table we
311 don't treat it as a reloc section. BFD can't adequately
312@@ -1885,14 +1926,18 @@ bfd_section_from_shdr (bfd *abfd, unsign
313 || hdr->sh_info >= num_sec
314 || elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_REL
315 || elf_elfsections (abfd)[hdr->sh_info]->sh_type == SHT_RELA)
316- return _bfd_elf_make_section_from_shdr (abfd, hdr, name,
317- shindex);
318+ {
319+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name,
320+ shindex);
321+ goto success;
322+ }
323
324 if (! bfd_section_from_shdr (abfd, hdr->sh_info))
325- return FALSE;
326+ goto fail;
327+
328 target_sect = bfd_section_from_elf_index (abfd, hdr->sh_info);
329 if (target_sect == NULL)
330- return FALSE;
331+ goto fail;
332
333 esdt = elf_section_data (target_sect);
334 if (hdr->sh_type == SHT_RELA)
335@@ -1904,7 +1949,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
336 amt = sizeof (*hdr2);
337 hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, amt);
338 if (hdr2 == NULL)
339- return FALSE;
340+ goto fail;
341 *hdr2 = *hdr;
342 *p_hdr = hdr2;
343 elf_elfsections (abfd)[shindex] = hdr2;
344@@ -1920,34 +1965,40 @@ bfd_section_from_shdr (bfd *abfd, unsign
345 target_sect->use_rela_p = 1;
346 }
347 abfd->flags |= HAS_RELOC;
348- return TRUE;
349+ goto success;
350 }
351
352 case SHT_GNU_verdef:
353 elf_dynverdef (abfd) = shindex;
354 elf_tdata (abfd)->dynverdef_hdr = *hdr;
355- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
356+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
357+ goto success;
358
359 case SHT_GNU_versym:
360 if (hdr->sh_entsize != sizeof (Elf_External_Versym))
361- return FALSE;
362+ goto fail;
363+
364 elf_dynversym (abfd) = shindex;
365 elf_tdata (abfd)->dynversym_hdr = *hdr;
366- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
367+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
368+ goto success;
369
370 case SHT_GNU_verneed:
371 elf_dynverref (abfd) = shindex;
372 elf_tdata (abfd)->dynverref_hdr = *hdr;
373- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
374+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
375+ goto success;
376
377 case SHT_SHLIB:
378- return TRUE;
379+ goto success;
380
381 case SHT_GROUP:
382 if (! IS_VALID_GROUP_SECTION_HEADER (hdr, GRP_ENTRY_SIZE))
383- return FALSE;
384+ goto fail;
385+
386 if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
387- return FALSE;
388+ goto fail;
389+
390 if (hdr->contents != NULL)
391 {
392 Elf_Internal_Group *idx = (Elf_Internal_Group *) hdr->contents;
393@@ -1973,7 +2024,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
394 }
395 }
396 }
397- break;
398+ goto success;
399
400 default:
401 /* Possibly an attributes section. */
402@@ -1981,14 +2032,14 @@ bfd_section_from_shdr (bfd *abfd, unsign
403 || hdr->sh_type == bed->obj_attrs_section_type)
404 {
405 if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
406- return FALSE;
407+ goto fail;
408 _bfd_elf_parse_attributes (abfd, hdr);
409- return TRUE;
410+ goto success;
411 }
412
413 /* Check for any processor-specific section types. */
414 if (bed->elf_backend_section_from_shdr (abfd, hdr, name, shindex))
415- return TRUE;
416+ goto success;
417
418 if (hdr->sh_type >= SHT_LOUSER && hdr->sh_type <= SHT_HIUSER)
419 {
420@@ -2000,9 +2051,12 @@ bfd_section_from_shdr (bfd *abfd, unsign
421 "specific section `%s' [0x%8x]"),
422 abfd, name, hdr->sh_type);
423 else
424- /* Allow sections reserved for applications. */
425- return _bfd_elf_make_section_from_shdr (abfd, hdr, name,
426- shindex);
427+ {
428+ /* Allow sections reserved for applications. */
429+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name,
430+ shindex);
431+ goto success;
432+ }
433 }
434 else if (hdr->sh_type >= SHT_LOPROC
435 && hdr->sh_type <= SHT_HIPROC)
436@@ -2023,8 +2077,11 @@ bfd_section_from_shdr (bfd *abfd, unsign
437 "`%s' [0x%8x]"),
438 abfd, name, hdr->sh_type);
439 else
440- /* Otherwise it should be processed. */
441- return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
442+ {
443+ /* Otherwise it should be processed. */
444+ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
445+ goto success;
446+ }
447 }
448 else
449 /* FIXME: We should handle this section. */
450@@ -2032,10 +2089,17 @@ bfd_section_from_shdr (bfd *abfd, unsign
451 (_("%B: don't know how to handle section `%s' [0x%8x]"),
452 abfd, name, hdr->sh_type);
453
454- return FALSE;
455+ goto fail;
456 }
457
458- return TRUE;
459+ fail:
460+ ret = FALSE;
461+ success:
462+ if (sections_being_created)
463+ sections_being_created [shindex] = FALSE;
464+ if (-- nesting == 0)
465+ sections_being_created = NULL;
466+ return ret;
467 }
468
469 /* Return the local symbol specified by ABFD, R_SYMNDX. */
470Index: binutils-2.24/bfd/peXXigen.c
471===================================================================
472--- binutils-2.24.orig/bfd/peXXigen.c
473+++ binutils-2.24/bfd/peXXigen.c
474@@ -1528,7 +1528,12 @@ pe_print_edata (bfd * abfd, void * vfile
475 _("\nExport Address Table -- Ordinal Base %ld\n"),
476 edt.base);
477
478- for (i = 0; i < edt.num_functions; ++i)
479+ /* PR 17512: Handle corrupt PE binaries. */
480+ if (edt.eat_addr + (edt.num_functions * 4) - adj >= datasize)
481+ fprintf (file, _("\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"),
482+ (long) edt.eat_addr,
483+ (long) edt.num_functions);
484+ else for (i = 0; i < edt.num_functions; ++i)
485 {
486 bfd_vma eat_member = bfd_get_32 (abfd,
487 data + edt.eat_addr + (i * 4) - adj);
488@@ -1564,7 +1569,16 @@ pe_print_edata (bfd * abfd, void * vfile
489 fprintf (file,
490 _("\n[Ordinal/Name Pointer] Table\n"));
491
492- for (i = 0; i < edt.num_names; ++i)
493+ /* PR 17512: Handle corrupt PE binaries. */
494+ if (edt.npt_addr + (edt.num_names * 4) - adj >= datasize)
495+ fprintf (file, _("\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"),
496+ (long) edt.npt_addr,
497+ (long) edt.num_names);
498+ else if (edt.ot_addr + (edt.num_names * 2) - adj >= datasize)
499+ fprintf (file, _("\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"),
500+ (long) edt.ot_addr,
501+ (long) edt.num_names);
502+ else for (i = 0; i < edt.num_names; ++i)
503 {
504 bfd_vma name_ptr = bfd_get_32 (abfd,
505 data +
506Index: binutils-2.24/bfd/ChangeLog
507===================================================================
508--- binutils-2.24.orig/bfd/ChangeLog
509+++ binutils-2.24/bfd/ChangeLog
510@@ -1,8 +1,13 @@
511 2014-10-27 Nick Clifton <nickc@redhat.com>
512
513 PR binutils/17512
514+ * elf.c (bfd_section_from_shdr): Detect and warn about ELF
515+ binaries with a group of sections linked by the string table
516+ indicies.
517 * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Handle corrupt binaries
518 with an invalid value for NumberOfRvaAndSizes.
519+ (pe_print_edata): Detect out of range rvas and entry counts for
520+ the Export Address table, Name Pointer table and Ordinal table.
521
522 PR binutils/17510
523 * elf.c (setup_group): Improve handling of corrupt group
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch
deleted file mode 100644
index 2dd3354fc1..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8503 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From 0102ea8cec5fc509bba6c91df61b7ce23a799d32 Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Thu, 30 Oct 2014 17:16:17 +0000
12Subject: [PATCH] Fixes a seg-fault in the ihex parser when it encounters a
13 malformed ihex file.
14
15 PR binutils/17512
16 * ihex.c (ihex_scan): Fix typo in invocation of ihex_bad_byte.
17---
18 bfd/ChangeLog | 1 +
19 bfd/ihex.c | 2 +-
20 2 files changed, 2 insertions(+), 1 deletion(-)
21
22Index: binutils-2.24/bfd/ihex.c
23===================================================================
24--- binutils-2.24.orig/bfd/ihex.c
25+++ binutils-2.24/bfd/ihex.c
26@@ -322,7 +322,7 @@ ihex_scan (bfd *abfd)
27 {
28 if (! ISHEX (buf[i]))
29 {
30- ihex_bad_byte (abfd, lineno, hdr[i], error);
31+ ihex_bad_byte (abfd, lineno, buf[i], error);
32 goto error_return;
33 }
34 }
35Index: binutils-2.24/bfd/ChangeLog
36===================================================================
37--- binutils-2.24.orig/bfd/ChangeLog
38+++ binutils-2.24/bfd/ChangeLog
39@@ -1,3 +1,8 @@
40+2014-10-30 Nick Clifton <nickc@redhat.com>
41+
42+ PR binutils/17512
43+ * ihex.c (ihex_scan): Fix typo in invocation of ihex_bad_byte.
44+
45 2014-10-27 Nick Clifton <nickc@redhat.com>
46
47 PR binutils/17512
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch
deleted file mode 100644
index b4d1d1ff61..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch
+++ /dev/null
@@ -1,75 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8504 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From 708d7d0d11f0f2d776171979aa3479e8e12a38a0 Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Tue, 28 Oct 2014 10:48:14 +0000
12Subject: [PATCH] This patch fixes a flaw in the SREC parser which could cause
13 a stack overflow and potential secuiryt breach.
14
15 PR binutils/17510
16 * srec.c (srec_bad_byte): Increase size of buf to allow for
17 negative values.
18 (srec_scan): Use an unsigned char buffer to hold header bytes.
19---
20 bfd/ChangeLog | 8 ++++++++
21 bfd/elf.c | 2 +-
22 bfd/peXXigen.c | 1 -
23 bfd/srec.c | 4 ++--
24 4 files changed, 11 insertions(+), 4 deletions(-)
25
26Index: binutils-2.24/bfd/ChangeLog
27===================================================================
28--- binutils-2.24.orig/bfd/ChangeLog
29+++ binutils-2.24/bfd/ChangeLog
30@@ -1,3 +1,11 @@
31+2014-10-28 Andreas Schwab <schwab@suse.de>
32+ Nick Clifton <nickc@redhat.com>
33+
34+ PR binutils/17510
35+ * srec.c (srec_bad_byte): Increase size of buf to allow for
36+ negative values.
37+ (srec_scan): Use an unsigned char buffer to hold header bytes.
38+
39 2014-10-30 Nick Clifton <nickc@redhat.com>
40
41 PR binutils/17512
42Index: binutils-2.24/bfd/peXXigen.c
43===================================================================
44--- binutils-2.24.orig/bfd/peXXigen.c
45+++ binutils-2.24/bfd/peXXigen.c
46@@ -471,7 +471,6 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
47 a->NumberOfRvaAndSizes = 0;
48 }
49
50-
51 for (idx = 0; idx < a->NumberOfRvaAndSizes; idx++)
52 {
53 /* If data directory is empty, rva also should be 0. */
54Index: binutils-2.24/bfd/srec.c
55===================================================================
56--- binutils-2.24.orig/bfd/srec.c
57+++ binutils-2.24/bfd/srec.c
58@@ -248,7 +248,7 @@ srec_bad_byte (bfd *abfd,
59 }
60 else
61 {
62- char buf[10];
63+ char buf[40];
64
65 if (! ISPRINT (c))
66 sprintf (buf, "\\%03o", (unsigned int) c);
67@@ -454,7 +454,7 @@ srec_scan (bfd *abfd)
68 case 'S':
69 {
70 file_ptr pos;
71- char hdr[3];
72+ unsigned char hdr[3];
73 unsigned int bytes, min_bytes;
74 bfd_vma address;
75 bfd_byte *data;
diff --git a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch b/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch
deleted file mode 100644
index 4a84562201..0000000000
--- a/meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch
+++ /dev/null
@@ -1,177 +0,0 @@
1Upstream-Status: Backport
2
3CVE-2014-8737 fix.
4
5[YOCTO #7084]
6
7Signed-off-by: Armin Kuster <akuster808@gmail.com>
8
9From dd9b91de2149ee81d47f708e7b0bbf57da10ad42 Mon Sep 17 00:00:00 2001
10From: Nick Clifton <nickc@redhat.com>
11Date: Thu, 6 Nov 2014 14:49:10 +0000
12Subject: [PATCH] Prevent archive memebers with illegal pathnames from being
13 extracted from an archive.
14
15 PR binutils/17552, binutils/17533
16 * bucomm.c (is_valid_archive_path): New function. Returns false
17 for absolute pathnames and pathnames that include /../.
18 * bucomm.h (is_valid_archive_path): Add prototype.
19 * ar.c (extract_file): Use new function to check for valid
20 pathnames when extracting files from an archive.
21 * objcopy.c (copy_archive): Likewise.
22 * doc/binutils.texi: Update documentation to mention the
23 limitation on pathname of archive members.
24---
25 binutils/ChangeLog | 16 ++++++++++++++--
26 binutils/ar.c | 9 +++++++++
27 binutils/bucomm.c | 26 ++++++++++++++++++++++++++
28 binutils/bucomm.h | 12 ++++++++----
29 binutils/doc/binutils.texi | 3 ++-
30 binutils/objcopy.c | 6 ++++++
31 6 files changed, 65 insertions(+), 7 deletions(-)
32
33Index: binutils-2.24/binutils/ar.c
34===================================================================
35--- binutils-2.24.orig/binutils/ar.c
36+++ binutils-2.24/binutils/ar.c
37@@ -1031,6 +1031,15 @@ extract_file (bfd *abfd)
38 bfd_size_type size;
39 struct stat buf;
40
41+ /* PR binutils/17533: Do not allow directory traversal
42+ outside of the current directory tree. */
43+ if (! is_valid_archive_path (bfd_get_filename (abfd)))
44+ {
45+ non_fatal (_("illegal pathname found in archive member: %s"),
46+ bfd_get_filename (abfd));
47+ return;
48+ }
49+
50 if (bfd_stat_arch_elt (abfd, &buf) != 0)
51 /* xgettext:c-format */
52 fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
53Index: binutils-2.24/binutils/bucomm.c
54===================================================================
55--- binutils-2.24.orig/binutils/bucomm.c
56+++ binutils-2.24/binutils/bucomm.c
57@@ -624,3 +624,29 @@ bfd_get_archive_filename (const bfd *abf
58 bfd_get_filename (abfd));
59 return buf;
60 }
61+
62+/* Returns TRUE iff PATHNAME, a filename of an archive member,
63+ is valid for writing. For security reasons absolute paths
64+ and paths containing /../ are not allowed. See PR 17533. */
65+
66+bfd_boolean
67+is_valid_archive_path (char const * pathname)
68+{
69+ const char * n = pathname;
70+
71+ if (IS_ABSOLUTE_PATH (n))
72+ return FALSE;
73+
74+ while (*n)
75+ {
76+ if (*n == '.' && *++n == '.' && ( ! *++n || IS_DIR_SEPARATOR (*n)))
77+ return FALSE;
78+
79+ while (*n && ! IS_DIR_SEPARATOR (*n))
80+ n++;
81+ while (IS_DIR_SEPARATOR (*n))
82+ n++;
83+ }
84+
85+ return TRUE;
86+}
87Index: binutils-2.24/binutils/bucomm.h
88===================================================================
89--- binutils-2.24.orig/binutils/bucomm.h
90+++ binutils-2.24/binutils/bucomm.h
91@@ -23,6 +23,8 @@
92 #ifndef _BUCOMM_H
93 #define _BUCOMM_H
94
95+/* In bucomm.c. */
96+
97 /* Return the filename in a static buffer. */
98 const char *bfd_get_archive_filename (const bfd *);
99
100@@ -58,20 +60,22 @@ bfd_vma parse_vma (const char *, const c
101
102 off_t get_file_size (const char *);
103
104+bfd_boolean is_valid_archive_path (char const *);
105+
106 extern char *program_name;
107
108-/* filemode.c */
109+/* In filemode.c. */
110 void mode_string (unsigned long, char *);
111
112-/* version.c */
113+/* In version.c. */
114 extern void print_version (const char *);
115
116-/* rename.c */
117+/* In rename.c. */
118 extern void set_times (const char *, const struct stat *);
119
120 extern int smart_rename (const char *, const char *, int);
121
122-/* libiberty. */
123+/* In libiberty. */
124 void *xmalloc (size_t);
125
126 void *xrealloc (void *, size_t);
127Index: binutils-2.24/binutils/doc/binutils.texi
128===================================================================
129--- binutils-2.24.orig/binutils/doc/binutils.texi
130+++ binutils-2.24/binutils/doc/binutils.texi
131@@ -234,7 +234,8 @@ a normal archive. Instead the elements
132 individually to the second archive.
133
134 The paths to the elements of the archive are stored relative to the
135-archive itself.
136+archive itself. For security reasons absolute paths and paths with a
137+@code{/../} component are not allowed.
138
139 @cindex compatibility, @command{ar}
140 @cindex @command{ar} compatibility
141Index: binutils-2.24/binutils/objcopy.c
142===================================================================
143--- binutils-2.24.orig/binutils/objcopy.c
144+++ binutils-2.24/binutils/objcopy.c
145@@ -2206,6 +2206,12 @@ copy_archive (bfd *ibfd, bfd *obfd, cons
146 bfd_boolean del = TRUE;
147 bfd_boolean ok_object;
148
149+ /* PR binutils/17533: Do not allow directory traversal
150+ outside of the current directory tree by archive members. */
151+ if (! is_valid_archive_path (bfd_get_filename (this_element)))
152+ fatal (_("illegal pathname found in archive member: %s"),
153+ bfd_get_filename (this_element));
154+
155 /* Create an output file for this member. */
156 output_name = concat (dir, "/",
157 bfd_get_filename (this_element), (char *) 0);
158Index: binutils-2.24/binutils/ChangeLog
159===================================================================
160--- binutils-2.24.orig/binutils/ChangeLog
161+++ binutils-2.24/binutils/ChangeLog
162@@ -1,3 +1,15 @@
163+2014-11-06 Nick Clifton <nickc@redhat.com>
164+
165+ PR binutils/17552, binutils/17533
166+ * bucomm.c (is_valid_archive_path): New function. Returns false
167+ for absolute pathnames and pathnames that include /../.
168+ * bucomm.h (is_valid_archive_path): Add prototype.
169+ * ar.c (extract_file): Use new function to check for valid
170+ pathnames when extracting files from an archive.
171+ * objcopy.c (copy_archive): Likewise.
172+ * doc/binutils.texi: Update documentation to mention the
173+ limitation on pathname of archive members.
174+
175 2013-11-22 Cory Fields <cory@coryfields.com>
176
177 * windres.c (define_resource): Use zero for timestamp, making
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr15815.patch b/meta/recipes-devtools/binutils/binutils/fix-pr15815.patch
deleted file mode 100644
index 9f53f41cc5..0000000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr15815.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1This patch fixes the problem where libiberty is not installed in spite of
2asking it via --enable-install-libiberty, the problem is that target_header_dir
3is reset explicitly which means libiberty.a will never get installed
4
5also check
6
7https://sourceware.org/bugzilla/show_bug.cgi?id=15815
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12
13Index: binutils-2.24/libiberty/configure
14===================================================================
15--- binutils-2.24.orig/libiberty/configure 2013-12-16 00:08:09.280103157 -0800
16+++ binutils-2.24/libiberty/configure 2013-12-16 00:08:29.753436339 -0800
17@@ -5507,7 +5507,6 @@
18
19 setobjs=
20 CHECK=
21-target_header_dir=
22 if test -n "${with_target_subdir}"; then
23
24 # We are being configured as a target library. AC_REPLACE_FUNCS
25Index: binutils-2.24/libiberty/configure.ac
26===================================================================
27--- binutils-2.24.orig/libiberty/configure.ac 2013-11-08 02:13:49.000000000 -0800
28+++ binutils-2.24/libiberty/configure.ac 2013-12-16 00:07:45.133436672 -0800
29@@ -405,7 +405,6 @@
30
31 setobjs=
32 CHECK=
33-target_header_dir=
34 if test -n "${with_target_subdir}"; then
35
36 # We are being configured as a target library. AC_REPLACE_FUNCS
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch
deleted file mode 100644
index 4584748bb2..0000000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr16428.patch
+++ /dev/null
@@ -1,123 +0,0 @@
1commit 4199e3b8669d0a36448687850374fdc2ad7240b6
2Author: Alan Modra <amodra@gmail.com>
3Date: Wed Jan 15 21:50:55 2014 +1030
4
5 non-PIC references to __ehdr_start in pie and shared
6
7 Rather than hacking every backend to not discard dynamic relocations
8 against an undefined hidden __ehdr_start, make it appear to be defined
9 early. We want __ehdr_start hidden before size_dynamic_sections so
10 that it isn't put in .dynsym, but we do need the dynamic relocations
11 for a PIE or shared library with a non-PIC reference. Defining it
12 early is wrong if we don't actually define the symbol later to its
13 proper value. (In some cases we want to leave the symbol undefined,
14 for example, when the ELF header isn't loaded, and we don't have this
15 infomation available in before_allocation.)
16
17 ld/
18 * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define
19 __ehdr_start before size_dynamic_sections and restore afterwards.
20 ld/testsuite/
21 * ld-elf/ehdr_start-shared.d: New.
22 * ld-elf/ehdr_start-userdef.d: xfail frv.
23 * ld-elf/ehdr_start-weak.d: Likewise.
24 * ld-elf/ehdr_start.d: Likewise.
25
26Upstream-Status: Backport
27
28diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
29index 9a2fe89..13f86f0 100644
30--- a/ld/emultempl/elf32.em
31+++ b/ld/emultempl/elf32.em
32@@ -1480,6 +1480,8 @@ gld${EMULATION_NAME}_before_allocation (void)
33 const char *rpath;
34 asection *sinterp;
35 bfd *abfd;
36+ struct elf_link_hash_entry *ehdr_start = NULL;
37+ struct bfd_link_hash_entry ehdr_start_save;
38
39 if (is_elf_hash_table (link_info.hash))
40 {
41@@ -1504,6 +1506,16 @@ gld${EMULATION_NAME}_before_allocation (void)
42 _bfd_elf_link_hash_hide_symbol (&link_info, h, TRUE);
43 if (ELF_ST_VISIBILITY (h->other) != STV_INTERNAL)
44 h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_HIDDEN;
45+ /* Don't leave the symbol undefined. Undefined hidden
46+ symbols typically won't have dynamic relocations, but
47+ we most likely will need dynamic relocations for
48+ __ehdr_start if we are building a PIE or shared
49+ library. */
50+ ehdr_start = h;
51+ ehdr_start_save = h->root;
52+ h->root.type = bfd_link_hash_defined;
53+ h->root.u.def.section = bfd_abs_section_ptr;
54+ h->root.u.def.value = 0;
55 }
56 }
57
58@@ -1620,6 +1632,14 @@ ${ELF_INTERPRETER_SET_DEFAULT}
59
60 if (!bfd_elf_size_dynsym_hash_dynstr (link_info.output_bfd, &link_info))
61 einfo ("%P%F: failed to set dynamic section sizes: %E\n");
62+
63+ if (ehdr_start != NULL)
64+ {
65+ /* If we twiddled __ehdr_start to defined earlier, put it back
66+ as it was. */
67+ ehdr_start->root.type = ehdr_start_save.type;
68+ ehdr_start->root.u = ehdr_start_save.u;
69+ }
70 }
71
72 EOF
73diff --git a/ld/testsuite/ld-elf/ehdr_start-shared.d b/ld/testsuite/ld-elf/ehdr_start-shared.d
74new file mode 100644
75index 0000000..c17516a
76--- /dev/null
77+++ b/ld/testsuite/ld-elf/ehdr_start-shared.d
78@@ -0,0 +1,9 @@
79+#source: ehdr_start.s
80+#ld: -e _start -shared
81+#nm: -n
82+#target: *-*-linux* *-*-gnu* *-*-nacl*
83+#xfail: cris*-*-* frv-*-*
84+
85+#...
86+[0-9a-f]*000 [Adrt] __ehdr_start
87+#pass
88diff --git a/ld/testsuite/ld-elf/ehdr_start-userdef.d b/ld/testsuite/ld-elf/ehdr_start-userdef.d
89index 2a88e98..b58ae3f 100644
90--- a/ld/testsuite/ld-elf/ehdr_start-userdef.d
91+++ b/ld/testsuite/ld-elf/ehdr_start-userdef.d
92@@ -2,6 +2,7 @@
93 #ld: -e _start -T ehdr_start-userdef.t
94 #readelf: -Ws
95 #target: *-*-linux* *-*-gnu* *-*-nacl*
96+#xfail: frv-*-*
97
98 #...
99 Symbol table '\.symtab' contains [0-9]+ entries:
100diff --git a/ld/testsuite/ld-elf/ehdr_start-weak.d b/ld/testsuite/ld-elf/ehdr_start-weak.d
101index 8bd9035..24ae34c 100644
102--- a/ld/testsuite/ld-elf/ehdr_start-weak.d
103+++ b/ld/testsuite/ld-elf/ehdr_start-weak.d
104@@ -2,6 +2,7 @@
105 #ld: -e _start -T ehdr_start-missing.t
106 #nm: -n
107 #target: *-*-linux* *-*-gnu* *-*-nacl*
108+#xfail: frv-*-*
109
110 #...
111 \s+[wU] __ehdr_start
112diff --git a/ld/testsuite/ld-elf/ehdr_start.d b/ld/testsuite/ld-elf/ehdr_start.d
113index 52e5b54..d538b66 100644
114--- a/ld/testsuite/ld-elf/ehdr_start.d
115+++ b/ld/testsuite/ld-elf/ehdr_start.d
116@@ -2,6 +2,7 @@
117 #ld: -e _start
118 #nm: -n
119 #target: *-*-linux* *-*-gnu* *-*-nacl*
120+#xfail: frv-*-*
121
122 #...
123 [0-9a-f]*000 [Adrt] __ehdr_start
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16476.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16476.patch
deleted file mode 100644
index 65d62bcde4..0000000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr16476.patch
+++ /dev/null
@@ -1,220 +0,0 @@
1From: H.J. Lu <hjl.tools@gmail.com>
2Date: Tue, 21 Jan 2014 23:42:43 +0000 (-0800)
3Subject: Check incompatible existing default symbol definition
4X-Git-Tag: hjl/linux/release/2.24.51.0.3~1^2~8^2~16
5X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff_plain;h=4584ec12076e088cf36965b88ef8710ca85491f9
6
7Check incompatible existing default symbol definition
8
9After resolving a versioned reference, foo@VER1, to a default versioned
10definition, foo@@VER1, from a shared object, we also merge it with
11the existing regular default symbol definition, foo. When foo is IFUNC
12and foo@@VER1 aren't, we will merge 2 incompatible definitions. This
13patch avoids merging foo@@VER1 definition with foo definition if
14one is IFUNC and the other isn't.
15
16Upstream-Status: Backport
17---
18
19#diff --git a/bfd/ChangeLog b/bfd/ChangeLog
20#index 5923bc3..c70a7db 100644
21#--- a/bfd/ChangeLog
22#+++ b/bfd/ChangeLog
23#@@ -1,5 +1,13 @@
24# 2014-01-21 H.J. Lu <hongjiu.lu@intel.com>
25#
26#+ PR ld/16467
27#+ * elflink.c (_bfd_elf_merge_symbol): When types of the existing
28#+ regular default symbol definition and the versioned dynamic
29#+ symbol definition mismatch, skip the default symbol definition
30#+ if one of them is IFUNC.
31#+
32#+2014-01-21 H.J. Lu <hongjiu.lu@intel.com>
33#+
34# PR ld/2404
35# * elflink.c (_bfd_elf_merge_symbol): Don't check info->shared,
36# info->export_dynamic nor h->ref_dynamic for type mismatch when
37diff --git a/bfd/elflink.c b/bfd/elflink.c
38index d0006da..792e14e 100644
39--- a/bfd/elflink.c
40+++ b/bfd/elflink.c
41@@ -1092,11 +1092,14 @@ _bfd_elf_merge_symbol (bfd *abfd,
42 && newdyn
43 && newdef
44 && !olddyn
45- && (olddef || h->root.type == bfd_link_hash_common)
46- && ELF_ST_TYPE (sym->st_info) != h->type
47- && ELF_ST_TYPE (sym->st_info) != STT_NOTYPE
48- && h->type != STT_NOTYPE
49- && !(newfunc && oldfunc))
50+ && (((olddef || h->root.type == bfd_link_hash_common)
51+ && ELF_ST_TYPE (sym->st_info) != h->type
52+ && ELF_ST_TYPE (sym->st_info) != STT_NOTYPE
53+ && h->type != STT_NOTYPE
54+ && !(newfunc && oldfunc))
55+ || (olddef
56+ && ((h->type == STT_GNU_IFUNC)
57+ != (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)))))
58 {
59 *skip = TRUE;
60 return TRUE;
61#diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
62#index ac65a3a..a092428 100644
63#--- a/ld/testsuite/ChangeLog
64#+++ b/ld/testsuite/ChangeLog
65#@@ -1,5 +1,19 @@
66# 2014-01-21 H.J. Lu <hongjiu.lu@intel.com>
67#
68#+ PR ld/16467
69#+ * ld-ifunc/dummy.c: New file.
70#+ * ld-ifunc/pr16467.out: Likewise.
71##+ * ld-ifunc/pr16467a.c: Likewise.
72#+ * ld-ifunc/pr16467a.map: Likewise.
73#+ * ld-ifunc/pr16467b.c: Likewise.
74#+ * ld-ifunc/pr16467b.map: Likewise.
75#+ * ld-ifunc/pr16467c.c: Likewise.
76#+
77#+ * ld-ifunc/ifunc.exp (run_cc_link_tests): New.
78#+ (run_ld_link_exec_tests): Run pr16467.
79#+
80#+2014-01-21 H.J. Lu <hongjiu.lu@intel.com>
81#+
82# PR ld/2404
83# * ld-elf/shared.exp: Add a PIE test for PR ld/2404.
84#
85diff --git a/ld/testsuite/ld-ifunc/dummy.c b/ld/testsuite/ld-ifunc/dummy.c
86new file mode 100644
87index 0000000..5c03287
88--- /dev/null
89+++ b/ld/testsuite/ld-ifunc/dummy.c
90@@ -0,0 +1 @@
91+/* An empty file. */
92diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp
93index fb106c6..d7ff445 100644
94--- a/ld/testsuite/ld-ifunc/ifunc.exp
95+++ b/ld/testsuite/ld-ifunc/ifunc.exp
96@@ -349,6 +349,42 @@ if { $verbose < 1 } {
97 remote_file host delete "tmpdir/static_nonifunc_prog"
98 }
99
100+run_cc_link_tests [list \
101+ [list \
102+ "Build libpr16467a.so" \
103+ "-shared -Wl,--version-script=pr16467a.map" \
104+ "-fPIC" \
105+ { pr16467a.c } \
106+ {} \
107+ "libpr16467a.so" \
108+ ] \
109+ [list \
110+ "Build libpr16467b.a" \
111+ "" \
112+ "-fPIC" \
113+ { pr16467b.c } \
114+ {} \
115+ "libpr16467b.a" \
116+ ] \
117+ [list \
118+ "Build libpr16467b.so" \
119+ "-shared tmpdir/pr16467b.o tmpdir/libpr16467a.so \
120+ -Wl,--version-script=pr16467b.map" \
121+ "-fPIC" \
122+ { dummy.c } \
123+ {} \
124+ "libpr16467b.so" \
125+ ] \
126+ [list \
127+ "Build libpr16467c.a" \
128+ "" \
129+ "" \
130+ { pr16467c.c } \
131+ {} \
132+ "libpr16467c.a" \
133+ ] \
134+]
135+
136 run_ld_link_exec_tests [] [list \
137 [list \
138 "Common symbol override ifunc test 1a" \
139@@ -368,6 +404,15 @@ run_ld_link_exec_tests [] [list \
140 "ifunc-common-1.out" \
141 "-g" \
142 ] \
143+ [list \
144+ "Run pr16467" \
145+ "tmpdir/pr16467c.o tmpdir/libpr16467b.so tmpdir/libpr16467a.so" \
146+ "" \
147+ { dummy.c } \
148+ "pr16467" \
149+ "pr16467.out" \
150+ "" \
151+ ] \
152 ]
153
154 set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
155diff --git a/ld/testsuite/ld-ifunc/pr16467.out b/ld/testsuite/ld-ifunc/pr16467.out
156new file mode 100644
157index 0000000..d86bac9
158--- /dev/null
159+++ b/ld/testsuite/ld-ifunc/pr16467.out
160@@ -0,0 +1 @@
161+OK
162diff --git a/ld/testsuite/ld-ifunc/pr16467a.c b/ld/testsuite/ld-ifunc/pr16467a.c
163new file mode 100644
164index 0000000..ae3f084
165--- /dev/null
166+++ b/ld/testsuite/ld-ifunc/pr16467a.c
167@@ -0,0 +1,5 @@
168+const char *
169+sd_get_seats(void)
170+{
171+ return "OK";
172+}
173diff --git a/ld/testsuite/ld-ifunc/pr16467a.map b/ld/testsuite/ld-ifunc/pr16467a.map
174new file mode 100644
175index 0000000..d677f37
176--- /dev/null
177+++ b/ld/testsuite/ld-ifunc/pr16467a.map
178@@ -0,0 +1,4 @@
179+LIBSYSTEMD_209 {
180+global:
181+ sd_get_seats;
182+};
183diff --git a/ld/testsuite/ld-ifunc/pr16467b.c b/ld/testsuite/ld-ifunc/pr16467b.c
184new file mode 100644
185index 0000000..264f6cf
186--- /dev/null
187+++ b/ld/testsuite/ld-ifunc/pr16467b.c
188@@ -0,0 +1,7 @@
189+void new_sd_get_seats(void);
190+__asm__(".symver new_sd_get_seats,sd_get_seats@LIBSYSTEMD_209");
191+void (*resolve_sd_get_seats(void)) (void) __asm__ ("sd_get_seats");
192+void (*resolve_sd_get_seats(void)) (void) {
193+ return new_sd_get_seats;
194+}
195+__asm__(".type sd_get_seats, %gnu_indirect_function");
196diff --git a/ld/testsuite/ld-ifunc/pr16467b.map b/ld/testsuite/ld-ifunc/pr16467b.map
197new file mode 100644
198index 0000000..1f263de
199--- /dev/null
200+++ b/ld/testsuite/ld-ifunc/pr16467b.map
201@@ -0,0 +1,4 @@
202+LIBSYSTEMD_208 {
203+global:
204+ sd_get_seats;
205+};
206diff --git a/ld/testsuite/ld-ifunc/pr16467c.c b/ld/testsuite/ld-ifunc/pr16467c.c
207new file mode 100644
208index 0000000..e2a901c
209--- /dev/null
210+++ b/ld/testsuite/ld-ifunc/pr16467c.c
211@@ -0,0 +1,9 @@
212+#include <stdio.h>
213+const char* sd_get_seats(void);
214+
215+int
216+main (int argc, char **argv)
217+{
218+ printf("%s\n", sd_get_seats());
219+ return 0;
220+}
diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr2404.patch b/meta/recipes-devtools/binutils/binutils/fix-pr2404.patch
deleted file mode 100644
index 41f35046fa..0000000000
--- a/meta/recipes-devtools/binutils/binutils/fix-pr2404.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1From: H.J. Lu <hjl.tools@gmail.com>
2Date: Tue, 21 Jan 2014 13:33:48 +0000 (-0800)
3Subject: Don't check shared/export_dynamic/ref_dynamic for type mismatch
4X-Git-Tag: hjl/linux/release/2.24.51.0.3~1^2~8^2~22
5X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff_plain;h=22ef172a21663abb477d72284b4d59c8eabcbb82
6
7Don't check shared/export_dynamic/ref_dynamic for type mismatch
8
9There is nothing linker can do when a type mismatched default definition
10are made dynamic by info->shared, info->export_dynamic or h->ref_dynamic.
11But we do want to avoid exporting it when building PIE. Let's remove
12those checks.
13
14bfd/
15
16 PR ld/2404
17 * elflink.c (_bfd_elf_merge_symbol): Don't check info->shared,
18 info->export_dynamic, nor !h->ref_dynamic for type mismatch when
19 adding the default version.
20
21ld/testsuite/
22
23 PR ld/2404
24 * ld-elf/shared.exp: Add a PIE test for PR ld/2404.
25
26Upstream-Status: Backport
27---
28
29Index: binutils-2.24/bfd/elflink.c
30===================================================================
31--- binutils-2.24.orig/bfd/elflink.c 2014-02-08 13:20:08.628378267 +0000
32+++ binutils-2.24/bfd/elflink.c 2014-02-08 13:20:08.624378267 +0000
33@@ -1090,9 +1090,6 @@
34 the type of existing regular definition mismatch. We only do it
35 if the existing regular definition won't be dynamic. */
36 if (pold_alignment == NULL
37- && !info->shared
38- && !info->export_dynamic
39- && !h->ref_dynamic
40 && newdyn
41 && newdef
42 && !olddyn
43Index: binutils-2.24/ld/testsuite/ld-elf/shared.exp
44===================================================================
45--- binutils-2.24.orig/ld/testsuite/ld-elf/shared.exp 2014-02-08 13:20:08.628378267 +0000
46+++ binutils-2.24/ld/testsuite/ld-elf/shared.exp 2014-02-08 13:20:08.624378267 +0000
47@@ -432,3 +432,29 @@
48
49 run_cc_link_tests $build_cxx_tests
50 run_ld_link_exec_tests [] $run_cxx_tests
51+
52+if { [istarget *-*-linux*]
53+ || [istarget *-*-nacl*]
54+ || [istarget *-*-gnu*] } {
55+ run_cc_link_tests [list \
56+ [list \
57+ "Build libpr2404b.a with PIE" \
58+ "" \
59+ "-fPIE" \
60+ { pr2404b.c } \
61+ {} \
62+ "libpr2404b.a" \
63+ ] \
64+ ]
65+ run_ld_link_exec_tests [] [list \
66+ [list \
67+ "Run pr2404 with PIE" \
68+ "-pie tmpdir/pr2404b.o tmpdir/libpr2404a.so" \
69+ "" \
70+ { dummy.c } \
71+ "pr2404pie" \
72+ "pr2404.out" \
73+ "-fPIE" \
74+ ] \
75+ ]
76+}
diff --git a/meta/recipes-devtools/binutils/binutils/libtool-2.4-update.patch b/meta/recipes-devtools/binutils/binutils/libtool-2.4-update.patch
index 2e621f1a52..9aaecd9443 100644
--- a/meta/recipes-devtools/binutils/binutils/libtool-2.4-update.patch
+++ b/meta/recipes-devtools/binutils/binutils/libtool-2.4-update.patch
@@ -16661,7 +16661,7 @@ Index: binutils-2.24/ld/configure
16661=================================================================== 16661===================================================================
16662--- binutils-2.24.orig/ld/configure 2013-11-04 07:33:39.000000000 -0800 16662--- binutils-2.24.orig/ld/configure 2013-11-04 07:33:39.000000000 -0800
16663+++ binutils-2.24/ld/configure 2013-12-15 11:12:06.120451266 -0800 16663+++ binutils-2.24/ld/configure 2013-12-15 11:12:06.120451266 -0800
16664@@ -646,8 +646,11 @@ 16664@@ -654,8 +654,11 @@ OTOOL
16665 LIPO 16665 LIPO
16666 NMEDIT 16666 NMEDIT
16667 DSYMUTIL 16667 DSYMUTIL
@@ -16673,24 +16673,24 @@ Index: binutils-2.24/ld/configure
16673 OBJDUMP 16673 OBJDUMP
16674 LN_S 16674 LN_S
16675 NM 16675 NM
16676@@ -785,6 +788,7 @@ 16676@@ -776,6 +779,7 @@ enable_static
16677 with_pic 16677 with_pic
16678 enable_fast_install 16678 enable_fast_install
16679 with_gnu_ld 16679 with_gnu_ld
16680+with_libtool_sysroot 16680+with_libtool_sysroot
16681 enable_libtool_lock 16681 enable_libtool_lock
16682 enable_nls 16682 enable_plugins
16683 enable_initfini_array 16683 enable_largefile
16684@@ -1452,6 +1456,8 @@ 16684@@ -1453,6 +1457,8 @@ Optional Packages:
16685 --with-pic try to use only PIC/non-PIC objects [default=use 16685 --with-pic try to use only PIC/non-PIC objects [default=use
16686 both] 16686 both]
16687 --with-gnu-ld assume the C compiler uses GNU ld [default=no] 16687 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
16688+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR 16688+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
16689+ (or the compiler's sysroot if not specified). 16689+ (or the compiler's sysroot if not specified).
16690 --with-lib-path=dir1:dir2... set default LIB_PATH
16691 --with-sysroot=DIR Search for usr/lib et al within DIR.
16690 --with-zlib include zlib support (auto/yes/no) default=auto 16692 --with-zlib include zlib support (auto/yes/no) default=auto
16691 16693@@ -5645,8 +5651,8 @@ esac
16692 Some influential environment variables:
16693@@ -6125,8 +6131,8 @@
16694 16694
16695 16695
16696 16696
@@ -16701,7 +16701,7 @@ Index: binutils-2.24/ld/configure
16701 16701
16702 16702
16703 16703
16704@@ -6166,7 +6172,7 @@ 16704@@ -5686,7 +5692,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
16705 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 16705 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
16706 $as_echo_n "checking how to print strings... " >&6; } 16706 $as_echo_n "checking how to print strings... " >&6; }
16707 # Test print first, because it will be a builtin if present. 16707 # Test print first, because it will be a builtin if present.
@@ -16710,7 +16710,7 @@ Index: binutils-2.24/ld/configure
16710 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then 16710 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
16711 ECHO='print -r --' 16711 ECHO='print -r --'
16712 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then 16712 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
16713@@ -6852,8 +6858,8 @@ 16713@@ -6372,8 +6378,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
16714 # Try some XSI features 16714 # Try some XSI features
16715 xsi_shell=no 16715 xsi_shell=no
16716 ( _lt_dummy="a/b/c" 16716 ( _lt_dummy="a/b/c"
@@ -16721,7 +16721,7 @@ Index: binutils-2.24/ld/configure
16721 && eval 'test $(( 1 + 1 )) -eq 2 \ 16721 && eval 'test $(( 1 + 1 )) -eq 2 \
16722 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ 16722 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
16723 && xsi_shell=yes 16723 && xsi_shell=yes
16724@@ -6902,6 +6908,80 @@ 16724@@ -6422,6 +6428,80 @@ esac
16725 16725
16726 16726
16727 16727
@@ -16802,7 +16802,7 @@ Index: binutils-2.24/ld/configure
16802 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 16802 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
16803 $as_echo_n "checking for $LD option to reload object files... " >&6; } 16803 $as_echo_n "checking for $LD option to reload object files... " >&6; }
16804 if test "${lt_cv_ld_reload_flag+set}" = set; then : 16804 if test "${lt_cv_ld_reload_flag+set}" = set; then :
16805@@ -6918,6 +6998,11 @@ 16805@@ -6438,6 +6518,11 @@ case $reload_flag in
16806 esac 16806 esac
16807 reload_cmds='$LD$reload_flag -o $output$reload_objs' 16807 reload_cmds='$LD$reload_flag -o $output$reload_objs'
16808 case $host_os in 16808 case $host_os in
@@ -16814,7 +16814,7 @@ Index: binutils-2.24/ld/configure
16814 darwin*) 16814 darwin*)
16815 if test "$GCC" = yes; then 16815 if test "$GCC" = yes; then
16816 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' 16816 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
16817@@ -7086,7 +7171,8 @@ 16817@@ -6606,7 +6691,8 @@ mingw* | pw32*)
16818 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' 16818 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
16819 lt_cv_file_magic_cmd='func_win32_libid' 16819 lt_cv_file_magic_cmd='func_win32_libid'
16820 else 16820 else
@@ -16824,7 +16824,7 @@ Index: binutils-2.24/ld/configure
16824 lt_cv_file_magic_cmd='$OBJDUMP -f' 16824 lt_cv_file_magic_cmd='$OBJDUMP -f'
16825 fi 16825 fi
16826 ;; 16826 ;;
16827@@ -7240,6 +7326,21 @@ 16827@@ -6760,6 +6846,21 @@ esac
16828 fi 16828 fi
16829 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 16829 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
16830 $as_echo "$lt_cv_deplibs_check_method" >&6; } 16830 $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -16846,7 +16846,7 @@ Index: binutils-2.24/ld/configure
16846 file_magic_cmd=$lt_cv_file_magic_cmd 16846 file_magic_cmd=$lt_cv_file_magic_cmd
16847 deplibs_check_method=$lt_cv_deplibs_check_method 16847 deplibs_check_method=$lt_cv_deplibs_check_method
16848 test -z "$deplibs_check_method" && deplibs_check_method=unknown 16848 test -z "$deplibs_check_method" && deplibs_check_method=unknown
16849@@ -7255,9 +7356,162 @@ 16849@@ -6775,9 +6876,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
16850 16850
16851 16851
16852 16852
@@ -16860,9 +16860,7 @@ Index: binutils-2.24/ld/configure
16860+ 16860+
16861+ 16861+
16862+ 16862+
16863 if test -n "$ac_tool_prefix"; then 16863+if test -n "$ac_tool_prefix"; then
16864- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
16865-set dummy ${ac_tool_prefix}ar; ac_word=$2
16866+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. 16864+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
16867+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 16865+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
16868+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 16866+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -17003,7 +17001,9 @@ Index: binutils-2.24/ld/configure
17003+ 17001+
17004+ 17002+
17005+ 17003+
17006+if test -n "$ac_tool_prefix"; then 17004 if test -n "$ac_tool_prefix"; then
17005- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
17006-set dummy ${ac_tool_prefix}ar; ac_word=$2
17007+ for ac_prog in ar 17007+ for ac_prog in ar
17008+ do 17008+ do
17009+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. 17009+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
@@ -17011,7 +17011,7 @@ Index: binutils-2.24/ld/configure
17011 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 17011 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17012 $as_echo_n "checking for $ac_word... " >&6; } 17012 $as_echo_n "checking for $ac_word... " >&6; }
17013 if test "${ac_cv_prog_AR+set}" = set; then : 17013 if test "${ac_cv_prog_AR+set}" = set; then :
17014@@ -7273,7 +7527,7 @@ 17014@@ -6793,7 +7047,7 @@ do
17015 test -z "$as_dir" && as_dir=. 17015 test -z "$as_dir" && as_dir=.
17016 for ac_exec_ext in '' $ac_executable_extensions; do 17016 for ac_exec_ext in '' $ac_executable_extensions; do
17017 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 17017 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -17020,7 +17020,7 @@ Index: binutils-2.24/ld/configure
17020 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 17020 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
17021 break 2 17021 break 2
17022 fi 17022 fi
17023@@ -7293,11 +7547,15 @@ 17023@@ -6813,11 +7067,15 @@ $as_echo "no" >&6; }
17024 fi 17024 fi
17025 17025
17026 17026
@@ -17039,7 +17039,7 @@ Index: binutils-2.24/ld/configure
17039 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 17039 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17040 $as_echo_n "checking for $ac_word... " >&6; } 17040 $as_echo_n "checking for $ac_word... " >&6; }
17041 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : 17041 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
17042@@ -7313,7 +7571,7 @@ 17042@@ -6833,7 +7091,7 @@ do
17043 test -z "$as_dir" && as_dir=. 17043 test -z "$as_dir" && as_dir=.
17044 for ac_exec_ext in '' $ac_executable_extensions; do 17044 for ac_exec_ext in '' $ac_executable_extensions; do
17045 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 17045 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -17048,7 +17048,7 @@ Index: binutils-2.24/ld/configure
17048 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 17048 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
17049 break 2 17049 break 2
17050 fi 17050 fi
17051@@ -7332,6 +7590,10 @@ 17051@@ -6852,6 +7110,10 @@ else
17052 $as_echo "no" >&6; } 17052 $as_echo "no" >&6; }
17053 fi 17053 fi
17054 17054
@@ -17059,7 +17059,7 @@ Index: binutils-2.24/ld/configure
17059 if test "x$ac_ct_AR" = x; then 17059 if test "x$ac_ct_AR" = x; then
17060 AR="false" 17060 AR="false"
17061 else 17061 else
17062@@ -7343,12 +7605,10 @@ 17062@@ -6863,12 +7125,12 @@ ac_tool_warned=yes ;;
17063 esac 17063 esac
17064 AR=$ac_ct_AR 17064 AR=$ac_ct_AR
17065 fi 17065 fi
@@ -17071,10 +17071,12 @@ Index: binutils-2.24/ld/configure
17071-test -z "$AR_FLAGS" && AR_FLAGS=cru 17071-test -z "$AR_FLAGS" && AR_FLAGS=cru
17072+: ${AR=ar} 17072+: ${AR=ar}
17073+: ${AR_FLAGS=cru} 17073+: ${AR_FLAGS=cru}
17074+
17075+
17074 17076
17075 17077
17076 17078
17077@@ -7360,6 +7620,64 @@ 17079@@ -6878,6 +7140,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
17078 17080
17079 17081
17080 17082
@@ -17134,12 +17136,10 @@ Index: binutils-2.24/ld/configure
17134+ 17136+
17135+ 17137+
17136+ 17138+
17137+ 17139
17138+ 17140
17139 if test -n "$ac_tool_prefix"; then 17141 if test -n "$ac_tool_prefix"; then
17140 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. 17142@@ -7214,8 +7532,8 @@ esac
17141 set dummy ${ac_tool_prefix}strip; ac_word=$2
17142@@ -7694,8 +8012,8 @@
17143 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" 17143 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
17144 17144
17145 # Transform an extracted symbol line into symbol name and symbol address 17145 # Transform an extracted symbol line into symbol name and symbol address
@@ -17150,7 +17150,7 @@ Index: binutils-2.24/ld/configure
17150 17150
17151 # Handle CRLF in mingw tool chain 17151 # Handle CRLF in mingw tool chain
17152 opt_cr= 17152 opt_cr=
17153@@ -7731,6 +8049,7 @@ 17153@@ -7251,6 +7569,7 @@ for ac_symprfx in "" "_"; do
17154 else 17154 else
17155 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" 17155 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
17156 fi 17156 fi
@@ -17158,7 +17158,7 @@ Index: binutils-2.24/ld/configure
17158 17158
17159 # Check to see that the pipe works correctly. 17159 # Check to see that the pipe works correctly.
17160 pipe_works=no 17160 pipe_works=no
17161@@ -7772,6 +8091,18 @@ 17161@@ -7292,6 +7611,18 @@ _LT_EOF
17162 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then 17162 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
17163 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then 17163 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
17164 cat <<_LT_EOF > conftest.$ac_ext 17164 cat <<_LT_EOF > conftest.$ac_ext
@@ -17177,7 +17177,7 @@ Index: binutils-2.24/ld/configure
17177 #ifdef __cplusplus 17177 #ifdef __cplusplus
17178 extern "C" { 17178 extern "C" {
17179 #endif 17179 #endif
17180@@ -7783,7 +8114,7 @@ 17180@@ -7303,7 +7634,7 @@ _LT_EOF
17181 cat <<_LT_EOF >> conftest.$ac_ext 17181 cat <<_LT_EOF >> conftest.$ac_ext
17182 17182
17183 /* The mapping between symbol names and symbols. */ 17183 /* The mapping between symbol names and symbols. */
@@ -17186,7 +17186,7 @@ Index: binutils-2.24/ld/configure
17186 const char *name; 17186 const char *name;
17187 void *address; 17187 void *address;
17188 } 17188 }
17189@@ -7809,8 +8140,8 @@ 17189@@ -7329,8 +7660,8 @@ static const void *lt_preloaded_setup() {
17190 _LT_EOF 17190 _LT_EOF
17191 # Now try linking the two files. 17191 # Now try linking the two files.
17192 mv conftest.$ac_objext conftstm.$ac_objext 17192 mv conftest.$ac_objext conftstm.$ac_objext
@@ -17197,7 +17197,7 @@ Index: binutils-2.24/ld/configure
17197 LIBS="conftstm.$ac_objext" 17197 LIBS="conftstm.$ac_objext"
17198 CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" 17198 CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
17199 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 17199 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
17200@@ -7820,8 +8151,8 @@ 17200@@ -7340,8 +7671,8 @@ _LT_EOF
17201 test $ac_status = 0; } && test -s conftest${ac_exeext}; then 17201 test $ac_status = 0; } && test -s conftest${ac_exeext}; then
17202 pipe_works=yes 17202 pipe_works=yes
17203 fi 17203 fi
@@ -17208,7 +17208,7 @@ Index: binutils-2.24/ld/configure
17208 else 17208 else
17209 echo "cannot find nm_test_func in $nlist" >&5 17209 echo "cannot find nm_test_func in $nlist" >&5
17210 fi 17210 fi
17211@@ -7858,6 +8189,23 @@ 17211@@ -7378,6 +7709,19 @@ else
17212 $as_echo "ok" >&6; } 17212 $as_echo "ok" >&6; }
17213 fi 17213 fi
17214 17214
@@ -17225,14 +17225,10 @@ Index: binutils-2.24/ld/configure
17225+ 17225+
17226+ 17226+
17227+ 17227+
17228+
17229+
17230+
17231+
17232 17228
17233 17229
17234 17230
17235@@ -7874,6 +8222,38 @@ 17231@@ -7398,6 +7742,42 @@ fi
17236 17232
17237 17233
17238 17234
@@ -17268,10 +17264,14 @@ Index: binutils-2.24/ld/configure
17268+ 17264+
17269+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 17265+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
17270+$as_echo "${lt_sysroot:-no}" >&6; } 17266+$as_echo "${lt_sysroot:-no}" >&6; }
17267+
17268+
17269+
17270+
17271 17271
17272 17272 # Check whether --enable-libtool-lock was given.
17273 17273 if test "${enable_libtool_lock+set}" = set; then :
17274@@ -8085,6 +8465,123 @@ 17274@@ -7605,6 +7985,123 @@ esac
17275 17275
17276 need_locks="$enable_libtool_lock" 17276 need_locks="$enable_libtool_lock"
17277 17277
@@ -17395,7 +17395,7 @@ Index: binutils-2.24/ld/configure
17395 17395
17396 case $host_os in 17396 case $host_os in
17397 rhapsody* | darwin*) 17397 rhapsody* | darwin*)
17398@@ -8648,6 +9145,8 @@ 17398@@ -8168,6 +8665,8 @@ _LT_EOF
17399 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 17399 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
17400 echo "$AR cru libconftest.a conftest.o" >&5 17400 echo "$AR cru libconftest.a conftest.o" >&5
17401 $AR cru libconftest.a conftest.o 2>&5 17401 $AR cru libconftest.a conftest.o 2>&5
@@ -17404,7 +17404,7 @@ Index: binutils-2.24/ld/configure
17404 cat > conftest.c << _LT_EOF 17404 cat > conftest.c << _LT_EOF
17405 int main() { return 0;} 17405 int main() { return 0;}
17406 _LT_EOF 17406 _LT_EOF
17407@@ -8716,6 +9215,16 @@ 17407@@ -8236,6 +8735,16 @@ done
17408 17408
17409 17409
17410 17410
@@ -17421,7 +17421,7 @@ Index: binutils-2.24/ld/configure
17421 17421
17422 17422
17423 # Set options 17423 # Set options
17424@@ -8844,7 +9353,8 @@ 17424@@ -8364,7 +8873,8 @@ fi
17425 LIBTOOL_DEPS="$ltmain" 17425 LIBTOOL_DEPS="$ltmain"
17426 17426
17427 # Always use our own libtool. 17427 # Always use our own libtool.
@@ -17431,7 +17431,7 @@ Index: binutils-2.24/ld/configure
17431 17431
17432 17432
17433 17433
17434@@ -8933,7 +9443,7 @@ 17434@@ -8453,7 +8963,7 @@ aix3*)
17435 esac 17435 esac
17436 17436
17437 # Global variables: 17437 # Global variables:
@@ -17440,7 +17440,7 @@ Index: binutils-2.24/ld/configure
17440 can_build_shared=yes 17440 can_build_shared=yes
17441 17441
17442 # All known linkers require a `.a' archive for static linking (except MSVC, 17442 # All known linkers require a `.a' archive for static linking (except MSVC,
17443@@ -9231,8 +9741,6 @@ 17443@@ -8751,8 +9261,6 @@ fi
17444 lt_prog_compiler_pic= 17444 lt_prog_compiler_pic=
17445 lt_prog_compiler_static= 17445 lt_prog_compiler_static=
17446 17446
@@ -17449,7 +17449,7 @@ Index: binutils-2.24/ld/configure
17449 17449
17450 if test "$GCC" = yes; then 17450 if test "$GCC" = yes; then
17451 lt_prog_compiler_wl='-Wl,' 17451 lt_prog_compiler_wl='-Wl,'
17452@@ -9398,6 +9906,12 @@ 17452@@ -8918,6 +9426,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
17453 lt_prog_compiler_pic='--shared' 17453 lt_prog_compiler_pic='--shared'
17454 lt_prog_compiler_static='--static' 17454 lt_prog_compiler_static='--static'
17455 ;; 17455 ;;
@@ -17462,7 +17462,7 @@ Index: binutils-2.24/ld/configure
17462 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) 17462 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
17463 # Portland Group compilers (*not* the Pentium gcc compiler, 17463 # Portland Group compilers (*not* the Pentium gcc compiler,
17464 # which looks to be a dead project) 17464 # which looks to be a dead project)
17465@@ -9460,7 +9974,7 @@ 17465@@ -8980,7 +9494,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
17466 lt_prog_compiler_pic='-KPIC' 17466 lt_prog_compiler_pic='-KPIC'
17467 lt_prog_compiler_static='-Bstatic' 17467 lt_prog_compiler_static='-Bstatic'
17468 case $cc_basename in 17468 case $cc_basename in
@@ -17471,7 +17471,7 @@ Index: binutils-2.24/ld/configure
17471 lt_prog_compiler_wl='-Qoption ld ';; 17471 lt_prog_compiler_wl='-Qoption ld ';;
17472 *) 17472 *)
17473 lt_prog_compiler_wl='-Wl,';; 17473 lt_prog_compiler_wl='-Wl,';;
17474@@ -9517,13 +10031,17 @@ 17474@@ -9037,13 +9551,17 @@ case $host_os in
17475 lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" 17475 lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
17476 ;; 17476 ;;
17477 esac 17477 esac
@@ -17495,7 +17495,7 @@ Index: binutils-2.24/ld/configure
17495 17495
17496 # 17496 #
17497 # Check to make sure the PIC flag actually works. 17497 # Check to make sure the PIC flag actually works.
17498@@ -9584,6 +10102,11 @@ 17498@@ -9104,6 +9622,11 @@ fi
17499 17499
17500 17500
17501 17501
@@ -17507,7 +17507,7 @@ Index: binutils-2.24/ld/configure
17507 # 17507 #
17508 # Check to make sure the static flag actually works. 17508 # Check to make sure the static flag actually works.
17509 # 17509 #
17510@@ -9934,7 +10457,8 @@ 17510@@ -9454,7 +9977,8 @@ _LT_EOF
17511 allow_undefined_flag=unsupported 17511 allow_undefined_flag=unsupported
17512 always_export_symbols=no 17512 always_export_symbols=no
17513 enable_shared_with_static_runtimes=yes 17513 enable_shared_with_static_runtimes=yes
@@ -17517,7 +17517,7 @@ Index: binutils-2.24/ld/configure
17517 17517
17518 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then 17518 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
17519 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 17519 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
17520@@ -9982,7 +10506,7 @@ 17520@@ -9502,7 +10026,7 @@ _LT_EOF
17521 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ 17521 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
17522 && test "$tmp_diet" = no 17522 && test "$tmp_diet" = no
17523 then 17523 then
@@ -17526,7 +17526,7 @@ Index: binutils-2.24/ld/configure
17526 tmp_sharedflag='-shared' 17526 tmp_sharedflag='-shared'
17527 case $cc_basename,$host_cpu in 17527 case $cc_basename,$host_cpu in
17528 pgcc*) # Portland Group C compiler 17528 pgcc*) # Portland Group C compiler
17529@@ -10033,12 +10557,12 @@ 17529@@ -9553,12 +10077,12 @@ _LT_EOF
17530 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' 17530 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
17531 hardcode_libdir_flag_spec= 17531 hardcode_libdir_flag_spec=
17532 hardcode_libdir_flag_spec_ld='-rpath $libdir' 17532 hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -17541,7 +17541,7 @@ Index: binutils-2.24/ld/configure
17541 fi 17541 fi
17542 ;; 17542 ;;
17543 esac 17543 esac
17544@@ -10052,8 +10576,8 @@ 17544@@ -9572,8 +10096,8 @@ _LT_EOF
17545 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' 17545 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
17546 wlarc= 17546 wlarc=
17547 else 17547 else
@@ -17552,7 +17552,7 @@ Index: binutils-2.24/ld/configure
17552 fi 17552 fi
17553 ;; 17553 ;;
17554 17554
17555@@ -10071,8 +10595,8 @@ 17555@@ -9591,8 +10115,8 @@ _LT_EOF
17556 17556
17557 _LT_EOF 17557 _LT_EOF
17558 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 17558 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -17563,7 +17563,7 @@ Index: binutils-2.24/ld/configure
17563 else 17563 else
17564 ld_shlibs=no 17564 ld_shlibs=no
17565 fi 17565 fi
17566@@ -10118,8 +10642,8 @@ 17566@@ -9638,8 +10162,8 @@ _LT_EOF
17567 17567
17568 *) 17568 *)
17569 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 17569 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -17574,7 +17574,7 @@ Index: binutils-2.24/ld/configure
17574 else 17574 else
17575 ld_shlibs=no 17575 ld_shlibs=no
17576 fi 17576 fi
17577@@ -10249,7 +10773,13 @@ 17577@@ -9769,7 +10293,13 @@ _LT_EOF
17578 allow_undefined_flag='-berok' 17578 allow_undefined_flag='-berok'
17579 # Determine the default libpath from the value encoded in an 17579 # Determine the default libpath from the value encoded in an
17580 # empty executable. 17580 # empty executable.
@@ -17589,7 +17589,7 @@ Index: binutils-2.24/ld/configure
17589 /* end confdefs.h. */ 17589 /* end confdefs.h. */
17590 17590
17591 int 17591 int
17592@@ -10262,22 +10792,29 @@ 17592@@ -9782,22 +10312,29 @@ main ()
17593 _ACEOF 17593 _ACEOF
17594 if ac_fn_c_try_link "$LINENO"; then : 17594 if ac_fn_c_try_link "$LINENO"; then :
17595 17595
@@ -17632,7 +17632,7 @@ Index: binutils-2.24/ld/configure
17632 17632
17633 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 17633 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
17634 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" 17634 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
17635@@ -10289,7 +10826,13 @@ 17635@@ -9809,7 +10346,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17636 else 17636 else
17637 # Determine the default libpath from the value encoded in an 17637 # Determine the default libpath from the value encoded in an
17638 # empty executable. 17638 # empty executable.
@@ -17647,7 +17647,7 @@ Index: binutils-2.24/ld/configure
17647 /* end confdefs.h. */ 17647 /* end confdefs.h. */
17648 17648
17649 int 17649 int
17650@@ -10302,22 +10845,29 @@ 17650@@ -9822,22 +10365,29 @@ main ()
17651 _ACEOF 17651 _ACEOF
17652 if ac_fn_c_try_link "$LINENO"; then : 17652 if ac_fn_c_try_link "$LINENO"; then :
17653 17653
@@ -17690,10 +17690,11 @@ Index: binutils-2.24/ld/configure
17690 17690
17691 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 17691 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
17692 # Warning - without using the other run time loading flags, 17692 # Warning - without using the other run time loading flags,
17693@@ -10362,20 +10912,63 @@ 17693@@ -9881,21 +10431,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17694 # When not using gcc, we currently assume that we are using
17694 # Microsoft Visual C++. 17695 # Microsoft Visual C++.
17695 # hardcode_libdir_flag_spec is actually meaningless, as there is 17696 # hardcode_libdir_flag_spec is actually meaningless, as there is
17696 # no search path for DLLs. 17697- # no search path for DLLs.
17697- hardcode_libdir_flag_spec=' ' 17698- hardcode_libdir_flag_spec=' '
17698- allow_undefined_flag=unsupported 17699- allow_undefined_flag=unsupported
17699- # Tell ltmain to make .lib files, not .a files. 17700- # Tell ltmain to make .lib files, not .a files.
@@ -17708,6 +17709,7 @@ Index: binutils-2.24/ld/configure
17708- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' 17709- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
17709- fix_srcfile_path='`cygpath -w "$srcfile"`' 17710- fix_srcfile_path='`cygpath -w "$srcfile"`'
17710- enable_shared_with_static_runtimes=yes 17711- enable_shared_with_static_runtimes=yes
17712+ # no search path for DLLs.
17711+ case $cc_basename in 17713+ case $cc_basename in
17712+ cl*) 17714+ cl*)
17713+ # Native MSVC 17715+ # Native MSVC
@@ -17768,7 +17770,7 @@ Index: binutils-2.24/ld/configure
17768 ;; 17770 ;;
17769 17771
17770 darwin* | rhapsody*) 17772 darwin* | rhapsody*)
17771@@ -10436,7 +11029,7 @@ 17773@@ -9956,7 +10549,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17772 17774
17773 # FreeBSD 3 and greater uses gcc -shared to do shared libraries. 17775 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
17774 freebsd* | dragonfly*) 17776 freebsd* | dragonfly*)
@@ -17777,7 +17779,7 @@ Index: binutils-2.24/ld/configure
17777 hardcode_libdir_flag_spec='-R$libdir' 17779 hardcode_libdir_flag_spec='-R$libdir'
17778 hardcode_direct=yes 17780 hardcode_direct=yes
17779 hardcode_shlibpath_var=no 17781 hardcode_shlibpath_var=no
17780@@ -10444,7 +11037,7 @@ 17782@@ -9964,7 +10557,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17781 17783
17782 hpux9*) 17784 hpux9*)
17783 if test "$GCC" = yes; then 17785 if test "$GCC" = yes; then
@@ -17786,7 +17788,7 @@ Index: binutils-2.24/ld/configure
17786 else 17788 else
17787 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' 17789 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
17788 fi 17790 fi
17789@@ -10460,7 +11053,7 @@ 17791@@ -9980,7 +10573,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17790 17792
17791 hpux10*) 17793 hpux10*)
17792 if test "$GCC" = yes && test "$with_gnu_ld" = no; then 17794 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -17795,7 +17797,7 @@ Index: binutils-2.24/ld/configure
17795 else 17797 else
17796 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 17798 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
17797 fi 17799 fi
17798@@ -10484,10 +11077,10 @@ 17800@@ -10004,10 +10597,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
17799 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 17801 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
17800 ;; 17802 ;;
17801 ia64*) 17803 ia64*)
@@ -17808,7 +17810,7 @@ Index: binutils-2.24/ld/configure
17808 ;; 17810 ;;
17809 esac 17811 esac
17810 else 17812 else
17811@@ -10566,23 +11159,36 @@ 17813@@ -10086,23 +10679,36 @@ fi
17812 17814
17813 irix5* | irix6* | nonstopux*) 17815 irix5* | irix6* | nonstopux*)
17814 if test "$GCC" = yes; then 17816 if test "$GCC" = yes; then
@@ -17853,7 +17855,7 @@ Index: binutils-2.24/ld/configure
17853 else 17855 else
17854 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 17856 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
17855 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' 17857 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
17856@@ -10667,7 +11273,7 @@ 17858@@ -10187,7 +10793,7 @@ rm -f core conftest.err conftest.$ac_objext \
17857 osf4* | osf5*) # as osf3* with the addition of -msym flag 17859 osf4* | osf5*) # as osf3* with the addition of -msym flag
17858 if test "$GCC" = yes; then 17860 if test "$GCC" = yes; then
17859 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' 17861 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -17862,7 +17864,7 @@ Index: binutils-2.24/ld/configure
17862 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 17864 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
17863 else 17865 else
17864 allow_undefined_flag=' -expect_unresolved \*' 17866 allow_undefined_flag=' -expect_unresolved \*'
17865@@ -10686,9 +11292,9 @@ 17867@@ -10206,9 +10812,9 @@ rm -f core conftest.err conftest.$ac_objext \
17866 no_undefined_flag=' -z defs' 17868 no_undefined_flag=' -z defs'
17867 if test "$GCC" = yes; then 17869 if test "$GCC" = yes; then
17868 wlarc='${wl}' 17870 wlarc='${wl}'
@@ -17874,7 +17876,7 @@ Index: binutils-2.24/ld/configure
17874 else 17876 else
17875 case `$CC -V 2>&1` in 17877 case `$CC -V 2>&1` in
17876 *"Compilers 5.0"*) 17878 *"Compilers 5.0"*)
17877@@ -11264,8 +11870,9 @@ 17879@@ -10784,8 +11390,9 @@ cygwin* | mingw* | pw32* | cegcc*)
17878 need_version=no 17880 need_version=no
17879 need_lib_prefix=no 17881 need_lib_prefix=no
17880 17882
@@ -17886,7 +17888,7 @@ Index: binutils-2.24/ld/configure
17886 library_names_spec='$libname.dll.a' 17888 library_names_spec='$libname.dll.a'
17887 # DLL is installed to $(libdir)/../bin by postinstall_cmds 17889 # DLL is installed to $(libdir)/../bin by postinstall_cmds
17888 postinstall_cmds='base_file=`basename \${file}`~ 17890 postinstall_cmds='base_file=`basename \${file}`~
17889@@ -11298,13 +11905,71 @@ 17891@@ -10818,13 +11425,71 @@ cygwin* | mingw* | pw32* | cegcc*)
17890 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 17892 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
17891 ;; 17893 ;;
17892 esac 17894 esac
@@ -17959,7 +17961,7 @@ Index: binutils-2.24/ld/configure
17959 # FIXME: first we should search . and the directory the executable is in 17961 # FIXME: first we should search . and the directory the executable is in
17960 shlibpath_var=PATH 17962 shlibpath_var=PATH
17961 ;; 17963 ;;
17962@@ -11396,7 +12061,7 @@ 17964@@ -10916,7 +11581,7 @@ haiku*)
17963 soname_spec='${libname}${release}${shared_ext}$major' 17965 soname_spec='${libname}${release}${shared_ext}$major'
17964 shlibpath_var=LIBRARY_PATH 17966 shlibpath_var=LIBRARY_PATH
17965 shlibpath_overrides_runpath=yes 17967 shlibpath_overrides_runpath=yes
@@ -17968,16 +17970,16 @@ Index: binutils-2.24/ld/configure
17968 hardcode_into_libs=yes 17970 hardcode_into_libs=yes
17969 ;; 17971 ;;
17970 17972
17971@@ -12192,7 +12857,7 @@ 17973@@ -11712,7 +12377,7 @@ else
17972 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 17974 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
17973 lt_status=$lt_dlunknown 17975 lt_status=$lt_dlunknown
17974 cat > conftest.$ac_ext <<_LT_EOF 17976 cat > conftest.$ac_ext <<_LT_EOF
17975-#line 12195 "configure" 17977-#line 11715 "configure"
17976+#line $LINENO "configure" 17978+#line $LINENO "configure"
17977 #include "confdefs.h" 17979 #include "confdefs.h"
17978 17980
17979 #if HAVE_DLFCN_H 17981 #if HAVE_DLFCN_H
17980@@ -12236,10 +12901,10 @@ 17982@@ -11756,10 +12421,10 @@ else
17981 /* When -fvisbility=hidden is used, assume the code has been annotated 17983 /* When -fvisbility=hidden is used, assume the code has been annotated
17982 correspondingly for the symbols needed. */ 17984 correspondingly for the symbols needed. */
17983 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) 17985 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -17990,16 +17992,16 @@ Index: binutils-2.24/ld/configure
17990 int main () 17992 int main ()
17991 { 17993 {
17992 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); 17994 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
17993@@ -12298,7 +12963,7 @@ 17995@@ -11818,7 +12483,7 @@ else
17994 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 17996 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
17995 lt_status=$lt_dlunknown 17997 lt_status=$lt_dlunknown
17996 cat > conftest.$ac_ext <<_LT_EOF 17998 cat > conftest.$ac_ext <<_LT_EOF
17997-#line 12301 "configure" 17999-#line 11821 "configure"
17998+#line $LINENO "configure" 18000+#line $LINENO "configure"
17999 #include "confdefs.h" 18001 #include "confdefs.h"
18000 18002
18001 #if HAVE_DLFCN_H 18003 #if HAVE_DLFCN_H
18002@@ -12342,10 +13007,10 @@ 18004@@ -11862,10 +12527,10 @@ else
18003 /* When -fvisbility=hidden is used, assume the code has been annotated 18005 /* When -fvisbility=hidden is used, assume the code has been annotated
18004 correspondingly for the symbols needed. */ 18006 correspondingly for the symbols needed. */
18005 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) 18007 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -18012,7 +18014,7 @@ Index: binutils-2.24/ld/configure
18012 int main () 18014 int main ()
18013 { 18015 {
18014 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); 18016 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
18015@@ -12737,6 +13402,7 @@ 18017@@ -12257,6 +12922,7 @@ $RM -r conftest*
18016 18018
18017 # Allow CC to be a program name with arguments. 18019 # Allow CC to be a program name with arguments.
18018 lt_save_CC=$CC 18020 lt_save_CC=$CC
@@ -18020,7 +18022,7 @@ Index: binutils-2.24/ld/configure
18020 lt_save_LD=$LD 18022 lt_save_LD=$LD
18021 lt_save_GCC=$GCC 18023 lt_save_GCC=$GCC
18022 GCC=$GXX 18024 GCC=$GXX
18023@@ -12754,6 +13420,7 @@ 18025@@ -12274,6 +12940,7 @@ $RM -r conftest*
18024 fi 18026 fi
18025 test -z "${LDCXX+set}" || LD=$LDCXX 18027 test -z "${LDCXX+set}" || LD=$LDCXX
18026 CC=${CXX-"c++"} 18028 CC=${CXX-"c++"}
@@ -18028,7 +18030,7 @@ Index: binutils-2.24/ld/configure
18028 compiler=$CC 18030 compiler=$CC
18029 compiler_CXX=$CC 18031 compiler_CXX=$CC
18030 for cc_temp in $compiler""; do 18032 for cc_temp in $compiler""; do
18031@@ -12893,8 +13560,8 @@ 18033@@ -12413,8 +13080,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
18032 # Check if GNU C++ uses GNU ld as the underlying linker, since the 18034 # Check if GNU C++ uses GNU ld as the underlying linker, since the
18033 # archiving commands below assume that GNU ld is being used. 18035 # archiving commands below assume that GNU ld is being used.
18034 if test "$with_gnu_ld" = yes; then 18036 if test "$with_gnu_ld" = yes; then
@@ -18039,7 +18041,7 @@ Index: binutils-2.24/ld/configure
18039 18041
18040 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' 18042 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
18041 export_dynamic_flag_spec_CXX='${wl}--export-dynamic' 18043 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
18042@@ -13036,7 +13703,13 @@ 18044@@ -12556,7 +13223,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
18043 allow_undefined_flag_CXX='-berok' 18045 allow_undefined_flag_CXX='-berok'
18044 # Determine the default libpath from the value encoded in an empty 18046 # Determine the default libpath from the value encoded in an empty
18045 # executable. 18047 # executable.
@@ -18054,7 +18056,7 @@ Index: binutils-2.24/ld/configure
18054 /* end confdefs.h. */ 18056 /* end confdefs.h. */
18055 18057
18056 int 18058 int
18057@@ -13049,22 +13722,29 @@ 18059@@ -12569,22 +13242,29 @@ main ()
18058 _ACEOF 18060 _ACEOF
18059 if ac_fn_cxx_try_link "$LINENO"; then : 18061 if ac_fn_cxx_try_link "$LINENO"; then :
18060 18062
@@ -18097,7 +18099,7 @@ Index: binutils-2.24/ld/configure
18097 18099
18098 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" 18100 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
18099 18101
18100@@ -13077,7 +13757,13 @@ 18102@@ -12597,7 +13277,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18101 else 18103 else
18102 # Determine the default libpath from the value encoded in an 18104 # Determine the default libpath from the value encoded in an
18103 # empty executable. 18105 # empty executable.
@@ -18112,7 +18114,7 @@ Index: binutils-2.24/ld/configure
18112 /* end confdefs.h. */ 18114 /* end confdefs.h. */
18113 18115
18114 int 18116 int
18115@@ -13090,22 +13776,29 @@ 18117@@ -12610,22 +13296,29 @@ main ()
18116 _ACEOF 18118 _ACEOF
18117 if ac_fn_cxx_try_link "$LINENO"; then : 18119 if ac_fn_cxx_try_link "$LINENO"; then :
18118 18120
@@ -18155,7 +18157,7 @@ Index: binutils-2.24/ld/configure
18155 18157
18156 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" 18158 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
18157 # Warning - without using the other run time loading flags, 18159 # Warning - without using the other run time loading flags,
18158@@ -13148,29 +13841,75 @@ 18160@@ -12668,29 +13361,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18159 ;; 18161 ;;
18160 18162
18161 cygwin* | mingw* | pw32* | cegcc*) 18163 cygwin* | mingw* | pw32* | cegcc*)
@@ -18254,7 +18256,7 @@ Index: binutils-2.24/ld/configure
18254 darwin* | rhapsody*) 18256 darwin* | rhapsody*)
18255 18257
18256 18258
18257@@ -13276,7 +14015,7 @@ 18259@@ -12796,7 +13535,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18258 ;; 18260 ;;
18259 *) 18261 *)
18260 if test "$GXX" = yes; then 18262 if test "$GXX" = yes; then
@@ -18263,7 +18265,7 @@ Index: binutils-2.24/ld/configure
18263 else 18265 else
18264 # FIXME: insert proper C++ library support 18266 # FIXME: insert proper C++ library support
18265 ld_shlibs_CXX=no 18267 ld_shlibs_CXX=no
18266@@ -13347,10 +14086,10 @@ 18268@@ -12867,10 +13606,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18267 archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 18269 archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
18268 ;; 18270 ;;
18269 ia64*) 18271 ia64*)
@@ -18276,7 +18278,7 @@ Index: binutils-2.24/ld/configure
18276 ;; 18278 ;;
18277 esac 18279 esac
18278 fi 18280 fi
18279@@ -13391,9 +14130,9 @@ 18281@@ -12911,9 +13650,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18280 *) 18282 *)
18281 if test "$GXX" = yes; then 18283 if test "$GXX" = yes; then
18282 if test "$with_gnu_ld" = no; then 18284 if test "$with_gnu_ld" = no; then
@@ -18288,7 +18290,7 @@ Index: binutils-2.24/ld/configure
18288 fi 18290 fi
18289 fi 18291 fi
18290 link_all_deplibs_CXX=yes 18292 link_all_deplibs_CXX=yes
18291@@ -13463,20 +14202,20 @@ 18293@@ -12983,20 +13722,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18292 prelink_cmds_CXX='tpldir=Template.dir~ 18294 prelink_cmds_CXX='tpldir=Template.dir~
18293 rm -rf $tpldir~ 18295 rm -rf $tpldir~
18294 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ 18296 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
@@ -18313,7 +18315,7 @@ Index: binutils-2.24/ld/configure
18313 ;; 18315 ;;
18314 *) # Version 6 and above use weak symbols 18316 *) # Version 6 and above use weak symbols
18315 archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 18317 archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
18316@@ -13671,7 +14410,7 @@ 18318@@ -13191,7 +13930,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18317 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 18319 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
18318 ;; 18320 ;;
18319 *) 18321 *)
@@ -18322,7 +18324,7 @@ Index: binutils-2.24/ld/configure
18322 ;; 18324 ;;
18323 esac 18325 esac
18324 18326
18325@@ -13717,7 +14456,7 @@ 18327@@ -13237,7 +13976,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18326 18328
18327 solaris*) 18329 solaris*)
18328 case $cc_basename in 18330 case $cc_basename in
@@ -18331,7 +18333,7 @@ Index: binutils-2.24/ld/configure
18331 # Sun C++ 4.2, 5.x and Centerline C++ 18333 # Sun C++ 4.2, 5.x and Centerline C++
18332 archive_cmds_need_lc_CXX=yes 18334 archive_cmds_need_lc_CXX=yes
18333 no_undefined_flag_CXX=' -zdefs' 18335 no_undefined_flag_CXX=' -zdefs'
18334@@ -13758,9 +14497,9 @@ 18336@@ -13278,9 +14017,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
18335 if test "$GXX" = yes && test "$with_gnu_ld" = no; then 18337 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
18336 no_undefined_flag_CXX=' ${wl}-z ${wl}defs' 18338 no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
18337 if $CC --version | $GREP -v '^2\.7' > /dev/null; then 18339 if $CC --version | $GREP -v '^2\.7' > /dev/null; then
@@ -18343,7 +18345,7 @@ Index: binutils-2.24/ld/configure
18343 18345
18344 # Commands to make compiler produce verbose output that lists 18346 # Commands to make compiler produce verbose output that lists
18345 # what "hidden" libraries, object files and flags are used when 18347 # what "hidden" libraries, object files and flags are used when
18346@@ -13895,6 +14634,13 @@ 18348@@ -13415,6 +14154,13 @@ private:
18347 }; 18349 };
18348 _LT_EOF 18350 _LT_EOF
18349 18351
@@ -18357,7 +18359,7 @@ Index: binutils-2.24/ld/configure
18357 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 18359 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
18358 (eval $ac_compile) 2>&5 18360 (eval $ac_compile) 2>&5
18359 ac_status=$? 18361 ac_status=$?
18360@@ -13908,7 +14654,7 @@ 18362@@ -13428,7 +14174,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
18361 pre_test_object_deps_done=no 18363 pre_test_object_deps_done=no
18362 18364
18363 for p in `eval "$output_verbose_link_cmd"`; do 18365 for p in `eval "$output_verbose_link_cmd"`; do
@@ -18366,7 +18368,7 @@ Index: binutils-2.24/ld/configure
18366 18368
18367 -L* | -R* | -l*) 18369 -L* | -R* | -l*)
18368 # Some compilers place space between "-{L,R}" and the path. 18370 # Some compilers place space between "-{L,R}" and the path.
18369@@ -13917,13 +14663,22 @@ 18371@@ -13437,13 +14183,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
18370 test $p = "-R"; then 18372 test $p = "-R"; then
18371 prev=$p 18373 prev=$p
18372 continue 18374 continue
@@ -18393,7 +18395,7 @@ Index: binutils-2.24/ld/configure
18393 # Internal compiler library paths should come after those 18395 # Internal compiler library paths should come after those
18394 # provided the user. The postdeps already come after the 18396 # provided the user. The postdeps already come after the
18395 # user supplied libs so there is no need to process them. 18397 # user supplied libs so there is no need to process them.
18396@@ -13943,8 +14698,10 @@ 18398@@ -13463,8 +14218,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
18397 postdeps_CXX="${postdeps_CXX} ${prev}${p}" 18399 postdeps_CXX="${postdeps_CXX} ${prev}${p}"
18398 fi 18400 fi
18399 fi 18401 fi
@@ -18404,7 +18406,7 @@ Index: binutils-2.24/ld/configure
18404 *.$objext) 18406 *.$objext)
18405 # This assumes that the test object file only shows up 18407 # This assumes that the test object file only shows up
18406 # once in the compiler output. 18408 # once in the compiler output.
18407@@ -13980,6 +14737,7 @@ 18409@@ -13500,6 +14257,7 @@ else
18408 fi 18410 fi
18409 18411
18410 $RM -f confest.$objext 18412 $RM -f confest.$objext
@@ -18412,7 +18414,7 @@ Index: binutils-2.24/ld/configure
18412 18414
18413 # PORTME: override above test on systems where it is broken 18415 # PORTME: override above test on systems where it is broken
18414 case $host_os in 18416 case $host_os in
18415@@ -14015,7 +14773,7 @@ 18417@@ -13535,7 +14293,7 @@ linux*)
18416 18418
18417 solaris*) 18419 solaris*)
18418 case $cc_basename in 18420 case $cc_basename in
@@ -18421,7 +18423,7 @@ Index: binutils-2.24/ld/configure
18421 # The more standards-conforming stlport4 library is 18423 # The more standards-conforming stlport4 library is
18422 # incompatible with the Cstd library. Avoid specifying 18424 # incompatible with the Cstd library. Avoid specifying
18423 # it if it's in CXXFLAGS. Ignore libCrun as 18425 # it if it's in CXXFLAGS. Ignore libCrun as
18424@@ -14080,8 +14838,6 @@ 18426@@ -13600,8 +14358,6 @@ fi
18425 lt_prog_compiler_pic_CXX= 18427 lt_prog_compiler_pic_CXX=
18426 lt_prog_compiler_static_CXX= 18428 lt_prog_compiler_static_CXX=
18427 18429
@@ -18430,7 +18432,7 @@ Index: binutils-2.24/ld/configure
18430 18432
18431 # C++ specific cases for pic, static, wl, etc. 18433 # C++ specific cases for pic, static, wl, etc.
18432 if test "$GXX" = yes; then 18434 if test "$GXX" = yes; then
18433@@ -14186,6 +14942,11 @@ 18435@@ -13706,6 +14462,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
18434 ;; 18436 ;;
18435 esac 18437 esac
18436 ;; 18438 ;;
@@ -18442,7 +18444,7 @@ Index: binutils-2.24/ld/configure
18442 dgux*) 18444 dgux*)
18443 case $cc_basename in 18445 case $cc_basename in
18444 ec++*) 18446 ec++*)
18445@@ -14338,7 +15099,7 @@ 18447@@ -13858,7 +14619,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
18446 ;; 18448 ;;
18447 solaris*) 18449 solaris*)
18448 case $cc_basename in 18450 case $cc_basename in
@@ -18451,7 +18453,7 @@ Index: binutils-2.24/ld/configure
18451 # Sun C++ 4.2, 5.x and Centerline C++ 18453 # Sun C++ 4.2, 5.x and Centerline C++
18452 lt_prog_compiler_pic_CXX='-KPIC' 18454 lt_prog_compiler_pic_CXX='-KPIC'
18453 lt_prog_compiler_static_CXX='-Bstatic' 18455 lt_prog_compiler_static_CXX='-Bstatic'
18454@@ -14403,10 +15164,17 @@ 18456@@ -13923,10 +14684,17 @@ case $host_os in
18455 lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" 18457 lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
18456 ;; 18458 ;;
18457 esac 18459 esac
@@ -18472,7 +18474,7 @@ Index: binutils-2.24/ld/configure
18472 18474
18473 # 18475 #
18474 # Check to make sure the PIC flag actually works. 18476 # Check to make sure the PIC flag actually works.
18475@@ -14464,6 +15232,8 @@ 18477@@ -13984,6 +14752,8 @@ fi
18476 18478
18477 18479
18478 18480
@@ -18481,7 +18483,7 @@ Index: binutils-2.24/ld/configure
18481 # 18483 #
18482 # Check to make sure the static flag actually works. 18484 # Check to make sure the static flag actually works.
18483 # 18485 #
18484@@ -14641,6 +15411,7 @@ 18486@@ -14161,6 +14931,7 @@ fi
18485 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } 18487 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
18486 18488
18487 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 18489 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -18489,7 +18491,7 @@ Index: binutils-2.24/ld/configure
18489 case $host_os in 18491 case $host_os in
18490 aix[4-9]*) 18492 aix[4-9]*)
18491 # If we're using GNU nm, then we don't want the "-C" option. 18493 # If we're using GNU nm, then we don't want the "-C" option.
18492@@ -14655,15 +15426,20 @@ 18494@@ -14175,15 +14946,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
18493 ;; 18495 ;;
18494 pw32*) 18496 pw32*)
18495 export_symbols_cmds_CXX="$ltdll_cmds" 18497 export_symbols_cmds_CXX="$ltdll_cmds"
@@ -18515,7 +18517,7 @@ Index: binutils-2.24/ld/configure
18515 18517
18516 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 18518 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
18517 $as_echo "$ld_shlibs_CXX" >&6; } 18519 $as_echo "$ld_shlibs_CXX" >&6; }
18518@@ -14926,8 +15702,9 @@ 18520@@ -14446,8 +15222,9 @@ cygwin* | mingw* | pw32* | cegcc*)
18519 need_version=no 18521 need_version=no
18520 need_lib_prefix=no 18522 need_lib_prefix=no
18521 18523
@@ -18527,7 +18529,7 @@ Index: binutils-2.24/ld/configure
18527 library_names_spec='$libname.dll.a' 18529 library_names_spec='$libname.dll.a'
18528 # DLL is installed to $(libdir)/../bin by postinstall_cmds 18530 # DLL is installed to $(libdir)/../bin by postinstall_cmds
18529 postinstall_cmds='base_file=`basename \${file}`~ 18531 postinstall_cmds='base_file=`basename \${file}`~
18530@@ -14959,13 +15736,71 @@ 18532@@ -14479,13 +15256,71 @@ cygwin* | mingw* | pw32* | cegcc*)
18531 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 18533 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
18532 ;; 18534 ;;
18533 esac 18535 esac
@@ -18600,7 +18602,7 @@ Index: binutils-2.24/ld/configure
18600 # FIXME: first we should search . and the directory the executable is in 18602 # FIXME: first we should search . and the directory the executable is in
18601 shlibpath_var=PATH 18603 shlibpath_var=PATH
18602 ;; 18604 ;;
18603@@ -15056,7 +15891,7 @@ 18605@@ -14576,7 +15411,7 @@ haiku*)
18604 soname_spec='${libname}${release}${shared_ext}$major' 18606 soname_spec='${libname}${release}${shared_ext}$major'
18605 shlibpath_var=LIBRARY_PATH 18607 shlibpath_var=LIBRARY_PATH
18606 shlibpath_overrides_runpath=yes 18608 shlibpath_overrides_runpath=yes
@@ -18609,7 +18611,7 @@ Index: binutils-2.24/ld/configure
18609 hardcode_into_libs=yes 18611 hardcode_into_libs=yes
18610 ;; 18612 ;;
18611 18613
18612@@ -15515,6 +16350,7 @@ 18614@@ -15035,6 +15870,7 @@ fi
18613 fi # test -n "$compiler" 18615 fi # test -n "$compiler"
18614 18616
18615 CC=$lt_save_CC 18617 CC=$lt_save_CC
@@ -18617,7 +18619,7 @@ Index: binutils-2.24/ld/configure
18617 LDCXX=$LD 18619 LDCXX=$LD
18618 LD=$lt_save_LD 18620 LD=$lt_save_LD
18619 GCC=$lt_save_GCC 18621 GCC=$lt_save_GCC
18620@@ -17754,13 +18590,20 @@ 18622@@ -17807,13 +18643,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
18621 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' 18623 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
18622 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' 18624 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
18623 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' 18625 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -18638,7 +18640,7 @@ Index: binutils-2.24/ld/configure
18638 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' 18640 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
18639 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' 18641 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
18640 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' 18642 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
18641@@ -17775,14 +18618,17 @@ 18643@@ -17828,14 +18671,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
18642 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' 18644 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
18643 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' 18645 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
18644 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' 18646 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -18657,7 +18659,7 @@ Index: binutils-2.24/ld/configure
18657 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' 18659 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
18658 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' 18660 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
18659 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' 18661 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
18660@@ -17815,12 +18661,12 @@ 18662@@ -17868,12 +18714,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
18661 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' 18663 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
18662 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' 18664 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
18663 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' 18665 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -18671,7 +18673,7 @@ Index: binutils-2.24/ld/configure
18671 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' 18673 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
18672 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' 18674 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
18673 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' 18675 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
18674@@ -17859,8 +18705,8 @@ 18676@@ -17912,8 +18758,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
18675 compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' 18677 compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
18676 GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' 18678 GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
18677 lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' 18679 lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
@@ -18681,7 +18683,7 @@ Index: binutils-2.24/ld/configure
18681 lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' 18683 lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
18682 lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' 18684 lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
18683 archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' 18685 archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
18684@@ -17887,12 +18733,12 @@ 18686@@ -17940,12 +18786,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
18685 hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' 18687 hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
18686 inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' 18688 inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
18687 link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' 18689 link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
@@ -18695,7 +18697,7 @@ Index: binutils-2.24/ld/configure
18695 file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' 18697 file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
18696 hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' 18698 hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
18697 compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' 18699 compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
18698@@ -17930,8 +18776,13 @@ 18700@@ -17983,8 +18829,13 @@ reload_flag \
18699 OBJDUMP \ 18701 OBJDUMP \
18700 deplibs_check_method \ 18702 deplibs_check_method \
18701 file_magic_cmd \ 18703 file_magic_cmd \
@@ -18709,7 +18711,7 @@ Index: binutils-2.24/ld/configure
18709 STRIP \ 18711 STRIP \
18710 RANLIB \ 18712 RANLIB \
18711 CC \ 18713 CC \
18712@@ -17941,12 +18792,14 @@ 18714@@ -17994,12 +18845,14 @@ lt_cv_sys_global_symbol_pipe \
18713 lt_cv_sys_global_symbol_to_cdecl \ 18715 lt_cv_sys_global_symbol_to_cdecl \
18714 lt_cv_sys_global_symbol_to_c_name_address \ 18716 lt_cv_sys_global_symbol_to_c_name_address \
18715 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ 18717 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -18725,7 +18727,7 @@ Index: binutils-2.24/ld/configure
18725 DSYMUTIL \ 18727 DSYMUTIL \
18726 NMEDIT \ 18728 NMEDIT \
18727 LIPO \ 18729 LIPO \
18728@@ -17962,7 +18815,6 @@ 18730@@ -18015,7 +18868,6 @@ no_undefined_flag \
18729 hardcode_libdir_flag_spec \ 18731 hardcode_libdir_flag_spec \
18730 hardcode_libdir_flag_spec_ld \ 18732 hardcode_libdir_flag_spec_ld \
18731 hardcode_libdir_separator \ 18733 hardcode_libdir_separator \
@@ -18733,7 +18735,7 @@ Index: binutils-2.24/ld/configure
18733 exclude_expsyms \ 18735 exclude_expsyms \
18734 include_expsyms \ 18736 include_expsyms \
18735 file_list_spec \ 18737 file_list_spec \
18736@@ -17984,8 +18836,8 @@ 18738@@ -18037,8 +18889,8 @@ LD_CXX \
18737 reload_flag_CXX \ 18739 reload_flag_CXX \
18738 compiler_CXX \ 18740 compiler_CXX \
18739 lt_prog_compiler_no_builtin_flag_CXX \ 18741 lt_prog_compiler_no_builtin_flag_CXX \
@@ -18743,7 +18745,7 @@ Index: binutils-2.24/ld/configure
18743 lt_prog_compiler_static_CXX \ 18745 lt_prog_compiler_static_CXX \
18744 lt_cv_prog_compiler_c_o_CXX \ 18746 lt_cv_prog_compiler_c_o_CXX \
18745 export_dynamic_flag_spec_CXX \ 18747 export_dynamic_flag_spec_CXX \
18746@@ -17997,7 +18849,6 @@ 18748@@ -18050,7 +18902,6 @@ no_undefined_flag_CXX \
18747 hardcode_libdir_flag_spec_CXX \ 18749 hardcode_libdir_flag_spec_CXX \
18748 hardcode_libdir_flag_spec_ld_CXX \ 18750 hardcode_libdir_flag_spec_ld_CXX \
18749 hardcode_libdir_separator_CXX \ 18751 hardcode_libdir_separator_CXX \
@@ -18751,7 +18753,7 @@ Index: binutils-2.24/ld/configure
18751 exclude_expsyms_CXX \ 18753 exclude_expsyms_CXX \
18752 include_expsyms_CXX \ 18754 include_expsyms_CXX \
18753 file_list_spec_CXX \ 18755 file_list_spec_CXX \
18754@@ -18031,6 +18882,7 @@ 18756@@ -18084,6 +18935,7 @@ module_cmds \
18755 module_expsym_cmds \ 18757 module_expsym_cmds \
18756 export_symbols_cmds \ 18758 export_symbols_cmds \
18757 prelink_cmds \ 18759 prelink_cmds \
@@ -18759,7 +18761,7 @@ Index: binutils-2.24/ld/configure
18759 postinstall_cmds \ 18761 postinstall_cmds \
18760 postuninstall_cmds \ 18762 postuninstall_cmds \
18761 finish_cmds \ 18763 finish_cmds \
18762@@ -18045,7 +18897,8 @@ 18764@@ -18098,7 +18950,8 @@ archive_expsym_cmds_CXX \
18763 module_cmds_CXX \ 18765 module_cmds_CXX \
18764 module_expsym_cmds_CXX \ 18766 module_expsym_cmds_CXX \
18765 export_symbols_cmds_CXX \ 18767 export_symbols_cmds_CXX \
@@ -18769,7 +18771,7 @@ Index: binutils-2.24/ld/configure
18769 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in 18771 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
18770 *[\\\\\\\`\\"\\\$]*) 18772 *[\\\\\\\`\\"\\\$]*)
18771 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" 18773 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
18772@@ -18838,7 +19691,8 @@ 18774@@ -18891,7 +19744,8 @@ $as_echo X"$file" |
18773 # NOTE: Changes made to this file will be lost: look at ltmain.sh. 18775 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
18774 # 18776 #
18775 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 18777 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -18779,7 +18781,7 @@ Index: binutils-2.24/ld/configure
18779 # Written by Gordon Matzigkeit, 1996 18781 # Written by Gordon Matzigkeit, 1996
18780 # 18782 #
18781 # This file is part of GNU Libtool. 18783 # This file is part of GNU Libtool.
18782@@ -18941,19 +19795,42 @@ 18784@@ -18994,19 +19848,42 @@ SP2NL=$lt_lt_SP2NL
18783 # turn newlines into spaces. 18785 # turn newlines into spaces.
18784 NL2SP=$lt_lt_NL2SP 18786 NL2SP=$lt_lt_NL2SP
18785 18787
@@ -18823,7 +18825,7 @@ Index: binutils-2.24/ld/configure
18823 # A symbol stripping program. 18825 # A symbol stripping program.
18824 STRIP=$lt_STRIP 18826 STRIP=$lt_STRIP
18825 18827
18826@@ -18983,6 +19860,12 @@ 18828@@ -19036,6 +19913,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
18827 # Transform the output of nm in a C name address pair when lib prefix is needed. 18829 # Transform the output of nm in a C name address pair when lib prefix is needed.
18828 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix 18830 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
18829 18831
@@ -18836,7 +18838,7 @@ Index: binutils-2.24/ld/configure
18836 # The name of the directory that contains temporary libtool files. 18838 # The name of the directory that contains temporary libtool files.
18837 objdir=$objdir 18839 objdir=$objdir
18838 18840
18839@@ -18992,6 +19875,9 @@ 18841@@ -19045,6 +19928,9 @@ MAGIC_CMD=$MAGIC_CMD
18840 # Must we lock files when doing compilation? 18842 # Must we lock files when doing compilation?
18841 need_locks=$lt_need_locks 18843 need_locks=$lt_need_locks
18842 18844
@@ -18846,7 +18848,7 @@ Index: binutils-2.24/ld/configure
18846 # Tool to manipulate archived DWARF debug symbol files on Mac OS X. 18848 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
18847 DSYMUTIL=$lt_DSYMUTIL 18849 DSYMUTIL=$lt_DSYMUTIL
18848 18850
18849@@ -19106,12 +19992,12 @@ 18851@@ -19159,12 +20045,12 @@ with_gcc=$GCC
18850 # Compiler flag to turn off builtin functions. 18852 # Compiler flag to turn off builtin functions.
18851 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag 18853 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
18852 18854
@@ -18862,7 +18864,7 @@ Index: binutils-2.24/ld/configure
18862 # Compiler flag to prevent dynamic linking. 18864 # Compiler flag to prevent dynamic linking.
18863 link_static_flag=$lt_lt_prog_compiler_static 18865 link_static_flag=$lt_lt_prog_compiler_static
18864 18866
18865@@ -19198,9 +20084,6 @@ 18867@@ -19251,9 +20137,6 @@ inherit_rpath=$inherit_rpath
18866 # Whether libtool must link a program against all its dependency libraries. 18868 # Whether libtool must link a program against all its dependency libraries.
18867 link_all_deplibs=$link_all_deplibs 18869 link_all_deplibs=$link_all_deplibs
18868 18870
@@ -18872,7 +18874,7 @@ Index: binutils-2.24/ld/configure
18872 # Set to "yes" if exported symbols are required. 18874 # Set to "yes" if exported symbols are required.
18873 always_export_symbols=$always_export_symbols 18875 always_export_symbols=$always_export_symbols
18874 18876
18875@@ -19216,6 +20099,9 @@ 18877@@ -19269,6 +20152,9 @@ include_expsyms=$lt_include_expsyms
18876 # Commands necessary for linking programs (against libraries) with templates. 18878 # Commands necessary for linking programs (against libraries) with templates.
18877 prelink_cmds=$lt_prelink_cmds 18879 prelink_cmds=$lt_prelink_cmds
18878 18880
@@ -18882,7 +18884,7 @@ Index: binutils-2.24/ld/configure
18882 # Specify filename containing input files. 18884 # Specify filename containing input files.
18883 file_list_spec=$lt_file_list_spec 18885 file_list_spec=$lt_file_list_spec
18884 18886
18885@@ -19262,210 +20148,169 @@ 18887@@ -19315,210 +20201,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
18886 # if finds mixed CR/LF and LF-only lines. Since sed operates in 18888 # if finds mixed CR/LF and LF-only lines. Since sed operates in
18887 # text mode, it properly converts lines to CR/LF. This bash problem 18889 # text mode, it properly converts lines to CR/LF. This bash problem
18888 # is reportedly fixed, but why not run on old versions too? 18890 # is reportedly fixed, but why not run on old versions too?
@@ -19084,9 +19086,15 @@ Index: binutils-2.24/ld/configure
19084-_LT_EOF 19086-_LT_EOF
19085- ;; 19087- ;;
19086- esac 19088- esac
19089-
19090-
19091- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
19092- || (rm -f "$cfgfile"; exit 1)
19093-
19094- mv -f "$cfgfile" "$ofile" ||
19087+ sed '$q' "$ltmain" >> "$cfgfile" \ 19095+ sed '$q' "$ltmain" >> "$cfgfile" \
19088+ || (rm -f "$cfgfile"; exit 1) 19096+ || (rm -f "$cfgfile"; exit 1)
19089 19097+
19090+ if test x"$xsi_shell" = xyes; then 19098+ if test x"$xsi_shell" = xyes; then
19091+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ 19099+ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
19092+func_dirname ()\ 19100+func_dirname ()\
@@ -19244,16 +19252,13 @@ Index: binutils-2.24/ld/configure
19244+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 19252+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
19245+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} 19253+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
19246+fi 19254+fi
19247 19255+
19248- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ 19256+
19249- || (rm -f "$cfgfile"; exit 1)
19250
19251- mv -f "$cfgfile" "$ofile" ||
19252+ mv -f "$cfgfile" "$ofile" || 19257+ mv -f "$cfgfile" "$ofile" ||
19253 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") 19258 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
19254 chmod +x "$ofile" 19259 chmod +x "$ofile"
19255 19260
19256@@ -19493,12 +20338,12 @@ 19261@@ -19546,12 +20391,12 @@ with_gcc=$GCC_CXX
19257 # Compiler flag to turn off builtin functions. 19262 # Compiler flag to turn off builtin functions.
19258 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX 19263 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
19259 19264
@@ -19269,7 +19274,7 @@ Index: binutils-2.24/ld/configure
19269 # Compiler flag to prevent dynamic linking. 19274 # Compiler flag to prevent dynamic linking.
19270 link_static_flag=$lt_lt_prog_compiler_static_CXX 19275 link_static_flag=$lt_lt_prog_compiler_static_CXX
19271 19276
19272@@ -19585,9 +20430,6 @@ 19277@@ -19638,9 +20483,6 @@ inherit_rpath=$inherit_rpath_CXX
19273 # Whether libtool must link a program against all its dependency libraries. 19278 # Whether libtool must link a program against all its dependency libraries.
19274 link_all_deplibs=$link_all_deplibs_CXX 19279 link_all_deplibs=$link_all_deplibs_CXX
19275 19280
@@ -19279,7 +19284,7 @@ Index: binutils-2.24/ld/configure
19279 # Set to "yes" if exported symbols are required. 19284 # Set to "yes" if exported symbols are required.
19280 always_export_symbols=$always_export_symbols_CXX 19285 always_export_symbols=$always_export_symbols_CXX
19281 19286
19282@@ -19603,6 +20445,9 @@ 19287@@ -19656,6 +20498,9 @@ include_expsyms=$lt_include_expsyms_CXX
19283 # Commands necessary for linking programs (against libraries) with templates. 19288 # Commands necessary for linking programs (against libraries) with templates.
19284 prelink_cmds=$lt_prelink_cmds_CXX 19289 prelink_cmds=$lt_prelink_cmds_CXX
19285 19290
@@ -19289,10 +19294,10 @@ Index: binutils-2.24/ld/configure
19289 # Specify filename containing input files. 19294 # Specify filename containing input files.
19290 file_list_spec=$lt_file_list_spec_CXX 19295 file_list_spec=$lt_file_list_spec_CXX
19291 19296
19292Index: binutils-2.24/bfd/configure.in 19297Index: binutils-2.24/bfd/configure.ac
19293=================================================================== 19298===================================================================
19294--- binutils-2.24.orig/bfd/configure.in 2013-12-02 01:30:28.000000000 -0800 19299--- binutils-2.24.orig/bfd/configure.ac 2013-12-02 01:30:28.000000000 -0800
19295+++ binutils-2.24/bfd/configure.in 2013-12-15 11:10:23.887118697 -0800 19300+++ binutils-2.24/bfd/configure.ac 2013-12-15 11:10:23.887118697 -0800
19296@@ -568,7 +568,7 @@ 19301@@ -568,7 +568,7 @@
19297 x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` 19302 x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
19298 changequote([,])dnl 19303 changequote([,])dnl
@@ -19302,10 +19307,10 @@ Index: binutils-2.24/bfd/configure.in
19302 fi 19307 fi
19303 19308
19304 # More hacks to build DLLs on Windows. 19309 # More hacks to build DLLs on Windows.
19305Index: binutils-2.24/opcodes/configure.in 19310Index: binutils-2.24/opcodes/configure.ac
19306=================================================================== 19311===================================================================
19307--- binutils-2.24.orig/opcodes/configure.in 2013-11-04 07:33:40.000000000 -0800 19312--- binutils-2.24.orig/opcodes/configure.ac 2013-11-04 07:33:40.000000000 -0800
19308+++ binutils-2.24/opcodes/configure.in 2013-12-15 11:10:23.887118697 -0800 19313+++ binutils-2.24/opcodes/configure.ac 2013-12-15 11:10:23.887118697 -0800
19309@@ -162,7 +162,7 @@ 19314@@ -162,7 +162,7 @@
19310 x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` 19315 x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
19311 changequote([,])dnl 19316 changequote([,])dnl
diff --git a/meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch b/meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
index 51eaf0bd31..e668faa6e8 100644
--- a/meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
+++ b/meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
@@ -9,30 +9,24 @@ Index: binutils-2.24/bfd/config.bfd
9=================================================================== 9===================================================================
10--- binutils-2.24.orig/bfd/config.bfd 2013-11-04 07:33:37.000000000 -0800 10--- binutils-2.24.orig/bfd/config.bfd 2013-11-04 07:33:37.000000000 -0800
11+++ binutils-2.24/bfd/config.bfd 2013-12-15 11:54:57.113765374 -0800 11+++ binutils-2.24/bfd/config.bfd 2013-12-15 11:54:57.113765374 -0800
12@@ -1052,14 +1052,14 @@ 12Index: binutils-2.24/ld/configure.tgt
13 targ_defvec=bfd_elf32_bigmips_vec 13@@ -1062,12 +1062,12 @@ case "${targ}" in
14 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec" 14 targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
15 ;;
16 mips64*el-*-linux*)
17- targ_defvec=mips_elf32_ntrad_le_vec
18- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
19+ targ_defvec=mips_elf64_trad_le_vec
20+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
21 ;;
22 mips64*-*-linux*)
23- targ_defvec=mips_elf32_ntrad_be_vec
24- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
25+ targ_defvec=mips_elf64_trad_be_vec
26+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
15 ;; 27 ;;
16- mips64*el-*-linux*)
17- targ_defvec=bfd_elf32_ntradlittlemips_vec
18- targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
19- ;;
20- mips64*-*-linux*)
21- targ_defvec=bfd_elf32_ntradbigmips_vec
22- targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
23- ;;
24+ mips64*el-*-linux*)
25+ targ_defvec=bfd_elf64_tradlittlemips_vec
26+ targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec"
27+ ;;
28+ mips64*-*-linux*)
29+ targ_defvec=bfd_elf64_tradbigmips_vec
30+ targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradlittlemips_vec"
31+ ;;
32 mips*el-*-linux*) 28 mips*el-*-linux*)
33 targ_defvec=bfd_elf32_tradlittlemips_vec 29 targ_defvec=mips_elf32_trad_le_vec
34 targ_selvecs="bfd_elf32_tradbigmips_vec ecoff_little_vec ecoff_big_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec"
35Index: binutils-2.24/ld/configure.tgt
36=================================================================== 30===================================================================
37--- binutils-2.24.orig/ld/configure.tgt 2013-11-26 03:37:33.000000000 -0800 31--- binutils-2.24.orig/ld/configure.tgt 2013-11-26 03:37:33.000000000 -0800
38+++ binutils-2.24/ld/configure.tgt 2013-12-15 11:50:52.273766155 -0800 32+++ binutils-2.24/ld/configure.tgt 2013-12-15 11:50:52.273766155 -0800
diff --git a/meta/recipes-devtools/binutils/binutils/replace_macros_with_static_inline.patch b/meta/recipes-devtools/binutils/binutils/replace_macros_with_static_inline.patch
deleted file mode 100644
index 834f55cf6d..0000000000
--- a/meta/recipes-devtools/binutils/binutils/replace_macros_with_static_inline.patch
+++ /dev/null
@@ -1,188 +0,0 @@
1Upstream-Status: Backport
2
3From 27b829ee701e29804216b3803fbaeb629be27491 Mon Sep 17 00:00:00 2001
4From: Nick Clifton <nickc@redhat.com>
5Date: Wed, 29 Jan 2014 13:46:39 +0000
6Subject: [PATCH 1/1] Following up on Tom's suggestion I am checking in a patch to replace the various
7 bfd_xxx_set macros with static inline functions, so that we can avoid compile time
8 warnings about comma expressions with unused values.
9
10 * bfd-in.h (bfd_set_section_vma): Delete.
11 (bfd_set_section_alignment): Delete.
12 (bfd_set_section_userdata): Delete.
13 (bfd_set_cacheable): Delete.
14 * bfd.c (bfd_set_cacheable): New static inline function.
15 * section.c (bfd_set_section_userdata): Likewise.
16 (bfd_set_section_vma): Likewise.
17 (bfd_set_section_alignment): Likewise.
18 * bfd-in2.h: Regenerate.
19---
20 bfd/ChangeLog | 12 ++++++++++++
21 bfd/bfd-in.h | 5 -----
22 bfd/bfd-in2.h | 41 +++++++++++++++++++++++++++++++++++------
23 bfd/bfd.c | 8 ++++++++
24 bfd/section.c | 26 ++++++++++++++++++++++++++
25 5 files changed, 81 insertions(+), 11 deletions(-)
26
27diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
28index 3afd71b..c7c5a7d 100644
29--- a/bfd/bfd-in.h
30+++ b/bfd/bfd-in.h
31@@ -292,9 +292,6 @@ typedef struct bfd_section *sec_ptr;
32
33 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
34
35-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
36-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
37-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
38 /* Find the address one past the end of SEC. */
39 #define bfd_get_section_limit(bfd, sec) \
40 (((bfd)->direction != write_direction && (sec)->rawsize != 0 \
41@@ -517,8 +514,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
42
43 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
44
45-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
46-
47 extern bfd_boolean bfd_cache_close
48 (bfd *abfd);
49 /* NB: This declaration should match the autogenerated one in libbfd.h. */
50diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
51index 71996db..b5aeb40 100644
52--- a/bfd/bfd-in2.h
53+++ b/bfd/bfd-in2.h
54@@ -299,9 +299,6 @@ typedef struct bfd_section *sec_ptr;
55
56 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
57
58-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
59-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
60-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
61 /* Find the address one past the end of SEC. */
62 #define bfd_get_section_limit(bfd, sec) \
63 (((bfd)->direction != write_direction && (sec)->rawsize != 0 \
64@@ -524,8 +521,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
65
66 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
67
68-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
69-
70 extern bfd_boolean bfd_cache_close
71 (bfd *abfd);
72 /* NB: This declaration should match the autogenerated one in libbfd.h. */
73@@ -1029,7 +1024,7 @@ bfd *bfd_openr (const char *filename, const char *target);
74
75 bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
76
77-bfd *bfd_openstreamr (const char *, const char *, void *);
78+bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
79
80 bfd *bfd_openr_iovec (const char *filename, const char *target,
81 void *(*open_func) (struct bfd *nbfd,
82@@ -1596,6 +1591,32 @@ struct relax_table {
83 int size;
84 };
85
86+/* Note: the following are provided as inline functions rather than macros
87+ because not all callers use the return value. A macro implementation
88+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
89+ compilers will complain about comma expressions that have no effect. */
90+static inline bfd_boolean
91+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
92+{
93+ ptr->userdata = val;
94+ return TRUE;
95+}
96+
97+static inline bfd_boolean
98+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
99+{
100+ ptr->vma = ptr->lma = val;
101+ ptr->user_set_vma = TRUE;
102+ return TRUE;
103+}
104+
105+static inline bfd_boolean
106+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
107+{
108+ ptr->alignment_power = val;
109+ return TRUE;
110+}
111+
112 /* These sections are global, and are managed by BFD. The application
113 and target back end are not permitted to change the values in
114 these sections. */
115@@ -6415,6 +6436,14 @@ struct bfd
116 unsigned int selective_search : 1;
117 };
118
119+/* See note beside bfd_set_section_userdata. */
120+static inline bfd_boolean
121+bfd_set_cacheable (bfd * abfd, bfd_boolean val)
122+{
123+ abfd->cacheable = val;
124+ return TRUE;
125+}
126+
127 typedef enum bfd_error
128 {
129 bfd_error_no_error = 0,
130diff --git a/bfd/bfd.c b/bfd/bfd.c
131index 8d0580c..2d174f3 100644
132--- a/bfd/bfd.c
133+++ b/bfd/bfd.c
134@@ -311,6 +311,14 @@ CODE_FRAGMENT
135 . unsigned int selective_search : 1;
136 .};
137 .
138+.{* See note beside bfd_set_section_userdata. *}
139+.static inline bfd_boolean
140+.bfd_set_cacheable (bfd * abfd, bfd_boolean val)
141+.{
142+. abfd->cacheable = val;
143+. return TRUE;
144+.}
145+.
146 */
147
148 #include "sysdep.h"
149diff --git a/bfd/section.c b/bfd/section.c
150index fb19d8c..a661228 100644
151--- a/bfd/section.c
152+++ b/bfd/section.c
153@@ -542,6 +542,32 @@ CODE_FRAGMENT
154 . int size;
155 .};
156 .
157+.{* Note: the following are provided as inline functions rather than macros
158+. because not all callers use the return value. A macro implementation
159+. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
160+. compilers will complain about comma expressions that have no effect. *}
161+.static inline bfd_boolean
162+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
163+.{
164+. ptr->userdata = val;
165+. return TRUE;
166+.}
167+.
168+.static inline bfd_boolean
169+.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
170+.{
171+. ptr->vma = ptr->lma = val;
172+. ptr->user_set_vma = TRUE;
173+. return TRUE;
174+.}
175+.
176+.static inline bfd_boolean
177+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
178+.{
179+. ptr->alignment_power = val;
180+. return TRUE;
181+.}
182+.
183 .{* These sections are global, and are managed by BFD. The application
184 . and target back end are not permitted to change the values in
185 . these sections. *}
186--
1871.7.1
188
diff --git a/meta/recipes-devtools/binutils/binutils_2.24.bb b/meta/recipes-devtools/binutils/binutils_2.25.bb
index 738aaee590..738aaee590 100644
--- a/meta/recipes-devtools/binutils/binutils_2.24.bb
+++ b/meta/recipes-devtools/binutils/binutils_2.25.bb