Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@gnat.com>
To: gdb-patches@sources.redhat.com
Subject: [RFC/RFA] (testsuite/Ada) Add gdb_compile_ada
Date: Tue, 24 Feb 2004 19:56:00 -0000	[thread overview]
Message-ID: <20040224195615.GC542@gnat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2023 bytes --]

Hello,

Hmmm, dejagnu is still quite obscure for me, so I don't think I'll come
up with the perfect universal solution to add support for Ada testcases
right from the start... So instead I'll proceed tiny steps at a time...

First step: Being able to build most Ada programs. Let's first restrict
ourselves to Ada-only programs. Such a program necessarily have its
main program written in Ada. With GNAT, this main program must be
located in its own file. And to build the entire application, one
usually does:

        % gnatmake -g <filename>

where <filename> is the name of the file containing the main subprogram.
The extension may be omitted. Dependencies are automatically handled
by gnatmake.

In this patch, I suggest we defined a new function gdb_compile_ada in
lib/gdb.exp which will allow us to build Ada programs using the command
above.

I have a question: I am uncertain as to how cross targets are handled.
Suppose we built a powerpc-elf debugger. How does the testsuite know
which compiler to use. Does it have so machinery that will translate
gcc into powerpc-elf-gcc by default? Would the same apply to gnatmake
in gdb_compile_ada via target_compile?

In the medium term, we will want to improve gdb_compile_ada to allow
the testsuite to use different runtimes (we have sjlj exceptions vs
ZCX exceptions, longcall vs no-longcall, shared vs static) or different
options (we want to use -mieee on tru64 for instance). I believe this
should be easily done via the options field.

As for multilanguage examples, I'll leave that for later as well, but
I don't think that would be too big a problem.

2004-02-24  J. Brobecker  <brobecker@gnat.com>

        * lib/gdb.exp (gdb_compile_ada): New function.

Tested on x86-linux. I used that function to build a simple program,
and I was able to debug it.

Comments? Or, one can always dream, ok to apply?

The next steps will involve creating the gdb.ada directory, update
the configure scripts, and add our first example (the null record one).

Thanks,
-- 
Joel

[-- Attachment #2: gdb.exp.diff --]
[-- Type: text/plain, Size: 744 bytes --]

Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.49
diff -u -p -r1.49 gdb.exp
--- lib/gdb.exp	23 Feb 2004 19:27:46 -0000	1.49
+++ lib/gdb.exp	24 Feb 2004 19:50:10 -0000
@@ -1361,6 +1361,17 @@ proc gdb_compile_objc {source dest type 
     }
 }
 
+proc gdb_compile_ada {source dest type options} {
+    
+    lappend options "compiler=gnatmake"
+
+    set result [target_compile $source $dest $type $options]
+    if { $result != "" } {
+        verbose "target_compile failed: $result" 2
+        return "gdb_compile_ada failed: $result"
+    }
+}
+
 proc send_gdb { string } {
     global suppress_flag;
     if { $suppress_flag } {

             reply	other threads:[~2004-02-24 19:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-24 19:56 Joel Brobecker [this message]
2004-02-24 22:40 ` Joel Brobecker
2004-02-24 23:08 ` Joel Brobecker
2004-02-25 18:32   ` Joel Brobecker
2004-02-25 20:17     ` Daniel Jacobowitz
2004-02-26 22:37       ` Joel Brobecker
2004-02-26 23:02         ` Daniel Jacobowitz
2004-03-19  0:09           ` Joel Brobecker
2004-03-03  4:21             ` Joel Brobecker
2004-03-05  4:18             ` Daniel Jacobowitz
2004-03-05  6:03               ` Joel Brobecker
2004-03-05 16:48                 ` Daniel Jacobowitz
2004-03-19  0:09                   ` Daniel Jacobowitz
2004-03-26 23:42                   ` Joel Brobecker
2004-03-26 23:46                     ` Daniel Jacobowitz
2004-03-27  0:07                       ` Joel Brobecker
2004-03-19  0:09                 ` Joel Brobecker
2004-03-19  0:09               ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040224195615.GC542@gnat.com \
    --to=brobecker@gnat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox