From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13828 invoked by alias); 5 Nov 2003 20:34:39 -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 13818 invoked from network); 5 Nov 2003 20:34:38 -0000 Received: from unknown (HELO touchme.toronto.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 5 Nov 2003 20:34:38 -0000 Received: from redhat.com (toocool.toronto.redhat.com [172.16.14.72]) by touchme.toronto.redhat.com (Postfix) with ESMTP id 4319780040B; Wed, 5 Nov 2003 15:34:38 -0500 (EST) Message-ID: <3FA95EDE.4000502@redhat.com> Date: Wed, 05 Nov 2003 20:34:00 -0000 From: "J. Johnston" Organization: Red Hat Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kevin Buettner Cc: gdb-patches@sources.redhat.com, marcel@xcllnt.net Subject: Re: RFA: ia64 patch required after recent osabi changes References: <3FA83E8D.8070709@redhat.com> <1031105022032.ZM25505@localhost.localdomain> In-Reply-To: <1031105022032.ZM25505@localhost.localdomain> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-11/txt/msg00065.txt.bz2 Kevin Buettner wrote: > 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...) > Don't worry, I always do. I had problems with line wrapping when I entered it. Patch checked in. This fixes the regression with the new osabi code and ia64 signal handling backtrace without having to remove the assertion. -- Jeff J.