From b8f613881b75f8ce75ed43b69dc71d9ea7b561ec Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Thu, 17 Apr 2008 19:52:23 +0000 Subject: [PATCH] iocInit() installs a signal handler that ignores SIGHUP --- documentation/RELEASE_NOTES.html | 730 ++++++++++++++++--------------- src/misc/iocInit.c | 2 + 2 files changed, 368 insertions(+), 364 deletions(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index ca84f0535..c212f664d 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/html4/loose.dtd"> - + EPICS Base R3.14.x Release Notes @@ -10,159 +10,154 @@

EPICS Base Release 3.14.x

Changes between 3.14.9 and 3.14.10

- +

IOC ignores SIGHUP

+ +

iocInit() installs an signal handler for ignoring SIGHUP. This fixes a +problem that appeared with soft IOCs run as a procServ child on some Linux +systems, where a disconnecting CA client would cause the soft IOC to get a +SIGHUP and exit.

+

Build System Reorganization

Several changes have been made to the build system, although these changes -should not affect the contents of Makefiles or any applications using -Base. They do however require that the version of GNU Make used be 3.80 (3.81?) -or later. These changes are briefly:

- +should not affect the contents of Makefiles or any applications +using Base. They do however require that the version of GNU Make used be 3.80 +(3.81?) or later. These changes are briefly:

Access security configuration files

-

Rules and macros were added for creating an *.acf file, access security -configuration file, from an *.acs file using the C preprocessor. -An .acs file has the same format as an .acf file with the addition of -'#include "<filename>"' and '#define <macroname> <value>' -lines. The C preprocessor includes the #include files and performs the -macro substitutions. -

+

Rules and macros were added for creating an *.acf file, access security +configuration file, from an *.acs file using the C preprocessor. An .acs file +has the same format as an .acf file with the addition of '#include +"<filename>"' and '#define <macroname> <value>' lines. The +C preprocessor includes the #include files and performs the macro +substitutions.

Changes to subArray record error behaviour

-

In previous versions the INDX field of a subArray record was set to zero if -the array that it reads through its INP field became empty. From this release -the INDX field will only be modified by the record's process() routine if INDX -is greater than MALM. In the event that the no data is read through the INP -link, the subArray's UDF field will be set and a UDF/INVALID alarm will be -generated.

+

In previous versions the INDX field of a subArray record was set to zero +if the array that it reads through its INP field became empty. From this +release the INDX field will only be modified by the record's process() +routine if INDX is greater than MALM. In the event that the no data is read +through the INP link, the subArray's UDF field will be set and a UDF/INVALID +alarm will be generated.

New Architectures

-

The following target architectures have been added to this release, although -the core developers lack the ability to test all of them:

- +

The following target architectures have been added to this release, +although the core developers lack the ability to test all of them:

Added compile line header search directories

-

The compile line list of directories to search for header files now includes -O.Common and the existing os subdirectories of SRC_DIRS -<src_dir>/os/<OS_CLASS>, <src_dir>/os/posix, and +

The compile line list of directories to search for header files now +includes O.Common and the existing os subdirectories of SRC_DIRS +<src_dir>/os/<OS_CLASS>, <src_dir>/os/posix, and <src_dir>/os/default.

Parallel make now supported

The -j jobs option is now supported for users of GNU Make -version 3.80 or later. The -j option speeds up building by allowing +version 3.80 or later. The -j option speeds up building by allowing multiple jobs (build commands) to be run in parallel; this will have the most effect on hosts with multiple symmetric processors, but can also speed up -uni-processor builds. Builds still work as before when run without -j, -but using the -j option with an earlier version of GNU make will fail -since this relies on the $(eval) function which was introduced in GNU -Make 3.80.

+uni-processor builds. Builds still work as before when run without +-j, but using the -j option with an earlier version of GNU +make will fail since this relies on the $(eval) function which was +introduced in GNU Make 3.80.

-

The -j option has been tested with this version of EPICS Base, but -it may not work for Extensions or IOC applications unless their dependancies are -specified correctly.

+

The -j option has been tested with this version of EPICS Base, +but it may not work for Extensions or IOC applications unless their +dependancies are specified correctly.

New DIRS directory dependancy specifications are required to determine the -directory build order with -j. For example if we have 2 directories, +directory build order with -j. For example if we have 2 directories, src and configure, and the configure directory must be built before the src directory, the Makefile should contain:

-
 DIRS = configure src
+  
 DIRS = configure src
  src_DEPEND_DIRS = configure
-

The directory dependancy specifications are only needed when -j is -given to make. Without the -j the order of directories in the DIRS -definition determines the build order as before.

+

The directory dependancy specifications are only needed when -j +is given to make. Without the -j the order of directories in the +DIRS definition determines the build order as before.

Breakpoint tables

Some sites may be using breakpoint tables that are not monotonic in one -direction. In R3.14.9 both axes of a breaktable had to be monotonic; a table -will not be loaded if either the raw or engineering values change direction. -There are situations where this check is too strict however, so a new variable -named dbBptNotMonotonic has been added that disables this check if its -value is non-zero.

+direction. In R3.14.9 both axes of a breaktable had to be monotonic; a table +will not be loaded if either the raw or engineering values change direction. +There are situations where this check is too strict however, so a new +variable named dbBptNotMonotonic has been added that disables this +check if its value is non-zero.

-

Breakpoint tables are often included in an IOC's .dbd file, but they can also -be loaded from a .db file (although VDCT will probably not understand them). -Since there is no way to set the above variable inside the dbExpand -program that expands out an IOC's .dbd file (which also rejects non-monotonic -breaktables), all applications that use such tables will have to load those -tables separately, using either dbLoadDatabase or -dbLoadRecords.

+

Breakpoint tables are often included in an IOC's .dbd file, but they can +also be loaded from a .db file (although VDCT will probably not understand +them). Since there is no way to set the above variable inside the +dbExpand program that expands out an IOC's .dbd file (which also +rejects non-monotonic breaktables), all applications that use such tables +will have to load those tables separately, using either +dbLoadDatabase or dbLoadRecords.

RTEMS on processors with MOTLOAD bootstrap

-

Added support for more 'Global Environment Variables'. Documented in -the EPICS/RTEMS tutorial.

+

Added support for more 'Global Environment Variables'. Documented in the +EPICS/RTEMS tutorial.

RTEMS on processors with PPCBUG bootstrap

-

Set NTP server as well as nameserver and log server from server -bootstrap settting.

+

Set NTP server as well as nameserver and log server from server bootstrap +settting.

RTEMS Timing

@@ -175,48 +170,49 @@ synchronized master timingIOC) and as NTP clients.

potentially causing a crash on some architectures.

Calc expressions

-
-
VAL keyword
-
The keyword VAL is now supported in CALC expressions. In a calc or -calcout record it returns the current contents of the VAL field (which can be -written to by a CA put, so it might not be the result from last time the -expression was evaluated). In Access Security expressions it returns the result -of the previous evaluation of the rule expression. In other uses of the -calcPerform engine, the result may not be well-defined.
- -
MIN, MAX, FINITE, ISNAN functions
-
Thanks to Benjamin Franksen these functions can now accept any number of -arguments, thus MAX(A,B,C,D,E,F,G,H,I,J,K,L) and MIN(A)are now -legal expressions. The FINITE function returns a non-zero value as long -as none of its arguments are NaN or Inf values, while ISNAN returns -non-zero if any of its arguments are NaN values.
+
VAL keyword
+
The keyword VAL is now supported in CALC expressions. In a + calc or calcout record it returns the current contents of the VAL field + (which can be written to by a CA put, so it might not be the + result from last time the expression was evaluated). In Access Security + expressions it returns the result of the previous evaluation of the + rule expression. In other uses of the calcPerform engine, the result + may not be well-defined.
+
MIN, MAX, FINITE, ISNAN + functions
+
Thanks to Benjamin Franksen these functions can now accept any number + of arguments, thus MAX(A,B,C,D,E,F,G,H,I,J,K,L) and + MIN(A)are now legal expressions. The FINITE function + returns a non-zero value as long as none of its arguments are NaN or + Inf values, while ISNAN returns non-zero if any of its + arguments are NaN values.

softIoc now starts shell by default

-

To prevent an interactive shell from being started, give a -S (upper -case) option on the softIoc command line. The old -s (lower case) -option is still accepted, but now does nothing.

+

To prevent an interactive shell from being started, give a -S +(upper case) option on the softIoc command line. The old -s (lower +case) option is still accepted, but now does nothing.

Error messages from dbLoadRecords

Some error messages output by the dbLoadRecords parser should be easier to -understand, having been reworded to report what was actually the problem rather -than just which routine found the error...

+understand, having been reworded to report what was actually the problem +rather than just which routine found the error...

Command registration for iocsh

-

The iocsh command registration data and routines have been moved out of the -src/iocsh directory (which now no longer exists) into a file for each -library. At the same time, the iocsh implementation code has been moved into -libCom. There is no libiocsh.a library created any more, so any -applications (such as the sequencer) which explicitly list iocsh in a -xxx_LIBS definition in their Makefile(s) will need to be modified to -have the library name removed. In most cases though the library will have been -included using the EPICS_BASE_IOC_LIBS or EPICS_BASE_HOST_LIBS -variables that are set in Base, and thus no changes will be needed.

- +

The iocsh command registration data and routines have been moved out of +the src/iocsh directory (which now no longer exists) into a file for +each library. At the same time, the iocsh implementation code has been moved +into libCom. There is no libiocsh.a library created any more, so any +applications (such as the sequencer) which explicitly list iocsh in +a xxx_LIBS definition in their Makefile(s) will need to be modified +to have the library name removed. In most cases though the library will have +been included using the EPICS_BASE_IOC_LIBS or +EPICS_BASE_HOST_LIBS variables that are set in Base, and thus no +changes will be needed.

Changes between 3.14.8.2 and 3.14.9

@@ -224,17 +220,16 @@ variables that are set in Base, and thus no changes will be needed.

The cygwin make version 3.81-1 does not handle MS-DOS path names and thus does not work for EPICS builds with RELEASE file definitions. From the -discussion on the cygwin mailing list it looks like this will be fixed in make -version 3.82. In the meantime make version 3.80 or a fixed make can be -downloaded from -this -website. +discussion on the cygwin mailing list it looks like this will be fixed in +make version 3.82. In the meantime make version 3.80 or a fixed make can be +downloaded from this +website.

New Architectures

-

The following target architectures have been added to this release, although -the core developers lack the ability to test all of them:

- +

The following target architectures have been added to this release, +although the core developers lack the ability to test all of them: