[M3devel] recent m3gdb does not want to compile

Elmar Stellnberger estellnb at yahoo.de
Thu Jun 11 21:29:58 CEST 2009


  As I still have the old PM3/EZM3 in use I do welcome the continuing
support for that kind of old compiler tech. Besides all these advanced
issues I still simply wonder on how to compile a current m3gdb. As
described earlier ./configure does not even find the standard utilities
like ar, as, etc. although they are on path:

../gdb/configure --target i686-pc-linux-gnu
checking for i686-pc-linux-gnu-ar... no
checking for i686-pc-linux-gnu-as... no

  I will be happy as soon as I can print global integer variables. I can
convert Text-vars to char* although that will cause little extra output.
The thing is that even some elder m3gdb that I still have a compilate of
can not print global vars for any kind of reason (perhaps it would be
necessary to update the codegen).

Rodney M. Bates schrieb:
> Jay wrote:
>> scripts/do-cm3-m3gdb.sh just cd's over to m3-sys/m3gdb and runs cm3.
>>  
>> m3gdb builds and seems to work fine for me.
>>  
>> Specifically, on AMD64_LINUX birch, I can both:
>>  
>> mkdir -p $HOME/obj/gdb
>> cd $HOME/obj/gdb
>> $HOME/dev2/cm3/m3-sys/m3gdb/gdb/configure && make
>> gdb/gdb gdb/gdb
>> break main
>> r
>>  
>> and
>>  
>> cd $HOME/dev2/cm3/m3-sys/m3gdb
>> rm -rf AMD64_LINUX
>> cm3
>>  
>>  
>> AMD64_LINUX/m3gdb AMD64_LINUX/m3gdb
>> break main
>> r
>>  
>>  
>> I haven't tried with Modula-3 code and/or stabs.
>>  
>>  
>> Updating from the 2005 6.4 release to a current 6.8 release is
>> probably advisable anyway.
>>  
>>  
>> But again, um, er, could we maybe adapt the generated code so that
>> plain gdb is all anyone would need/want?
> I don't think so.  There is ~ 20K lines of Modula-3-specific code in
> m3gdb, and I have tens of
> pages of handwritten lists of more that ought to be done to make it a
> nice M3 debugger.
> I think doing it all could easily double this.   The variable reference
> rules are different
> from C/C++, for example, because of the link between a module and its
> exported
> interface(s).
> 
> The global variable thing is just the tip of the iceberg.  For example,
> there is a whole lot
> to making procedure calls and method calls work.  Ditto for nested
> procedures, which,
> after several iterations, is broken again by the change to the newest
> gcc as the base for
> the code generator, although it works somewhat.  Note that gdb provides
> no real
> support for nested functions in C, even though gcc supports them as an
> extension to C.
> Probably, they are little used in C.  I use them a lot in M3.
> 
> Then there are just all the language-specific formats for input and
> output values,
> and expression syntax.  Plus, Modula-3, being a considerably
> higher-level language,
> (at least optionally,) has a significant runtime system, and m3gdb needs
> to know \
> quite a bit about that too.   Real arrays and open arrays also need
> support.  And
> TEXT is a lot different.
> 
> 
> There are also some significant differences between cm3 and the earlier
> compilers.
> I have taken the position that support for the older ones should remain,
> along with
> new stuff too.
> 
> 
> What we should do, in addition to updating to newest gdb, is change from
> stabs to
> dwarf2 debug info format, which is *much* richer in what it can
> express.  stabs was
> something of a cobbled up mess to begin with, and the M3-specific
> extensions to it
> only make it worse.  There's a lot of what has to be seen as very
> arbitrary stuff,
> not really stabs,  wrapped inside of some of the character strings that
> stabs has. This change would require a significant amount of code in the
> compiler, as well
> as in m3gdb.
> 
> 
> Someday, it might also be nice to try to get the m3 changes rolled in to
> the stock
> gdb.  This would require a serious commitment to maintain them there. 
> Also, there
> are some copyright assertions that DEC put in to some of the code that,
> I believe
> were in violation of the GPL.   We would have to somehow get a
> determination that
> the copyright ownership could be transferred to FSF, to their
> satisfaction.  All the
> more difficult with DEC's identity having changed twice.  IANAL.
>>  
>>  
>> Cygwin fork being so slow makes me want to optimize out such large
>> pieces as building gdb.
>> Maybe I can figure out a way to speed up Cygwin fork some day...
>>  
>>  
>>  - Jay
>>  
>>
> 
> 




More information about the M3devel mailing list