diff --git a/libc/bionic/libc_init_static.c b/libc/bionic/libc_init_static.c
index d7af640..ec463f7 100644
--- a/libc/bionic/libc_init_static.c
+++ b/libc/bionic/libc_init_static.c
@@ -25,30 +25,18 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
 /*
  * libc_init_static.c
  *
- * This function is called for static executables, i.e. those that
- * dont depend on shared libraries and are directly started by the
- * Linux kernel.
- *
- * It takes the raw data block set up by the ELF loader
- * in the kernel and parses it.
+ * This function takes the raw data block set up by the ELF loader
+ * in the kernel and parses it.  It is invoked by crt0.S which makes
+ * any necessary adjustments and passes calls this function using
+ * the standard C calling convention.
  *
  * The arguments are:
- *      elfdata   -- The ELF loader data block; usually from the stack.
- *                   Basically a pointer to argc.
- *
- *      onexit    -- Function to call on exit, can be NULL.
- *
- *      slingshot -- Address of the program's main function
- *
- *      structors -- Table of constructor functions arrays that must
- *                   be called before the slingshot.
- *
- * It is called from the assembly fragment found in
- * arch-$ARCH/bionic/crtbegin_static.S
+ *  uintptr_t *elfdata	 -- The ELF loader data block; usually from the stack.
+ *                          Basically a pointer to argc.
+ *  void (*onexit)(void) -- Function to install into onexit
  */
 
 /*
@@ -63,19 +51,18 @@
 #include <stdlib.h>
 #include <stdint.h>
 #include <elf.h>
-#include "bionic_preinit.h"
+#include "pthread_internal.h"
+#include "atexit.h"
 #include "libc_init_common.h"
 
+#include <bionic_tls.h>
+#include <errno.h>
+
 __noreturn void __libc_init(uintptr_t *elfdata,
                        void (*onexit)(void),
                        int (*slingshot)(int, char**, char**),
                        structors_array_t const * const structors)
 {
-    pthread_internal_t thread;
-    void *tls_area[BIONIC_TLS_SLOTS];
-
-    __libc_preinit( &thread, tls_area );
-
 /* 
  * To enable malloc checks for statically linked programs, add
  * "WITH_MALLOC_CHECK_LIBC_A := true" in device/buildspec.mk
