From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29912 invoked by alias); 18 Dec 2012 22:20:29 -0000 Received: (qmail 29896 invoked by uid 22791); 18 Dec 2012 22:20:28 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-out.m-online.net (HELO mail-out.m-online.net) (212.18.0.9) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 18 Dec 2012 22:20:20 +0000 Received: from frontend1.mail.m-online.net (unknown [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id 3YQtw33rqxz4KK4H; Tue, 18 Dec 2012 23:20:19 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3YQtw33GVSzbbcT; Tue, 18 Dec 2012 23:20:19 +0100 (CET) Received: from mail.mnet-online.de ([192.168.8.180]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id KWJ58Q6dBND8; Tue, 18 Dec 2012 23:20:17 +0100 (CET) X-Auth-Info: JK7p4y6xlNEeJPsU9qt4xHT38r8mze9DKraSHwRDp9E= Received: from igel.home (ppp-88-217-123-144.dynamic.mnet-online.de [88.217.123.144]) by mail.mnet-online.de (Postfix) with ESMTPA; Tue, 18 Dec 2012 23:20:17 +0100 (CET) Received: by igel.home (Postfix, from userid 501) id DFA1CCA2B2; Tue, 18 Dec 2012 23:20:16 +0100 (CET) From: Andreas Schwab To: "Joseph S. Myers" Cc: , Subject: Re: Architectures status 2012-12-18 References: X-Yow: Join the PLUMBER'S UNION!! Date: Tue, 18 Dec 2012 22:20:00 -0000 In-Reply-To: (Joseph S. Myers's message of "Tue, 18 Dec 2012 20:34:27 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain 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-12/txt/msg00052.txt.bz2 "Joseph S. Myers" writes: > * PowerPC: > > (a) PowerPC needs sotruss-lib.c support. * sysdeps/powerpc/sotruss-lib.c: New file. --- sysdeps/powerpc/sotruss-lib.c | 84 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sysdeps/powerpc/sotruss-lib.c diff --git a/sysdeps/powerpc/sotruss-lib.c b/sysdeps/powerpc/sotruss-lib.c new file mode 100644 index 0000000..a1d738c --- /dev/null +++ b/sysdeps/powerpc/sotruss-lib.c @@ -0,0 +1,84 @@ +/* Override generic sotruss-lib.c to define actual functions for powerpc. + Copyright (C) 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 + . */ + +#define HAVE_ARCH_PLTENTER +#define HAVE_ARCH_PLTEXIT + +#include + +#if __ELF_NATIVE_CLASS == 32 + +ElfW(Addr) +la_ppc32_gnu_pltenter (Elf32_Sym *sym __attribute__ ((unused)), + unsigned int ndx __attribute__ ((unused)), + uintptr_t *refcook, uintptr_t *defcook, + La_ppc32_regs *regs, unsigned int *flags, + const char *symname, long int *framesizep) +{ + print_enter (refcook, defcook, symname, + regs->lr_reg[3], regs->lr_reg[4], regs->lr_reg[5], *flags); + + /* No need to copy anything, we will not need the parameters in any case. */ + *framesizep = 0; + + return sym->st_value; +} + +unsigned int +la_ppc32_gnu_pltexit (Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook, + uintptr_t *defcook, + const struct La_ppc32_regs *inregs, + struct La_ppc32_retval *outregs, + const char *symname) +{ + print_exit (refcook, defcook, symname, outregs->lrv_r3); + + return 0; +} + +#else + +ElfW(Addr) +la_ppc64_gnu_pltenter (Elf64_Sym *sym __attribute__ ((unused)), + unsigned int ndx __attribute__ ((unused)), + uintptr_t *refcook, uintptr_t *defcook, + La_ppc64_regs *regs, unsigned int *flags, + const char *symname, long int *framesizep) +{ + print_enter (refcook, defcook, symname, + regs->lr_reg[3], regs->lr_reg[4], regs->lr_reg[5], *flags); + + /* No need to copy anything, we will not need the parameters in any case. */ + *framesizep = 0; + + return sym->st_value; +} + +unsigned int +la_ppc64_gnu_pltexit (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook, + uintptr_t *defcook, + const struct La_ppc64_regs *inregs, + struct La_ppc64_retval *outregs, + const char *symname) +{ + print_exit (refcook, defcook, symname, outregs->lrv_r3); + + return 0; +} + +#endif > * m68k: > > (a) May need updates to its ccos / csin / ccosh / csinh > implementations along the lines of my 2012-05-19 libc changes to > avoid spurious overflows (bug 14123). It also needs its pow implementation rewritten from scratch. Patches welcome. Andreas. -- 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."