mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-23 06:32:05 +03:00
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.
This commit is contained in:
parent
5c4f11d995
commit
9b52ab1c9a
7
src/env/__init_security.c
vendored
7
src/env/__init_security.c
vendored
@ -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;
|
||||
|
||||
|
4
src/env/__libc_start_main.c
vendored
4
src/env/__libc_start_main.c
vendored
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user