From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11790 invoked by alias); 10 Jan 2002 19:52:43 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 11617 invoked from network); 10 Jan 2002 19:52:38 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 10 Jan 2002 19:52:38 -0000 Received: from redhat.com (reddwarf.sfbay.redhat.com [205.180.231.12]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id LAA16724; Thu, 10 Jan 2002 11:52:35 -0800 (PST) Message-ID: <3C3DEFCE.B5A19EFC@redhat.com> Date: Thu, 10 Jan 2002 11:52:00 -0000 From: Michael Snyder Organization: Red Hat, Inc. X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.2-2smp i686) X-Accept-Language: en MIME-Version: 1.0 To: Elena Zannoni CC: Michael Snyder , gdb-patches@sources.redhat.com, drow@mvista.com Subject: Re: [PATCH] Export fill_fpxregset References: <200201092228.g09MSGl03285@reddwarf.cygnus.com> <15420.53104.770587.362588@localhost.cygnus.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-01/txt/msg00244.txt.bz2 Elena Zannoni wrote: > > Sorry, but does this conflict with the extern in gregset.h? > > extern void fill_fpxregset (gdb_fpxregset_t *fpxregs, int regno); > > We have gdb_fpxregset_t vs. elf_fpxregset_t. > > Should we just use one or the other? > I just remembered running into a similar problem some time back. Hmm, well since this is (currently) only used on Linux, we COULD just use elf_gregset_t, but I was following a precident that was set for gregset_t and fpregset_t, to avoid potential portability problems. The types "gdb_gregset_t" and "gdb_fpregset_t" were introduced because there was no consistent definition across platforms for gregset and fpregset. Linux uses elf_fpregset, solaris uses prfpregset, sunos uses fpregset... The gregset.h header file defines a portable interface to the rest of gdb, which therefore does not need to know what the native types of fpregset etc. are. In this case, i386-linux-nat.c uses the native type elf_fpxregset_t, while the rest of gdb will use the portable type gdb_fpxregset_t. Since they are identical, there shouldn't be a problem. > > Thanks > > Elena > > Michael Snyder writes: > > 2002-01-09 Michael Snyder > > > > * i386-linux-nat.c (fill_fpxregset): Make global. > > (store_fpxregset): Ditto. > > > > Index: i386-linux-nat.c > > =================================================================== > > RCS file: /cvs/src/src/gdb/i386-linux-nat.c,v > > retrieving revision 1.33 > > diff -c -3 -p -r1.33 i386-linux-nat.c > > *** i386-linux-nat.c 2001/12/27 19:52:31 1.33 > > --- i386-linux-nat.c 2002/01/09 22:25:44 > > *************** > > *** 1,5 **** > > /* Native-dependent code for Linux/x86. > > ! Copyright 1999, 2000, 2001 Free Software Foundation, Inc. > > > > This file is part of GDB. > > > > --- 1,5 ---- > > /* Native-dependent code for Linux/x86. > > ! Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. > > > > This file is part of GDB. > > > > *************** static void store_fpregs (int tid, int r > > *** 452,458 **** > > /* Fill GDB's register array with the floating-point and SSE register > > values in *FPXREGSETP. */ > > > > ! static void > > supply_fpxregset (elf_fpxregset_t *fpxregsetp) > > { > > i387_supply_fxsave ((char *) fpxregsetp); > > --- 452,458 ---- > > /* Fill GDB's register array with the floating-point and SSE register > > values in *FPXREGSETP. */ > > > > ! void > > supply_fpxregset (elf_fpxregset_t *fpxregsetp) > > { > > i387_supply_fxsave ((char *) fpxregsetp); > > *************** supply_fpxregset (elf_fpxregset_t *fpxre > > *** 462,468 **** > > *FPXREGSETP with the value in GDB's register array. If REGNO is > > -1, do this for all registers. */ > > > > ! static void > > fill_fpxregset (elf_fpxregset_t *fpxregsetp, int regno) > > { > > i387_fill_fxsave ((char *) fpxregsetp, regno); > > --- 462,468 ---- > > *FPXREGSETP with the value in GDB's register array. If REGNO is > > -1, do this for all registers. */ > > > > ! void > > fill_fpxregset (elf_fpxregset_t *fpxregsetp, int regno) > > { > > i387_fill_fxsave ((char *) fpxregsetp, regno);