cplusInit.cpp
上传用户:baixin
上传日期:2008-03-13
资源大小:4795k
文件大小:2k
开发平台:

MultiPlatform

  1. /* cplusInit.C - initialize run-time support for C++  */
  2. /* Copyright 1993 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 02h,19mar02,sn   SPR 71699 - decouple from cplusUsr.o; general clean up
  8. 02g,06nov01,sn   include <exception> rather than prototyping set_terminate
  9.                  (fixed Diab build failure)
  10. 02f,11oct00,sn   break out INCLUDE_CPLUS_LIBGCC as a seperate (but required!) 
  11.                  component
  12. 02e,11oct98,ms   reworked 02d fix, since it was causing bootrom builds to fail
  13. 02d,08oct98,sn   moved defn of cplusXtorStrategy from cplusUsr.cpp to here
  14. 02c,17sep98,ms   removed force-links of loader support modules
  15. 02b,16jan98,sn   add force-link of 'new-style' new/delete
  16. 02a,15jan98,sn   add force-link of exception handling/RTTI
  17. 01f,20jun95,srh  remove force-link of iostreams.
  18. 01e,18jun95,srh  change cplusCfront to cplusCore.
  19. 01d,18jun93,jdi  more doc cleanup.
  20. 01c,03jun93,srh  doc cleanup
  21. 01b,23apr93,srh  implemented new force-link/initialization scheme
  22. 01a,23apr93,srh  written.
  23. */
  24. /*
  25. DESCRIPTION
  26. This module defines cplusLibInit, and implements a scheme that forces
  27. most of the WindC++ run-time support to be linked with VxWorks.
  28. Initialization is actually performed by cplusLibMinInit(), which is
  29. defined elsewhere.
  30. NOMANUAL
  31. */
  32. /* Includes */
  33. #include "vxWorks.h"
  34. #include "cplusLib.h"
  35. #include <exception>
  36. /* Defines */
  37. /* Globals */
  38. /* Locals */
  39. extern char __cplusCore_o;
  40. extern char __cplusStr_o;
  41. extern char __cplusXtors_o;
  42. char * __cplusObjFiles [] =
  43.     {
  44.     & __cplusCore_o,
  45.     & __cplusStr_o,
  46.     & __cplusXtors_o
  47.     };
  48. /* Forward declarations */
  49. /*******************************************************************************
  50. *
  51. * cplusLibInit - initialize the C++ library (C++)
  52. *
  53. * This routine initializes the C++ library and forces all C++ run-time support
  54. * to be linked with the bootable VxWorks image.  If INCLUDE_CPLUS is defined
  55. * in configAll.h, cplusLibInit() is called automatically from the root task,
  56. * usrRoot(), in usrConfig.c.
  57. *
  58. * RETURNS: OK or ERROR.
  59. */
  60. extern void cplusTerminate ();
  61. extern "C" STATUS cplusLibInit (void)
  62.     {
  63. /* We do this here to avoid pulling in exception handling code with
  64.  * INCLUDE_CPLUS_MIN
  65.  */
  66.     set_terminate (cplusTerminate);
  67.     return cplusLibMinInit ();
  68.     }