diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-08-30 22:48:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-08-30 22:48:53 +0000 |
commit | 0b3cf801428e0d246e19ef5fbae185b949347aa3 (patch) | |
tree | 697aa0b6eeed38e26e6ff5eaed31bc7ec9ff3619 /sysdeps/generic/ldsodefs.h | |
parent | 4fb5ab741ac5b498fd0591d82b5d225abac7b8ce (diff) | |
download | glibc-0b3cf801428e0d246e19ef5fbae185b949347aa3.tar.gz glibc-0b3cf801428e0d246e19ef5fbae185b949347aa3.tar.xz glibc-0b3cf801428e0d246e19ef5fbae185b949347aa3.zip |
* sysdeps/ieee754/flt-32/e_hypotf.c [!__STDC__]: Fix function name.
2005-08-01 Bob Wilson <bob.wilson@acm.org> Richard Sandiford <richard@codesourcery.com> * sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Add missing exponent bias to the value for 2^126. 2005-08-30 Jakub Jelinek <jakub@redhat.com> Alan Modra <amodra@bigpond.net.au> * elf/dl-addr.c (_dl_addr): Use DL_ADDR_SYM_MATCH macro. * sysdeps/generic/ldsodefs.h (DL_ADDR_SYM_MATCH): Define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h: New file.
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index a24c2ff58e..191ae4d4fb 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -62,7 +62,7 @@ typedef struct link_map *lookup_t; # define LOOKUP_VALUE(map) map # define LOOKUP_VALUE_ADDRESS(map) ((map) ? (map)->l_addr : 0) -/* on some architectures a pointer to a function is not just a pointer +/* On some architectures a pointer to a function is not just a pointer to the actual code of the function but rather an architecture specific descriptor. */ #ifndef ELF_FUNCTION_PTR_IS_SPECIAL @@ -73,6 +73,14 @@ typedef struct link_map *lookup_t; # define DL_DT_FINI_ADDRESS(map, start) (start) #endif +/* On some architectures dladdr can't use st_size of all symbols this way. */ +#define DL_ADDR_SYM_MATCH(L, SYM, MATCHSYM, ADDR) \ + ((ADDR) >= (L)->l_addr + (SYM)->st_value \ + && (((SYM)->st_size == 0 \ + && (ADDR) == (L)->l_addr + (SYM)->st_value) \ + || (ADDR) < (L)->l_addr + (SYM)->st_value + (SYM)->st_size) \ + && ((MATCHSYM) == NULL || (MATCHSYM)->st_value < (SYM)->st_value)) + /* Unmap a loaded object, called by _dl_close (). */ #ifndef DL_UNMAP_IS_SPECIAL # define DL_UNMAP(map) \ |