From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13374 invoked by alias); 16 May 2012 00:43:12 -0000 Received: (qmail 13366 invoked by uid 22791); 16 May 2012 00:43:11 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,DATE_IN_PAST_03_06,KHOP_THREADED,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from usmamail.tilera.com (HELO USMAMAIL.TILERA.COM) (12.216.194.151) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 16 May 2012 00:42:57 +0000 Received: from farm-0002.internal.tilera.com (10.2.0.32) by USMAEXCH2.tad.internal.tilera.com (10.3.0.33) with Microsoft SMTP Server (TLS) id 14.0.694.0; Tue, 15 May 2012 20:42:57 -0400 Received: (from cmetcalf@localhost) by farm-0002.internal.tilera.com (8.13.8/8.12.11/Submit) id q4G0gucE024257; Tue, 15 May 2012 20:42:56 -0400 Message-ID: <201205160042.q4G0gucE024257@farm-0002.internal.tilera.com> From: Chris Metcalf Date: Wed, 16 May 2012 00:43:00 -0000 Subject: [PATCH] tile: provide a tile-specific sotruss-lib.c override To: In-Reply-To: <20120515204433.343132C0A2@topped-with-meat.com> References: <201205152026.q4FKQc7a028706@s2q-1d.internal.tilera.com> <20120515204433.343132C0A2@topped-with-meat.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes 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/msg00086.txt.bz2 --- Roland, how does this look? It didn't occur to me that I could override the whole file with sysdeps, and that obviously was the point of the HAVE_ARCH_PLTxxx macros, so this makes a lot of sense. ChangeLog.tile | 4 +++ sysdeps/tile/sotruss-lib.c | 49 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 0 deletions(-) create mode 100644 sysdeps/tile/sotruss-lib.c diff --git a/ChangeLog.tile b/ChangeLog.tile index 0541a50..7baf876 100644 --- a/ChangeLog.tile +++ b/ChangeLog.tile @@ -0,0 +1,4 @@ +2012-05-15 Chris Metcalf + + * sysdeps/tile/sotruss-lib.c: New file. + diff --git a/sysdeps/tile/sotruss-lib.c b/sysdeps/tile/sotruss-lib.c new file mode 100644 index 0000000..6ad99f3 --- /dev/null +++ b/sysdeps/tile/sotruss-lib.c @@ -0,0 +1,49 @@ +/* Override generic sotruss-lib.c to define actual functions for tile. + 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 + +ElfW(Addr) +la_tile_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)), + unsigned int ndx __attribute__ ((unused)), + uintptr_t *refcook, uintptr_t *defcook, + La_tile_regs *regs, unsigned int *flags, + const char *symname, long int *framesizep) +{ + print_enter (refcook, defcook, symname, + regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2], + *flags); + + /* No need to copy anything, we will not need the parameters in any case. */ + *framesizep = 0; + + return sym->st_value; +} + +unsigned int +la_tile_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook, + uintptr_t *defcook, const struct La_tile_regs *inregs, + struct La_tile_retval *outregs, const char *symname) +{ + print_exit (refcook, defcook, symname, outregs->lrv_reg[0]); + + return 0; +} -- 1.7.1