further micro-optimize startup code for size
authorRich Felker <dalias@aerifal.cx>
Mon, 21 Apr 2014 23:52:24 +0000 (19:52 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 21 Apr 2014 23:52:24 +0000 (19:52 -0400)
there is no reason (and seemingly there never was any) for
__init_security to be its own function. it's linked unconditionally
so it can just be placed inline in __init_libc.

src/env/__init_security.c [deleted file]
src/env/__libc_start_main.c

diff --git a/src/env/__init_security.c b/src/env/__init_security.c
deleted file mode 100644 (file)
index ae62395..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <elf.h>
-#include <poll.h>
-#include <fcntl.h>
-#include "syscall.h"
-#include "libc.h"
-#include "atomic.h"
-
-void __init_security(size_t *aux)
-{
-       struct pollfd pfd[3] = { {.fd=0}, {.fd=1}, {.fd=2} };
-       int i;
-
-       if (aux[AT_UID]==aux[AT_EUID] && aux[AT_GID]==aux[AT_EGID]
-               && !aux[AT_SECURE]) return;
-
-       __syscall(SYS_poll, pfd, 3, 0);
-       for (i=0; i<3; i++) if (pfd[i].revents&POLLNVAL)
-               if (__syscall(SYS_open, "/dev/null", O_RDWR|O_LARGEFILE)<0)
-                       a_crash();
-       libc.secure = 1;
-}
index 539f72e..d7ec3ab 100644 (file)
@@ -1,8 +1,11 @@
 #include <elf.h>
+#include <poll.h>
+#include <fcntl.h>
+#include "syscall.h"
+#include "atomic.h"
 #include "libc.h"
 
 void __init_tls(size_t *);
-void __init_security(size_t *);
 
 #ifndef SHARED
 static void dummy() {}
@@ -37,7 +40,16 @@ void __init_libc(char **envp, char *pn)
 
        __init_tls(aux);
        __init_ssp((void *)aux[AT_RANDOM]);
-       __init_security(aux);
+
+       if (aux[AT_UID]==aux[AT_EUID] && aux[AT_GID]==aux[AT_EGID]
+               && !aux[AT_SECURE]) return;
+
+       struct pollfd pfd[3] = { {.fd=0}, {.fd=1}, {.fd=2} };
+       __syscall(SYS_poll, pfd, 3, 0);
+       for (i=0; i<3; i++) if (pfd[i].revents&POLLNVAL)
+               if (__syscall(SYS_open, "/dev/null", O_RDWR|O_LARGEFILE)<0)
+                       a_crash();
+       libc.secure = 1;
 }
 
 int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv)