From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1720 invoked by alias); 9 Jun 2002 19:15:33 -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 1713 invoked from network); 9 Jun 2002 19:15:27 -0000 Received: from unknown (HELO localhost.redhat.com) (24.112.240.27) by sources.redhat.com with SMTP; 9 Jun 2002 19:15:27 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 91B413EA5; Sun, 9 Jun 2002 15:15:16 -0400 (EDT) Message-ID: <3D03A944.1000704@cygnus.com> Date: Sun, 09 Jun 2002 12:15:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0rc3) Gecko/20020530 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com, cagney@redhat.com Subject: Re: RFA: MIPS ABI selection References: <20020609031656.GA2529@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-06/txt/msg00151.txt.bz2 > The current state of the world in GCC says: a handful of setups default to > unique ABIs, but the global default is O32. The default is also to pass no > ABI flags to the assembler. > > elf64.h, iris6.h, isa3264.h, and r3900.h override this. Irix defaults to > N32 and passing -n32 which presumably tags binaries; plus the irix > configuration in GDB can handle this. elf64.h does not do pass any flags > but defaults to O64. isa3264.h defaults to MEABI and appears not to tag > binaries. r3900.h defaults to EABI and untagged binaries. > > That's mipsisa32-*-elf*, mips64*-*-elf*, mipstx39*-*-elf*, > mips-sgi-irix5cross64, and mips-sgi-irix6*. > > So what's a debugger to do? Right now, we try to infer things from our > header files, but only little details of the ABI. In particular, we never > infer O32 correctly. Better would be to match GCC; that's quite > straightforward. > I skipped mipsisa32-*-elf*, because GDB doesn't support MEABI. So this > patch fixes the defaults for mips64*-*-elf* and mipstx39*-*-elf*, and a > little tweaking for IRIX. It then adds a global O32 default. In the > process I found another way that GCC tags binaries with their ABI: a > ".mdebug.abi32", etc. section. I handle that too. All appears to work like > a charm. We even get warnings for MEABI etc. binaries. > > Andrew, this look OK? Hmm, this contains several changes: -- The function mips_find_abi_section() that better identifies the ABI. Yes. This is definitly a good idea and approved. -- Adding the macro MIPS_DEFAULT_ABI to all MIPS targets. Remember, all the mips/tm-*.h files are going away so this isn't really going to help. Instead, I think a ``(gdb) set mips abi .. auto o32 ...'' command would be far more useful. Another place the code could look is the ABI from the previous architecture. -- Some additional MIPS targets Er, we're trying to get the number of MIPS targets down to zero. enjoy, Andrew