ACE/TAO on RTEMS

efren serra efren.serra at eng.sun.com
Fri Mar 16 17:13:08 UTC 2001


Joel Sherrill wrote:
> 
> Hi,
> 
> I am havnig some initial success building ACE/TAO.  I have
> managed to build ACE and link all the tests without error.
> I am now compiling TAO.  It appears that the ACE test executables
> are quite large.  Any thoughts:
> 
> bash$ sparc-rtems-size *Test
>    text    data     bss     dec     hex filename
> 2156192  139232   43796 2339220  23b194 ARGV_Test
> 2156448  139104   43796 2339348  23b214 Aio_Platform_Test
> 2158960  139888   43796 2342644  23bef4 Atomic_Op_Test
> 2164400  140016   43796 2348212  23d4b4 Auto_IncDec_Test
> 2156928  139104   43796 2339828  23b3f4 Barrier_Test
> 2155728  139136   43796 2338660  23af64 Basic_Types_Test
> 2167744  140592   43796 2352132  23e404 Buffer_Stream_Test
> 2247104  142688   43796 2433588  252234 CDR_File_Test
> 2207968  141376   43796 2393140  248434 CDR_Test
> 2263824  144928   43796 2452548  256c44 Cache_Map_Manager_Test
> 2378256  157392   43796 2579444  275bf4 Cached_Accept_Conn_Test
> 2359312  154544   43796 2557652  2706d4 Cached_Conn_Test
> 2204864  141872   43796 2390532  247a04 Capabilities_Test
> ....
> 
> I am looking at real .text, not executable file size so that
> mistake is out.
> 
> This is a lot of C++ code so there might be some bad combination
> of options that is contributing to things.  The compile options
> are "-fno-implicit-templates -fno-rtti -DACE_LACKS_RTTI ".  Could
> I do better?
> 

Shoel, compile with -fexternal-templates; this is what man g++ says
on this:

-fexternal-templates
          Produce smaller code for template declarations, by gen-
          erating  only  a  single copy of each template function
          where it is defined.  To use this option  successfully,
          you  must  also  mark all files that use templates with
          either `#pragma  implementation'  (the  definition)  or
          `#pragma interface' (declarations).

          When your code is compiled with `-fexternal-templates',
          all  template  instantiations  are  external.  You must
          arrange for all necessary instantiations to  appear  in
          the implementation file; you can do this with a typedef
          that references each instantiation needed.  Conversely,

GNU Tools            Last change: 30apr1993                     2

GNU Tools                                                  G++(1)

          when    you    compile   using   the   default   option
          `-fno-external-templates', all template  instantiations
          are explicitly internal.

This is will be handy if the STL is used for STL is implemented
in the .h files.

> I know ACE/TAO can be subsetted but am not looking at that since
> I am focuing on building everything. :)
> 
> --
> Joel Sherrill, Ph.D.             Director of Research & Development
> joel at OARcorp.com                 On-Line Applications Research
> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>    Support Available             (256) 722-9985

-- 
-efren-



More information about the users mailing list