diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-10-12 06:34:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-10-12 06:34:56 +0000 |
commit | cc12f2a442d1d971d6ec0c21bdfa578299601fc7 (patch) | |
tree | 2d4f96a7c563e25200a940fade4aea05e4203a7b /elf/dl-load.c | |
parent | f44476711db142376aa30182b23384037905b910 (diff) | |
download | glibc-cc12f2a442d1d971d6ec0c21bdfa578299601fc7.zip glibc-cc12f2a442d1d971d6ec0c21bdfa578299601fc7.tar.gz glibc-cc12f2a442d1d971d6ec0c21bdfa578299601fc7.tar.bz2 |
Update.
* elf/dl-load.c (_dl_map_object_from_fd): Remove unnecessarily
duplicated variable c.
* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Use INTERNAL_SYSCALL
if possible.
Add hack to prevent the compiler from clobbering the signal context.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r-- | elf/dl-load.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c index 1d10541..e1909ca 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -916,29 +916,27 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp, goto call_lose; } - { - struct loadcmd *c = &loadcmds[nloadcmds++]; - c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); - c->mapend = ((ph->p_vaddr + ph->p_filesz + GL(dl_pagesize) - 1) - & ~(GL(dl_pagesize) - 1)); - c->dataend = ph->p_vaddr + ph->p_filesz; - c->allocend = ph->p_vaddr + ph->p_memsz; - c->mapoff = ph->p_offset & ~(ph->p_align - 1); - - /* Optimize a common case. */ + c = &loadcmds[nloadcmds++]; + c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); + c->mapend = ((ph->p_vaddr + ph->p_filesz + GL(dl_pagesize) - 1) + & ~(GL(dl_pagesize) - 1)); + c->dataend = ph->p_vaddr + ph->p_filesz; + c->allocend = ph->p_vaddr + ph->p_memsz; + c->mapoff = ph->p_offset & ~(ph->p_align - 1); + + /* Optimize a common case. */ #if (PF_R | PF_W | PF_X) == 7 && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7 - c->prot = (PF_TO_PROT - >> ((ph->p_flags & (PF_R | PF_W | PF_X)) * 4)) & 0xf; + c->prot = (PF_TO_PROT + >> ((ph->p_flags & (PF_R | PF_W | PF_X)) * 4)) & 0xf; #else - c->prot = 0; - if (ph->p_flags & PF_R) - c->prot |= PROT_READ; - if (ph->p_flags & PF_W) - c->prot |= PROT_WRITE; - if (ph->p_flags & PF_X) - c->prot |= PROT_EXEC; + c->prot = 0; + if (ph->p_flags & PF_R) + c->prot |= PROT_READ; + if (ph->p_flags & PF_W) + c->prot |= PROT_WRITE; + if (ph->p_flags & PF_X) + c->prot |= PROT_EXEC; #endif - } break; case PT_TLS: |