CA links in records were being removed without locking them first.
We also now set the link type to CONSTANT, which prevents some
assertion failures if the record gets processed again before the
IOC finally dies.
o removed function
epicsAtomicTestAndSetUIntT
o added new functions
epicsAtomicSetPtrT
epicsAtomicGetPtrT
epicsAtomicCmpAndSwapUIntT
epicsAtomicCmpAndSwapPtrT
o changed msvc intrinsics to define memory fence
o fixed mutex synchronized version so that its slow, but correct if the c++ compiler doesnt synchronized local scope static initialization
o changed most of the set/get methods to use memory barriers instead of some other primitive
o added additional tests
configure/os/CONFIG.Common.cygwin-x86
configure/os/CONFIG.Common.linux-x86
configure/os/CONFIG.Common.win32-x86-cygwin
configure/os/CONFIG.Common.win32-x86-mingw
added commented out "-march=i586" to
configure/os/CONFIG_SITE.cygwin-x86.cygwin-x86
configure/os/CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin
added "-march=i586" to (I know that this compiler currently defaults to 386)
configure/os/CONFIG_SITE.win32-x86-mingw.win32-x86-mingw
o removed -march=i586 from CONFIG.linux-x86.linux-x86
o fixed compile errors in epicsAtomicOSD.h (I didnt have the proper version of solaris for initial testing here)
o added CMPLR_SRC_DIRS to ALL_SRC_DIRS, and added compiler/$CMPLR_CLASS) to INSTALL_INCLUDES in CONFIG_COMMON
o added additional compiler specific rule deciding where things are installed to in CONFIG_COMMON
o added compiler specific include install to RULES_BUILD
o changed configure/os/CONFIG.linux-x86.linux-x86 to specify minimum arch is 586 (pentium circa 1995)
o changed configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin to specify minimum arch is 586 (pentium circa 1995)
o added epicsAtoimic facility to libCom/Makefile
o added testing and performance measurement to libCom/test/Makefile
This symbol is required to be visible on non-PowerPC (68k) vxWorks
systems for devInterruptInUseVME() to recognize interrupt vectors
that the devDisconnectInterruptVME() routine has marked as not used.
A rare race during shutdown. The contenders are the log thread
coming out of its loop and calling errlogCleanup(), and the
exitHandler signaling waitForWork.
This solution is to move cleanup completely into exitHandler,
which already waits for the log thread to exit.
Useful rules:
uninstall.<arch> - Remove bin & lib directories for <arch> only.
archuninstall - Remove bin & lib directories created by this hostarch.
realuninstall - Removes ALL install dirs
This fixes a problem in .st sequence programs that do this:
%%#include <vxWorks.h>
The pre-processor was replacing the token since the line is not a
pre-processor directive (yet) and it doesn't appear inside "quotes".
NB: This will break any code that is incorrectly using
#if vxWorks
instead of
#ifdef vxWorks