diff --git a/ci/travis-build.sh b/ci/travis-build.sh index a3ca3fd16..2ee5d652f 100644 --- a/ci/travis-build.sh +++ b/ci/travis-build.sh @@ -17,7 +17,7 @@ ticker() { CACHEKEY=1 -EPICS_HOST_ARCH=`sh startup/EpicsHostArch` +EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl` [ -e configure/os/CONFIG_SITE.Common.linux-x86 ] || die "Wrong location: $PWD" diff --git a/configure/CONFIG b/configure/CONFIG index 580b58767..e40d3f5f7 100644 --- a/configure/CONFIG +++ b/configure/CONFIG @@ -20,11 +20,15 @@ else endif # Provide a default if the user hasn't set EPICS_HOST_ARCH -ifeq ($(origin EPICS_HOST_ARCH), undefined) - # NB: We use a simply expanded variable here for performance: - EPICS_HOST_ARCH := $(shell $(CONFIG)/../startup/EpicsHostArch.pl) -endif # +ifeq ($(origin EPICS_HOST_ARCH), undefined) + # Bootstrapping ... + EHA := $(firstword $(wildcard $(EPICS_BASE)/lib/perl/EpicsHostArch.pl \ + $(TOP)/src/tools/EpicsHostArch.pl)) + # NB: We use a simply expanded variable here for performance: + export EPICS_HOST_ARCH := $(shell perl $(EHA)) + EHA := +endif -include $(CONFIG)/RELEASE -include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH) diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION index 1e60b2740..31bee6672 100644 --- a/configure/CONFIG_BASE_VERSION +++ b/configure/CONFIG_BASE_VERSION @@ -27,20 +27,20 @@ EPICS_VERSION = 3 EPICS_REVISION = 15 # EPICS_MODIFICATION must be a number >=0 and <256 -EPICS_MODIFICATION = 5 +EPICS_MODIFICATION = 6 # EPICS_PATCH_LEVEL must be a number (win32 resource file requirement) # Not included if zero EPICS_PATCH_LEVEL = 0 # This will end in -DEV between official releases -EPICS_DEV_SNAPSHOT=-DEV +#EPICS_DEV_SNAPSHOT=-DEV #EPICS_DEV_SNAPSHOT=-pre1 #EPICS_DEV_SNAPSHOT=-pre1-DEV #EPICS_DEV_SNAPSHOT=-pre2 #EPICS_DEV_SNAPSHOT=-pre2-DEV #EPICS_DEV_SNAPSHOT=-rc1 -#EPICS_DEV_SNAPSHOT=-rc1-DEV +EPICS_DEV_SNAPSHOT=-rc1-DEV #EPICS_DEV_SNAPSHOT=-rc2 #EPICS_DEV_SNAPSHOT=-rc2-DEV #EPICS_DEV_SNAPSHOT= diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index cec33eca7..1c38eef4c 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -256,15 +256,13 @@ YACCOPT ?= $($*_YACCOPT) $(MV) $*.tab.c $*.c $(if $(findstring -d, $(YACCOPT)),$(MV) $*.tab.h $*.h,) -# must be a seperate rule since when not using '-d' the +# must be a separate rule since when not using '-d' the # prefix for .h will be different then .c %.h : %.c %.y %.c: %.l - @$(RM) $*.yy.c - $(LEX) $(LEXOPT) -t $< > $*.yy.c @$(RM) $@ - $(MV) $*.yy.c $@ + $(LEX) $(LEXOPT) -o$@ $< #--------------------------------------------------------------- # Libraries, shared/DLL and stubs diff --git a/configure/os/CONFIG.darwinCommon.darwinCommon b/configure/os/CONFIG.darwinCommon.darwinCommon index 56b539545..4a8f3ef8e 100644 --- a/configure/os/CONFIG.darwinCommon.darwinCommon +++ b/configure/os/CONFIG.darwinCommon.darwinCommon @@ -65,14 +65,14 @@ GNU = NO # # Darwin shared libraries # -SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \ +SHRLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup \ -install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \ $(addprefix -compatibility_version , $(SHRLIB_VERSION)) \ $(addprefix -current_version , $(SHRLIB_VERSION)) SHRLIB_SUFFIX_BASE = .dylib SHRLIB_SUFFIX = $(addprefix ., $(SHRLIB_VERSION))$(SHRLIB_SUFFIX_BASE) -LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress +LOADABLE_SHRLIB_LDFLAGS = -bundle -undefined dynamic_lookup # # Position-independent code is the default on Darwin. diff --git a/documentation/KnownProblems.html b/documentation/KnownProblems.html index f32006846..e54a3c722 100644 --- a/documentation/KnownProblems.html +++ b/documentation/KnownProblems.html @@ -15,7 +15,7 @@ base-3.15.6 tree. Download them, then use the GNU Patch program as follows:

% cd /path/to/base-3.15.6
-% patch -p0 < /path/to/file.patch
+% patch -p1 < /path/to/file.patch

The following significant problems have been reported with this version of EPICS Base:

diff --git a/documentation/README.1st b/documentation/README.1st index 3122bdfbd..807ba2ade 100644 --- a/documentation/README.1st +++ b/documentation/README.1st @@ -6,19 +6,19 @@ Table of Contents - * What is EPICS base? - * What is new in this release? - * Copyright - * Supported platforms - * Supported compilers - * Software requirements - * Host system storage requirements - * Documentation - * Directory Structure - * Build related components - * Building EPICS base (Unix and Win32) - * Example application and extension - * Multiple host platforms + * What is EPICS base? + * What is new in this release? + * Copyright + * Supported platforms + * Supported compilers + * Software requirements + * Host system storage requirements + * Documentation + * Directory Structure + * Build related components + * Building EPICS base (Unix and Win32) + * Example application and extension + * Multiple host platforms -------------------------------------------------------------------------- @@ -166,12 +166,11 @@ base/startup directory - contains scripts to set environment and path - EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable - EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable - Site.profile bourne shell script to set path and env variables - Site.cshrc c shell script to set path and env variables - cygwin.bat WIN32 bat file to set cygwin path and env variables - win32.bat WIN32 bat file to set path and env variables + EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable + unix.csh C shell script to set path and env variables + unix.sh Bourne shell script to set path and env variables + win32.bat Bat file example to configure win32-x86 target + windows.bat Bat file example to configure windows-x64 target base/configure directory - contains build definitions and rules diff --git a/documentation/README.darwin.html b/documentation/README.darwin.html index cbc290178..dd11ce857 100644 --- a/documentation/README.darwin.html +++ b/documentation/README.darwin.html @@ -21,7 +21,7 @@ of my Bash login script (~/.bash_login): # EPICS_BASE="${HOME}/src/EPICS/base" EPICS_EXTENSIONS="${HOME}/src/EPICS/extensions" -. "${EPICS_BASE}"/startup/Site.profile +. "${EPICS_BASE}"/startup/unix.sh
  • diff --git a/documentation/README.html b/documentation/README.html index 17ed9f672..982079e01 100644 --- a/documentation/README.html +++ b/documentation/README.html @@ -177,12 +177,11 @@

    base/startup directory - contains scripts to set environment and path

    -        EpicsHostArch       C shell script to set EPICS_HOST_ARCH env variable
    -        EpicsHostArch.pl    Perl script to set EPICS_HOST_ARCH env variable
    -        Site.profile        bourne shell script to set path and env variables
    -        Site.cshrc          c shell script to set path and env variables
    -        cygwin.bat          WIN32 bat file to set cygwin path and env variables
    -        win32.bat           WIN32 bat file to set path and env variables
    +        EpicsHostArch       Shell script to set EPICS_HOST_ARCH env variable
    +        unix.csh            C shell script to set path and env variables
    +        unix.sh             Bourne shell script to set path and env variables
    +        win32.bat           Bat file example to configure win32-x86 target
    +        windows.bat         Bat file example to configure windows-x64 target
     

    base/configure directory - contains build definitions and rules

    diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index cd8ca9012..a06c84b36 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -20,7 +20,43 @@ The new command epicsEnvUnset varname can be used to unset an environment variable. +

    Warning indicators in msi (and macLib) output

    + +

    The libCom macro expansion library has been modified so that when the +SUPPRESS_WARNINGS flag is set it will no longer include any ,undefined +or ,recursive indicators in its output when undefined or recursive +macros are encountered. These indicators were harmless when the output was fed +into an IOC along with a definition for the macro, but when the msi +tool was used to generate other kinds of files they caused problems. If the +msi -V flag is used the markers will still be present in the output +whenever the appropriate condition is seen.

    + +

    Improvements to msi

    + +

    In addition to fixing its response to discovering parsing errors in its +substitution input file (reported as Launchpad +bug #1503661) +so it now deletes the incomplete output file, the msi program has been cleaned +up a little bit internally.

    + +

    All array records now post monitors on their array-length fields

    + +

    The waveform record has been posting monitors on its NORD field since Base +3.15.0.1; we finally got around to doing the equivalent in all the other +built-in record types, which even required modifying device support in some +cases. This fixes +Launchpad bug #1730727.

    + +

    HOWTO: Converting Wiki Record Reference to POD

    + +

    Some documentation has been added to the dbdToHtml.pl script +explaining how Perl POD (Plain Old Documentation) markup can be added to +.dbd files to generate HTML documentation for the record types. To see +these instructions, run perl bin/<host>/dbdToHtml.pl -H +or perldoc bin/<host>/dbdToHtml.pl.

    +

    Fix problem with numeric soft events

    +

    Changing from numeric to named soft events introduced an incompatibility when a numeric event 1-255 is converted from a DOUBLE, e.g. from a calc record. The post_event() API is not marked deprecated any more. @@ -46,11 +82,82 @@ tells git to ignore all configure/*.local files.

    +

    Fix broken EPICS_IOC_LOG_FILE_LIMIT=0 setting

    + +

    The Application Developers' Guide says this is allowed and disables the +limit on the log-file, but it hasn't actually worked for some time (if ever). +Note that the iocLogServer will be removed from newer Base release sometime +soon as its functionality can be implemented by other dedicated log servers +such as logstash or syslog-ng.

    + +

    Fixes lp:1786858 +and part of lp:1786966. +

    + +

    Cleanup of startup directory

    + +

    The files in the startup directory have not been maintained in recent years +and have grown crufty (technical term). This release includes the following +updates to these files:

    + + + +

    Recent Apple XCode Build Issues

    + +

    The latest version of XCode will not compile calls to system() or +clock_settime() for iOS targets. There were several places in Base +where these were being compiled, although there were probably never called. The +code has now been modified to permit iOS builds to complete again.

    + +

    Prevent illegal alarm severities

    + +

    A check has been added to recGblResetAlarms() that prevents records +from getting an alarm severity higher than INVALID_ALARM. It is still possible +for a field like HSV to get set to a value that is not a legal alarm severity, +but the core IOC code should never copy such a value into a record's SEVR or +ACKS fields. With this fix the record's alarm severity will be limited to +INVALID_ALARM.

    +

    Fixes for Launchpad bugs

    The following launchpad bugs have fixes included: