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 | |
| 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>
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 | |||
