From 8418aa059ac8d7b4cd90512b2d1d1fe228ebdfd2 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Thu, 7 Apr 2011 17:25:02 -0500
Subject: [PATCH 01/20] libCom/test: Suppress g++ build warnings from
epicsCalcTest
Newer versions of gcc support #pragma GCC diagnostic
---
src/libCom/test/epicsCalcTest.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/libCom/test/epicsCalcTest.cpp b/src/libCom/test/epicsCalcTest.cpp
index 5436330f4..df30e68a5 100644
--- a/src/libCom/test/epicsCalcTest.cpp
+++ b/src/libCom/test/epicsCalcTest.cpp
@@ -224,6 +224,14 @@ static inline double MIN(double a, double b, double c, double d, double e,
return MIN(MIN(a,b,c,d,e,f,g,h,i,j,k),l);
}
+/* The test code below generates lots of spurious warnings because
+ * it's making sure that our operator priorities match those of C.
+ * Disable them to quieten the compilation process where possible.
+ */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+# pragma GCC diagnostic ignored "-Wparentheses"
+#endif
+
MAIN(epicsCalcTest)
{
int repeat;
From b472473ef151a44a26e8eaec20834b7fbef06fea Mon Sep 17 00:00:00 2001
From: Janet Anderson
Date: Mon, 11 Apr 2011 15:47:40 -0500
Subject: [PATCH 02/20] Restored COMMON_DBS usage in DBDDEPENDS_FILES
definition.
---
configure/RULES.Db | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/configure/RULES.Db b/configure/RULES.Db
index ed6e10978..9eb27e527 100644
--- a/configure/RULES.Db
+++ b/configure/RULES.Db
@@ -109,7 +109,8 @@ ACF_CMD = $(CPP) $(ACF_CPPFLAGS) $(ACF_INCLUDES) $< > $@
HINC += $(addsuffix .h,$(DBDINC_NAME))
COMMON_DBDINC += $(addprefix $(COMMON_DIR)/,$(HINC))
-DBDDEPENDS_FILES += $(addsuffix $(DEP),$(HINC) $(DBS) \
+DBDDEPENDS_FILES += $(addsuffix $(DEP),$(HINC) \
+ $(patsubst $(COMMON_DIR)/%,%,$(COMMON_DBS)) \
$(patsubst $(COMMON_DIR)/%,%,$(COMMON_DBDS)))
DBDDEPENDS_FLAGS = $(subst -I,,$(filter-out -S%,$(DBDFLAGS)))
From 2949f6650eba2f505a3b5d9c59ce9c83eccf970f Mon Sep 17 00:00:00 2001
From: Michael Davidsaver
Date: Tue, 12 Apr 2011 18:12:52 -0500
Subject: [PATCH 03/20] errlog: Flush messages before exit
When an exit is requested process all messages before exiting.
The atExit flag is set, so no new messages can be added to the buffer.
---
src/libCom/error/errlog.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/libCom/error/errlog.c b/src/libCom/error/errlog.c
index 322eb9c4f..1cf1575bf 100644
--- a/src/libCom/error/errlog.c
+++ b/src/libCom/error/errlog.c
@@ -495,9 +495,7 @@ static void errlogThread(void)
epicsAtExit(exitHandler,0);
while (TRUE) {
epicsEventMustWait(pvtData.waitForWork);
- if (pvtData.atExit) break;
while ((pmessage = msgbufGetSend(&noConsoleMessage))) {
- if (pvtData.atExit) break;
epicsMutexMustLock(pvtData.listenerLock);
if (pvtData.toConsole && !noConsoleMessage) {
fprintf(stderr,"%s",pmessage);
From 5aeb32518576355a01466058f53b7de92342ea61 Mon Sep 17 00:00:00 2001
From: Janet Anderson
Date: Tue, 19 Apr 2011 10:55:18 -0500
Subject: [PATCH 04/20] Updated for latest releases of os, Visual Studio, ...
---
startup/win32.bat | 200 +++++++++++++++++++++++++++-------------------
1 file changed, 119 insertions(+), 81 deletions(-)
mode change 100755 => 100644 startup/win32.bat
diff --git a/startup/win32.bat b/startup/win32.bat
old mode 100755
new mode 100644
index 6f86bb4d9..3a85545a8
--- a/startup/win32.bat
+++ b/startup/win32.bat
@@ -1,100 +1,138 @@
@ECHO OFF
-REM *************************************************************************
-REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
-REM National Laboratory.
-REM Copyright (c) 2002 The Regents of the University of California, as
-REM Operator of Los Alamos National Laboratory.
-REM EPICS BASE Versions 3.13.7
-REM and higher are distributed subject to a Software License Agreement found
-REM in file LICENSE that is included with this distribution.
-REM *************************************************************************
-REM $Revision-Id$
-REM
-REM Site-specific EPICS environment settings
-REM
-REM sites should modify these definitions
-
-
-REM ===================================================
+REM ======================================================
REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
-REM
-REM --------------- WINDOWS ---------------------------
-REM ----- WIN95 -----
+REM ======================================================
+
+REM ======================================================
+REM ---------------- WINDOWS ---------------------------
+REM ======================================================
+REM ----- WIN95 -----
REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
-REM ----- WINNT -----
+REM ----- WINNT, WIN2000 -----
REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
-REM ----- WINXP -----
-set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\Wbem
+REM ----- WINXP, Vista, Windows 7 -----
+set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
-REM --------------- GNU tools -------------------------
-REM -- cygwin contains GNU make, perl, tk/tcl, vim, ...
-REM -- Can be preceeded or replaced with paths to GNU make and perl
-REM -- need grep from here NOT from cvs directory
-REM -- some tools may need a tmp directory
-set PATH=%PATH%;c:\cygwin\bin
+REM =====================================================
+REM ---------------- make and perl --------------------
+REM =====================================================
-REM --------------- Visual c++ ------------------------
-REM ---- Visual c++ 6.0 ------
-REM call "C:\Program files\Microsoft Visual Studio\Vc98\bin\vcvars32.bat"
-REM ---- Visual Studio .NET 2003 ------
-REM call "C:\Program files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat"
-REM ---- Visual Studio 2005 -----
-REM call "C:\Program files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
-REM ---- Visual Studio 2008 -----
-call "C:\Program files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
+REM --------------- ActiveState perl ------------
+REM set PATH=%PATH%;c:\ActivePerl-5.8.8.819-MSWin32-x86-267479\perl\bin
+set PATH=C:\Perl\bin;%path%
+REM --------------- mingw make ------------------
+REM set PATH=C:\mingw-make\bin;%PATH%
+REM set PATH=C:\mingw-make82-3\bin;%PATH%
-REM --------------- EPICS -----------------------------
-REM -- R3.14 requirements
+REM --------------- gnuwin32 make ------------------
+set PATH=C:\gnuwin32\bin;%PATH%
+
+REM =====================================================
+REM ---------------- cygwin tools -----------------------
+REM =====================================================
+REM (make & perl if above perl and make are REMs)
+REM Dont use cygwin GNU make and Perl!
+REM cygwin contains tk/tcl, vim, perl, and many unix tools
+REM need grep from here NOT from cvs directory
+REM set PATH=%PATH%;.;..
+REM set PATH=%PATH%;c:\cygwin\bin
+
+REM =====================================================
+REM --------------- Visual c++ ------------------------
+REM =====================================================
+
+REM ------ Microsoft Visual Studio 2005 ------
+REM call "C:\Program files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86_amd64
+REM set PATH=%PATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
+REM set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\include
+REM REM set LIBPATH=%LIBPATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
+REM set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
+
+REM ------ Microsoft Visual Studio 2008 ------
+REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
+REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
+REM set PATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\bin;%PATH%
+REM set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.0\include;%INCLUDE%
+REM set LIBPATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIBPATH%
+REM set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIB%
+
+REM ----- Visual Studion 2010 -----
+REM -- windows-x64 ---
+REM call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
+REM -- win32-x86 ---
+call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
+
+REM =====================================================
+REM --------------- EPICS -------------------------
+REM =====================================================
+REM set EPICS_HOST_ARCH=windows-x64
set EPICS_HOST_ARCH=win32-x86
-set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
-set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
+set PATH=%PATH%;D:\remotecvs\epics\base_R3_14_2_branch\bin\%EPICS_HOST_ARCH%
+set PATH=%PATH%;D:\remotecvs\epics\extensions\bin\%EPICS_HOST_ARCH%
-REM ===================================================
-REM ====== OPTIONAL ENVIRONMENT VARIABLES FOLLOW ======
+REM =====================================================
+REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW -------
+REM =====================================================
-REM ---------------- EPICS tools ----------------------
-REM -- HOST_ARCH needed for Makefile.Host builds --
-set HOST_ARCH=WIN32
+REM =====================================================
+REM ----------------- remote CVS ------------------------
+REM =====================================================
+REM set CVS_RSH=c:/cygwin/bin/ssh.exe
+REM set CVSROOT=:ext:jba@venus.aps.anl.gov:/usr/local/epicsmgr/cvsroot
+REM set HOME=c:/users/%USERNAME%
+REM set HOME=c:/users/jba
-REM --------------- GNU make flags --------------------
-REM set MAKEFLAGS=-w
+REM =====================================================
+REM ------------------- Bazaar --------------------------
+REM =====================================================
+set PATH=%PATH%;C:\Program files\Bazaar
-REM --------------- EPICS Channel Access --------------
-REM -- Uncomment and modify the following lines
-REM -- to override the base/configure/CONFIG_ENV defaults
-REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
-REM set EPICS_CA_AUTO_ADDR_LIST=YES
+REM =====================================================
+REM ----------------- GNU make flags --------------------
+REM =====================================================
+set MAKEFLAGS=-w
-REM --------------- cygwin vim ------------------------
-REM -- HOME needed by vim to find _vimrc file.
-REM set HOME=/home/%USERNAME%
-REM -- VIM needed by vim to find help files.
-REM set VIM=/usr/share/vim/vim61
+REM ===================================================
+REM -------------- vim (use cygwin vim ) --------------
+REM ===================================================
+REM HOME needed by vim to write .viminfo file.
+REM VIM needed by vim to find _vimrc file.
+REM set VIM=c:\cygwin
-REM --------------- remote cvs (use cygwin cvs) -------
-REM -- HOME needed by cvs for .cvsrc file (set in vim above)
-REM set CVSROOT=:ext:%USERNAME%@venus.aps.anl.gov:/usr/local/epicsmgr/cvsroot
-REM set CVS_RSH=/bin/ssh.exe
+REM ===================================================
+REM --------------- Epics Channel Access --------------
+REM Modify and uncomment the following lines
+REM to override the base/configure/CONFIG_ENV defaults
+REM ===================================================
+REM set EPICS_CA_ADDR_LIST=164.54.188.65 164.54.5.255
-REM --------------- JAVA ------------------------------
-REM -- Needed for java extensions
+REM set EPICS_CA_AUTO_CA_ADDR_LIST=YES
+REM set EPICS_CA_AUTO_CA_ADDR_LIST=NO
+REM set EPICS_CA_CONN_TMO=30.0
+REM set EPICS_CA_BEACON_PERIOD=15.0
+REM set EPICS_CA_REPEATER_PORT=5065
+REM set EPICS_CA_SERVER_PORT=5064
+REM set EPICS_TS_MIN_WEST=420
+
+REM ===================================================
+REM --------------- JAVA ------------------------------
+REM ===================================================
+REM Needed for java extensions
+REM set CLASSPATH=D:\remotecvs\epics\extensions\javalib
REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
-REM set CLASSPATH=G:\epics\extensions\javalib
+REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
+
+REM ===================================================
+REM --------------- Exceed ----------------------------
+REM Needed for X11 extensions
+REM ===================================================
+REM set EX_VER=7.10
+REM set EX_VER=12.00
+REM set EX_VER=14.00
+REM set PATH=%PATH%;C:\Exceed7.10\Exceed\
+REM set PATH=%PATH%;C:\Exceed10.0\XDK\
+REM set PATH=%PATH%;C:\Exceed%EX_VER\XDK\
+REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER\Exceed\
-REM --------------- X11+Motif--------------------------
-REM -- Exceed or cygwin Xfree86 needed for Xwindows extensions
-REM
-REM -- Exceed ( Cygwin should preceed Exceed in path)
-REM set PATH=%PATH%;C:\Exceed
-REM ------ Exceed 2007 ------
-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\12.00\Exceed\
-REM ------ Exceed 2008 ------
-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\13.00\Exceed\
-REM --
-REM -- or
-REM ----- cygwin Xfree86 -----
-REM set PATH=%PATH%;c:\cygwin\usr\X11R6\bin
-REM set DISPLAY=localhost:0
-REM ===================================================
From f3f2f23fbcd0d2a5a486535b7b73bc0dbc0f7d69 Mon Sep 17 00:00:00 2001
From: Janet Anderson
Date: Tue, 19 Apr 2011 11:28:04 -0500
Subject: [PATCH 05/20] Updates for latest releases of os, Visual Studio, ...
---
startup/cygwin.bat | 146 ++++++++++++++++++++++++++++-----------------
startup/win32.bat | 116 +++++++++++++++++++----------------
2 files changed, 153 insertions(+), 109 deletions(-)
diff --git a/startup/cygwin.bat b/startup/cygwin.bat
index 22f965dbf..2d3a1567e 100755
--- a/startup/cygwin.bat
+++ b/startup/cygwin.bat
@@ -14,76 +14,110 @@ REM Site-specific EPICS environment settings
REM
REM sites should modify these definitions
-
-REM ===================================================
+REM ======================================================
REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
-REM
-REM --------------- WINDOWS ---------------------------
-REM ----- WIN95 -----
-REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
-REM ----- WINNT -----
-REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
-REM ----- WINXP -----
-set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\Wbem
+REM ======================================================
-REM --------------- GNU tools -------------------------
-REM -- cygwin contains GNU make, perl, gcc, g++, vim, ...
-REM -- Can be preceeded or replaced with paths to GNU make and perl
-REM -- need grep from here NOT from cvs directory
-REM -- some tools may need a tmp directory
+REM ======================================================
+REM ---------------- WINDOWS ---------------------------
+REM ======================================================
+REM ----- WIN95 -----
+REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
+REM ----- WINNT, WIN2000 -----
+REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
+REM ----- WINXP, Vista, Windows 7 -----
+set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
+
+REM ======================================================
+REM ---------------- make and perl ---------------------
+REM ======================================================
+
+REM --------------- ActiveState perl -------------------
+set PATH=C:\Perl\bin;%PATH%
+
+REM --------------- mingw make ------------------------
+REM set PATH=C:\mingw-make\bin;%PATH%
+REM set PATH=C:\mingw-make82-3\bin;%PATH%
+
+REM --------------- gnuwin32 make ----------------------
+set PATH=C:\gnuwin32\bin;%PATH%
+
+REM ======================================================
+REM ---------------- cygwin tools ------------------------
+REM ======================================================
+REM (make & perl if above perl and make are REMs)
+REM Dont use cygwin GNU make and Perl!
+REM cygwin contains tk/tcl, vim, perl, and many unix tools
+REM need grep from here NOT from cvs directory
+set PATH=%PATH%;.;..
set PATH=%PATH%;c:\cygwin\bin
-REM --------------- EPICS -----------------------------
-REM -- R3.14 requirements
+REM ======================================================
+REM --------------- EPICS --------------------------------
+REM ======================================================
set EPICS_HOST_ARCH=cygwin-x86
set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
-REM ===================================================
-REM ====== OPTIONAL ENVIRONMENT VARIABLES FOLLOW ======
+REM ======================================================
+REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
+REM ======================================================
-REM ---------------- EPICS tools ----------------------
-REM -- HOST_ARCH needed for Makefile.Host builds
-set HOST_ARCH=cygwin32
+REM ======================================================
+REM ----------------- remote CVS -------------------------
+REM ======================================================
+REM set CVS_RSH=c:/cygwin/bin/ssh.exe
+REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
+REM set HOME=c:/users/%USERNAME%
+REM set HOME=c:/users/jba
-REM --------------- GNU make flags --------------------
-REM set MAKEFLAGS=-w
+REM ======================================================
+REM ------------------- Bazaar ---------------------------
+REM ======================================================
+set PATH=%PATH%;C:\Program files\Bazaar
-REM --------------- EPICS Channel Access --------------
-REM -- Uncomment and modify the following lines
-REM -- to override the base/configure/CONFIG_ENV defaults
-REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
+REM ======================================================
+REM ----------------- GNU make flags ---------------------
+REM ======================================================
+set MAKEFLAGS=-w
+
+REM ======================================================
+REM -------------- vim (use cygwin vim ) -----------------
+REM ======================================================
+REM HOME needed by vim to write .viminfo file.
+REM VIM needed by vim to find _vimrc file.
+REM set VIM=c:\cygwin
+
+REM ======================================================
+REM --------------- Epics Channel Access -----------------
+REM Modify and uncomment the following lines
+REM to override the base/configure/CONFIG_ENV defaults
+REM ======================================================
+REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
REM set EPICS_CA_AUTO_ADDR_LIST=YES
-REM --------------- cygwin vim ------------------------
-REM -- HOME needed by vim to find _vimrc file.
-REM set HOME=/home/%USERNAME%
-REM -- VIM needed by vim to find help files.
-REM set VIM=/usr/share/vim/vim61
+REM set EPICS_CA_CONN_TMO=30.0
+REM set EPICS_CA_BEACON_PERIOD=15.0
+REM set EPICS_CA_REPEATER_PORT=5065
+REM set EPICS_CA_SERVER_PORT=5064
+REM set EPICS_TS_MIN_WEST=420
-REM --------------- remote cvs (use cygwin cvs) -------
-REM -- HOME needed by cvs for .cvsrc file (set in vim above)
-REM set CVSROOT=:ext:%USERNAME%@venus.aps.anl.gov:/usr/local/epicsmgr/cvsroot
-REM set CVS_RSH=/bin/ssh.exe
-
-REM --------------- JAVA ------------------------------
-REM -- Needed for java extensions
-REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
+REM ======================================================
+REM --------------- JAVA ---------------------------------
+REM ======================================================
+REM Needed for java extensions
REM set CLASSPATH=G:\epics\extensions\javalib
+REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
+REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
+
+REM ======================================================
+REM --------------- Exceed -------------------------------
+REM Needed for X11 extensions
+REM ======================================================
+REM set EX_VER=7.10
+REM set EX_VER=12.00
+REM set EX_VER=14.00
+REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
+REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
-REM --------------- X11+Motif--------------------------
-REM -- Exceed or cygwin Xfree86 needed for Xwindows extensions
-REM
-REM -- Exceed ( Cygwin should preceed Exceed in path)
-REM set PATH=%PATH%;C:\Exceed
-REM ------ Exceed 2007 ------
-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\12.00\Exceed\
-REM ------ Exceed 2008 ------
-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\13.00\Exceed\
-REM --
-REM -- or
-REM ----- cygwin Xfree86 -----
-REM set PATH=%PATH%;c:\cygwin\usr\X11R6\bin
-REM set DISPLAY=localhost:0
-REM ===================================================
diff --git a/startup/win32.bat b/startup/win32.bat
index 3a85545a8..5c0448fe8 100644
--- a/startup/win32.bat
+++ b/startup/win32.bat
@@ -1,4 +1,19 @@
@ECHO OFF
+REM *************************************************************************
+REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
+REM National Laboratory.
+REM Copyright (c) 2002 The Regents of the University of California, as
+REM Operator of Los Alamos National Laboratory.
+REM EPICS BASE Versions 3.13.7
+REM and higher are distributed subject to a Software License Agreement found
+REM in file LICENSE that is included with this distribution.
+REM *************************************************************************
+REM $Revision-Id$
+REM
+REM Site-specific EPICS environment settings
+REM
+REM sites should modify these definitions
+
REM ======================================================
REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
REM ======================================================
@@ -13,24 +28,23 @@ REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
REM ----- WINXP, Vista, Windows 7 -----
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
-REM =====================================================
-REM ---------------- make and perl --------------------
-REM =====================================================
+REM ======================================================
+REM ---------------- make and perl ---------------------
+REM ======================================================
-REM --------------- ActiveState perl ------------
-REM set PATH=%PATH%;c:\ActivePerl-5.8.8.819-MSWin32-x86-267479\perl\bin
-set PATH=C:\Perl\bin;%path%
+REM --------------- ActiveState perl -------------------
+set PATH=C:\Perl\bin;%PATH%
-REM --------------- mingw make ------------------
+REM --------------- mingw make ------------------------
REM set PATH=C:\mingw-make\bin;%PATH%
REM set PATH=C:\mingw-make82-3\bin;%PATH%
-REM --------------- gnuwin32 make ------------------
+REM --------------- gnuwin32 make ----------------------
set PATH=C:\gnuwin32\bin;%PATH%
-REM =====================================================
-REM ---------------- cygwin tools -----------------------
-REM =====================================================
+REM ======================================================
+REM ---------------- cygwin tools ------------------------
+REM ======================================================
REM (make & perl if above perl and make are REMs)
REM Dont use cygwin GNU make and Perl!
REM cygwin contains tk/tcl, vim, perl, and many unix tools
@@ -38,9 +52,9 @@ REM need grep from here NOT from cvs directory
REM set PATH=%PATH%;.;..
REM set PATH=%PATH%;c:\cygwin\bin
-REM =====================================================
-REM --------------- Visual c++ ------------------------
-REM =====================================================
+REM ======================================================
+REM --------------- Visual c++ -------------------------
+REM ======================================================
REM ------ Microsoft Visual Studio 2005 ------
REM call "C:\Program files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86_amd64
@@ -63,76 +77,72 @@ REM call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
REM -- win32-x86 ---
call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
-REM =====================================================
-REM --------------- EPICS -------------------------
-REM =====================================================
+REM ======================================================
+REM --------------- EPICS --------------------------------
+REM ======================================================
REM set EPICS_HOST_ARCH=windows-x64
set EPICS_HOST_ARCH=win32-x86
-set PATH=%PATH%;D:\remotecvs\epics\base_R3_14_2_branch\bin\%EPICS_HOST_ARCH%
-set PATH=%PATH%;D:\remotecvs\epics\extensions\bin\%EPICS_HOST_ARCH%
+set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
+set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
-REM =====================================================
-REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW -------
-REM =====================================================
+REM ======================================================
+REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
+REM ======================================================
-REM =====================================================
-REM ----------------- remote CVS ------------------------
-REM =====================================================
+REM ======================================================
+REM ----------------- remote CVS -------------------------
+REM ======================================================
REM set CVS_RSH=c:/cygwin/bin/ssh.exe
-REM set CVSROOT=:ext:jba@venus.aps.anl.gov:/usr/local/epicsmgr/cvsroot
+REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
REM set HOME=c:/users/%USERNAME%
REM set HOME=c:/users/jba
-REM =====================================================
-REM ------------------- Bazaar --------------------------
-REM =====================================================
+REM ======================================================
+REM ------------------- Bazaar ---------------------------
+REM ======================================================
set PATH=%PATH%;C:\Program files\Bazaar
-REM =====================================================
-REM ----------------- GNU make flags --------------------
-REM =====================================================
+REM ======================================================
+REM ----------------- GNU make flags ---------------------
+REM ======================================================
set MAKEFLAGS=-w
-REM ===================================================
-REM -------------- vim (use cygwin vim ) --------------
-REM ===================================================
+REM ======================================================
+REM -------------- vim (use cygwin vim ) -----------------
+REM ======================================================
REM HOME needed by vim to write .viminfo file.
REM VIM needed by vim to find _vimrc file.
REM set VIM=c:\cygwin
-REM ===================================================
-REM --------------- Epics Channel Access --------------
+REM ======================================================
+REM --------------- Epics Channel Access -----------------
REM Modify and uncomment the following lines
REM to override the base/configure/CONFIG_ENV defaults
-REM ===================================================
-REM set EPICS_CA_ADDR_LIST=164.54.188.65 164.54.5.255
+REM ======================================================
+REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
+REM set EPICS_CA_AUTO_ADDR_LIST=YES
-REM set EPICS_CA_AUTO_CA_ADDR_LIST=YES
-REM set EPICS_CA_AUTO_CA_ADDR_LIST=NO
REM set EPICS_CA_CONN_TMO=30.0
REM set EPICS_CA_BEACON_PERIOD=15.0
REM set EPICS_CA_REPEATER_PORT=5065
REM set EPICS_CA_SERVER_PORT=5064
REM set EPICS_TS_MIN_WEST=420
-REM ===================================================
-REM --------------- JAVA ------------------------------
-REM ===================================================
+REM ======================================================
+REM --------------- JAVA ---------------------------------
+REM ======================================================
REM Needed for java extensions
-REM set CLASSPATH=D:\remotecvs\epics\extensions\javalib
+REM set CLASSPATH=G:\epics\extensions\javalib
REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
-REM ===================================================
-REM --------------- Exceed ----------------------------
+REM ======================================================
+REM --------------- Exceed -------------------------------
REM Needed for X11 extensions
-REM ===================================================
+REM ======================================================
REM set EX_VER=7.10
REM set EX_VER=12.00
REM set EX_VER=14.00
-REM set PATH=%PATH%;C:\Exceed7.10\Exceed\
-REM set PATH=%PATH%;C:\Exceed10.0\XDK\
-REM set PATH=%PATH%;C:\Exceed%EX_VER\XDK\
-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER\Exceed\
-
+REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
+REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
From 1584f98e265cdb83ac835ec4370d6b5e0497ef93 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 19 Apr 2011 14:21:38 -0500
Subject: [PATCH 06/20] catools: Disable stdout buffering on Windows
Line buffering is not supported on Windows 7.
---
src/catools/caget.c | 2 +-
src/catools/cainfo.c | 5 ++---
src/catools/camonitor.c | 5 ++---
src/catools/caput.c | 4 ++--
src/catools/tool_lib.h | 10 ++++++++--
5 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/catools/caget.c b/src/catools/caget.c
index 8489ecbcb..1ce588615 100644
--- a/src/catools/caget.c
+++ b/src/catools/caget.c
@@ -391,7 +391,7 @@ int main (int argc, char *argv[])
int nPvs; /* Number of PVs */
pv* pvs = 0; /* Array of PV structures */
- setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */
+ LINE_BUFFER(stdout); /* Configure stdout buffering */
while ((opt = getopt(argc, argv, ":taicnhsSe:f:g:l:#:d:0:w:p:F:")) != -1) {
switch (opt) {
diff --git a/src/catools/cainfo.c b/src/catools/cainfo.c
index e86cdb4d5..a287f6984 100644
--- a/src/catools/cainfo.c
+++ b/src/catools/cainfo.c
@@ -6,8 +6,7 @@
* Operator of Los Alamos National Laboratory.
* Copyright (c) 2002 Berliner Elektronenspeicherringgesellschaft fuer
* Synchrotronstrahlung.
-* EPICS BASE Versions 3.13.7
-* and higher are distributed subject to a Software License Agreement found
+* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
@@ -136,7 +135,7 @@ int main (int argc, char *argv[])
int nPvs; /* Number of PVs */
pv* pvs = 0; /* Array of PV structures */
- setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */
+ LINE_BUFFER(stdout); /* Configure stdout buffering */
while ((opt = getopt(argc, argv, ":nhw:s:p:")) != -1) {
switch (opt) {
diff --git a/src/catools/camonitor.c b/src/catools/camonitor.c
index b11334b91..617ee7622 100644
--- a/src/catools/camonitor.c
+++ b/src/catools/camonitor.c
@@ -6,8 +6,7 @@
* Operator of Los Alamos National Laboratory.
* Copyright (c) 2002 Berliner Elektronenspeicherringgesellschaft fuer
* Synchrotronstrahlung.
-* EPICS BASE Versions 3.13.7
-* and higher are distributed subject to a Software License Agreement found
+* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
@@ -214,7 +213,7 @@ int main (int argc, char *argv[])
int nPvs; /* Number of PVs */
pv* pvs = 0; /* Array of PV structures */
- setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */
+ LINE_BUFFER(stdout); /* Configure stdout buffering */
while ((opt = getopt(argc, argv, ":nhm:sSe:f:g:l:#:0:w:t:p:F:")) != -1) {
switch (opt) {
diff --git a/src/catools/caput.c b/src/catools/caput.c
index cf72ae298..9aaba38dc 100644
--- a/src/catools/caput.c
+++ b/src/catools/caput.c
@@ -275,8 +275,8 @@ int main (int argc, char *argv[])
int nPvs; /* Number of PVs */
pv* pvs = 0; /* Array of PV structures */
- setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */
- putenv("POSIXLY_CORRECT="); /* Behave correct on GNU getopt systems */
+ LINE_BUFFER(stdout); /* Configure stdout buffering */
+ putenv("POSIXLY_CORRECT="); /* Behave correct on GNU getopt systems */
while ((opt = getopt(argc, argv, ":cnlhatsS#:w:p:F:")) != -1) {
switch (opt) {
diff --git a/src/catools/tool_lib.h b/src/catools/tool_lib.h
index baebf7939..fb5c4af3c 100644
--- a/src/catools/tool_lib.h
+++ b/src/catools/tool_lib.h
@@ -5,8 +5,7 @@
* Operator of Los Alamos National Laboratory.
* Copyright (c) 2002 Berliner Elektronenspeicherringgesellschaft fuer
* Synchrotronstrahlung.
-* EPICS BASE Versions 3.13.7
-* and higher are distributed subject to a Software License Agreement found
+* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
@@ -50,6 +49,13 @@
#define DEFAULT_CA_PRIORITY 0 /* Default CA priority */
#define DEFAULT_TIMEOUT 1.0 /* Default CA timeout */
+#ifndef _WIN32
+# define LINE_BUFFER(stream) setvbuf(stream, NULL, _IOLBF, BUFSIZ)
+#else
+/* Windows doesn't support line mode, turn buffering off completely */
+# define LINE_BUFFER(stream) setvbuf(stream, NULL, _IONBF, 0)
+#endif
+
/* Type of timestamp */
typedef enum { absolute, relative, incremental, incrementalByChan } TimeT;
From 6efd4be2222d4c07f69d7ba3cd8f892d1b65ba28 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 19 Apr 2011 15:02:47 -0500
Subject: [PATCH 07/20] configure: Added vxWorks-ppc32-debug and
vxWorks-ppc32sf-debug archs.
---
configure/os/CONFIG.Common.vxWorks-ppc32-debug | 14 ++++++++++++++
configure/os/CONFIG.Common.vxWorks-ppc32sf-debug | 14 ++++++++++++++
2 files changed, 28 insertions(+)
create mode 100644 configure/os/CONFIG.Common.vxWorks-ppc32-debug
create mode 100644 configure/os/CONFIG.Common.vxWorks-ppc32sf-debug
diff --git a/configure/os/CONFIG.Common.vxWorks-ppc32-debug b/configure/os/CONFIG.Common.vxWorks-ppc32-debug
new file mode 100644
index 000000000..bb46c7aba
--- /dev/null
+++ b/configure/os/CONFIG.Common.vxWorks-ppc32-debug
@@ -0,0 +1,14 @@
+# CONFIG.Common.vxWorks-ppc32-debug
+#
+# $Revision-Id$
+# This file is maintained by the build community.
+#
+# Definitions for vxWorks-ppc32-debug target archs
+# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc32-debug
+#-------------------------------------------------------
+
+# Include definitions common to all vxWorks archs
+include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32
+
+CROSS_OPT = NO
+
diff --git a/configure/os/CONFIG.Common.vxWorks-ppc32sf-debug b/configure/os/CONFIG.Common.vxWorks-ppc32sf-debug
new file mode 100644
index 000000000..dd2a350bb
--- /dev/null
+++ b/configure/os/CONFIG.Common.vxWorks-ppc32sf-debug
@@ -0,0 +1,14 @@
+# CONFIG.Common.vxWorks-ppc32sf-debug
+#
+# $Revision-Id$
+# This file is maintained by the build community.
+#
+# Definitions for vxWorks-ppc32sf-debug target archs
+# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-ppc32sf-debug
+#-------------------------------------------------------
+
+# Include definitions common to all vxWorks archs
+include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32sf
+
+CROSS_OPT = NO
+
From 4c7684aad1067317b8fc1e2d4e6ec1a8098dd80e Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 19 Apr 2011 15:05:36 -0500
Subject: [PATCH 08/20] Document 3.14.12.1 changes.
---
configure/CONFIG_SITE | 5 +-
documentation/KnownProblems.html | 8 +--
documentation/RELEASE_NOTES.html | 110 ++++++++++++++++++++++++++++++-
3 files changed, 115 insertions(+), 8 deletions(-)
diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE
index c232120f3..7812b0cab 100644
--- a/configure/CONFIG_SITE
+++ b/configure/CONFIG_SITE
@@ -78,12 +78,15 @@
# vxWorks-68040lc
# vxWorks-68060
# vxWorks-pentium
+# vxWorks-ppc32 (32-bit PowerPC CPUs with full FPU)
+# vxWorks-ppc32sf (32-bit PowerPC CPUs without FPU)
# vxWorks-ppc603
# vxWorks-ppc603_long
# vxWorks-ppc604
# vxWorks-ppc604_long
# vxWorks-ppc604_altivec
# vxWorks-mpc8540
+# vxWorks-mpc8548
# RTEMS-at91rm9200ek
# RTEMS-beatnik
# RTEMS-gen68360
@@ -103,7 +106,7 @@
# override
#
CROSS_COMPILER_TARGET_ARCHS=
-#CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
+#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
# If only a subset of the host architectures perform
# the build for the CROSS_COMPILER_TARGET_ARCHS
diff --git a/documentation/KnownProblems.html b/documentation/KnownProblems.html
index 9a133dc11..eadac0179 100644
--- a/documentation/KnownProblems.html
+++ b/documentation/KnownProblems.html
@@ -4,17 +4,17 @@
- Known Problems in R3.14.13
+ Known Problems in R3.14.12.1
-EPICS Base R3.14.13: Known Problems
+EPICS Base R3.14.12.1: Known Problems
Any patch files linked below should be applied at the root of the
-base-3.14.12 tree. Download them, then use the GNU Patch program as
+base-3.14.12.1 tree. Download them, then use the GNU Patch program as
follows:
-% cd /path/to/base-3.14.13
+% cd /path/to/base-3.14.12.1
% patch -p0 < /path/to/file.patch
The following significant problems have been reported with this
diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
index d1f3eae29..dc0e7f91d 100644
--- a/documentation/RELEASE_NOTES.html
+++ b/documentation/RELEASE_NOTES.html
@@ -3,15 +3,119 @@
- EPICS Base R3.14.12 Release Notes
+ EPICS Base R3.14.12.1 Release Notes
-EPICS Base Release 3.14.12
+EPICS Base Release 3.14.12.1
+
+
+
+Changes between 3.14.12 and 3.14.12.1
+
+This release only contains changes that fix bugs or add build configuration
+files for new or updated target architectures. No new functionality has been
+added, and as this is a patch release the software has not gone through as
+rigorous a testing regime as it does for a normal minor release.
+
+Launchpad Bugs Resolved
+
+The following are links to bugs in the Launchpad bug tracker that have been
+fixed in this release:
+
+
+
+New/Updated target architectures
+
+The following target architectures have been added or updated:
+
+
+- vxWorks-mpc8548
+- vxWorks-mpc8548-debug
+- This PowerPC CPU is used on the Emerson MVME4100
+ VME CPU board (from Ernest Williams, SLAC).
+
+- vxWorks-ppc32
+- vxWorks-ppc32sf
+- vxWorks-ppc32-debug
+- vxWorks-ppc32sf-debug
+- New generic 32-bit PowerPC targets for vxWorks
+ 6.x, using hardware or software floating-point. These targets can be used
+ instead of the CPU-specific ppc603, ppc604, mpc8540 and mpc8548 targets (and
+ their _long alternatives, these targets are all compiled with the -mlongcall
+ flag) to reduce the number of distinct build targets needed when supporting
+ multiple PowerPC board types.
+
+- ios-386
+- ios-arm
+- Updated for iOS 4.3, which is now the default OS
+ version (from Tom Palaia, ORNL).
+
+
+
+RTEMS TFTP filesystem
+
+Use the new mount API to initialize TFTP on newer RTEMS versions.
+
+C++ build issues on older Solaris compiler
+
+Dirk Zimoch reported some problems building with an older SUNWspro C++
+compiler which have been resolved where possible.
+
+FreeBSD broadcast problem
+
+The ifreq_size macro in freebsd/osdsock.h must be different in BSD
+4.4.
+
+Thread exit synchronization
+
+When finished waiting for a thread to exit, signal the event in case other
+ threads are waiting also.
+
+Win32 osdTime provider fix
+
+Jeff Hill fixed the last time compare in PLL drift factor update loop.
+
+Errlog can lose messages
+
+Systems that generate large numbers of errlog messages or have a slow message
+ listener could overwrite older messages in the message buffer after the buffer
+ wraps. This also corrects and annotates the test code to describe what's being
+ checked.
+
+When the IOC is shutting down, the errlog thread should process all queued
+ messages before it quits.
+
+Back-slash escapes for Win32
+
+Stephen Norum pointed out the need for various Perl scripts to escape
+back-slash characters in Windows file paths.
+
+catools on Windows
+
+Windows 7 does not properly support line-mode buffering of stdio streams; the
+catools programs used this mode to ensure that they could be used in pipelines,
+but in Windows 7 they became fully buffered and are not flushed when the program
+exits, so buffering of stdout has now been completely disabled on Windows.
Changes between 3.14.11 and 3.14.12
-
Launchpad Bugs Resolved
From 3c0cea0f3840c1658e196fce8575d29b7a8c0284 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 19 Apr 2011 15:09:57 -0500
Subject: [PATCH 09/20] R3.14.12.1-rc1
---
configure/CONFIG_BASE_VERSION | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index 9ec657b1e..5ef69e8f2 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -30,15 +30,15 @@ EPICS_MODIFICATION = 12
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included if zero
-EPICS_PATCH_LEVEL = 0
+EPICS_PATCH_LEVEL = 1
# 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
#EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV
From 0373da87edd17822800fbaa8dfa9972bcc3862cf Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 19 Apr 2011 15:11:09 -0500
Subject: [PATCH 10/20] R3.14.12.1-rc1-DEV
---
configure/CONFIG_BASE_VERSION | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index 5ef69e8f2..bca2b4780 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -38,8 +38,8 @@ EPICS_PATCH_LEVEL = 1
#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
+EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV
#EPICS_DEV_SNAPSHOT=
From ed0e3e60ed0c3e6e7234fb05bc3497fd02d36c72 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 26 Apr 2011 12:44:46 -0500
Subject: [PATCH 11/20] RTEMS: Changes suggested by Kate Feng
* Added macros for configuring MBUF and CLUSTER space allocation
* More MBUF and CLUSTER space on mvme3100, mvme5500 and beatnik
* MVME5500: link with bspExt, use .elf extension like other BSPs
---
configure/os/CONFIG.Common.RTEMS-beatnik | 19 +++++++++----------
configure/os/CONFIG.Common.RTEMS-mvme2100 | 11 ++++++-----
configure/os/CONFIG.Common.RTEMS-mvme3100 | 17 +++++++++++------
configure/os/CONFIG.Common.RTEMS-mvme5500 | 11 ++++++++---
documentation/RELEASE_NOTES.html | 15 +++++++++++++++
src/RTEMS/base/rtems_netconfig.c | 18 ++++++++++++++----
6 files changed, 63 insertions(+), 28 deletions(-)
diff --git a/configure/os/CONFIG.Common.RTEMS-beatnik b/configure/os/CONFIG.Common.RTEMS-beatnik
index f3260fc5f..714bb3782 100644
--- a/configure/os/CONFIG.Common.RTEMS-beatnik
+++ b/configure/os/CONFIG.Common.RTEMS-beatnik
@@ -1,17 +1,19 @@
#
# CONFIG.Common.RTEMS-beatnik
-# A migration from Eric Norum's CONFIG.Common.RTEMS-mvme5500
-# Author: Dayle Kotturi
-# SLAC
-# dayle@slac.stanford.edu
+# $Revision-Id$
+# Author: Dayle Kotturi
#
# All RTEMS targets use the same Makefile fragment
#
-override EXE=.elf
+EXE = .elf
RTEMS_TARGET_CPU = powerpc
-GNU_TARGET=powerpc-rtems
+GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
+
+OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
@@ -19,16 +21,13 @@ define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
endef
-CROSS_COMPILER_TARGET_ARCHS=RTEMS-beatnik
-
include $(CONFIG)/os/CONFIG.Common.RTEMS
+
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
-OP_SYS_LDLIBS += -lbspExt
-
%.sym: %$(EXE)
$(XSYMS) $^ $@
diff --git a/configure/os/CONFIG.Common.RTEMS-mvme2100 b/configure/os/CONFIG.Common.RTEMS-mvme2100
index a09a064f3..9f7eeefca 100644
--- a/configure/os/CONFIG.Common.RTEMS-mvme2100
+++ b/configure/os/CONFIG.Common.RTEMS-mvme2100
@@ -1,15 +1,18 @@
#
+# CONFIG.Common.RTEMS-mvme3100
# $Revision-Id$
-# Author: W. Eric Norum
-# Canadian Light Source
-# eric@cls.usask.ca
+# Author: W. Eric Norum
#
# All RTEMS targets use the same Makefile fragment
#
+EXE = .elf
RTEMS_TARGET_CPU = powerpc
+GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
+OP_SYS_LDLIBS += -lbspExt
+
MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
define MUNCH_CMD
@@ -24,6 +27,4 @@ define MUNCH_CMD
rm -f rtems.gz
endef
-OP_SYS_LDLIBS += -lbspExt
-
include $(CONFIG)/os/CONFIG.Common.RTEMS
diff --git a/configure/os/CONFIG.Common.RTEMS-mvme3100 b/configure/os/CONFIG.Common.RTEMS-mvme3100
index bea023374..5ee0757e5 100644
--- a/configure/os/CONFIG.Common.RTEMS-mvme3100
+++ b/configure/os/CONFIG.Common.RTEMS-mvme3100
@@ -1,11 +1,19 @@
#
+# CONFIG.Common.RTEMS-mvme3100
+# $Revision-Id$
+# Author: W. Eric Norum
+#
# All RTEMS targets use the same Makefile fragment
#
-override EXE=.elf
+EXE = .elf
RTEMS_TARGET_CPU = powerpc
-GNU_TARGET=powerpc-rtems
+GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
+
+OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
@@ -13,16 +21,13 @@ define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
endef
-CROSS_COMPILER_TARGET_ARCHS=RTEMS-beatnik
-
include $(CONFIG)/os/CONFIG.Common.RTEMS
+
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
-OP_SYS_LDLIBS += -lbspExt
-
%.sym: %$(EXE)
$(XSYMS) $^ $@
diff --git a/configure/os/CONFIG.Common.RTEMS-mvme5500 b/configure/os/CONFIG.Common.RTEMS-mvme5500
index 2544445a5..082e46b38 100644
--- a/configure/os/CONFIG.Common.RTEMS-mvme5500
+++ b/configure/os/CONFIG.Common.RTEMS-mvme5500
@@ -1,16 +1,21 @@
#
+# CONFIG.Common.RTEMS-mvme5500
# $Revision-Id$
-# Author: W. Eric Norum
-# Advanced Photon Source
-# norume@aps.anl.gov
+# Author: W. Eric Norum
#
# All RTEMS targets use the same Makefile fragment
#
+EXE = .elf
RTEMS_TARGET_CPU = powerpc
+GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
+ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
+OP_SYS_LDLIBS += -lbspExt
+
MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
define MUNCH_CMD
diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
index dc0e7f91d..16dacd411 100644
--- a/documentation/RELEASE_NOTES.html
+++ b/documentation/RELEASE_NOTES.html
@@ -69,6 +69,21 @@ fixed in this release:
+RTEMS-mvme5500
+
+This target now automatically links binary files with the bspExt library, and
+adds the extension .elf to their filenames, matching the other mvme
+targets.
+
+RTEMS Network Buffer Configuration
+
+Add the macros RTEMS_NETWORK_CONFIG_MBUF_SPACE and
+RTEMS_NETWORK_CONFIG_MBUF_SPACE to rtems_netconfig.c to allow
+customization of the network buffer space allocated. The configuration files
+for the RTEMS-mvme3100, RTEMS-mvme5500 and RTEMS-beatnik targets now default to
+allocating 2MB for mbufs and 5MB for clusters; other RTEMS targets will continue
+to use 180KB and 350KB rspectively.
+
RTEMS TFTP filesystem
Use the new mount API to initialize TFTP on newer RTEMS versions.
diff --git a/src/RTEMS/base/rtems_netconfig.c b/src/RTEMS/base/rtems_netconfig.c
index 93c3cf80a..910961153 100644
--- a/src/RTEMS/base/rtems_netconfig.c
+++ b/src/RTEMS/base/rtems_netconfig.c
@@ -1,7 +1,6 @@
/*************************************************************************\
* Copyright (c) 2002 The University of Saskatchewan
-* EPICS BASE Versions 3.13.7
-* and higher are distributed subject to a Software License Agreement found
+* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
@@ -93,6 +92,17 @@ static struct rtems_bsdnet_ifconfig bsp_driver_config = {
# define MY_DO_BOOTP rtems_bsdnet_do_bootp
#endif
+/*
+ * Allow site- and BSP-specific network buffer space configuration.
+ * The macro values are specified in KBytes.
+ */
+#ifndef RTEMS_NETWORK_CONFIG_MBUF_SPACE
+# define RTEMS_NETWORK_CONFIG_MBUF_SPACE 180
+#endif
+#ifndef RTEMS_NETWORK_CONFIG_CLUSTER_SPACE
+# define RTEMS_NETWORK_CONFIG_CLUSTER_SPACE 350
+#endif
+
/*
* Network configuration
*/
@@ -104,8 +114,8 @@ struct rtems_bsdnet_config rtems_bsdnet_config = {
/* EPICS scan thread. */
/* If non-zero then the network daemons will run */
/* at this *RTEMS* priority */
- 180*1024, /* MBUF space */
- 350*1024, /* MBUF cluster space */
+ RTEMS_NETWORK_CONFIG_MBUF_SPACE*1024,
+ RTEMS_NETWORK_CONFIG_CLUSTER_SPACE*1024,
NULL, /* Host name */
MY_DOMAINNAME, /* Domain name */
};
From c11a31f5499f54bc471693a799f691f69b41da55 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 26 Apr 2011 14:57:26 -0500
Subject: [PATCH 12/20] libCom/iocsh: Set IOCSH_STARTUP_SCRIPT env var.
---
documentation/RELEASE_NOTES.html | 10 ++++++++--
src/libCom/iocsh/iocsh.cpp | 1 +
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
index 16dacd411..5c957e771 100644
--- a/documentation/RELEASE_NOTES.html
+++ b/documentation/RELEASE_NOTES.html
@@ -14,8 +14,8 @@
Changes between 3.14.12 and 3.14.12.1
This release only contains changes that fix bugs or add build configuration
-files for new or updated target architectures. No new functionality has been
-added, and as this is a patch release the software has not gone through as
+files for new or updated target architectures. No functionality has been
+changed, and as this is a patch release the software has not gone through as
rigorous a testing regime as it does for a normal minor release.
Launchpad Bugs Resolved
@@ -69,6 +69,12 @@ fixed in this release:
+IOCSH_STARTUP_SCRIPT environment variable
+
+The function iocsh(const char *pathname) now sets the environment
+variable IOCSH_STARTUP_SCRIPT to the value of its pathname
+argument before it starts executing the script commands.
+
RTEMS-mvme5500
This target now automatically links binary files with the bspExt library, and
diff --git a/src/libCom/iocsh/iocsh.cpp b/src/libCom/iocsh/iocsh.cpp
index ce15ed9a1..f2d42b973 100644
--- a/src/libCom/iocsh/iocsh.cpp
+++ b/src/libCom/iocsh/iocsh.cpp
@@ -798,6 +798,7 @@ iocshBody (const char *pathname, const char *commandLine)
int epicsShareAPI
iocsh (const char *pathname)
{
+ epicsEnvSet("IOCSH_STARTUP_SCRIPT", pathname);
return iocshBody(pathname, NULL);
}
From c71093f47f525b6f96e46fbeb5f05c6e7d4793ec Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 26 Apr 2011 15:18:30 -0500
Subject: [PATCH 13/20] libCom/iocsh: Oops, allow NULL pathname.
---
src/libCom/iocsh/iocsh.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/libCom/iocsh/iocsh.cpp b/src/libCom/iocsh/iocsh.cpp
index f2d42b973..a3cbd22a1 100644
--- a/src/libCom/iocsh/iocsh.cpp
+++ b/src/libCom/iocsh/iocsh.cpp
@@ -798,7 +798,8 @@ iocshBody (const char *pathname, const char *commandLine)
int epicsShareAPI
iocsh (const char *pathname)
{
- epicsEnvSet("IOCSH_STARTUP_SCRIPT", pathname);
+ if (pathname)
+ epicsEnvSet("IOCSH_STARTUP_SCRIPT", pathname);
return iocshBody(pathname, NULL);
}
From ef0442b50d26aabea4f799afc41a9e9cf94909d4 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 26 Apr 2011 15:36:19 -0500
Subject: [PATCH 14/20] R3.14.12.1
---
configure/CONFIG_BASE_VERSION | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index bca2b4780..e1fbc94ad 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -39,10 +39,10 @@ EPICS_PATCH_LEVEL = 1
#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=
+EPICS_DEV_SNAPSHOT=
# No changes should be needed below here
From 342920b1dbec69afd94d316a1f0a5c3e6667937f Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Tue, 26 Apr 2011 15:37:21 -0500
Subject: [PATCH 15/20] R3.14.12.1-DEV
---
configure/CONFIG_BASE_VERSION | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION
index e1fbc94ad..8a5ae824a 100644
--- a/configure/CONFIG_BASE_VERSION
+++ b/configure/CONFIG_BASE_VERSION
@@ -33,7 +33,7 @@ EPICS_MODIFICATION = 12
EPICS_PATCH_LEVEL = 1
# 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
@@ -42,7 +42,7 @@ EPICS_PATCH_LEVEL = 1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV
-EPICS_DEV_SNAPSHOT=
+#EPICS_DEV_SNAPSHOT=
# No changes should be needed below here
From ce0114418fd0a18847d8250af087529027f96138 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Mon, 23 May 2011 16:34:58 -0500
Subject: [PATCH 16/20] tools: Fix LocalPath on Cygwin
The LocalPath() function must not replace /cygdrive/x with x:
This used to be necessary when mixing win32 and cygwin tools,
but we tell users not to do that any more. This problem only
appears if the path to base starts with /cygdrive/x.
---
src/tools/EPICS/Path.pm | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/tools/EPICS/Path.pm b/src/tools/EPICS/Path.pm
index f67f25010..ba6ad4a9b 100644
--- a/src/tools/EPICS/Path.pm
+++ b/src/tools/EPICS/Path.pm
@@ -64,7 +64,6 @@ put into a file. It converts paths from the Unix form that Perl understands to
any necessary external representation, and also removes automounter prefixes to
put the path into its canonical form.
-On cygwin we convert cygdrive paths to their equivalent Windows drive specs.
Before Leopard, the Mac OS X automounter inserted a verbose prefix, and in case
anyone is still using SunOS it adds its own prefix as well.
@@ -72,9 +71,7 @@ anyone is still using SunOS it adds its own prefix as well.
sub LocalPath {
my ($newpath) = @_;
- if ($^O eq 'cygwin') {
- $newpath =~ s{^/cygdrive/([a-zA-Z])/}{$1:/};
- } elsif ($^O eq 'darwin') {
+ if ($^O eq 'darwin') {
# Darwin automounter
$newpath =~ s{^/private/var/auto\.}{/};
} elsif ($^O eq 'sunos') {
From f1a646240bc25a4a6632d99173354e8dfb99a342 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Wed, 1 Jun 2011 15:11:05 -0500
Subject: [PATCH 17/20] configure: Fix 'make -s' on Windows
Use REM instead of '#' to disable @echo commands.
Thanks to Ben Franksen for the hint.
---
configure/CONFIG_COMMON | 3 ++-
configure/os/CONFIG.win32-x86-borland.Common | 1 +
configure/os/CONFIG.win32-x86-mingw.Common | 1 +
configure/os/CONFIG.win32-x86.Common | 1 +
4 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON
index 7ea90a944..338bd258a 100644
--- a/configure/CONFIG_COMMON
+++ b/configure/CONFIG_COMMON
@@ -82,7 +82,8 @@ COMMON_DIR = ../O.Common
#-------------------------------------------------------
# Make echo output - suppress echoing if make's '-s' flag is set
-ECHO := $(if $(findstring s,$(MAKEFLAGS)),\#,@echo)
+COMMENT = \#
+ECHO = $(if $(findstring s,$(MAKEFLAGS)),$(COMMENT),@echo)
#-------------------------------------------------------
ifdef T_A
diff --git a/configure/os/CONFIG.win32-x86-borland.Common b/configure/os/CONFIG.win32-x86-borland.Common
index 0d20d35e7..0ad43a3b1 100644
--- a/configure/os/CONFIG.win32-x86-borland.Common
+++ b/configure/os/CONFIG.win32-x86-borland.Common
@@ -12,6 +12,7 @@ MV = $(PERL) -MExtUtils::Command -e mv
RM = $(PERL) -MExtUtils::Command -e rm_f
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
+COMMENT = REM
WIND_HOST_TYPE = x86-win32
OSITHREAD_USE_DEFAULT_STACK = NO
diff --git a/configure/os/CONFIG.win32-x86-mingw.Common b/configure/os/CONFIG.win32-x86-mingw.Common
index 2e72d8668..dedfc1b8e 100644
--- a/configure/os/CONFIG.win32-x86-mingw.Common
+++ b/configure/os/CONFIG.win32-x86-mingw.Common
@@ -15,6 +15,7 @@ MV = $(PERL) -MExtUtils::Command -e mv
RM = $(PERL) -MExtUtils::Command -e rm_f
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
+COMMENT = REM
WIND_HOST_TYPE = x86-win32
OSITHREAD_USE_DEFAULT_STACK = NO
diff --git a/configure/os/CONFIG.win32-x86.Common b/configure/os/CONFIG.win32-x86.Common
index 8d6565815..ce6f439b1 100644
--- a/configure/os/CONFIG.win32-x86.Common
+++ b/configure/os/CONFIG.win32-x86.Common
@@ -12,6 +12,7 @@ MV = $(PERL) -MExtUtils::Command -e mv
RM = $(PERL) -MExtUtils::Command -e rm_f
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
+COMMENT = REM
WIND_HOST_TYPE = x86-win32
OSITHREAD_USE_DEFAULT_STACK = NO
From 0dfc92f48d3c853e2180e642fc976fa3ffb82a25 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
Date: Wed, 1 Jun 2011 15:55:10 -0500
Subject: [PATCH 18/20] util: Support logrotate with iocLogServer
Allow reopening of the same filename on receipt of a SIGHUP.
Requested by Lana Abadie at ITER.
---
src/util/iocLogServer.c | 46 ++++++++++++++++++-----------------------
1 file changed, 20 insertions(+), 26 deletions(-)
diff --git a/src/util/iocLogServer.c b/src/util/iocLogServer.c
index fc824bf00..c2d190699 100644
--- a/src/util/iocLogServer.c
+++ b/src/util/iocLogServer.c
@@ -1,17 +1,16 @@
/*************************************************************************\
-* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
+* Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
-* EPICS BASE Versions 3.13.7
-* and higher are distributed subject to a Software License Agreement found
+* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/* iocLogServer.c */
-/* base/src/util $Revision-Id$ */
+/* $Revision-Id$ */
/*
- * archive logMsg() from several IOC's to a common rotating file
+ * archive logMsg() from several IOC's to a common rotating file
*
*
* Author: Jeffrey O. Hill
@@ -903,40 +902,35 @@ static void serviceSighupRequest(void *pParam)
}
/*
- * If it's changed, open the new file.
+ * Try (re)opening the file.
*/
- if (strcmp(ioc_log_file_name, pserver->outfile) == 0) {
+ status = openLogFile(pserver);
+ if(status<0){
fprintf(stderr,
- "iocLogServer: log file name unchanged; not re-opened\n");
- }
- else {
+ "File access problems to `%s' because `%s'\n",
+ ioc_log_file_name,
+ strerror(errno));
+ /* Revert to old filename */
+ strcpy(ioc_log_file_name, pserver->outfile);
status = openLogFile(pserver);
if(status<0){
fprintf(stderr,
- "File access problems to `%s' because `%s'\n",
+ "File access problems to `%s' because `%s'\n",
ioc_log_file_name,
strerror(errno));
- strcpy(ioc_log_file_name, pserver->outfile);
- status = openLogFile(pserver);
- if(status<0){
- fprintf(stderr,
- "File access problems to `%s' because `%s'\n",
- ioc_log_file_name,
- strerror(errno));
- return;
- }
- else {
- fprintf(stderr,
- "iocLogServer: re-opened old log file %s\n",
- ioc_log_file_name);
- }
+ return;
}
else {
fprintf(stderr,
- "iocLogServer: opened new log file %s\n",
+ "iocLogServer: re-opened old log file %s\n",
ioc_log_file_name);
}
}
+ else {
+ fprintf(stderr,
+ "iocLogServer: opened new log file %s\n",
+ ioc_log_file_name);
+ }
}
From 43f58c990aa503d3161cbfbde1520618332a2702 Mon Sep 17 00:00:00 2001
From: unknown
Date: Wed, 1 Jun 2011 16:27:18 -0500
Subject: [PATCH 19/20] libCom: Only delete a timer queue when its ref count is
0.
Fixes lp:786979
---
src/libCom/timer/timerQueueActiveMgr.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/libCom/timer/timerQueueActiveMgr.cpp b/src/libCom/timer/timerQueueActiveMgr.cpp
index 1b04bee98..803b96bba 100644
--- a/src/libCom/timer/timerQueueActiveMgr.cpp
+++ b/src/libCom/timer/timerQueueActiveMgr.cpp
@@ -58,20 +58,21 @@ epicsTimerQueueActiveForC & timerQueueActiveMgr ::
void timerQueueActiveMgr ::
release ( epicsTimerQueueActiveForC & queue )
{
- timerQueueActiveMgrPrivate * pPriv = & queue;
{
epicsGuard < epicsMutex > locker ( this->mutex );
assert ( queue.timerQueueActiveMgrPrivate::referenceCount > 0u );
queue.timerQueueActiveMgrPrivate::referenceCount--;
- if ( queue.timerQueueActiveMgrPrivate::referenceCount == 0u ) {
- if ( queue.sharingOK () ) {
- this->sharedQueueList.remove ( queue );
- }
+ if ( queue.timerQueueActiveMgrPrivate::referenceCount > 0u ) {
+ return;
+ }
+ else if ( queue.sharingOK () ) {
+ this->sharedQueueList.remove ( queue );
}
}
// delete only after we release the guard in case the embedded
// reference is the last one and this object is destroyed
// as a side effect
+ timerQueueActiveMgrPrivate * pPriv = & queue;
delete pPriv;
}
From 5649e158420f002cece9075cec8224e60fa36bef Mon Sep 17 00:00:00 2001
From: unknown
Date: Wed, 1 Jun 2011 17:22:12 -0500
Subject: [PATCH 20/20] ca: Remove unnecessary mutable qualifiers
These references are never actually "mutated", and break builds
with a recent C++ compiler.
Fixes lp:736273
---
src/ca/cac.h | 4 ++--
src/ca/udpiiu.h | 4 ++--
src/db/dbCAC.h | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/ca/cac.h b/src/ca/cac.h
index 4bac0cdb1..ae20eef27 100644
--- a/src/ca/cac.h
+++ b/src/ca/cac.h
@@ -266,8 +266,8 @@ private:
// **** lock hierarchy ****
// 1) callback lock must always be acquired before
// the primary mutex if both locks are needed
- mutable epicsMutex & mutex;
- mutable epicsMutex & cbMutex;
+ epicsMutex & mutex;
+ epicsMutex & cbMutex;
epicsEvent iiuUninstall;
ipAddrToAsciiEngine & ipToAEngine;
epicsTimerQueueActive & timerQueue;
diff --git a/src/ca/udpiiu.h b/src/ca/udpiiu.h
index 0f3d1a313..3c9327547 100644
--- a/src/ca/udpiiu.h
+++ b/src/ca/udpiiu.h
@@ -149,8 +149,8 @@ private:
double rtteMean;
double rtteMeanDev;
cac & cacRef;
- mutable epicsMutex & cbMutex;
- mutable epicsMutex & cacMutex;
+ epicsMutex & cbMutex;
+ epicsMutex & cacMutex;
epics_auto_ptr < epics_auto_ptr < class searchTimer >, eapt_array > ppSearchTmr;
unsigned nBytesInXmitBuf;
unsigned nTimers;
diff --git a/src/db/dbCAC.h b/src/db/dbCAC.h
index b25fe301e..3032023dc 100644
--- a/src/db/dbCAC.h
+++ b/src/db/dbCAC.h
@@ -196,8 +196,8 @@ private:
dbContextReadNotifyCache readNotifyCache;
dbEventCtx ctx;
unsigned long stateNotifyCacheSize;
- mutable epicsMutex & mutex;
- mutable epicsMutex & cbMutex;
+ epicsMutex & mutex;
+ epicsMutex & cbMutex;
cacContextNotify & notify;
epics_auto_ptr < cacContext > pNetContext;
char * pStateNotifyCache;