From patchwork Wed Jan 14 15:04:27 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Pierre Muller X-Patchwork-Id: 4684 Received: (qmail 5752 invoked by alias); 14 Jan 2015 15:04:44 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 5738 invoked by uid 89); 14 Jan 2015 15:04:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL, BAYES_00, MSGID_MULTIPLE_AT autolearn=no version=3.3.2 X-HELO: mailhost.u-strasbg.fr Received: from mailhost.u-strasbg.fr (HELO mailhost.u-strasbg.fr) (130.79.222.211) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 14 Jan 2015 15:04:39 +0000 Received: from mailhost.u-strasbg.fr (localhost [127.0.0.1]) by antispam (Postfix) with ESMTP id 42E4B220F14; Wed, 14 Jan 2015 16:04:36 +0100 (CET) Received: from mailhost.u-strasbg.fr (localhost [127.0.0.1]) by antivirus (Postfix) with ESMTP id 3463B220F12; Wed, 14 Jan 2015 16:04:36 +0100 (CET) Received: from lmr.u-strasbg.fr (lmr1.u-strasbg.fr [172.30.21.1]) by mr1.u-strasbg.fr (Postfix) with ESMTP id 086DB220F19; Wed, 14 Jan 2015 16:04:32 +0100 (CET) Received: from lmr.u-strasbg.fr (localhost [127.0.0.1]) by antivirus (Postfix) with ESMTP id C9A66BD; Wed, 14 Jan 2015 16:04:32 +0100 (CET) Received: from E6510Muller (gw-ics.u-strasbg.fr [130.79.210.225]) (Authenticated sender: mullerp) by lmr1.u-strasbg.fr (Postfix) with ESMTPSA id 59CB0AF; Wed, 14 Jan 2015 16:04:29 +0100 (CET) From: "Pierre Muller" To: "'Doug Evans'" Cc: "'Pedro Alves'" , "'gdb-patches'" References: <54ae4586.01e3440a.7b06.fffff844SMTPIN_ADDED_BROKEN@mx.google.com> <54AE605A.8050308@redhat.com> <54ae7f9f.c323460a.36ed.ffffff30SMTPIN_ADDED_BROKEN@mx.google.com> <54AE8914.4010507@redhat.com> <54ae911b.85e3440a.1d96.5ffdSMTPIN_ADDED_BROKEN@mx.google.com> <54AFB2E5.5080307@redhat.com> <54afff61.6790420a.0fa7.4f63SMTPIN_ADDED_BROKEN@mx.google.com> <54b07891.01b3c20a.2a7b.ffff9f96SMTPIN_ADDED_BROKEN@mx.google.com> In-Reply-To: Subject: [RFA PATCH 2/3 V2] Add "class" option for pascal compiler Date: Wed, 14 Jan 2015 16:04:27 +0100 Message-ID: <000301d0300b$65acc7a0$310656e0$@muller@ics-cnrs.unistra.fr> MIME-Version: 1.0 > -----Message d'origine----- > De : gdb-patches-owner@sourceware.org [mailto:gdb-patches- > owner@sourceware.org] De la part de Doug Evans > Envoyé : samedi 10 janvier 2015 22:23 > À : Pierre Muller > Cc : Pedro Alves; gdb-patches > Objet : Re: [RFA PATCH 2/3] Add debug-stabs debug-dwarf and class > option for pascal compiler > > On Fri, Jan 9, 2015 at 4:55 PM, Pierre Muller > wrote: > >> Hi. > >> This patch makes me uncomfortable. > >> It's to a pascal specific file, so at least the discomfort is > contained > >> :-), > >> but I wouldn't want this spreading. > >> > >> How to select debug information should be > >> orthogonal to compilation language, > >> and there are a myriad of ways to select what kind of dwarf debug > info > >> to get (with/without type units, with/without .gdb_index, > with/without > >> dwz, and so on). I have board files to help me drive the various > >> combinations I'm interested in. This won't work if gdb.pascal/* > >> starts hardcoding debug info into the test. > >> > >> Maybe there's a good reason to do it this way for pascal, > >> but I need more data. > > > > Hi Doug, the reasons of this patch are: > > > > 1) the particular problem that the series fixes is strictly limited > > to stabs debugging information. > > > > Thus to really test that this bug has been fixed, I need to compile > > the test code using stabs debugging format (which I now realize > > I did not do in the third part of the patch series). > > > > 2) the pascal language support tries to support both > > GNU pascal compiler (aka GPC) and Free Pascal Compiler (aka FPC). > > > > These two compilers have very different options, > > so the submitted patch purpose is to unify the selection of stabs > versus dwarf > > debug format independently from the used pascal compiler. > > > > For other pascal tests, only debug is used, which results in the > default > > format according to the target architecture and operating system. > > > > I hope that the explanations above are sufficient to ease your > discomfort. > > Yeah, I figured those are the reasons, but I dunno. > We're inventing something new here when existing mechanisms > can already handle this. > > One *could* have the test be debug-format agnostic, > and to test with stabs just do > make check RUNTESTFLAGS=--target_board=stabs > > If you're using stabs you'll want to run the whole testsuite with stabs > anyway. > > Plus if a compiler has a different spelling for -gstabs, one could > have another board file for that compiler: you'll want to run the > whole testsuite > with that compiler anyway. > > make check RUNTESTFLAGS="gdb.pascal/*.exp --target_board=fpc-stabs" > > or some such. > > Obviously, by "whole testsuite" I mean the pascal parts. > So that raises a question that may help guide the discussion. > When testing with fpc, how do you run the testsuite? > Do you just run the pascal subset, gdb.pascal/*.exp? > Or do you run the WHOLE testsuite (i.e., gdb.*/*.exp), > e.g., just a plain "make check" > and expect the test harness to pick up fpc and DTRT. > How do other languages handle this I wonder. > > I'm not totally opposed to this (I don't like to say "No."), > but I'm still uncomfortable with the patch. OK, so let's do it that way: I removed the part you are uncomfortable with and simplify the part 2 to only add the new "class" option, see updated patch below. I can always resubmit this later if I really feel that it is useful, but I admit that your point about the default debug mode is valid. Is the modified patch series OK for you? Pierre Muller as pascal language maintainer gdb/testsuite ChangeLog entry: 2015-01-14 Pierre Muller * lib/pascal.exp (gpc_compile): Add new option "class". (fpc_compile): Likewise. --- gdb/testsuite/lib/pascal.exp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gdb/testsuite/lib/pascal.exp b/gdb/testsuite/lib/pascal.exp index 994e3da..7b8b0e0 100644 --- a/gdb/testsuite/lib/pascal.exp +++ b/gdb/testsuite/lib/pascal.exp @@ -91,6 +91,13 @@ proc gpc_compile {source dest type options} { append add_flags " -g" } } + if { $i == "class" } { + if [board_info $dest exists pascal_class_flags] { + append add_flags " [board_info $dest pscal_class_flags]" + } else { + append add_flags " --extended-syntax" + } + } } set result [remote_exec host $gpc_compiler "-o $dest --automake $add_flags $source"] @@ -120,6 +127,13 @@ proc fpc_compile {source dest type options} { append add_flags " -g" } } + if { $i == "class" } { + if [board_info $dest exists pascal_class_flags] { + append add_flags " [board_info $dest pscal_class_flags]" + } else { + append add_flags " -Mobjfpc" + } + } } set result [remote_exec host $fpc_compiler "-o$dest $add_flags $source"]