This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA PATCH 2/3 V2] Add "class" option for pascal compiler
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: "'Doug Evans'" <dje at google dot com>
- Cc: "'Pedro Alves'" <palves at redhat dot com>, "'gdb-patches'" <gdb-patches at sourceware dot org>
- Date: Wed, 14 Jan 2015 16:04:27 +0100
- Subject: [RFA PATCH 2/3 V2] Add "class" option for pascal compiler
- Authentication-results: sourceware.org; auth=none
- References: <54ae4586 dot 01e3440a dot 7b06 dot fffff844SMTPIN_ADDED_BROKEN at mx dot google dot com> <54AE605A dot 8050308 at redhat dot com> <54ae7f9f dot c323460a dot 36ed dot ffffff30SMTPIN_ADDED_BROKEN at mx dot google dot com> <54AE8914 dot 4010507 at redhat dot com> <54ae911b dot 85e3440a dot 1d96 dot 5ffdSMTPIN_ADDED_BROKEN at mx dot google dot com> <54AFB2E5 dot 5080307 at redhat dot com> <54afff61 dot 6790420a dot 0fa7 dot 4f63SMTPIN_ADDED_BROKEN at mx dot google dot com> <CADPb22TZH+Ab6xLi_pKspY1xeh76Ms7G5r2r_KcMEHn2pWd2tw at mail dot gmail dot com> <54b07891 dot 01b3c20a dot 2a7b dot ffff9f96SMTPIN_ADDED_BROKEN at mx dot google dot com> <CADPb22TC0Ftf59jM388FSdF7L8jz-Oav3PYYrq5N8KYVU8Z_uQ at mail dot gmail dot com>
> -----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
> <pierre.muller@ics-cnrs.unistra.fr> 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 <muller@soureware.org>
* 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"]
--
2.1.1