From 70cd1f971ba91574980d707a1bd7da29a970158c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 8 Jan 2005 05:47:47 +0000 Subject: [PATCH] Update. * 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. --- ChangeLog | 6 ++++++ sysdeps/powerpc/powerpc32/bits/link.h | 10 +++++----- sysdeps/powerpc/powerpc32/dl-machine.c | 5 +++-- sysdeps/powerpc/powerpc64/bits/link.h | 10 +++++----- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index cbd15f8..1a59d3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,14 @@ 2005-01-07 Ulrich Drepper + * 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 2d49c09..7f44087 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 0696071..4120a02 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 227c7f9..34e9a60 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; -- 2.7.4