Cherry-pick a change from LLD to make the behavior of the -v option
authorpatrick <patrick@openbsd.org>
Tue, 26 Dec 2017 21:01:02 +0000 (21:01 +0000)
committerpatrick <patrick@openbsd.org>
Tue, 26 Dec 2017 21:01:02 +0000 (21:01 +0000)
more closer to GNU linkers.  This should help with autoconf/libtool
compatibility in ports.

Requested by Brad
"no objection" kettenis@

gnu/llvm/tools/lld/ELF/Driver.cpp

index a069bd6..ddc101e 100644 (file)
@@ -345,9 +345,10 @@ void LinkerDriver::main(ArrayRef<const char *> ArgsArr, bool CanExitEarly) {
   if (Args.hasArg(OPT_v) || Args.hasArg(OPT_version))
     message(getLLDVersion() + " (compatible with GNU linkers)");
 
-  // ld.bfd always exits after printing out the version string.
-  // ld.gold proceeds if a given option is -v. Because gold's behavior
-  // is more permissive than ld.bfd, we chose what gold does here.
+  // The behavior of -v or --version is a bit strange, but this is
+  // needed for compatibility with GNU linkers.
+  if (Args.hasArg(OPT_v) && !Args.hasArg(OPT_INPUT))
+    return;
   if (Args.hasArg(OPT_version))
     return;