This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC/RFA] (testsuite/Ada) Add gdb_compile_ada


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: gdb.exp.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]