glibc/glibc-2.16-ppc32-mcount.patch

158 lines
6.7 KiB
Diff

From schwab@linux-m68k.org Wed, 02 May 2012 17:13:26 +0200
Return-Path: <libc-alpha-return-28278-aj=suse.de@sourceware.org>
Received: from imap.suse.de ([unix socket])
by imap-int (Cyrus v2.2.12) with LMTPA;
Wed, 02 May 2012 17:13:51 +0200
X-Sieve: CMU Sieve 2.2
Received: from relay2.suse.de (relay2.suse.de [149.44.160.134])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client CN "relay.suse.de", Issuer "CAcert Class 3 Root" (verified OK))
by imap.suse.de (Postfix) with ESMTPS id F17483C5339B
for <aj@imap.suse.de>; Wed, 2 May 2012 17:13:51 +0200 (CEST)
Received: by relay2.suse.de (Postfix)
id E8E6A18552B2; Wed, 2 May 2012 17:13:51 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
by relay2.suse.de (Postfix) with ESMTP id DD16818552B4
for <aj@suse.de>; Wed, 2 May 2012 17:13:51 +0200 (CEST)
Received: from relay2.suse.de ([127.0.0.1])
by localhost (localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP
id 02496-01 for <aj@suse.de>; Wed, 2 May 2012 17:13:49 +0200 (CEST)
Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by relay2.suse.de (Postfix) with ESMTPS id DBBF518552B2
for <aj@suse.de>; Wed, 2 May 2012 17:13:49 +0200 (CEST)
Received: from sourceware.org (server1.sourceware.org [209.132.180.131])
by mx2.suse.de (Postfix) with SMTP id 47EFA90F2E
for <aj@suse.de>; Wed, 2 May 2012 17:13:48 +0200 (CEST)
Comment: DKIM? See http://www.dkim.org
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;
d=sourceware.org; s=default; x=1336576429; h=Comment:
DomainKey-Signature:Received:Received:From:To:Cc:Subject:
References:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version:
Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:
List-Subscribe:List-Archive:List-Post:List-Help:Sender:
Delivered-To; bh=0y95/HSsnyw1ABh4V7CAeeORO5U=; b=scLVxQl2KjsaCsA
HlTbKP4b4DlOrh0JbNdDKP3JDs40rI/X02fBsblbArg/QrsiZO9TtF6iehIuw+Sa
/d57G5/oKoaZwV46wT3pzH6BUuKDP+BH1ZMp+TMQRYn4C0Asq5wgY+DeEZhF41gK
f7wsOFVFEQouRtp3QC3k/eN3yUSY=
Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
s=default; d=sourceware.org;
h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:From:To:Cc:Subject:References:X-Yow:Date:In-Reply-To:Message-ID:User-Agent:MIME-Version:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To;
b=miVyTadt4ff79bxj8elDpRttJ/wxuYnbsl6ZvownzuoJh+HWi+P3S33l/J51gL
/k0F6BLmQ0KXBE9/F8Dxpl9sgt1gBlj440D8gh/jh5cPXeP98VBe0g8f13Rz4j/8
DiRjxjzQbo8WPJlpbeWWdk/pYQSELCdRi45cxnxRItt7o=;
Received: (qmail 23763 invoked by alias); 2 May 2012 15:13:43 -0000
Received: (qmail 23753 invoked by uid 22791); 2 May 2012 15:13:41 -0000
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0
tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,TW_LW
X-Spam-Check-By: sourceware.org
From: Andreas Schwab <schwab@linux-m68k.org>
To: Alan Modra <amodra@gmail.com>
Cc: libc-alpha@sourceware.org
Subject: [PATCH v2] Fix missing _mcount@GLIBC_2.0 on powerpc32
References: <m24nryrjy1.fsf@igel.home>
<20120502113123.GC635@bubble.grove.modra.org>
X-Yow: I want to read my new poem about pork brains and outer space...
Date: Wed, 02 May 2012 17:13:26 +0200
In-Reply-To: <20120502113123.GC635@bubble.grove.modra.org> (Alan Modra's
message of "Wed, 2 May 2012 21:01:23 +0930")
Message-ID: <m2ipgepqeh.fsf_-_@igel.home>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <libc-alpha.sourceware.org>
List-Unsubscribe: <mailto:libc-alpha-unsubscribe-aj=suse.de@sourceware.org>
List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/libc-alpha/>
List-Post: <mailto:libc-alpha@sourceware.org>
List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs>
Sender: libc-alpha-owner@sourceware.org
Delivered-To: mailing list libc-alpha@sourceware.org
X-Virus-Scanned: by amavisd-new at localhost
X-Spam-Status: No, score=-7.599 tagged_above=-20 required=5
tests=[BAYES_00=-2.599, MY_LINUX=-1, RCVD_IN_DNSWL_MED=-4]
X-Spam-Score: -7.599
X-Spam-Level:
[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)
--
1.7.10.1
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."