提交 9b52ab1c 编写于 作者: R Rich Felker

micro-optimize some startup code for size

moving the call to __init_ssp from __init_security to __init_libc
makes __init_security a leaf function, which allows the compiler to
make it smaller. __init_libc is already non-leaf, and the additional
call makes no difference to the amount of register spillage.

in addition, it really made no sense for the call to __init_ssp to be
buried inside __init_security rather than parallel with other init
functions.
上级 5c4f11d9
......@@ -5,18 +5,11 @@
#include "libc.h"
#include "atomic.h"
static void dummy(void *ent)
{
}
weak_alias(dummy, __init_ssp);
void __init_security(size_t *aux)
{
struct pollfd pfd[3] = { {.fd=0}, {.fd=1}, {.fd=2} };
int i;
__init_ssp((void *)aux[AT_RANDOM]);
if (aux[AT_UID]==aux[AT_EUID] && aux[AT_GID]==aux[AT_EGID]
&& !aux[AT_SECURE]) return;
......
......@@ -11,6 +11,9 @@ extern void (*const __init_array_start)() __attribute__((weak));
extern void (*const __init_array_end)() __attribute__((weak));
#endif
static void dummy1(void *p) {}
weak_alias(dummy1, __init_ssp);
#define AUX_CNT 38
extern size_t __hwcap, __sysinfo;
......@@ -33,6 +36,7 @@ void __init_libc(char **envp, char *pn)
}
__init_tls(aux);
__init_ssp((void *)aux[AT_RANDOM]);
__init_security(aux);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册