diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2015-01-08 00:11:40 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-04-08 10:53:09 +0100 |
commit | 2be79f0b1d0d53b8750d28013543b7ee853c1b42 (patch) | |
tree | f3586a5ff28b61c572df87938881ce3455f72cd9 /meta | |
parent | b3b6cfb48bb61f2efdd5c2325fcce3209b7894c7 (diff) | |
download | poky-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')
23 files changed, 340 insertions, 2140 deletions
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index a666510c17..f69fe9a0d7 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc | |||
@@ -24,7 +24,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext" | |||
24 | 24 | ||
25 | GCCVERSION ?= "4.9%" | 25 | GCCVERSION ?= "4.9%" |
26 | SDKGCCVERSION ?= "${GCCVERSION}" | 26 | SDKGCCVERSION ?= "${GCCVERSION}" |
27 | BINUVERSION ?= "2.24" | 27 | BINUVERSION ?= "2.25" |
28 | GDBVERSION ?= "7.8%" | 28 | GDBVERSION ?= "7.8%" |
29 | GLIBCVERSION ?= "2.21" | 29 | GLIBCVERSION ?= "2.21" |
30 | UCLIBCVERSION ?= "0.9.33+git%" | 30 | UCLIBCVERSION ?= "0.9.33+git%" |
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 @@ | |||
1 | LIC_FILES_CHKSUM="\ | 1 | LIC_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 | " |
28 | SRC_URI[md5sum] = "d9f3303f802a5b6b0bb73a335ab89d66" | ||
29 | SRC_URI[sha256sum] = "22defc65cfa3ef2a3395faaea75d6331c6e62ea5dfacfed3e2ec17b08c882923" | ||
44 | 30 | ||
45 | SRC_URI[md5sum] = "e0f71a7b2ddab0f8612336ac81d9636b" | ||
46 | SRC_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 : |
109 | Index: binutils-2.24/ld/configure.in | 109 | Index: 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 | ||
31 | Index: binutils-2.24/bfd/aoutx.h | 29 | diff --git a/bfd/aoutx.h b/bfd/aoutx.h |
32 | =================================================================== | 30 | index 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; |
43 | Index: binutils-2.24/bfd/archures.c | 41 | diff --git a/bfd/archures.c b/bfd/archures.c |
44 | =================================================================== | 42 | index 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 |
55 | Index: binutils-2.24/bfd/bfd-in2.h | 53 | diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h |
56 | =================================================================== | 54 | index 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 |
67 | Index: binutils-2.24/bfd/config.bfd | 65 | diff --git a/bfd/config.bfd b/bfd/config.bfd |
68 | =================================================================== | 66 | index 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" |
83 | Index: binutils-2.24/bfd/cpu-mips.c | 81 | diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c |
84 | =================================================================== | 82 | index 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 |
107 | Index: binutils-2.24/bfd/elfxx-mips.c | 105 | diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c |
108 | =================================================================== | 106 | index 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 }, |
140 | Index: binutils-2.24/binutils/readelf.c | 138 | diff --git a/binutils/readelf.c b/binutils/readelf.c |
141 | =================================================================== | 139 | index 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 |
152 | Index: binutils-2.24/gas/config/tc-mips.c | 150 | diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c |
153 | =================================================================== | 151 | index 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 } |
181 | Index: binutils-2.24/gas/configure | 179 | diff --git a/gas/configure b/gas/configure |
182 | =================================================================== | 180 | index 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 | ;; |
195 | Index: binutils-2.24/gas/configure.tgt | 193 | diff --git a/gas/configure.tgt b/gas/configure.tgt |
196 | =================================================================== | 194 | index 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 | ||
208 | Index: binutils-2.24/include/elf/mips.h | 206 | diff --git a/include/elf/mips.h b/include/elf/mips.h |
209 | =================================================================== | 207 | index 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 | 218 | diff --git a/include/opcode/mips.h b/include/opcode/mips.h |
220 | Index: binutils-2.24/include/opcode/mips.h | 219 | index 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 | } |
255 | Index: binutils-2.24/ld/configure.tgt | 253 | diff --git a/ld/configure.tgt b/ld/configure.tgt |
256 | =================================================================== | 254 | index 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 ;; |
268 | Index: binutils-2.24/opcodes/mips-dis.c | 266 | diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c |
269 | =================================================================== | 267 | index 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. */ |
291 | Index: binutils-2.24/opcodes/mips-opc.c | 289 | diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c |
292 | =================================================================== | 290 | index 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8484 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From bd25671c6f202c4a5108883caa2adb24ff6f361f Mon Sep 17 00:00:00 2001 | ||
10 | From: Alan Modra <amodra@gmail.com> | ||
11 | Date: Fri, 29 Aug 2014 10:36:29 +0930 | ||
12 | Subject: [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 | |||
22 | Index: 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) | ||
55 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8485 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From 493a33860c71cac998f1a56d6d87d6faa801fbaa Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Mon, 27 Oct 2014 12:43:16 +0000 | ||
12 | Subject: [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 | |||
24 | Index: 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 | } | ||
89 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8501 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From 7e1e19887abd24aeb15066b141cdff5541e0ec8e Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Mon, 27 Oct 2014 14:45:06 +0000 | ||
12 | Subject: [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 | |||
24 | Index: 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. */ | ||
47 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8502 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From 5a4b0ccc20ba30caef53b01bee2c0aaa5b855339 Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Tue, 28 Oct 2014 15:42:56 +0000 | ||
12 | Subject: [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 | |||
25 | Index: 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 | |||
45 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8502 supporting patch. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From bf67003b4567600ed3022a439207ac8f26454f91 Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Mon, 27 Oct 2014 18:05:37 +0000 | ||
12 | Subject: [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 | |||
28 | Index: 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. */ | ||
470 | Index: 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 + | ||
506 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8503 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From 0102ea8cec5fc509bba6c91df61b7ce23a799d32 Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Thu, 30 Oct 2014 17:16:17 +0000 | ||
12 | Subject: [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 | |||
22 | Index: 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 | } | ||
35 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8504 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From 708d7d0d11f0f2d776171979aa3479e8e12a38a0 Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Tue, 28 Oct 2014 10:48:14 +0000 | ||
12 | Subject: [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 | |||
26 | Index: 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 | ||
42 | Index: 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. */ | ||
54 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | CVE-2014-8737 fix. | ||
4 | |||
5 | [YOCTO #7084] | ||
6 | |||
7 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
8 | |||
9 | From dd9b91de2149ee81d47f708e7b0bbf57da10ad42 Mon Sep 17 00:00:00 2001 | ||
10 | From: Nick Clifton <nickc@redhat.com> | ||
11 | Date: Thu, 6 Nov 2014 14:49:10 +0000 | ||
12 | Subject: [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 | |||
33 | Index: 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)); | ||
53 | Index: 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 | +} | ||
87 | Index: 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); | ||
127 | Index: 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 | ||
141 | Index: 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); | ||
158 | Index: 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 @@ | |||
1 | This patch fixes the problem where libiberty is not installed in spite of | ||
2 | asking it via --enable-install-libiberty, the problem is that target_header_dir | ||
3 | is reset explicitly which means libiberty.a will never get installed | ||
4 | |||
5 | also check | ||
6 | |||
7 | https://sourceware.org/bugzilla/show_bug.cgi?id=15815 | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | |||
13 | Index: 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 | ||
25 | Index: 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 @@ | |||
1 | commit 4199e3b8669d0a36448687850374fdc2ad7240b6 | ||
2 | Author: Alan Modra <amodra@gmail.com> | ||
3 | Date: 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 | |||
26 | Upstream-Status: Backport | ||
27 | |||
28 | diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em | ||
29 | index 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 | ||
73 | diff --git a/ld/testsuite/ld-elf/ehdr_start-shared.d b/ld/testsuite/ld-elf/ehdr_start-shared.d | ||
74 | new file mode 100644 | ||
75 | index 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 | ||
88 | diff --git a/ld/testsuite/ld-elf/ehdr_start-userdef.d b/ld/testsuite/ld-elf/ehdr_start-userdef.d | ||
89 | index 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: | ||
100 | diff --git a/ld/testsuite/ld-elf/ehdr_start-weak.d b/ld/testsuite/ld-elf/ehdr_start-weak.d | ||
101 | index 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 | ||
112 | diff --git a/ld/testsuite/ld-elf/ehdr_start.d b/ld/testsuite/ld-elf/ehdr_start.d | ||
113 | index 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 @@ | |||
1 | From: H.J. Lu <hjl.tools@gmail.com> | ||
2 | Date: Tue, 21 Jan 2014 23:42:43 +0000 (-0800) | ||
3 | Subject: Check incompatible existing default symbol definition | ||
4 | X-Git-Tag: hjl/linux/release/2.24.51.0.3~1^2~8^2~16 | ||
5 | X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff_plain;h=4584ec12076e088cf36965b88ef8710ca85491f9 | ||
6 | |||
7 | Check incompatible existing default symbol definition | ||
8 | |||
9 | After resolving a versioned reference, foo@VER1, to a default versioned | ||
10 | definition, foo@@VER1, from a shared object, we also merge it with | ||
11 | the existing regular default symbol definition, foo. When foo is IFUNC | ||
12 | and foo@@VER1 aren't, we will merge 2 incompatible definitions. This | ||
13 | patch avoids merging foo@@VER1 definition with foo definition if | ||
14 | one is IFUNC and the other isn't. | ||
15 | |||
16 | Upstream-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 | ||
37 | diff --git a/bfd/elflink.c b/bfd/elflink.c | ||
38 | index 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 | # | ||
85 | diff --git a/ld/testsuite/ld-ifunc/dummy.c b/ld/testsuite/ld-ifunc/dummy.c | ||
86 | new file mode 100644 | ||
87 | index 0000000..5c03287 | ||
88 | --- /dev/null | ||
89 | +++ b/ld/testsuite/ld-ifunc/dummy.c | ||
90 | @@ -0,0 +1 @@ | ||
91 | +/* An empty file. */ | ||
92 | diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp | ||
93 | index 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]] | ||
155 | diff --git a/ld/testsuite/ld-ifunc/pr16467.out b/ld/testsuite/ld-ifunc/pr16467.out | ||
156 | new file mode 100644 | ||
157 | index 0000000..d86bac9 | ||
158 | --- /dev/null | ||
159 | +++ b/ld/testsuite/ld-ifunc/pr16467.out | ||
160 | @@ -0,0 +1 @@ | ||
161 | +OK | ||
162 | diff --git a/ld/testsuite/ld-ifunc/pr16467a.c b/ld/testsuite/ld-ifunc/pr16467a.c | ||
163 | new file mode 100644 | ||
164 | index 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 | +} | ||
173 | diff --git a/ld/testsuite/ld-ifunc/pr16467a.map b/ld/testsuite/ld-ifunc/pr16467a.map | ||
174 | new file mode 100644 | ||
175 | index 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 | +}; | ||
183 | diff --git a/ld/testsuite/ld-ifunc/pr16467b.c b/ld/testsuite/ld-ifunc/pr16467b.c | ||
184 | new file mode 100644 | ||
185 | index 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"); | ||
196 | diff --git a/ld/testsuite/ld-ifunc/pr16467b.map b/ld/testsuite/ld-ifunc/pr16467b.map | ||
197 | new file mode 100644 | ||
198 | index 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 | +}; | ||
206 | diff --git a/ld/testsuite/ld-ifunc/pr16467c.c b/ld/testsuite/ld-ifunc/pr16467c.c | ||
207 | new file mode 100644 | ||
208 | index 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 @@ | |||
1 | From: H.J. Lu <hjl.tools@gmail.com> | ||
2 | Date: Tue, 21 Jan 2014 13:33:48 +0000 (-0800) | ||
3 | Subject: Don't check shared/export_dynamic/ref_dynamic for type mismatch | ||
4 | X-Git-Tag: hjl/linux/release/2.24.51.0.3~1^2~8^2~22 | ||
5 | X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff_plain;h=22ef172a21663abb477d72284b4d59c8eabcbb82 | ||
6 | |||
7 | Don't check shared/export_dynamic/ref_dynamic for type mismatch | ||
8 | |||
9 | There is nothing linker can do when a type mismatched default definition | ||
10 | are made dynamic by info->shared, info->export_dynamic or h->ref_dynamic. | ||
11 | But we do want to avoid exporting it when building PIE. Let's remove | ||
12 | those checks. | ||
13 | |||
14 | bfd/ | ||
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 | |||
21 | ld/testsuite/ | ||
22 | |||
23 | PR ld/2404 | ||
24 | * ld-elf/shared.exp: Add a PIE test for PR ld/2404. | ||
25 | |||
26 | Upstream-Status: Backport | ||
27 | --- | ||
28 | |||
29 | Index: 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 | ||
43 | Index: 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 | ||
19292 | Index: binutils-2.24/bfd/configure.in | 19297 | Index: 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. |
19305 | Index: binutils-2.24/opcodes/configure.in | 19310 | Index: 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 @@ | 12 | Index: 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" | ||
35 | Index: 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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | From 27b829ee701e29804216b3803fbaeb629be27491 Mon Sep 17 00:00:00 2001 | ||
4 | From: Nick Clifton <nickc@redhat.com> | ||
5 | Date: Wed, 29 Jan 2014 13:46:39 +0000 | ||
6 | Subject: [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 | |||
27 | diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h | ||
28 | index 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. */ | ||
50 | diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h | ||
51 | index 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, | ||
130 | diff --git a/bfd/bfd.c b/bfd/bfd.c | ||
131 | index 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" | ||
149 | diff --git a/bfd/section.c b/bfd/section.c | ||
150 | index 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 | -- | ||
187 | 1.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 | |||