Replace the buggy local copies of the functions UnixPath(),
LocalPath(), readRelease() and expandRelease() with the
library versions from our EPICS::Path and EPICS::Release
perl modules.
If two targets using the same OS are built in parallel,
they can both try to install the same include/os/* file
at the same time, causing the installEpics.pl script to
die. We fix this by making all installations atomic:
First copy the file to the installation directory using
a unique name, then rename it to the target name. The
target name is in the same directory and filesystem as
the temporary name, so the rename should be atomic.
o fixed launchpad epics base bug 878387
o added regression test for bug 878372
o build the optional test and diagnostic codes for all (not just vxWorks) IOCs
o added acctstRegister optional IOC shell registration for regression tests
Two menus can get modified by users; these checks make sure they
haven't been damaged too much:
* menuConvert is checked to flag problems with IOCs converted from
3.13.x, where the SLOPE choice didn't exist.
* menuScan is checked to ensure the three initial choices are still
present and that there is at least one periodic scan rate.
Our joint conclusion was that wrapping system includes with
extern "C" used to be necessary on some OS builds when C++
was much less common, but is now wrong.
o fixed issue introduced by last revision where definition of lock functions and lock key were not present if its sunos 5.10 or greater
(its time consuming to develop code if you can only run the (SUNPRO) compiler indirectly)
o dont include epicsAtomicOSD.h from any of the implementations of epicsAtomicCD.h unless the compiler has support for an inline keyword
o removed superfluous ifdef on EPICS_ATOMIC_INLINE all versions of epicsAtomicDefault.h and epicsAtomicOSD.h
o In the implementations of epicsAtomicOSD.cpp if EPICS_ATOMIC_INLINE isnt defined define it to be empty and then include epicsAtomicOSD.h
o fixing some compile time issues for solaris version of epicsAtomicOSD.h (so that Janet can run another compile on that os)
* fix libCom exports for things which used to be built differently
* logserver needs winsock
* errlog prefix: fix warnings on win32
* fix dll imports in ioc/db
o changed name, OSD_ATOMIC_INLINE to EPICS_ATOMIC_INLINE
o changed supported data types, unsigned removed and int added (per reveiw at codeathon)
o added add/subtract functions (per reveiw at codeathon)
o now presuming that __sync_synchronize available all gcc 4 mingw does not provide windows mem barrier)
o consolodated on one implemention for Microsoft invarient of cmplr intrinisic or win32 by using macros to config a shared header file
o improved doc in epicsAtomic.h
o added overloaded c++ interface in namespace epics :: atomic to epicsAtomic.h
o added epicsAtomicReadMemoryBarrier and epicsAtomicWriteMemoryBarrier interface to epicsAtomic.h
o changed the implementation so that each of the functions can be individually specified for a particular compiler, os, or in the generic implementation (this is accomplished with macros)
o modified the functional and performance test so that they are based on templates so we can easily support new data types
o modified performance tests to repeat function calls and measure performance using a template