=== modified file 'src/libCom/osi/os/vxWorks/atReboot.cpp' --- src/libCom/osi/os/vxWorks/atReboot.cpp 2008-05-01 14:38:55 +0000 +++ src/libCom/osi/os/vxWorks/atReboot.cpp 2013-04-24 17:12:26 +0000 @@ -16,17 +16,11 @@ #include "epicsDynLink.h" #include "epicsExit.h" -/* osdThread references atRebootExtern just to make this module load*/ -int atRebootExtern; +extern "C" { typedef int (*sysAtReboot_t)(void(func)(void)); -class atRebootRegister { -public: - atRebootRegister(); -}; - -atRebootRegister::atRebootRegister() +void atRebootRegister(void) { STATUS status; sysAtReboot_t sysAtReboot; @@ -46,4 +40,4 @@ } } -static atRebootRegister atRebootRegisterObj; +} === modified file 'src/libCom/osi/os/vxWorks/osdThread.c' --- src/libCom/osi/os/vxWorks/osdThread.c 2012-06-18 19:52:03 +0000 +++ src/libCom/osi/os/vxWorks/osdThread.c 2013-04-24 17:11:05 +0000 @@ -43,12 +43,8 @@ static const unsigned stackSizeTable[epicsThreadStackBig+1] = {4000*ARCH_STACK_FACTOR, 6000*ARCH_STACK_FACTOR, 11000*ARCH_STACK_FACTOR}; -/*The following forces atReboot to be loaded*/ -extern int atRebootExtern; -static struct pext { - int *pExtern; - struct pext *pext; -} pext = {&atRebootExtern, &pext}; +/* This routine is found in atReboot.cpp */ +extern void atRebootRegister(void); /* definitions for implementation of epicsThreadPrivate */ static void **papTSD = 0; @@ -93,6 +89,7 @@ epicsThreadOnceMutex = semMCreate( SEM_DELETE_SAFE|SEM_INVERSION_SAFE|SEM_Q_PRIORITY); assert(epicsThreadOnceMutex); + atRebootRegister(); } lock = 0; }