aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/plugin.cc24
2 files changed, 25 insertions, 4 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index dd60e69..02a007c 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-02 Cary Coutant <ccoutant@google.com>
+
+ * plugin.cc (make_sized_plugin_object): Fix conditional
+ compilation to work when not all targets are enabled.
+
2008-09-29 Cary Coutant <ccoutant@google.com>
* archive.cc (Archive::get_file_and_offset): Use filename instead
diff --git a/gold/plugin.cc b/gold/plugin.cc
index 19f7619..a5f7a06 100644
--- a/gold/plugin.cc
+++ b/gold/plugin.cc
@@ -935,28 +935,44 @@ make_sized_plugin_object(Input_file* input_file, off_t offset)
if (target->get_size() == 32)
{
-#ifdef HAVE_TARGET_32_BIG
if (target->is_big_endian())
+#ifdef HAVE_TARGET_32_BIG
obj = new Sized_pluginobj<32, true>(input_file->filename(),
input_file, offset);
+#else
+ gold_error(_("%s: not configured to support "
+ "32-bit big-endian object"),
+ input_file->filename().c_str());
#endif
-#ifdef HAVE_TARGET_32_LITTLE
else
+#ifdef HAVE_TARGET_32_LITTLE
obj = new Sized_pluginobj<32, false>(input_file->filename(),
input_file, offset);
+#else
+ gold_error(_("%s: not configured to support "
+ "32-bit little-endian object"),
+ input_file->filename().c_str());
#endif
}
else if (target->get_size() == 64)
{
-#ifdef HAVE_TARGET_64_BIG
if (target->is_big_endian())
+#ifdef HAVE_TARGET_64_BIG
obj = new Sized_pluginobj<64, true>(input_file->filename(),
input_file, offset);
+#else
+ gold_error(_("%s: not configured to support "
+ "64-bit big-endian object"),
+ input_file->filename().c_str());
#endif
-#ifdef HAVE_TARGET_64_LITTLE
else
+#ifdef HAVE_TARGET_64_LITTLE
obj = new Sized_pluginobj<64, false>(input_file->filename(),
input_file, offset);
+#else
+ gold_error(_("%s: not configured to support "
+ "64-bit little-endian object"),
+ input_file->filename().c_str());
#endif
}