[PATCH][GOLD] Fix build breaking issues.

Doug Kwan (關振德) dougkwan@google.com
Thu Feb 4 22:07:00 GMT 2010


Hi

    This patch fixes a number of build breaking issues in different
configurations.

-Doug

2010-02-04  Doug Kwan  <dougkwan@google.com>

        * 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.
-------------- next part --------------
Index: gold/arm-reloc-property.cc
===================================================================
RCS file: /cvs/src/src/gold/arm-reloc-property.cc,v
retrieving revision 1.2
diff -u -u -p -r1.2 arm-reloc-property.cc
--- gold/arm-reloc-property.cc	4 Feb 2010 03:32:18 -0000	1.2
+++ gold/arm-reloc-property.cc	4 Feb 2010 21:56:30 -0000
@@ -22,6 +22,7 @@
 
 #include "gold.h"
 
+#include <cstdio>
 #include <cstring>
 #include <stack>
 #include <string>
Index: gold/configure
===================================================================
RCS file: /cvs/src/src/gold/configure,v
retrieving revision 1.55
diff -u -u -p -r1.55 configure
--- gold/configure	29 Dec 2009 22:49:13 -0000	1.55
+++ gold/configure	4 Feb 2010 21:56:30 -0000
@@ -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
Index: gold/configure.ac
===================================================================
RCS file: /cvs/src/src/gold/configure.ac,v
retrieving revision 1.52
diff -u -u -p -r1.52 configure.ac
--- gold/configure.ac	29 Dec 2009 22:49:13 -0000	1.52
+++ gold/configure.ac	4 Feb 2010 21:56:30 -0000
@@ -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])
Index: gold/resolve.cc
===================================================================
RCS file: /cvs/src/src/gold/resolve.cc,v
retrieving revision 1.53
diff -u -u -p -r1.53 resolve.cc
--- gold/resolve.cc	11 Jan 2010 07:09:48 -0000	1.53
+++ gold/resolve.cc	4 Feb 2010 21:56:30 -0000
@@ -916,7 +916,10 @@ Symbol_table::override_with_special(Size
 // 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>(


More information about the Binutils mailing list