Add a default implementation of createObjectStreamer.

This removes duplicated code from backends that don't need to do anything
fancy.

llvm-svn: 232658
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 5bfe834..9a7ea1b 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -20,6 +20,7 @@
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCSymbol.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/TargetRegistry.h"
 using namespace llvm;
 
 MCObjectStreamer::MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB,
@@ -422,3 +423,16 @@
   flushPendingLabels(nullptr);
   getAssembler().Finish();
 }
+
+MCStreamer *llvm::createObjectStreamer(const Triple &T, MCContext &Ctx,
+                                       MCAsmBackend &TAB, raw_ostream &OS,
+                                       MCCodeEmitter *Emitter,
+                                       const MCSubtargetInfo &STI,
+                                       bool RelaxAll) {
+  switch (T.getObjectFormat()) {
+  default:
+    return nullptr;
+  case Triple::ELF:
+    return createELFStreamer(Ctx, TAB, OS, Emitter, RelaxAll);
+  }
+}