This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] Fix missing _mcount@GLIBC_2.0 on powerpc32
- From: Andreas Jaeger <aj at suse dot com>
- To: libc-alpha at sourceware dot org
- Cc: Andreas Schwab <schwab at linux-m68k dot org>,Alan Modra <amodra at gmail dot com>
- Date: Thu, 28 Jun 2012 09:39:46 +0200
- Subject: Re: [PATCH v2] Fix missing _mcount@GLIBC_2.0 on powerpc32
- References: <m24nryrjy1.fsf@igel.home> <20120502113123.GC635@bubble.grove.modra.org> <m2ipgepqeh.fsf_-_@igel.home>
Alan, you just mentioned this mail in the bug 14042 but I do not see
that this patch has been committed to master at all - intead another
patch went in:
2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
[BZ #14042]
* sysdeps/powerpc/powerpc32/mcount.c: New file.
* sysdeps/powerpc/powerpc32/Versions (GLIBC_2.16): Add
__mcount_internal.
*
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
(GLIBC_2.16): Likewise.
So, is this patch needed as well and is it ok?
Andreas
On Wednesday, May 02, 2012 17:13:26 Andreas Schwab wrote:
> [BZ #14042]
> * sysdeps/powerpc/powerpc32/ppc-mcount.S [SHARED]: Don't use PLT
> for call to __mcount_internal.
> * sysdeps/powerpc/powerpc32/Makefile (sysdep_routines)
> (shared-only-routines) [$(subdir) = gmon]: Add compat-ppc-mcount.
> * sysdeps/powerpc/powerpc32/compat-ppc-mcount.S: New file.
> ---
> sysdeps/powerpc/powerpc32/Makefile | 3 ++-
> sysdeps/powerpc/powerpc32/compat-ppc-mcount.S | 11 +++++++++++
> sysdeps/powerpc/powerpc32/ppc-mcount.S | 6 +++++-
> 3 files changed, 18 insertions(+), 2 deletions(-)
> create mode 100644 sysdeps/powerpc/powerpc32/compat-ppc-mcount.S
>
> diff --git a/sysdeps/powerpc/powerpc32/Makefile
> b/sysdeps/powerpc/powerpc32/Makefile index aa2d0b9..64f7900 100644
> --- a/sysdeps/powerpc/powerpc32/Makefile
> +++ b/sysdeps/powerpc/powerpc32/Makefile
> @@ -6,8 +6,9 @@ sysdep-LDFLAGS += -msoft-float
> endif
>
> ifeq ($(subdir),gmon)
> -sysdep_routines += ppc-mcount
> +sysdep_routines += ppc-mcount compat-ppc-mcount
> static-only-routines += ppc-mcount
> +shared-only-routines += compat-ppc-mcount
> endif
>
> ifeq ($(subdir),misc)
> diff --git a/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S
> b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S new file mode 100644
> index 0000000..2a9cb24
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc32/compat-ppc-mcount.S
> @@ -0,0 +1,11 @@
> +#include <shlib-compat.h>
> +
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_15)
> +
> + compat_text_section
> +# define _mcount __compat_mcount
> +# include "ppc-mcount.S"
> +# undef _mcount
> +
> +compat_symbol (libc, __compat_mcount, _mcount, GLIBC_2_0)
> +#endif
> diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S
> b/sysdeps/powerpc/powerpc32/ppc-mcount.S index 9a3c041..911638b
> 100644
> --- a/sysdeps/powerpc/powerpc32/ppc-mcount.S
> +++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S
> @@ -1,5 +1,5 @@
> /* PowerPC-specific implementation of profiling support.
> - Copyright (C) 1997, 1999, 2005, 2006 Free Software Foundation,
> Inc. + Copyright (C) 1997-2012 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
> @@ -57,7 +57,11 @@ ENTRY(_mcount)
> stw r4, 44(r1)
> cfi_offset (lr, -4)
> stw r5, 8(r1)
> +#ifndef SHARED
> bl JUMPTARGET(__mcount_internal)
> +#else
> + bl __mcount_internal@local
> +#endif
> /* Restore the registers... */
> lwz r6, 8(r1)
> lwz r0, 44(r1)
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126