diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
index 4c95919d3898..898be696d1a7 100644
--- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
+++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
@@ -87,5 +87,6 @@ ErrorOr<void> X86_64TargetRelocationHandler::applyRelocation(
 }
 
 X86_64TargetHandler::X86_64TargetHandler(X86_64TargetInfo &targetInfo)
-    : DefaultTargetHandler(targetInfo), _relocationHandler(targetInfo) {
+    : DefaultTargetHandler(targetInfo), _relocationHandler(targetInfo),
+      _targetLayout(targetInfo) {
 }
diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h
index 12446243919d..179a8426d0b3 100644
--- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h
+++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h
@@ -11,6 +11,7 @@
 #define LLD_READER_WRITER_ELF_X86_64_TARGET_HANDLER_H
 
 #include "DefaultTargetHandler.h"
+#include "TargetLayout.h"
 
 namespace lld {
 namespace elf {
@@ -35,12 +36,17 @@ class X86_64TargetHandler LLVM_FINAL
 public:
   X86_64TargetHandler(X86_64TargetInfo &targetInfo);
 
+  virtual TargetLayout<X86_64ELFType> &targetLayout() {
+    return _targetLayout;
+  }
+
   virtual const X86_64TargetRelocationHandler &getRelocationHandler() const {
     return _relocationHandler;
   }
 
 private:
   X86_64TargetRelocationHandler _relocationHandler;
+  TargetLayout<X86_64ELFType> _targetLayout;
 };
 } // end namespace elf
 } // end namespace lld