summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/include/lld/Core/TargetOptionsCommandFlags.h18
-rw-r--r--lld/lib/Core/TargetOptionsCommandFlags.cpp28
2 files changed, 46 insertions, 0 deletions
diff --git a/lld/include/lld/Core/TargetOptionsCommandFlags.h b/lld/include/lld/Core/TargetOptionsCommandFlags.h
new file mode 100644
index 00000000000..f6cb91168de
--- /dev/null
+++ b/lld/include/lld/Core/TargetOptionsCommandFlags.h
@@ -0,0 +1,18 @@
+//===-- TargetOptionsCommandFlags.h ----------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Helper to create TargetOptions from command line flags.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Target/TargetOptions.h"
+
+namespace lld {
+llvm::TargetOptions InitTargetOptionsFromCodeGenFlags();
+}
diff --git a/lld/lib/Core/TargetOptionsCommandFlags.cpp b/lld/lib/Core/TargetOptionsCommandFlags.cpp
new file mode 100644
index 00000000000..3865c7b3f8b
--- /dev/null
+++ b/lld/lib/Core/TargetOptionsCommandFlags.cpp
@@ -0,0 +1,28 @@
+//===-- TargetOptionsCommandFlags.cpp ---------------------------*- C++ -*-===//
+//
+// The LLVM Linker
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file exists as a place for global variables defined in LLVM's
+// CodeGen/CommandFlags.h. By putting the resulting object file in
+// an archive and linking with it, the definitions will automatically be
+// included when needed and skipped when already present.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lld/Core/TargetOptionsCommandFlags.h"
+
+#include "llvm/CodeGen/CommandFlags.h"
+#include "llvm/Target/TargetOptions.h"
+
+// Define an externally visible version of
+// InitTargetOptionsFromCodeGenFlags, so that its functionality can be
+// used without having to include llvm/CodeGen/CommandFlags.h, which
+// would lead to multiple definitions of the command line flags.
+llvm::TargetOptions lld::InitTargetOptionsFromCodeGenFlags() {
+ return ::InitTargetOptionsFromCodeGenFlags();
+}
OpenPOWER on IntegriCloud