EPICS Base R3.14.7: Known Problems

DB build rules

The following changes add a missing DB file dependancy and fix the COMMON_TEMPLATES definition.

Index: configure/RULES.Db
===================================================================
RCS file: /usr/local/epicsmgr/cvsroot/epics/base/configure/RULES.Db,v
retrieving revision 1.35.2.15
retrieving revision 1.35.2.17
diff -r1.35.2.15 -r1.35.2.17
141c141
< COMMON_TEMPLATES=$(addsuffix $(COMMON_DIR)/,$(notdir $(TEMPLATE_LINKS)))
---
> COMMON_TEMPLATES=$(addprefix $(COMMON_DIR)/,$(notdir $(TEMPLATE_LINKS)))
261a262
>       @echo "$@:$($*_DEPENDS)" >> $@$(DEP)

Type-punning warning

To get rid of this message: warning: dereferencing type-punned pointer will break strict-aliasing rules, install this patch:

CAS

This message is relevant to a CA gateway failure reported by Rolf Keitel (Mantis Entry 113). The symptom observed was a corrupt value written through the CA gateway when it is under a heavy client induced write through load. The bug has been isolated to the portable CA server. An incoming payload for a CA put was byte swapped twice when an IO operation was restarted due to heavy client loads.

It will be important to not enable writes through your gateway until you install a patch for this bug.

errlog 2005.03.17

The errlog changes for the powerPC introduced a bug that causes errlogPrintf to fail if called from interrupt context. The errlogPatch.gz file has been updated to fix the problem. Note that it must be applied to the R3.14.7 version not to a patched version. The latest errlog.c is also available. These files are at:

errlog and powerPC

errlogPrintf and other errlog functions fail on a powerPC vxWorks IOC if epicsThreadIsOkToBlock is true. This is true during iocInit. This can cause the IOC to crash during iocInit. In particular the save_restore that comes with SYNAPPS can fail.

The following patch fixes the problem:

To apply the patch run the following command in your EPICS base directory:

    zcat errlogPatch.gz | patch -p0 

Ron Sluiter found the reason why errlog failed on the PowerPC. This was not easy. Thanks Ron!!!!

epicsThreadCreate() - posix implementation

The posix implementation of epicsThreadCreate now sets stacksize. Code MUST use epicsThreadGetStackSize() to set the stacksize or on some implementations epicsThreadCreate() will print warning or error messages at thread creation time and will probably use the default stack size. Note that this is NOT a bug in base but a mistake in the user code.

devLib.h

Some C++ implementations will not accept function prototypes without arguments. Just replace all prototypes of the form:

     void (*pFunction)() 

by:

     void (*pFunction)(void *)

Readline on solaris-sparc

The R3.14.7 source comes configured with the assumption that the GNU readline library and headers are available, although these are not a standard part of a Solaris installation. If you don't wish to install readline (which provides command-line editing support in iocsh) then you should comment out this line in configure/os/CONFIG_SITE.Common.solaris-sparc:

    COMMANDLINE_LIBRARY = READLINE

If you have readline installed so you want to use the setting above but you cannot get src/toolsComm/antelope to build/run, edit the file configure/os/CONFIG.Common.solaris-sparc and switch to the other definition for LDLIBS_READLINE found at the bottom of that file.

iocsh on vxWorks

The following patch fixes a problem with iocsh redirection from within vxWorks scripts.

  • stdioPatch.gz (10 Jan 2005)
  • To apply the patch run the following command in your EPICS base directory:

        zcat stdioPatch.gz | patch -p0