Bug 3160

Summary: ! ACE_TEMPLATES_REQUIRE_SOURCE, Solaris, SunStudio
Product: ACE Reporter: J.T. Conklin <jtc>
Component: ACE CoreAssignee: DOC Center Support List (internal) <tao-support>
Status: NEW ---    
Severity: normal CC: gbr
Priority: P3    
Version: 5.6.1   
Hardware: All   
OS: All   
Bug Depends on: 3159, 3158    
Bug Blocks:    

Description J.T. Conklin 2007-11-30 23:21:38 CST
Currently there are no systems on the ACE/TAO/CIAO scoreboard that do not define ACE_TEMPLATES_REQUIRE_SOURCE.  As a result, this option is rather fragile, since changes are made that should require the addition of an #include work without it because the headers have been implicitly #included through a template *.cpp.

The Solaris/SunStudio platform (at least Solaris 10+ / SunStudio 11+) has a working template repository mechanism, so although the canned config defines ACE_TEMPLATES_REQUIRE_SOURCE, it is not necessary.

I've cleaned up the most recent #include breakage by building with a platform_macros.GNU like:
  include ${ACE_ROOT}/include/makeinclude/platform_sunos5_sunc++.GNU

And with a config.h like:
  #include "ace/config-sunos5.10.h"
  #undef ACE_TEMPLATES_REQUIRE_SOURCE

and dealing with all the fallout.  Now all of ACE, and almost all of TAO (except for the issues outlined in bug #3158 and bug #3159) build and run.

Johnny asked me to file this bug so we can either change the Solaris/SunStudio platform config so it doesn't define ACE_TEMPLATES_REQUIRE_SOURCE, or we put a new config up on the scoreboard similar to the one I describe above to help prevent future breakage for platform configs where ACE_TEMPLATES_REQUIRE_SOURCE is not defined.