From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27220 invoked by alias); 8 Nov 2004 23:50:44 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 27043 invoked from network); 8 Nov 2004 23:50:32 -0000 Received: from unknown (HELO dberlin.org) (68.164.203.246) by sourceware.org with SMTP; 8 Nov 2004 23:50:32 -0000 Received: from [127.0.0.1] (HELO dberlin.org) by dberlin.org (CommuniGate Pro SMTP 4.2.6) with ESMTP-TLS id 7447655; Mon, 08 Nov 2004 18:50:31 -0500 Date: Mon, 08 Nov 2004 23:55:00 -0000 From: Daniel Berlin To: Thiemo Seufer cc: James E Wilson , Mark Kettenis , echristo@redhat.com, gdb@sources.redhat.com, gcc@gcc.gnu.org, binutils@sources.redhat.com Subject: Re: Mixing 32-bit and 64-bit DWARF2/3 sections In-Reply-To: <20041108233732.GH22577@rembrandt.csv.ica.uni-stuttgart.de> Message-ID: References: <200411071428.iA7ES7Fx003013@elgar.sibelius.xs4all.nl> <418FDD06.9030404@specifixinc.com> <200411082204.iA8M4jws088177@elgar.sibelius.xs4all.nl> <1099955006.7589.43.camel@aretha.corp.specifixinc.com> <20041108233732.GH22577@rembrandt.csv.ica.uni-stuttgart.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-SW-Source: 2004-11/txt/msg00069.txt.bz2 On Tue, 9 Nov 2004, Thiemo Seufer wrote: > James E Wilson wrote: > [snip] >> Besides the technical details, you will also need to get political buy >> in from affected parties for an ABI change, which means mainly the >> GNU/Linux mips64 folks. > > FWIW, I doubt going back unconditionally to a 32bit format is the right > thing to do for a fully 64bit ABI. Applications tend to grow further, > as does the accompanying debug info, so the 32bit limit comes closer. DWARF3, which is what gcc emits, is 32 bit by "default", but if it became necessary, it (DWARF3) supports 64 bit sizes/offsets/etc and can output them. The main difference between SGI's 64 bit-only dwarf2, and DWARF3's 64bit dwarf2 is that DWARF3 allows you to mix 32 bit and 64 bit compilation units ( you just can't mix 32 bit and 64 bit *in* a single compilation unit). SGI doesn't allow you to do this. DWARF3 accomplishes this by using a 32 bit 0xffffffff as the initial length in the compilation unit to signal that this is really 64 bit, which is followed by a 64 bit real length. SGI does no such thing, they simply use a 64 bit initial length, which means you don't know whether you have 32 bit or 64 bit unless the ABI tells you it must be one or the other. In short, there is no limitation in dwarf3 that SGI is solving. It's just a matter of them not solving it in a backwards compatible way, and everyone else paying the consequences :) --Dan