X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fenv%2F__libc_start_main.c;h=10e559096a703202070da2eb95157487f588b937;hb=5cc187215681c2fc1563ad5136c389249aa3f70e;hp=d7481c259f90f007330ffd8f115a615e6dc5368f;hpb=594c827a22124ae550b9a877b8188e0898dff8db;p=musl diff --git a/src/env/__libc_start_main.c b/src/env/__libc_start_main.c index d7481c25..10e55909 100644 --- a/src/env/__libc_start_main.c +++ b/src/env/__libc_start_main.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "syscall.h" #include "atomic.h" #include "libc.h" @@ -48,7 +49,11 @@ void __init_libc(char **envp, char *pn) && !aux[AT_SECURE]) return; struct pollfd pfd[3] = { {.fd=0}, {.fd=1}, {.fd=2} }; +#ifdef SYS_poll __syscall(SYS_poll, pfd, 3, 0); +#else + __syscall(SYS_ppoll, pfd, 3, &(struct timespec){0}, 0, _NSIG/8); +#endif for (i=0; i<3; i++) if (pfd[i].revents&POLLNVAL) if (__sys_open("/dev/null", O_RDWR)<0) a_crash(); @@ -67,7 +72,7 @@ int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv) (*(void (**)())a)(); #endif - /* Pass control to to application */ + /* Pass control to the application */ exit(main(argc, argv, envp)); return 0; }