diff --git a/src/class_linker.cc b/src/class_linker.cc
index b6a3819..efe279c 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -3871,11 +3871,4 @@
   class_roots_->Set(class_root, klass);
 }
 
-void ClassLinker::RelocateExecutable() {
-  MutexLock mu(Thread::Current(), dex_lock_);
-  for (size_t i = 0; i < oat_files_.size(); ++i) {
-    const_cast<OatFile*>(oat_files_[i])->RelocateExecutable();
-  }
-}
-
 }  // namespace art
diff --git a/src/class_linker.h b/src/class_linker.h
index 14c719e..19c319b 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -375,9 +375,6 @@
   // Get the oat code for a method from a method index.
   const void* GetOatCodeFor(const DexFile& dex_file, uint32_t method_idx);
 
-  // Relocate the OatFiles (ELF images)
-  void RelocateExecutable() LOCKS_EXCLUDED(dex_lock_);
-
   pid_t GetClassesLockOwner(); // For SignalCatcher.
   pid_t GetDexLockOwner(); // For SignalCatcher.
 
diff --git a/src/oat_file.cc b/src/oat_file.cc
index bd21f9a..dc6d52d 100644
--- a/src/oat_file.cc
+++ b/src/oat_file.cc
@@ -208,12 +208,6 @@
   return result;
 }
 
-void OatFile::RelocateExecutable() {
-#if defined(ART_USE_LLVM_COMPILER)
-  UNIMPLEMENTED(WARNING) << "Relocate the executable";
-#endif
-}
-
 OatFile::OatDexFile::OatDexFile(const OatFile* oat_file,
                                 const std::string& dex_file_location,
                                 uint32_t dex_file_location_checksum,
diff --git a/src/oat_file.h b/src/oat_file.h
index 1fa8a05..9161230 100644
--- a/src/oat_file.h
+++ b/src/oat_file.h
@@ -216,8 +216,6 @@
     return End() - Begin();
   }
 
-  void RelocateExecutable();
-
  private:
   explicit OatFile(const std::string& filename);
   bool Map(File& file, byte* requested_base, bool writable);
diff --git a/src/runtime.cc b/src/runtime.cc
index 4ecc73a..2416581 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -652,9 +652,6 @@
 
   CHECK(host_prefix_.empty()) << host_prefix_;
 
-  // Relocate the OatFiles (ELF images).
-  class_linker_->RelocateExecutable();
-
   // Pre-allocate an OutOfMemoryError for the double-OOME case.
   Thread* self = Thread::Current();
   self->ThrowNewException("Ljava/lang/OutOfMemoryError;",
