aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/powerpc/powerpc32/bits/link.h10
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c5
-rw-r--r--sysdeps/powerpc/powerpc64/bits/link.h10
4 files changed, 19 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index cbd15f8e27..1a59d3e72b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,14 @@
2005-01-07 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/powerpc/powerpc32/dl-machine.c (__elf_machine_runtime_setup):
+ If profile != 0 does not anymore mean GLRO(dl_profile) != NULL.
* sysdeps/powerpc/powerpc32/dl-trampoline.S (_dl_prof_resolve):
Extend _dl_prof_resolve to add pass extra parameters to
_dl_profile_fixup and set up structure with register content.
+ * sysdeps/powerpc/powerpc32/bits/link.h: Fix types of some fields in
+ the register and result structures.
+ * sysdeps/powerpc/powerpc64/bits/link.h: Fix types of some fields
+ in the 32-bit register and result structures.
* sysdeps/powerpc/powerpc64/dl-trampoline.S: Use register names.
diff --git a/sysdeps/powerpc/powerpc32/bits/link.h b/sysdeps/powerpc/powerpc32/bits/link.h
index 2d49c09fb4..7f44087120 100644
--- a/sysdeps/powerpc/powerpc32/bits/link.h
+++ b/sysdeps/powerpc/powerpc32/bits/link.h
@@ -24,18 +24,18 @@
/* Registers for entry into PLT on PPC32. */
typedef struct La_ppc32_regs
{
- uint64_t lr_reg[8];
+ uint32_t lr_reg[8];
double lr_fp[8];
uint32_t lr_vreg[12][4];
- uint64_t lr_r1;
- uint64_t lr_lr;
+ uint32_t lr_r1;
+ uint32_t lr_lr;
} La_ppc32_regs;
/* Return values for calls from PLT on PPC32. */
typedef struct La_ppc32_retval
{
- uint64_t lrv_r3;
- uint64_t lrv_r4;
+ uint32_t lrv_r3;
+ uint32_t lrv_r4;
double lrv_fp[8];
uint32_t lrv_v2[4];
} La_ppc32_retval;
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index 06960716b9..4120a02382 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -242,7 +242,8 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
: _dl_runtime_resolve);
Elf32_Word offset;
- if (profile && _dl_name_match_p (GLRO(dl_profile), map))
+ if (profile && GLRO(dl_profile) != NULL
+ && _dl_name_match_p (GLRO(dl_profile), map))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = map;
diff --git a/sysdeps/powerpc/powerpc64/bits/link.h b/sysdeps/powerpc/powerpc64/bits/link.h
index 227c7f9a4f..34e9a60726 100644
--- a/sysdeps/powerpc/powerpc64/bits/link.h
+++ b/sysdeps/powerpc/powerpc64/bits/link.h
@@ -26,18 +26,18 @@
/* Registers for entry into PLT on PPC32. */
typedef struct La_ppc32_regs
{
- uint64_t lr_reg[8];
+ uint32_t lr_reg[8];
double lr_fp[8];
uint32_t lr_vreg[12][4];
- uint64_t lr_r1;
- uint64_t lr_lr;
+ uint32_t lr_r1;
+ uint32_t lr_lr;
} La_ppc32_regs;
/* Return values for calls from PLT on PPC32. */
typedef struct La_ppc32_retval
{
- uint64_t lrv_r3;
- uint64_t lrv_r4;
+ uint32_t lrv_r3;
+ uint32_t lrv_r4;
double lrv_fp[8];
uint32_t lrv_v2[4];
} La_ppc32_retval;