diff --git a/include/lld/Common/LLVM.h b/include/lld/Common/LLVM.h
index b5d0e2b..3c237c6 100644
--- a/include/lld/Common/LLVM.h
+++ b/include/lld/Common/LLVM.h
@@ -44,6 +44,21 @@
 
   class raw_ostream;
   // TODO: DenseMap, ...
+
+  namespace object {
+    class WasmObjectFile;
+    struct WasmSection;
+    struct WasmSegment;
+    class WasmSymbol;
+  }
+
+  namespace wasm {
+    struct WasmFunction;
+    struct WasmGlobal;
+    struct WasmGlobalType;
+    struct WasmRelocation;
+    struct WasmSignature;
+  }
 }
 
 namespace lld {
@@ -69,6 +84,16 @@
   using llvm::Expected;
 
   using llvm::raw_ostream;
+
+  using llvm::object::WasmObjectFile;
+  using llvm::object::WasmSection;
+  using llvm::object::WasmSegment;
+  using llvm::object::WasmSymbol;
+  using llvm::wasm::WasmFunction;
+  using llvm::wasm::WasmGlobal;
+  using llvm::wasm::WasmGlobalType;
+  using llvm::wasm::WasmRelocation;
+  using llvm::wasm::WasmSignature;
 } // end namespace lld.
 
 namespace std {
diff --git a/wasm/Driver.cpp b/wasm/Driver.cpp
index c86e0b1..a8ec982 100644
--- a/wasm/Driver.cpp
+++ b/wasm/Driver.cpp
@@ -31,6 +31,7 @@
 #define DEBUG_TYPE "lld"
 
 using namespace llvm;
+using namespace llvm::object;
 using namespace llvm::sys;
 using namespace llvm::wasm;
 
diff --git a/wasm/InputChunks.h b/wasm/InputChunks.h
index f899d69..a3bcbb2 100644
--- a/wasm/InputChunks.h
+++ b/wasm/InputChunks.h
@@ -24,18 +24,9 @@
 #include "Config.h"
 #include "InputFiles.h"
 #include "lld/Common/ErrorHandler.h"
+#include "lld/Common/LLVM.h"
 #include "llvm/Object/Wasm.h"
 
-using llvm::object::WasmSection;
-using llvm::object::WasmSegment;
-using llvm::wasm::WasmFunction;
-using llvm::wasm::WasmRelocation;
-using llvm::wasm::WasmSignature;
-
-namespace llvm {
-class raw_ostream;
-}
-
 namespace lld {
 namespace wasm {
 
diff --git a/wasm/InputFiles.h b/wasm/InputFiles.h
index 948cf91..d9384bd 100644
--- a/wasm/InputFiles.h
+++ b/wasm/InputFiles.h
@@ -20,18 +20,6 @@
 #include "llvm/Support/MemoryBuffer.h"
 #include <vector>
 
-using llvm::object::Archive;
-using llvm::object::WasmObjectFile;
-using llvm::object::WasmSection;
-using llvm::object::WasmSymbol;
-using llvm::wasm::WasmRelocation;
-
-namespace llvm {
-namespace lto {
-class InputFile;
-}
-} // namespace llvm
-
 namespace lld {
 namespace wasm {
 
@@ -81,12 +69,12 @@
   explicit ArchiveFile(MemoryBufferRef M) : InputFile(ArchiveKind, M) {}
   static bool classof(const InputFile *F) { return F->kind() == ArchiveKind; }
 
-  void addMember(const Archive::Symbol *Sym);
+  void addMember(const llvm::object::Archive::Symbol *Sym);
 
   void parse() override;
 
 private:
-  std::unique_ptr<Archive> File;
+  std::unique_ptr<llvm::object::Archive> File;
   llvm::DenseSet<uint64_t> Seen;
 };
 
diff --git a/wasm/InputGlobal.h b/wasm/InputGlobal.h
index fd53430..3b20600 100644
--- a/wasm/InputGlobal.h
+++ b/wasm/InputGlobal.h
@@ -16,8 +16,6 @@
 #include "lld/Common/ErrorHandler.h"
 #include "llvm/Object/Wasm.h"
 
-using llvm::wasm::WasmGlobal;
-
 namespace lld {
 namespace wasm {
 
diff --git a/wasm/OutputSections.h b/wasm/OutputSections.h
index 46916f3..6c5baa3 100644
--- a/wasm/OutputSections.h
+++ b/wasm/OutputSections.h
@@ -13,11 +13,9 @@
 #include "InputChunks.h"
 #include "WriterUtils.h"
 #include "lld/Common/ErrorHandler.h"
+#include "lld/Common/LLVM.h"
 #include "llvm/ADT/DenseMap.h"
 
-using llvm::raw_ostream;
-using llvm::raw_string_ostream;
-
 namespace lld {
 
 namespace wasm {
@@ -82,7 +80,7 @@
   std::string Body;
 
 protected:
-  raw_string_ostream BodyOutputStream;
+  llvm::raw_string_ostream BodyOutputStream;
 };
 
 class CodeSection : public OutputSection {
diff --git a/wasm/SymbolTable.cpp b/wasm/SymbolTable.cpp
index a42e363..9c967ff 100644
--- a/wasm/SymbolTable.cpp
+++ b/wasm/SymbolTable.cpp
@@ -20,6 +20,7 @@
 
 using namespace llvm;
 using namespace llvm::wasm;
+using namespace llvm::object;
 using namespace lld;
 using namespace lld::wasm;
 
diff --git a/wasm/SymbolTable.h b/wasm/SymbolTable.h
index de4b716..b8284ac 100644
--- a/wasm/SymbolTable.h
+++ b/wasm/SymbolTable.h
@@ -13,12 +13,9 @@
 #include "InputFiles.h"
 #include "LTO.h"
 #include "Symbols.h"
+#include "lld/Common/LLVM.h"
 #include "llvm/ADT/CachedHashString.h"
 #include "llvm/ADT/DenseSet.h"
-#include "llvm/Support/raw_ostream.h"
-
-using llvm::wasm::WasmGlobalType;
-using llvm::wasm::WasmSignature;
 
 namespace lld {
 namespace wasm {
@@ -66,7 +63,7 @@
   Symbol *addUndefinedGlobal(StringRef Name, uint32_t Flags, InputFile *File,
                              const WasmGlobalType *Type);
 
-  void addLazy(ArchiveFile *F, const Archive::Symbol *Sym);
+  void addLazy(ArchiveFile *F, const llvm::object::Archive::Symbol *Sym);
 
   bool addComdat(StringRef Name);
 
diff --git a/wasm/Symbols.h b/wasm/Symbols.h
index 06ed0fe..52cc4c6 100644
--- a/wasm/Symbols.h
+++ b/wasm/Symbols.h
@@ -15,14 +15,11 @@
 #include "llvm/Object/Archive.h"
 #include "llvm/Object/Wasm.h"
 
-using llvm::object::Archive;
-using llvm::wasm::WasmGlobalType;
-using llvm::wasm::WasmSignature;
-using llvm::wasm::WasmSymbolType;
-
 namespace lld {
 namespace wasm {
 
+using llvm::wasm::WasmSymbolType;
+
 class InputFile;
 class InputChunk;
 class InputSegment;
@@ -272,14 +269,15 @@
 
 class LazySymbol : public Symbol {
 public:
-  LazySymbol(StringRef Name, InputFile *File, const Archive::Symbol &Sym)
+  LazySymbol(StringRef Name, InputFile *File,
+             const llvm::object::Archive::Symbol &Sym)
       : Symbol(Name, LazyKind, 0, File), ArchiveSymbol(Sym) {}
 
   static bool classof(const Symbol *S) { return S->kind() == LazyKind; }
   void fetch();
 
 private:
-  Archive::Symbol ArchiveSymbol;
+  llvm::object::Archive::Symbol ArchiveSymbol;
 };
 
 // linker-generated symbols
diff --git a/wasm/WriterUtils.h b/wasm/WriterUtils.h
index 6f11cca..2754479 100644
--- a/wasm/WriterUtils.h
+++ b/wasm/WriterUtils.h
@@ -13,9 +13,6 @@
 #include "lld/Common/LLVM.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Object/Wasm.h"
-#include "llvm/Support/raw_ostream.h"
-
-using llvm::raw_ostream;
 
 namespace lld {
 namespace wasm {
