about summary refs log tree commit diff
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;