mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
2014-03-27 Paul Pluzhnikov <ppluzhnikov@google.com>
* elf/dl-load.c: Finish conversion of __builtin_expect into __glibc_{un}likely.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2014-03-27 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||||
|
|
||||||
|
* elf/dl-load.c: Finish conversion of __builtin_expect into
|
||||||
|
__glibc_{un}likely.
|
||||||
|
|
||||||
2014-03-27 Joseph Myers <joseph@codesourcery.com>
|
2014-03-27 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #16348]
|
[BZ #16348]
|
||||||
|
@ -1269,7 +1269,7 @@ cannot allocate TLS data structures for initial thread");
|
|||||||
/* Length of the sections to be loaded. */
|
/* Length of the sections to be loaded. */
|
||||||
maplength = loadcmds[nloadcmds - 1].allocend - c->mapstart;
|
maplength = loadcmds[nloadcmds - 1].allocend - c->mapstart;
|
||||||
|
|
||||||
if (__builtin_expect (type, ET_DYN) == ET_DYN)
|
if (__glibc_likely (type == ET_DYN))
|
||||||
{
|
{
|
||||||
/* This is a position-independent shared object. We can let the
|
/* This is a position-independent shared object. We can let the
|
||||||
kernel map it anywhere it likes, but we must have space for all
|
kernel map it anywhere it likes, but we must have space for all
|
||||||
@ -1767,14 +1767,13 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* See whether the ELF header is what we expect. */
|
/* See whether the ELF header is what we expect. */
|
||||||
if (__builtin_expect (! VALID_ELF_HEADER (ehdr->e_ident, expected,
|
if (__glibc_unlikely (! VALID_ELF_HEADER (ehdr->e_ident, expected,
|
||||||
EI_ABIVERSION)
|
EI_ABIVERSION)
|
||||||
|| !VALID_ELF_ABIVERSION (ehdr->e_ident[EI_OSABI],
|
|| !VALID_ELF_ABIVERSION (ehdr->e_ident[EI_OSABI],
|
||||||
ehdr->e_ident[EI_ABIVERSION])
|
ehdr->e_ident[EI_ABIVERSION])
|
||||||
|| memcmp (&ehdr->e_ident[EI_PAD],
|
|| memcmp (&ehdr->e_ident[EI_PAD],
|
||||||
&expected[EI_PAD],
|
&expected[EI_PAD],
|
||||||
EI_NIDENT - EI_PAD) != 0,
|
EI_NIDENT - EI_PAD) != 0))
|
||||||
0))
|
|
||||||
{
|
{
|
||||||
/* Something is wrong. */
|
/* Something is wrong. */
|
||||||
const Elf32_Word *magp = (const void *) ehdr->e_ident;
|
const Elf32_Word *magp = (const void *) ehdr->e_ident;
|
||||||
@ -1832,10 +1831,10 @@ open_verify (const char *name, struct filebuf *fbp, struct link_map *loader,
|
|||||||
errstring = N_("ELF file version does not match current one");
|
errstring = N_("ELF file version does not match current one");
|
||||||
goto call_lose;
|
goto call_lose;
|
||||||
}
|
}
|
||||||
if (! __builtin_expect (elf_machine_matches_host (ehdr), 1))
|
if (! __glibc_likely (elf_machine_matches_host (ehdr)))
|
||||||
goto close_and_out;
|
goto close_and_out;
|
||||||
else if (__builtin_expect (ehdr->e_type, ET_DYN) != ET_DYN
|
else if (__glibc_unlikely (ehdr->e_type != ET_DYN
|
||||||
&& __builtin_expect (ehdr->e_type, ET_EXEC) != ET_EXEC)
|
&& ehdr->e_type != ET_EXEC))
|
||||||
{
|
{
|
||||||
errstring = N_("only ET_DYN and ET_EXEC can be loaded");
|
errstring = N_("only ET_DYN and ET_EXEC can be loaded");
|
||||||
goto call_lose;
|
goto call_lose;
|
||||||
@ -2104,8 +2103,7 @@ _dl_map_object (struct link_map *loader, const char *name,
|
|||||||
/* If the requested name matches the soname of a loaded object,
|
/* If the requested name matches the soname of a loaded object,
|
||||||
use that object. Elide this check for names that have not
|
use that object. Elide this check for names that have not
|
||||||
yet been opened. */
|
yet been opened. */
|
||||||
if (__glibc_unlikely (l->l_faked != 0)
|
if (__glibc_unlikely ((l->l_faked | l->l_removed) != 0))
|
||||||
|| __builtin_expect (l->l_removed, 0) != 0)
|
|
||||||
continue;
|
continue;
|
||||||
if (!_dl_name_match_p (name, l))
|
if (!_dl_name_match_p (name, l))
|
||||||
{
|
{
|
||||||
@ -2230,7 +2228,7 @@ _dl_map_object (struct link_map *loader, const char *name,
|
|||||||
|
|
||||||
#ifdef USE_LDCONFIG
|
#ifdef USE_LDCONFIG
|
||||||
if (fd == -1
|
if (fd == -1
|
||||||
&& (__builtin_expect (! (mode & __RTLD_SECURE), 1)
|
&& (__glibc_likely ((mode & __RTLD_SECURE) == 0)
|
||||||
|| ! INTUSE(__libc_enable_secure))
|
|| ! INTUSE(__libc_enable_secure))
|
||||||
&& __glibc_likely (GLRO(dl_inhibit_cache) == 0))
|
&& __glibc_likely (GLRO(dl_inhibit_cache) == 0))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user