aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-03-06 00:53:37 +0000
committerIan Lance Taylor <iant@google.com>2008-03-06 00:53:37 +0000
commit09ffbbe0d44895d6e6681430cf7a893840a9281b (patch)
treefe1f57e39faf985b527ad62aa5612c6e6651a73a
parent7dfac99ff1ebec56f81c60747e2ac9b0f86fa588 (diff)
downloadfsf-binutils-gdb-09ffbbe0d44895d6e6681430cf7a893840a9281b.zip
fsf-binutils-gdb-09ffbbe0d44895d6e6681430cf7a893840a9281b.tar.gz
fsf-binutils-gdb-09ffbbe0d44895d6e6681430cf7a893840a9281b.tar.bz2
From Craig Silverstein: accept any string for input format, warn if
thread options when not supported.
-rw-r--r--gold/options.cc18
-rw-r--r--gold/options.h11
2 files changed, 23 insertions, 6 deletions
diff --git a/gold/options.cc b/gold/options.cc
index 5307d86..80a723e 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -341,7 +341,7 @@ string_to_object_format(const char* arg)
return gold::General_options::OBJECT_FORMAT_BINARY;
else
{
- gold::gold_error(_("format '%s' not supported "
+ gold::gold_error(_("format '%s' not supported; treating as elf "
"(supported formats: elf, binary)"),
arg);
return gold::General_options::OBJECT_FORMAT_ELF;
@@ -628,6 +628,22 @@ General_options::finalize()
if (this->thread_count() > 0 && this->thread_count_final() == 0)
this->set_thread_count_final(this->thread_count());
+ // Let's warn if you set the thread-count but we're going to ignore it.
+#ifndef ENABLE_THREADS
+ if (this->threads())
+ {
+ gold_warning(_("ignoring --threads: "
+ "%s was compiled without thread support"),
+ program_name);
+ this->set_threads(false);
+ }
+ if (this->thread_count() > 0 || this->thread_count_initial() > 0
+ || this->thread_count_middle() > 0 || this->thread_count_final() > 0)
+ gold_warning(_("ignoring --thread-count: "
+ "%s was compiled without thread support"),
+ program_name);
+#endif
+
// Even if they don't specify it, we add -L /lib and -L /usr/lib.
// FIXME: We should only do this when configured in native mode.
this->add_to_library_path_with_sysroot("/lib");
diff --git a/gold/options.h b/gold/options.h
index 7f5a561..454991f 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -415,11 +415,12 @@ class General_options
DEFINE_bool(Bsymbolic, options::ONE_DASH, '\0', false,
_("Bind defined symbols locally"), NULL);
- DEFINE_enum(format, options::TWO_DASHES, 'b', "elf",
- _("Set input format"), _("[elf,binary]"),
- {"elf", "binary",
- "elf32-i386", "elf32-little", "elf32-big",
- "elf64-x86_64", "elf64-little", "elf64-big"});
+ // This should really be an "enum", but it's too easy for folks to
+ // forget to update the list as they add new targets. So we just
+ // accept any string. We'll fail later (when the string is parsed),
+ // if the target isn't actually supported.
+ DEFINE_string(format, options::TWO_DASHES, 'b', "elf",
+ _("Set input format"), _("[elf,binary]"));
#ifdef HAVE_ZLIB_H
DEFINE_enum(compress_debug_sections, options::TWO_DASHES, '\0', "none",