From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3815 invoked by alias); 27 Nov 2012 19:13:19 -0000 Received: (qmail 3801 invoked by uid 22791); 27 Nov 2012 19:13:19 -0000 X-SWARE-Spam-Status: No, hits=-3.2 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Nov 2012 19:13:14 +0000 Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id qARJCrnW004141; Tue, 27 Nov 2012 20:12:53 +0100 (CET) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id qARJCoYL005563; Tue, 27 Nov 2012 20:12:51 +0100 (CET) Date: Tue, 27 Nov 2012 19:13:00 -0000 Message-Id: <201211271912.qARJCoYL005563@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: uweigand@de.ibm.com CC: dje.gcc@gmail.com, geoffk@geoffk.org, jakub@redhat.com, gcc-patches@gcc.gnu.org, binutils@sourceware.org, gdb-patches@sourceware.org In-reply-to: <201211271843.qARIhelr022639@d06av02.portsmouth.uk.ibm.com> (uweigand@de.ibm.com) Subject: Re: [RFC] Wrong register numbers in .dwarf_frame on Linux/PowerPC References: <201211271843.qARIhelr022639@d06av02.portsmouth.uk.ibm.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-11/txt/msg00777.txt.bz2 > Date: Tue, 27 Nov 2012 19:43:40 +0100 (CET) > From: "Ulrich Weigand" > > Mark Kettenis wrote: > > > Date: Mon, 26 Nov 2012 20:10:06 +0100 (CET) > > > From: "Ulrich Weigand" > > > > > > Hello, > > > > > > I noticed what appears to be a long-standing bug in generating .dwarf_frame > > > sections with GCC on Linux on PowerPC. > > > > > > ... > > > > > > So I'm wondering where to go from here. I guess we could: > > > > > > 1. Bring GCC (and gas) behaviour in compliance with the documented ABI > > > by removing the #undef DBX_REGISTER_NUMBER and changing gas's > > > md_reg_eh_frame_to_debug_frame to the original implementation from > > > Jakub's patch. That would make GDB work well on new files, but > > > there are a large number of binaries out there where we continue > > > to have the same behaviour as today ... > > > > > > 2. Leave GCC and gas as-is and modify GDB to expect GCC numbering in > > > .dwarf_frame, except for the condition code register. This would > > > break debugging of files built with GCC 4.0 and 4.1 unless we > > > want to add a special hack for that. > > > > > > 3. Like 2., but remove the condition code hack: simply use identical > > > numbers in .eh_frame and .dwarf_frame. This would make PowerPC > > > like other Linux platforms in that respect. > > > > > > Thoughts? > > > > What do other compilers (in particular XLC) do? From a GDB standpoint > > it would be a major PITA if different compilers would use different > > encodings for .dwarf_frame. > > In my tests XLC (version 12.1 on Linux) seems to consistently use the > GCC register numbering in both .eh_frame and .dwarf_frame. LLVM also > consistently uses the GCC register numbering. Looks like this would > be another argument for variant 3 ... Probably. Certainly the most practical solution. Although I'd say that the fact that people have been able to live with the non-matching register numbering schemes for so many years means that variant 1 wouldn't hurt people too badly. It's a bit of a shame that on one of the few architectures that bothered to provide a definition of the DWARF register numbers we wouldn't use it :(.