From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21599 invoked by alias); 1 May 2012 14:32:49 -0000 Received: (qmail 21591 invoked by uid 22791); 1 May 2012 14:32:47 -0000 X-SWARE-Spam-Status: No, hits=-3.3 required=5.0 tests=AWL,BAYES_00,FROM_12LTRDOM,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 01 May 2012 14:32:35 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=EU1-MAIL.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1SPE81-0000wU-Lu from joseph_myers@mentor.com for libc-ports@sourceware.org; Tue, 01 May 2012 07:32:33 -0700 Received: from digraph.polyomino.org.uk ([172.16.63.104]) by EU1-MAIL.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 1 May 2012 15:32:31 +0100 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.74) (envelope-from ) id 1SPE80-0000GY-QU for libc-ports@sourceware.org; Tue, 01 May 2012 14:32:32 +0000 Date: Tue, 01 May 2012 14:32:00 -0000 From: "Joseph S. Myers" To: libc-ports@sourceware.org Subject: Restore ARM profil_counter export (bug 14043) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-05/txt/msg00005.txt.bz2 Given the various recent bugs other people have been finding in ABI testing and baselines, it seemed a good idea to check the ARM and MIPS ABI baselines I added against various binaries of previous release / release branch versions I had around. These are patched versions rather than unmodified releases and don't cover all relevant releases, so it's not a perfect test, but it showed up that the symbol profil_counter, formerly exported by ARM glibc at version GLIBC_2.4, had disappeared as a result of (changing the ARM profil-counter.h, in which profil_counter was not static, to use the x86 version, in which it is static). I've applied this patch to restore the export, by using a copy of the x86 header without "static", and update the ABI baseline accordingly. The other ABI issue I saw in ARM comparisons was that the libresolv variable __p_type_syms changed size from 0x21c to 0x228 (and on 64-bit platforms, from 0x438 to 0x450), probably as a result of 2008-06-26 Ulrich Drepper * resolv/res_debug.c (__p_type_syms): Add ns_t_dname entry. Patch by Peter Jones . but since there have been releases with both the old and the new sizes at the same symbol version, I don't think there's anything we can now do about that breakage. (I don't know why this is a public symbol anyway.) diff --git a/ChangeLog.arm b/ChangeLog.arm index facddbb..cdbed7b 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,3 +1,11 @@ +2012-05-01 Joseph Myers + + [BZ #14043] + * sysdeps/unix/sysv/linux/arm/profil-counter.h: New file. Based + on i386 version but without "static". + * sysdeps/unix/sysv/linux/arm/nptl/libc.abilist (GLIBC_2.4): Add + profil_counter. + 2012-04-28 Joseph Myers [BZ #13986] diff --git a/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist index 1f25c37..6322dcf 100644 --- a/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist @@ -1421,6 +1421,7 @@ GLIBC_2.4 printf_size F printf_size_info F profil F + profil_counter F program_invocation_name D 0x4 program_invocation_short_name D 0x4 pselect F diff --git a/sysdeps/unix/sysv/linux/arm/profil-counter.h b/sysdeps/unix/sysv/linux/arm/profil-counter.h index 8a6a0bc..f305674 100644 --- a/sysdeps/unix/sysv/linux/arm/profil-counter.h +++ b/sysdeps/unix/sysv/linux/arm/profil-counter.h @@ -1,2 +1,31 @@ -/* We can use the ix86 version. */ -#include +/* Low-level statistical profiling support function. Linux/ARM version. + Copyright (C) 1996-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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include + +void +profil_counter (int signo, const SIGCONTEXT scp) +{ + profil_count ((void *) GET_PC (scp)); + + /* This is a hack to prevent the compiler from implementing the + above function call as a sibcall. The sibcall would overwrite + the signal context. */ + asm volatile (""); +} -- Joseph S. Myers joseph@codesourcery.com