diff --git a/linker/linker.cpp b/linker/linker.cpp
index a19fd45..59b7893 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1276,6 +1276,15 @@
     }
 }
 
+static void soinfo_call_preinit_constructors(soinfo *si)
+{
+  TRACE("[ %5d Calling preinit_array @ 0x%08x [%d] for '%s' ]\n",
+      pid, (unsigned)si->preinit_array, si->preinit_array_count,
+      si->name);
+  call_array(si->preinit_array, si->preinit_array_count, 0);
+  TRACE("[ %5d Done calling preinit_array for '%s' ]\n", pid, si->name);
+}
+
 void soinfo_call_constructors(soinfo *si)
 {
     if (si->constructors_called)
@@ -1294,17 +1303,9 @@
     //    out above, the libc constructor will be called again (recursively!).
     si->constructors_called = 1;
 
-    if (si->flags & FLAG_EXE) {
-        TRACE("[ %5d Calling preinit_array @ 0x%08x [%d] for '%s' ]\n",
-              pid, (unsigned)si->preinit_array, si->preinit_array_count,
-              si->name);
-        call_array(si->preinit_array, si->preinit_array_count, 0);
-        TRACE("[ %5d Done calling preinit_array for '%s' ]\n", pid, si->name);
-    } else {
-        if (si->preinit_array) {
-            DL_ERR("shared library \"%s\" has a preinit_array table @ 0x%08x. "
-                   "This is INVALID.", si->name, (unsigned) si->preinit_array);
-        }
+    if (!(si->flags & FLAG_EXE) && si->preinit_array) {
+      DL_ERR("shared library \"%s\" has a preinit_array table @ 0x%08x. "
+          "This is INVALID.", si->name, (unsigned) si->preinit_array);
     }
 
     if (si->dynamic) {
@@ -1897,6 +1898,8 @@
         exit(-1);
     }
 
+    soinfo_call_preinit_constructors(si);
+
     for(i = 0; preloads[i] != NULL; i++) {
         soinfo_call_constructors(preloads[i]);
     }
