This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] Use DW_CC_program to indicate Fortran main subroutine
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: Wu Zhou <woodzltc at cn dot ibm dot com>, gcc-patches at gcc dot gnu dot org, gdb-patches at sourceware dot org, pinskia at gcc dot gnu dot org
- Date: Mon, 21 Nov 2005 09:14:20 -0500
- Subject: Re: [RFC] Use DW_CC_program to indicate Fortran main subroutine
- References: <Pine.LNX.4.63.0511211220260.28728@linux.site> <20051121051017.GA12030@nevyn.them.org>
On Mon, 2005-11-21 at 00:10 -0500, Daniel Jacobowitz wrote:
> On Mon, Nov 21, 2005 at 12:44:33PM +0800, Wu Zhou wrote:
> > Hello GCC and GDB maintainers,
> >
> > We ever discussed about how to indicate the main subroutine of fortran
> > and java code with DWARF info (GCC PR 23280, 1427 and 10220; GDB PR 822).
> > My point is that DW_CC_program might be the final solution. Here is what
> > DWARF standard said about this:
> >
> > If the semantics of the language of the compilation unit containing the
> > subroutine entry distinguishes between ordinary subroutines and
> > subroutines that can serve as the main program, that is, subroutines
> > that cannot be called directly according to the ordinary calling
> > conventions, then the debugging information entry for such a subroutine
> > may have a calling convention attribute whose value is the constant
> > DW_CC_program.
> >
> > The DW_CC_program value is intended to support Fortran main programs. It
> > is not intended as a way of finding the entry address for the program.
>
> The compiler patch I can't comment on...
>
> As for calling set_main_name, I don't know if this is right or not. I
> guess it depends what the DWARF folks meant by "not intended as a way
> of finding the entry address for the program".
It means it wasn't intended to be reused for this purpose, AFAIK.
:)
> Can a Fortran binary
> have more than one "main program"?
>
> If they only meant "it does not indicate the address you can jump to in
> order to start", then this seems quite reasonable.
>
> If that's the case then it should work for gcj too. You'll have a
> function named main, with no special debug info, and also a function
> with DW_CC_program at the real entry point.
I remember asking Wu to file an issue with the dwarf working group, and
that issue was resolved by deferring to DWARF 4 for now.
See
http://dwarf.freestandards.org/ShowIssue.php?issue=050808.2&type=closed
For now, why don't we just add a new vendor attribute?
DW_AT_GNU_main