summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-05-20 09:40:04 +0000
committerJakub Jelinek <jakub@redhat.com>2005-05-20 09:40:04 +0000
commit31f622b5c7ea544de23cfb85f0023069b613a8d5 (patch)
tree7d4cd37af8ee05b2c6b2b58410fd66cecd1aa694 /elf
parentec325445c659c89402ce8b877c429146b22084be (diff)
Updated to fedora-glibc-20050520T0919
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-support.c4
-rw-r--r--elf/elf.h18
2 files changed, 12 insertions, 10 deletions
diff --git a/elf/dl-support.c b/elf/dl-support.c
index d20e9a4048..483b132b43 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -173,7 +173,7 @@ _dl_aux_init (ElfW(auxv_t) *av)
GLRO(dl_clktck) = av->a_un.a_val;
break;
case AT_PHDR:
- GL(dl_phdr) = av->a_un.a_ptr;
+ GL(dl_phdr) = (void *) av->a_un.a_val;
break;
case AT_PHNUM:
GL(dl_phnum) = av->a_un.a_val;
@@ -188,7 +188,7 @@ _dl_aux_init (ElfW(auxv_t) *av)
#endif
#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
case AT_SYSINFO_EHDR:
- GL(dl_sysinfo_dso) = av->a_un.a_ptr;
+ GL(dl_sysinfo_dso) = (void *) av->a_un.a_val;
break;
#endif
case AT_UID:
diff --git a/elf/elf.h b/elf/elf.h
index 8a9f7fd482..e246519fab 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -899,23 +899,25 @@ typedef struct
typedef struct
{
- int a_type; /* Entry type */
+ uint32_t a_type; /* Entry type */
union
{
- long int a_val; /* Integer value */
- void *a_ptr; /* Pointer value */
- void (*a_fcn) (void); /* Function pointer value */
+ uint32_t a_val; /* Integer value */
+ /* We use to have pointer elements added here. We cannot do that,
+ though, since it does not work when using 32-bit definitions
+ on 64-bit platforms and vice versa. */
} a_un;
} Elf32_auxv_t;
typedef struct
{
- long int a_type; /* Entry type */
+ uint64_t a_type; /* Entry type */
union
{
- long int a_val; /* Integer value */
- void *a_ptr; /* Pointer value */
- void (*a_fcn) (void); /* Function pointer value */
+ uint64_t a_val; /* Integer value */
+ /* We use to have pointer elements added here. We cannot do that,
+ though, since it does not work when using 32-bit definitions
+ on 64-bit platforms and vice versa. */
} a_un;
} Elf64_auxv_t;