This allows the same version of Base to be used from both RHEL5 and RHEL6
for example; they use different Perl versions which are not compatible at
the ABI level.
Most shells strip the single-quote chars from arguments, but on
win32-x86 this is not happening so we need to do it ourselves.
The single quotes are important to prevent un-escaping of things
that shouldn't be unescaped.
The finite() function is provided in glibc but not in uClibc.
C99 requires isfinite() to be a macro, so we can test for it
and define our own finite() macro in osi/os/posix/epicsMath.h
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.
When creating files in ../O.Common it is eesential to use atomic
file replacement rather than deleting the old file and creating
a new one in its place, because two or three architectures could
be being built in parallel which might interfere.
This commit also ensures that .dbd.d files are constructed
properly when using 'make -s'; $(ECHO) does nothing then.
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.
The old test for discriminating between statically and dynamically
linked applications (os/RTEMS/osdTime.cpp:staticTimeRegister()) is
wrong, it never detects a dynamically loaded app.
fixes lp:831648
-------------- This line and the following will be ignored
--------------
modified:
src/libCom/osi/os/RTEMS/osdTime.cpp
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.