From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20513 invoked by alias); 4 Jun 2002 00:50:24 -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 20477 invoked from network); 4 Jun 2002 00:50:22 -0000 Received: from unknown (HELO potter.sfbay.redhat.com) (205.180.83.107) by sources.redhat.com with SMTP; 4 Jun 2002 00:50:22 -0000 Received: from localhost.localdomain (remus.sfbay.redhat.com [172.16.27.252]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id g540m5v23177; Mon, 3 Jun 2002 17:48:05 -0700 Subject: Re: PATCH: Use stabs for Linux/mips (Re: binutils is broken on ELF/MIPS) From: Eric Christopher To: "H . J . Lu" Cc: Jakub Jelinek , binutils@sources.redhat.com, GDB , gcc-patches@gcc.gnu.org In-Reply-To: <20020603165101.A2466@lucon.org> References: <20020602230331.A18107@lucon.org> <20020602231016.A18236@lucon.org> <20020603141808.GA24114@branoic.them.org> <20020603092959.A27426@lucon.org> <20020603104131.A28590@lucon.org> <20020603115703.A29881@lucon.org> <20020604003246.C20867@sunsite.ms.mff.cuni.cz> <20020603153716.A1294@lucon.org> <20020603162527.A2073@lucon.org> <20020603234058.GA2262@branoic.them.org> <20020603165101.A2466@lucon.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Mon, 03 Jun 2002 17:50:00 -0000 Message-Id: <1023151695.7834.33.camel@ghostwheel.cygnus.com> Mime-Version: 1.0 X-SW-Source: 2002-06/txt/msg00034.txt.bz2 > I tried a dirty, quick change enclosed. I still can't use gdb 5.2 to > debug gcc 3.1.1 on Linux/mipsel. I don't think it is a good idea to > make gcc 3.1.1 generate unusable debug info by default.. > Definitely not a huge fan of that patch. I have another one from Matt Green (attached) that I'm not ecstatic about either, but also seems to work. The correct answer is to make dwarf-2 work under mips. It may require some reworking though. -eric -- I will not carve gods * config/obj-elf.h (ECOFF_DEBUGGING): Define as a tested of debug_type being DEBUG_ECOFF, in the non MIPS_STABS_ELF case. * config/tc-mips.c (mips_nonecoff_pseudo_table): Point "file" at s_mips_file() and "loc" at s_mips_loc(). (s_file): Delete. (s_mips_file, s_mips_loc): New functions for ".file" and ".loc" support. Index: gas/config/obj-elf.h =================================================================== RCS file: /cvs/src/src/gas/config/obj-elf.h,v retrieving revision 1.15 diff -p -r1.15 obj-elf.h *** gas/config/obj-elf.h 8 Aug 2001 13:11:58 -0000 1.15 --- gas/config/obj-elf.h 28 May 2002 18:08:22 -0000 *************** extern int alpha_flag_mdebug; *** 51,57 **** #ifdef MIPS_STABS_ELF #define ECOFF_DEBUGGING 0 #else ! #define ECOFF_DEBUGGING 1 #endif /* MIPS_STABS_ELF */ #endif /* TC_MIPS */ --- 51,57 ---- #ifdef MIPS_STABS_ELF #define ECOFF_DEBUGGING 0 #else ! #define ECOFF_DEBUGGING (debug_type == DEBUG_ECOFF) #endif /* MIPS_STABS_ELF */ #endif /* TC_MIPS */ Index: gas/config/tc-mips.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-mips.c,v retrieving revision 1.115 diff -p -r1.115 tc-mips.c *** gas/config/tc-mips.c 4 Apr 2002 07:43:11 -0000 1.115 --- gas/config/tc-mips.c 28 May 2002 18:08:54 -0000 *************** static void s_mips_frame PARAMS ((int)); *** 749,755 **** static void s_mips_mask PARAMS ((int)); static void s_mips_stab PARAMS ((int)); static void s_mips_weakext PARAMS ((int)); ! static void s_file PARAMS ((int)); static int mips16_extended_frag PARAMS ((fragS *, asection *, long)); static const char *mips_isa_to_str PARAMS ((int)); static const char *mips_cpu_to_str PARAMS ((int)); --- 749,756 ---- static void s_mips_mask PARAMS ((int)); static void s_mips_stab PARAMS ((int)); static void s_mips_weakext PARAMS ((int)); ! static void s_mips_file PARAMS ((int)); ! static void s_mips_loc PARAMS ((int)); static int mips16_extended_frag PARAMS ((fragS *, asection *, long)); static const char *mips_isa_to_str PARAMS ((int)); static const char *mips_cpu_to_str PARAMS ((int)); *************** static const pseudo_typeS mips_nonecoff_ *** 882,891 **** {"end", s_mips_end, 0}, {"endb", s_ignore, 0}, {"ent", s_mips_ent, 0}, ! {"file", s_file, 0}, {"fmask", s_mips_mask, 'F'}, {"frame", s_mips_frame, 0}, ! {"loc", s_ignore, 0}, {"mask", s_mips_mask, 'R'}, {"verstamp", s_ignore, 0}, { NULL, NULL, 0 }, --- 883,892 ---- {"end", s_mips_end, 0}, {"endb", s_ignore, 0}, {"ent", s_mips_ent, 0}, ! {"file", s_mips_file, 0}, {"fmask", s_mips_mask, 'F'}, {"frame", s_mips_frame, 0}, ! {"loc", s_mips_loc, 0}, {"mask", s_mips_mask, 'R'}, {"verstamp", s_ignore, 0}, { NULL, NULL, 0 }, *************** get_number () *** 12938,12948 **** is an initial number which is the ECOFF file index. */ static void ! s_file (x) int x ATTRIBUTE_UNUSED; { ! get_number (); ! s_app_file (0); } /* The .end directive. */ --- 12939,12968 ---- is an initial number which is the ECOFF file index. */ static void ! s_mips_file (x) int x ATTRIBUTE_UNUSED; { ! if (ECOFF_DEBUGGING) ! { ! get_number (); ! s_app_file (0); ! } ! else if (debug_type == DEBUG_DWARF2) ! { ! dwarf2_directive_file (0); ! } ! } ! ! /* The .loc directive, ignored for everything but DWARF2. */ ! ! static void ! s_mips_loc (x) ! int x ATTRIBUTE_UNUSED; ! { ! if (debug_type == DEBUG_DWARF2) ! { ! dwarf2_directive_loc (0); ! } } /* The .end directive. */