diff options
author | Doug Kwan <dougkwan@google.com> | 2010-02-05 00:30:35 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2010-02-05 00:30:35 +0000 |
commit | 6cfaf60bc2581b5ef9028a4157d203adbd2ae9c2 (patch) | |
tree | 76d60561b6db8124d1bf24733aea2f5d1ad3864b /gold | |
parent | 34ed35c124c7f38e6120a7dcc9d1249c147735b8 (diff) | |
download | fsf-binutils-gdb-6cfaf60bc2581b5ef9028a4157d203adbd2ae9c2.zip fsf-binutils-gdb-6cfaf60bc2581b5ef9028a4157d203adbd2ae9c2.tar.gz fsf-binutils-gdb-6cfaf60bc2581b5ef9028a4157d203adbd2ae9c2.tar.bz2 |
2010-02-04 Doug Kwan <dougkwan@google.com>
PR 11247
* arm-reloc-property.cc (cstdio): Include.
* configure.ac (targetobjs): Remove duplicates.
* configure: Regenerate.
* resolve.cc (Symbol_table::resolve): Explicit instantiate both
big and little endian version for a given address size.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 9 | ||||
-rw-r--r-- | gold/arm-reloc-property.cc | 1 | ||||
-rwxr-xr-x | gold/configure | 3 | ||||
-rw-r--r-- | gold/configure.ac | 3 | ||||
-rw-r--r-- | gold/resolve.cc | 11 |
5 files changed, 21 insertions, 6 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 05cfc71..e4c6d03 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,12 @@ +2010-02-04 Doug Kwan <dougkwan@google.com> + + PR 11247 + * arm-reloc-property.cc (cstdio): Include. + * configure.ac (targetobjs): Remove duplicates. + * configure: Regenerate. + * resolve.cc (Symbol_table::resolve): Explicit instantiate both + big and little endian version for a given address size. + 2010-02-03 Doug Kwan <dougkwan@google.com> * arm-reloc-property.cc diff --git a/gold/arm-reloc-property.cc b/gold/arm-reloc-property.cc index ab37263..4f8fa9e 100644 --- a/gold/arm-reloc-property.cc +++ b/gold/arm-reloc-property.cc @@ -22,6 +22,7 @@ #include "gold.h" +#include <cstdio> #include <cstring> #include <stack> #include <string> diff --git a/gold/configure b/gold/configure index 4817e44..dbc6319 100755 --- a/gold/configure +++ b/gold/configure @@ -3410,6 +3410,9 @@ fi fi done +# Remove any duplicates. +targetobjs=`echo $targetobjs | tr ' ' '\n' | sort | uniq | tr '\n' ' '` + if test -n "$targ_32_little"; then $as_echo "#define HAVE_TARGET_32_LITTLE 1" >>confdefs.h diff --git a/gold/configure.ac b/gold/configure.ac index 7102670..4bf223c 100644 --- a/gold/configure.ac +++ b/gold/configure.ac @@ -162,6 +162,9 @@ for targ in $target $canon_targets; do fi done +# Remove any duplicates. +targetobjs=`echo $targetobjs | tr ' ' '\n' | sort | uniq | tr '\n' ' '` + if test -n "$targ_32_little"; then AC_DEFINE(HAVE_TARGET_32_LITTLE, 1, [Define to support 32-bit little-endian targets]) diff --git a/gold/resolve.cc b/gold/resolve.cc index 3c7c7a8..8b1c321 100644 --- a/gold/resolve.cc +++ b/gold/resolve.cc @@ -916,7 +916,10 @@ Symbol_table::override_with_special(Sized_symbol<size>* tosym, // script to restrict this to only the ones needed for implemented // targets. -#ifdef HAVE_TARGET_32_LITTLE +// We have to instantiate both big and little endian versions because +// these are used by other templates that depends on size only. + +#if defined(HAVE_TARGET_32_LITTLE) || defined(HAVE_TARGET_32_BIG) template void Symbol_table::resolve<32, false>( @@ -927,9 +930,7 @@ Symbol_table::resolve<32, false>( unsigned int orig_st_shndx, Object* object, const char* version); -#endif -#ifdef HAVE_TARGET_32_BIG template void Symbol_table::resolve<32, true>( @@ -942,7 +943,7 @@ Symbol_table::resolve<32, true>( const char* version); #endif -#ifdef HAVE_TARGET_64_LITTLE +#if defined(HAVE_TARGET_64_LITTLE) || defined(HAVE_TARGET_64_BIG) template void Symbol_table::resolve<64, false>( @@ -953,9 +954,7 @@ Symbol_table::resolve<64, false>( unsigned int orig_st_shndx, Object* object, const char* version); -#endif -#ifdef HAVE_TARGET_64_BIG template void Symbol_table::resolve<64, true>( |