From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18457 invoked by alias); 23 Apr 2005 12:33:15 -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 18380 invoked from network); 23 Apr 2005 12:33:08 -0000 Received: from unknown (HELO sibelius.xs4all.nl) (82.92.89.47) by sourceware.org with SMTP; 23 Apr 2005 12:33:08 -0000 Received: from elgar.sibelius.xs4all.nl (root@elgar.sibelius.xs4all.nl [192.168.0.2]) by sibelius.xs4all.nl (8.13.0/8.13.0) with ESMTP id j3NCX5f7009915; Sat, 23 Apr 2005 14:33:05 +0200 (CEST) Received: from elgar.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.13.4/8.13.3) with ESMTP id j3NCX5VI031732; Sat, 23 Apr 2005 14:33:05 +0200 (CEST) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.13.4/8.13.4/Submit) id j3NCWuZT029533; Sat, 23 Apr 2005 14:32:56 +0200 (CEST) Date: Sat, 23 Apr 2005 12:33:00 -0000 Message-Id: <200504231232.j3NCWuZT029533@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: davem@davemloft.net CC: gdb-patches@sources.redhat.com In-reply-to: <20050422153835.12aaf3c1.davem@davemloft.net> Subject: Re: [PATCH] Add sparc64-linux sigtramp support References: <20050420204427.20d670e6.davem@davemloft.net> <200504211923.j3LJNHo6010891@elgar.sibelius.xs4all.nl> <20050421122250.6108168c.davem@davemloft.net> <200504212120.j3LLKB42010991@elgar.sibelius.xs4all.nl> <20050421144901.6fa89749.davem@davemloft.net> <200504212209.j3LM9Z2a010525@elgar.sibelius.xs4all.nl> <20050422153835.12aaf3c1.davem@davemloft.net> X-SW-Source: 2005-04/txt/msg00296.txt.bz2 Date: Fri, 22 Apr 2005 15:38:35 -0700 From: "David S. Miller" Mark do you actually have a sparc-linux machine that you test your changes on? Your solaris2 tdep removal breaks even the most simplest debugging test case, there is no way you tested sparc64-linux debugging. I'm working on it now ;-). You're not calling sparc64_init_abi() anymore. Once you remove the call to sparc64_sol2_init_abi() it's not occuring at all. Sorry 'bout that. Thanks for fixing this. If you don't have a sparc*-linux machine to test your changes on, please at least run them by me quickly so I can run the testsuite on both 32-bit and 64-bit native Linux/Sparc. BTW, the plt entry size stuff is wrong. It was wrong for the solaris2 sparc64 target and it's wrong for the Linux target as well. They are variable in size, the first 64K of them are 16 bytes in size, then they become variable length sections of split instructions+data. Hmm, the SCD 2.4.1 document that I'm looking at now says there are 32K entries of 32 bytes followed by sections of 160 24-byte entries followed by 160 pointers. I'm not sure it really matters though. IIRC the most important thing is to avoid thinking that the PLT is a proper function that starts with setting up a stack frame. Did you notice any problems with the current code. That said, it looks like we should at least change the 16 into 32 and add a comment about the >32K PLT entries. I think we should instead either teach gdb how to really get the correct frame even in the funny PLT entry save/restore sequence (I had this working flawlessly a few years ago, I could resurrect that code) or we could do something similar to what the ppc-linux-tdep.c code does. I also think we should integrate the "PLT breakpoint avoidance" stuff they do there as well (and move that into a common file as the comment above it suggests). Looks to me as if the sparc PLT entries are deliberately constructed a way to avoid the PLT breakpoint issue the ppc-linux-tdep.c code tries to solve. That said, moving that code into a common file is probably a good idea. Mark