diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-12-10 23:02:33 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-12-10 23:02:33 +0000 |
commit | c776b3d717593ee3fdd2120f80217f0abe0dec74 (patch) | |
tree | 48e533ed0c7fd5ed1064c2872567493eccd5a82e /elf | |
parent | 26b30508e02c05d506295954d453d797e0c23cb5 (diff) | |
download | glibc-c776b3d717593ee3fdd2120f80217f0abe0dec74.tar glibc-c776b3d717593ee3fdd2120f80217f0abe0dec74.tar.gz glibc-c776b3d717593ee3fdd2120f80217f0abe0dec74.tar.bz2 glibc-c776b3d717593ee3fdd2120f80217f0abe0dec74.zip |
Update.
2003-12-02 David Mosberger <davidm@hpl.hp.com>
* sysdeps/ia64/elf/initfini.c: Add unwind info.
* sysdeps/ia64/dl-machine.h (elf_machine_matches_host): Mark with
attribute "unused".
(elf_machine_dynamic): Mark with attributes "unused" and "const".
(elf_machine_runtime_setup): Likewise.
* sysdeps/generic/dl-fptr.c (make_fptr_table): Mark with
attribute "always_inline".
* sysdeps/ia64/dl-machine.h (__ia64_init_bootstrap_fdesc_table):
Likewise.
* configure.in: Check whether compiler has libunwind support.
* config.make.in (have-cc-with-libunwind): New variable.
* config.h.in (HAVE_CC_WITH_LIBUNWIND): New macro.
* Makeconfig (gnulib): If have-cc-withh-libunwind is "yes", also
mention -lunwind.
003-11-12 David Mosberger <davidm@hpl.hp.com>
* sysdeps/unix/sysv/linux/ia64/sysdep.h: Define DO_CALL_VIA_BREAK.
Redefine DO_CALL to use vdso if supported, otherwise DO_CALL_VIA_BREAK.
Likewise for DO_INLINE_SYSCALL. Make INTERNAL_SYSCALL use
DO_INLINE_SYSCALL.
* sysdeps/unix/sysv/linux/ia64/vfork.S: Use DO_CALL_VIA_BREAK()
instead of DO_CALL().
* sysdeps/unix/sysv/linux/ia64/clone2.S: Use break directly instead
of DO_CALL().
* sysdeps/unix/sysv/linux/ia64/brk.S (__curbrk): Restructure it
to take advantage of DO_CALL() macro.
* sysdeps/unix/sysv/linux/ia64/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/ia64/getcontext.S: Likewise.
* elf/rtld.c (dl_main): Restrict dl_sysinfo_dso check to first
program header. On ia64, the check failed previously because
there are two program headers.
* sysdeps/generic/s_nexttowardf.c: Likewise.
* math/bug-nexttoward.c: New file.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/rtld.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/elf/rtld.c b/elf/rtld.c index 82f7ed3fc2..dcc617bb76 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1163,6 +1163,9 @@ of this helper program; chances are you did not intend to run this program.\n\ if (__builtin_expect (l != NULL, 1)) { static ElfW(Dyn) dyn_temp[DL_RO_DYN_TEMP_CNT]; +#ifndef NDEBUG + uint_fast16_t pt_load_num = 0; +#endif l->l_phdr = ((const void *) GL(dl_sysinfo_dso) + GL(dl_sysinfo_dso)->e_phoff); @@ -1176,8 +1179,14 @@ of this helper program; chances are you did not intend to run this program.\n\ l->l_ldnum = ph->p_memsz / sizeof (ElfW(Dyn)); break; } +#ifndef NDEBUG if (ph->p_type == PT_LOAD) - assert ((void *) ph->p_vaddr == GL(dl_sysinfo_dso)); + { + assert (pt_load_num + || (void *) ph->p_vaddr == GL(dl_sysinfo_dso)); + pt_load_num++; + } +#endif } elf_get_dynamic_info (l, dyn_temp); _dl_setup_hash (l); |