From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19599 invoked by alias); 5 Nov 2003 02:20:42 -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 19592 invoked from network); 5 Nov 2003 02:20:41 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 5 Nov 2003 02:20:41 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id hA52KfM04780 for ; Tue, 4 Nov 2003 21:20:41 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id hA52Kd611488; Tue, 4 Nov 2003 21:20:39 -0500 Received: from localhost.localdomain (vpn50-2.rdu.redhat.com [172.16.50.2]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id hA52KcJm027663; Tue, 4 Nov 2003 21:20:38 -0500 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id hA52KWL25506; Tue, 4 Nov 2003 19:20:32 -0700 Date: Wed, 05 Nov 2003 02:20:00 -0000 From: Kevin Buettner Message-Id: <1031105022032.ZM25505@localhost.localdomain> In-Reply-To: "J. Johnston" "RFA: ia64 patch required after recent osabi changes" (Nov 4, 7:04pm) References: <3FA83E8D.8070709@redhat.com> To: "J. Johnston" , gdb-patches@sources.redhat.com, kevinb@redhat.com Subject: Re: RFA: ia64 patch required after recent osabi changes Cc: marcel@xcllnt.net MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-11/txt/msg00055.txt.bz2 On Nov 4, 7:04pm, J. Johnston wrote: > The latest changes by Mark K. have caused regressions in the ia64 signal handler > back-tracing. What happens is that the ia64_gdbarch_init function is called > without a bfd to calculate the os_ident field. The os_ident field is later used > to set up the gdbarch_tdep structure which contains the sigcontext register > address function address. We end up with an os_ident of -1 and don't set up the > sigcontext register address function pointing to the ia64-linux-tdep.c function. > This kills backtracing across signal handlers because we can't figure out the > previous ip value without fishing it out of the sigcontext area. > > After discussing this with Andrew, it appears the ia64 code is a bit old. The > info.osabi field is set properly so we don't have to calculate the os_ident. > This patch removes the gdbarch_tdep os_ident field and uses instead the > info.osabi field in ia64_gdbarch_init. It also copies code from i386 which > looks for a gdbarch candidate. This code is much more efficient than the old code. > > With this patch, the ia64 signal backtracing works again and there are no > regressions in the testsuite. > > Ok to commit? > > -- Jeff J. > > 2003-11-04 Jeff Johnston > > * ia64-tdep.c (struct gdbarch_tdep): Remove os_ident field. > (ia64_gdbarch_init): Don't bother calculating the os. Instead use the > gdbarch_info struct and look at the osabi field. Also use > gdbarch_list_lookup_by_info() to look for a candidate gdbarch. Approved. (But watch the line lengths on your ChangeLog entry when you check it in...) Thanks, Kevin