From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18011 invoked by alias); 30 Oct 2004 19:51:00 -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 17983 invoked from network); 30 Oct 2004 19:50:58 -0000 Received: from unknown (HELO walton.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org with SMTP; 30 Oct 2004 19:50:58 -0000 Received: from elgar.sibelius.xs4all.nl (elgar.sibelius.xs4all.nl [192.168.0.2]) by walton.sibelius.xs4all.nl (8.13.0/8.13.0) with ESMTP id i9UJowSM019615 for ; Sat, 30 Oct 2004 21:50:58 +0200 (CEST) Received: from elgar.sibelius.xs4all.nl (localhost [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.12.6p3/8.12.6) with ESMTP id i9UJovpl009148 for ; Sat, 30 Oct 2004 21:50:57 +0200 (CEST) (envelope-from kettenis@elgar.sibelius.xs4all.nl) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.12.6p3/8.12.6/Submit) id i9UJorQL009142; Sat, 30 Oct 2004 21:50:53 +0200 (CEST) Date: Sat, 30 Oct 2004 19:51:00 -0000 Message-Id: <200410301950.i9UJorQL009142@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: gdb-patches@sources.redhat.com Subject: [COMMIT] Prepare Solaris x86 for 64-bit Solaris 10 X-SW-Source: 2004-10/txt/msg00502.txt.bz2 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. Mark Index: ChangeLog from Mark Kettenis * i386-sol2-nat.c: New file. * Makefile.in (ALLDEPFILES): Add i386-sol2-nat.c and i386-sol2-tdep.c. (i386-sol2-nat.o): Update dependencies. * config/i386/i386sol2.mh (NATDEPFILES): Remove i386v4.o, add i386-sol2-nat.o. 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