[C++-SIG] Restarting

Marc Poinot poinot at onera.fr
Thu Apr 29 17:40:43 CEST 1999


Geoffrey Furnish wrote:
> 
>  > - We cannot compile CXX_* here, even if we've
>  >   a pretty good set of almost-ISO compliant
>  >   compilers (DEC, SGI, SUN, and EGCS).
> 
> Could you post the versions of each of these compilers?  And the
> failure mode for each?  Paul's CXX stuff didn't use member templates,
> so it /really should/ work with all those compilers.  He did use
> namespace Py, which wasn't in Sun C++ 4.2, but is now in 5.0.  I know
> that SGI C++ 7.2+ have the features needed to do CXX as well.  For
> egcs, you'll need a recent snapshot.
> 
Hmmm... we're late: SGI 7.1, Sun is 4.? and DEC is 6.1, EGCS is 1.1.2
Or you're too fast ?

>  > - EGCS doesn't handle automatic instanciation
>  >   elsewhere than Sun and Linux. We use both
>  >   automatic and explicit with our application
>  >   and it's not-funny and difficult work. But
>  >   we *want* our application run on many platforms.
> 
> Uhh, this doesn't sound right.  egcs does do--or is supposed to
> do--automatic instantiation on all targets.  egcs uses an
> instantiation model sort of like what people call "the Borland model",
> (or like what EDG variants call "-pta", if I am remembering right)
> where the instantiations of /anything seen/ are put in every
> translation unit, with weak linkage.  So, it really ought to work.  If
> you could post your actual failure logs, maybe we could figure out
> what is going on.  Perhaps there was a target specific biff in the
> snapshot you're using.  19990428 is now up on egcs.cygnus.com.
> 
Here is a part of our egcs info file:

   When used with GNU ld version 2.8 or later on an ELF system such as
Linux/GNU or Solaris 2, or on Microsoft Windows, g++ supports the
Borland model.  On other systems, g++ implements neither automatic
model.

   A future version of g++ will support a hybrid model whereby the
compiler will emit any instantiations for which the template definition
is included in the compile, and store template definitions and
instantiation context information into the object file for the rest.
The link wrapper will extract that information as necessary and invoke
the compiler to produce the remaining instantiations.  The linker will
then combine duplicate instantiations.

   In the mean time, you have the following options for dealing with
template instantiations:

etc...

Marcvs [alias But I'm going to look for a new version of EGCS...]




More information about the Cplusplus-sig mailing list