From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14544 invoked by alias); 14 Jan 2002 19:42:27 -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 14511 invoked from network); 14 Jan 2002 19:42:26 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 14 Jan 2002 19:42:26 -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 LAA04248; Mon, 14 Jan 2002 11:42:22 -0800 (PST) Message-ID: <3C433357.602055C3@redhat.com> Date: Mon, 14 Jan 2002 11:42: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: "H . J . Lu" CC: gdb-patches@sources.redhat.com Subject: Re: Bad checkin breaks Linux References: <20020112163246.A1516@lucon.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-01/txt/msg00394.txt.bz2 "H . J . Lu" wrote: > > This patch > > http://sources.redhat.com/ml/gdb-patches/2002-01/msg00195.html > > breaks Linux targets which don't use PTRACE_GETFPXREGS. The problem is > has > > /* Single step the process. > This is not supported on all machines. */ > PTRACE_SINGLESTEP = 9, > #define PT_STEP PTRACE_SINGLESTEP > > /* Get all general purpose registers used by a processes. > This is not supported on all machines. */ > PTRACE_GETREGS = 12, > #define PT_GETREGS PTRACE_GETREGS > > /* Set all general purpose registers used by a processes. > This is not supported on all machines. */ > PTRACE_SETREGS = 13, > #define PT_SETREGS PTRACE_SETREGS > > /* Get all floating point registers used by a processes. > This is not supported on all machines. */ > PTRACE_GETFPREGS = 14, > #define PT_GETFPREGS PTRACE_GETFPREGS > > /* Set all floating point registers used by a processes. > This is not supported on all machines. */ > PTRACE_SETFPREGS = 15, > #define PT_SETFPREGS PTRACE_SETFPREGS > > /* Get all extended floating point registers used by a processes. > This is not supported on all machines. */ > PTRACE_GETFPXREGS = 18, > #define PT_GETFPXREGS PTRACE_GETFPXREGS > > /* Set all extended floating point registers used by a processes. > This is not supported on all machines. */ > PTRACE_SETFPXREGS = 19, > #define PT_SETFPXREGS PTRACE_SETFPXREGS > > You can't assume you can use PTRACE_GETFPXREGS if it is defined. Due > to that change, gdb won't build on Linux/mips. Well, that's kind of bogus! ;-( Seems to me that HAVE_PTRACE_GETFPXREGS should mean that we have ptrace_getfpxregs. Maybe MIPS should not define it if it doesn't use it. OK, I don't see how to resolve this easily -- I'll just remove the fpxregs from the gcore file for now (so that it will build for mips). > I am afraid the current > gdb from CVS may be broken even without that patch: > > # gcc -c -g -O2 -I. -I/home/hjl/work/gnu/src/gdb/gdb/gdb -I/home/hjl/work/gnu/src/gdb/gdb/gdb/config -DHAVE_CONFIG_H -I/home/hjl/work/gnu/src/gdb/gdb/gdb/../include/opcode -I/home/hjl/work/gnu/src/gdb/gdb/gdb/../readline/.. -I../bfd -I/home/hjl/work/gnu/src/gdb/gdb/gdb/../bfd -I/home/hjl/work/gnu/src/gdb/gdb/gdb/../include -I../intl -I/home/hjl/work/gnu/src/gdb/gdb/gdb/../intl -DMI_OUT=1 -DUI_OUT=1 -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wuninitialized /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c > /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c: In function > `enable_thread_event_reporting': > /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c:398: warning: cast from pointer to integer of different size > /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c:411: warning: cast from pointer to integer of different size > /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c: In function `thread_db_store_registers': > /home/hjl/work/gnu/src/gdb/gdb/gdb/thread-db.c:843: warning: passing arg 2 of pointer to function from incompatible pointer type Check the comment in gdb_proc_service.h (search for "Fix-up some broken systems"), and see if you may need to define PRFPREGSET_T_BROKEN. Michael