From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2661 invoked by alias); 30 Oct 2004 20:53:17 -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 2648 invoked from network); 30 Oct 2004 20:53:15 -0000 Received: from unknown (HELO localhost.redhat.com) (24.42.65.225) by sourceware.org with SMTP; 30 Oct 2004 20:53:15 -0000 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id C3C67129D8C; Sat, 30 Oct 2004 15:53:01 -0400 (EDT) Message-ID: <4183F11A.6090802@gnu.org> Date: Sat, 30 Oct 2004 20:53:00 -0000 From: Andrew Cagney User-Agent: Mozilla Thunderbird 0.8 (X11/20041020) MIME-Version: 1.0 To: Mark Kettenis Cc: gdb-patches@sources.redhat.com Subject: Re: [COMMIT] Prepare Solaris x86 for 64-bit Solaris 10 References: <200410301950.i9UJorQL009142@elgar.sibelius.xs4all.nl> In-Reply-To: <200410301950.i9UJorQL009142@elgar.sibelius.xs4all.nl> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-10/txt/msg00510.txt.bz2 Mark Kettenis wrote: > Including a .c file is perhaps a bit unorthodox, but this really is > the most elegant way I can think of to solve the issue with the > upcoming 64-bit Solaris 10. Why not have 368-sol2-nat inherit i386v4-nat's target vector? Andrew > Index: Makefile.in > =================================================================== > RCS file: /cvs/src/src/gdb/Makefile.in,v > retrieving revision 1.645 > diff -u -p -r1.645 Makefile.in > --- Makefile.in 30 Oct 2004 14:31:19 -0000 1.645 > +++ Makefile.in 30 Oct 2004 19:41:40 -0000 > @@ -1379,6 +1379,7 @@ ALLDEPFILES = \ > i386nbsd-nat.c i386nbsd-tdep.c i386obsd-nat.c i386obsd-tdep.c \ > i387-tdep.c \ > i386-linux-tdep.c i386-nat.c \ > + i386-sol2-nat.c i386-sol2-tdep.c \ > i386gnu-nat.c i386gnu-tdep.c \ > ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c \ > infptrace.c inftarg.c irix4-nat.c irix5-nat.c \ > @@ -2033,6 +2034,8 @@ i386obsd-tdep.o: i386obsd-tdep.c $(defs_ > $(gdbcore_h) $(regcache_h) $(regset_h) $(symtab_h) $(objfiles_h) \ > $(osabi_h) $(target_h) $(gdb_assert_h) $(gdb_string_h) \ > $(i386_tdep_h) $(i387_tdep_h) $(solib_svr4_h) > +i386-sol2-nat.o: i386-sol2-nat.c $(defs_h) $(regcache_h) $(gregset_h) \ > + i386v4-nat.c > i386-sol2-tdep.o: i386-sol2-tdep.c $(defs_h) $(value_h) $(osabi_h) \ > $(gdb_string_h) $(i386_tdep_h) $(solib_svr4_h) > i386-stub.o: i386-stub.c > Index: i386-sol2-nat.c > =================================================================== > RCS file: i386-sol2-nat.c > diff -N i386-sol2-nat.c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ i386-sol2-nat.c 30 Oct 2004 19:41:40 -0000 > @@ -0,0 +1,78 @@ > +/* Native-dependent code for Solaris x86. > + > + Copyright 2004 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 2 of the License, or > + (at your option) any later version. > + > + This program 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 General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program; if not, write to the Free Software > + Foundation, Inc., 59 Temple Place - Suite 330, > + Boston, MA 02111-1307, USA. */ > + > +#include "defs.h" > +#include "regcache.h" > + > +#include > +#include "gregset.h" > + > +/* This file provids the (temporary) glue between the Solaris x86 > + target dependent code and the machine independent SVR4 /proc > + support. */ > + > +/* Solaris 10 (Solaris 2.10, SunOS 5.10) and up support two process > + data models, the traditional 32-bit data model (ILP32) and the > + 64-bit data model (LP64). The format of /proc depends on the data > + model of the observer (the controlling process, GDB in our case). > + The Solaris header files conveniently define PR_MODEL_NATIVE to the > + data model of the controlling process. If its value is > + PR_MODEL_LP64, we know that GDB is being compiled as a 64-bit > + program. > + > + Note that a 32-bit GDB won't be able to debug a 64-bit target > + process using /proc on Solaris. */ > + > +#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64) > + > +#include "amd64-nat.h" > +#include "amd64-tdep.h" > + > +void > +supply_gregset (prgregset_t *gregs) > +{ > + amd64_supply_native_gregset (current_regcache, -1, gregs); > +} > + > +void > +supply_fpregset (prfpregset_t *fpregs) > +{ > + amd64_supply_fxsave (current_regcache, -1, fpregs); > +} > + > +void > +fill_gregset (prgregset_t *gregs, int regnum) > +{ > + amd64_collect_native_gregset (current_regcache, regnum, gregs); > +} > + > +void > +fill_fpregset (prfpregset_t *fpregs, int regnum) > +{ > + amd64_collect_fxsave (current_regcache, regnum, fpregs); > +} > + > +#else > + > +/* 32-bit Solaris x86 is very similar to SVR4. */ > +#include "i386v4-nat.c" > + > +#endif > Index: config/i386/i386sol2.mh > =================================================================== > RCS file: /cvs/src/src/gdb/config/i386/i386sol2.mh,v > retrieving revision 1.9 > diff -u -p -r1.9 i386sol2.mh > --- config/i386/i386sol2.mh 29 Jul 2004 20:04:20 -0000 1.9 > +++ config/i386/i386sol2.mh 30 Oct 2004 19:41:40 -0000 > @@ -1,4 +1,4 @@ > # Host: Solaris x86 > -NATDEPFILES= fork-child.o i386v4-nat.o \ > +NATDEPFILES= fork-child.o i386-sol2-nat.o \ > procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o gcore.o > NAT_FILE= nm-i386sol2.h >