From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 308 invoked by alias); 1 Aug 2003 16:32:22 -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 300 invoked from network); 1 Aug 2003 16:32:21 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 1 Aug 2003 16:32:21 -0000 Received: from drow by nevyn.them.org with local (Exim 4.20 #1 (Debian)) id 19icpJ-0000h3-FU for ; Fri, 01 Aug 2003 12:32:21 -0400 Date: Fri, 01 Aug 2003 16:32:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [rfa] Add cross platform i386 corefile support Message-ID: <20030801163221.GA2562@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <3F2A94B3.5080700@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F2A94B3.5080700@redhat.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-08/txt/msg00002.txt.bz2 On Fri, Aug 01, 2003 at 12:26:27PM -0400, Andrew Cagney wrote: > Hello, > > The attached does to the i386 what MichaelL recently did to x86-64 - > make the code that reads core files work cross platform. > > While this change is independant of the x86-64 change, it does work > better when combined with that. > > i386 native showed no regressions. A cross GDB was able to read i386 > native generated core files. > > Please note that gcore doesn't work cross though - problems in > linux-proc.c. I've filed a bug report. > > ok? > 6.0? I'm not sure how cross-safe this bit is: > +static void > +dummy_sse_values (void) > +{ > + struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > + /* C doesn't have a syntax for NaN's, so write it out as an array of > + longs. */ > + static long dummy[4] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }; > + static long mxcsr = 0x1f80; > + int reg; > + > + for (reg = 0; reg < tdep->num_xmm_regs; reg++) > + supply_register (XMM0_REGNUM + reg, (char *) dummy); > + if (tdep->num_xmm_regs > 0) > + supply_register (MXCSR_REGNUM, (char *) &mxcsr); > +} Won't work on a big-endian LP64 host. You've filled them with 0 instead of -1 if I remember my C promotions right. Otherwise, I have some code to do the same thing, and it looks exactly the same, which is a good sign :) I'm too backlogged waiting for review of things I've already posted to realistically flush the rest of my queue, so I'm glad to see someone else save me the trouble. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer