* sysdeps/powerpc/powerpc32/dl-machine.c (__elf_machine_runtime_setup):
	If profile != 0 does not anymore mean GLRO(dl_profile) != NULL.
	* 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.
This commit is contained in:
Ulrich Drepper 2005-01-08 05:47:47 +00:00
parent 85555eeb7b
commit 70cd1f971b
4 changed files with 19 additions and 12 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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;