diff --git a/linker/linker.cpp b/linker/linker.cpp
index 79330fc..96f424e 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3822,8 +3822,14 @@
   // we can no longer rely on the fact that libdl.so is part of default namespace
   // this is why we want to add ld-android.so to all namespaces from ld.config.txt
   soinfo* ld_android_so = solist_get_head();
+
+  // we also need vdso to be available for all namespaces (if present)
+  soinfo* vdso = solist_get_vdso();
   for (auto it : namespaces) {
     it.second->add_soinfo(ld_android_so);
+    if (vdso != nullptr) {
+      it.second->add_soinfo(vdso);
+    }
     // somain and ld_preloads are added to these namespaces after LD_PRELOAD libs are linked
   }
 
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index dc1fa75..00c72d0 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -64,6 +64,7 @@
 static soinfo* solist;
 static soinfo* sonext;
 static soinfo* somain; // main process, always the one after libdl_info
+static soinfo* vdso; // vdso if present
 
 void solist_add_soinfo(soinfo* si) {
   sonext->next = si;
@@ -104,6 +105,10 @@
   return somain;
 }
 
+soinfo* solist_get_vdso() {
+  return vdso;
+}
+
 int g_ld_debug_verbosity;
 abort_msg_t* g_abort_message = nullptr; // For debuggerd.
 
@@ -158,6 +163,8 @@
   si->set_dt_flags_1(si->get_dt_flags_1() | DF_1_NODELETE);
   si->set_linked();
   si->call_constructors();
+
+  vdso = si;
 }
 
 /* gdb expects the linker to be in the debug shared object list.
@@ -280,6 +287,8 @@
     }
   }
 
+  add_vdso(args);
+
   struct stat file_stat;
   // Stat "/proc/self/exe" instead of executable_path because
   // the executable could be unlinked by this point and it should
@@ -366,8 +375,6 @@
     }
   }
 
-  add_vdso(args);
-
   // Load ld_preloads and dependencies.
   std::vector<const char*> needed_library_name_list;
   size_t ld_preloads_count = 0;
diff --git a/linker/linker_main.h b/linker/linker_main.h
index 8d486e8..b37b947 100644
--- a/linker/linker_main.h
+++ b/linker/linker_main.h
@@ -70,3 +70,4 @@
 bool solist_remove_soinfo(soinfo* si);
 soinfo* solist_get_head();
 soinfo* solist_get_somain();
+soinfo* solist_get_vdso();
