Compare commits

...

80 Commits

Author SHA1 Message Date
Andrew Johnson
3c0cea0f38 R3.14.12.1-rc1 2011-04-19 15:09:57 -05:00
Andrew Johnson
4c7684aad1 Document 3.14.12.1 changes. 2011-04-19 15:05:36 -05:00
Andrew Johnson
6efd4be222 configure: Added vxWorks-ppc32-debug and vxWorks-ppc32sf-debug archs. 2011-04-19 15:02:47 -05:00
Andrew Johnson
1584f98e26 catools: Disable stdout buffering on Windows
Line buffering is not supported on Windows 7.
2011-04-19 14:21:38 -05:00
Janet Anderson
f3f2f23fbc Updates for latest releases of os, Visual Studio, ... 2011-04-19 11:28:04 -05:00
Janet Anderson
5aeb325185 Updated for latest releases of os, Visual Studio, ... 2011-04-19 10:55:18 -05:00
Michael Davidsaver
2949f6650e 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.
2011-04-12 18:12:52 -05:00
Janet Anderson
b472473ef1 Restored COMMON_DBS usage in DBDDEPENDS_FILES definition. 2011-04-11 15:47:40 -05:00
Andrew Johnson
8418aa059a libCom/test: Suppress g++ build warnings from epicsCalcTest
Newer versions of gcc support #pragma GCC diagnostic
2011-04-07 17:25:02 -05:00
Andrew Johnson
1106bab73e RTEMS: Use the new mount API to initialize TFTP. 2011-04-05 17:21:54 -05:00
Andrew Johnson
038ac0cd38 Fix some build issues with old Solaris C++ compiler.
src/libCom/test/epicsExceptionTest.cpp:
  exThread needs a destructor

src/cas/generic/st/casStreamOS.cc:
  Can't use inline as armSend already called
2011-04-05 16:08:49 -05:00
Andrew Johnson
8dea585dc2 FreeBSD update to osdSock.h from Gerrit Kuehn. 2011-04-05 12:32:39 -05:00
Andrew Johnson
fc6df7652d Update iOS CONFIG files for iOS 4.3 2011-04-05 12:27:00 -05:00
Andrew Johnson
db89c1f463 Added generic PPC32 targets for vxWorks 6. 2011-04-05 12:12:47 -05:00
Andrew Johnson
c6e1787ff9 Solve C++ static initialization order problem.
Fixes lp:750549
2011-04-05 11:27:22 -05:00
Jeff Hill
0dab032751 avoid c++ static initialization order issues 2011-04-05 09:23:22 -06:00
Jeff Hill
4b780b1011 avoid c++ static initialization order issues 2011-04-04 17:50:49 -06:00
Jeff Hill
fc3e876d57 avoid c++ static initialization order issues 2011-04-04 17:29:51 -06:00
Andrew Johnson
f4528ff5e1 libCom: Fix msgbufGetNode() in errlog.c
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.
2011-03-01 15:03:33 -06:00
Andrew Johnson
d73f466dbc documentation: KnownProblems template
Modified the empty template file to include GNU Patch usage
instructions.
2011-02-28 17:26:24 -06:00
Andrew Johnson
3d056f63e4 configure: Added vxWorks-mpc8548 target (MVME4100)
Config files from Ernest Williams.
2011-02-15 16:19:26 -06:00
Jeff Hill
fd72cb63bf libCom/WIN32: Merged Jeff's fix for bug 717252
o Fixed race condition where win32 thread parm was not pushed onto the
  list before the thread was started, and so if the thread exits very
  quickly it can try to remove a non-existent thread parameter from
  the list.
o This impacts only win32.
2011-02-11 16:33:58 -06:00
Andrew Johnson
c698853394 libCom: Merged Jeff's epicsThread change.
When finished waiting for a thread to exit, signal the event in case
other threads are waiting also.
2011-02-11 15:04:04 -06:00
Andrew Johnson
22f1e8201f libCom/WIN32: Merged Jeff's WIN32/osdThread changes
Fixed spelling and other cosmetic changes.
2011-02-11 15:01:39 -06:00
Andrew Johnson
b38127450e libCom/WIN32: Merged Jeff's osdTime fix
Fixed last time compare in PLL drift factor update loop.
2011-02-11 14:59:35 -06:00
Andrew Johnson
fbcc7b4a0d ca: Merged Jeff's tcpiiu changes
In disconnectAllChannels mark channels as unassigned to any list
because in some unusual situations (abrupt shutdown) the channels are
not immediately assigned to another list.
2011-02-11 14:55:04 -06:00
Jeff Hill
5a11866431 when finished waiting for a thread to exit, signal the event in case other threads are waiting also 2011-01-14 18:01:53 -07:00
Jeff Hill
253036c36c o committing merge of r3.14 trunk change
o fixed spelling and other cosmetic changes
2011-01-14 18:00:02 -07:00
Jeff Hill
793639f4da fixed last time compare in PLL drift factor update loop 2011-01-14 17:56:49 -07:00
Jeff Hill
a2c87268f5 in disconnectAllChannels mark channels as unassigned to any list because in some unusual situations (abrupt shutdown) the channels are not immediately assigned to another list 2011-01-14 17:53:33 -07:00
Jeff Hill
a52b995ca2 rsrv: Fixed large array element count bug
Reverted commit 12095.2.5 which introduced an incorrect optimization.

Fixes:701673
2011-01-13 16:21:31 -06:00
Jeff Hill
2af392a099 fix for bug 701673 at launchpad (wrong native element count for large arrays) 2011-01-12 15:41:33 -07:00
Michael Davidsaver
6170dc9406 libCom: Fix errlogPrintf() assert fail at shutdown
If errlogPrintf() gets called during shutdown, it can cause a
recursive assert failure.

Fixes lp:693534
2011-01-07 10:24:31 -06:00
Andrew Johnson
23daca46a1 tools: More back-slash escape fixes
Thanks to Stephen Norum for pointing most of these out and
testing the patch.
2010-12-16 17:02:15 -06:00
Andrew Johnson
f9ebe082ff registry: Escape back-slashes in bldTop string literal on Win32. 2010-12-14 15:05:26 -06:00
Andrew Johnson
dc76951945 configure: Set EPICS_DEV_SNAPSHOT back to -DEV 2010-11-24 16:18:25 -06:00
Janet Anderson
253fd8109b R3.14.12 2010-11-24 14:50:38 -06:00
Andrew Johnson
fd4b34be8f docs: Added a couple more LP bug fixes to the Release Notes. 2010-11-24 14:35:35 -06:00
Andrew Johnson
23c7e64490 rec: Fix calc & calcout get_precision() 2010-11-24 13:35:04 -06:00
Ralph Lange
3ca705752a catools: Fix help text for "-s" option (also in CA RefMan) 2010-11-24 13:31:47 -05:00
Andrew Johnson
2069889347 docs: Update notes and comments about readline settings. 2010-11-22 10:40:49 -06:00
Andrew Johnson
04085d340b configure: Link with libdl on Solaris 8 and 9 (but not 10). 2010-11-19 16:38:46 -06:00
Andrew Johnson
bc7e87b961 RTEMS: Warning cleanups from Eric. 2010-11-17 16:30:32 -06:00
Andrew Johnson
81d155c98b documentation: Fixed typos and enhanced Release Notes a little. 2010-11-17 13:31:32 -06:00
Andrew Johnson
512e14e4b7 documentation: Added links to the bugs marked Fix Committed in LP. 2010-11-15 18:02:46 -06:00
Andrew Johnson
c503a03f37 libCom/errlog: Clean up possible problem at shutdown.
Don't use epicsMutexMustLock() in msgbufGetFree().
When we're shutting down, the pvtData.msgQueueLock gets destroyed.
This makes msgbufGetFree() return NULL if the lock is dead.
The epicsMutexMustLock() routine asserts(), which recurses...
2010-11-15 15:46:40 -06:00
Janet Anderson
fb493a064c R3.14.12-rc1-DEV 2010-11-15 14:28:03 -06:00
Janet Anderson
e406440316 R3.14.12-rc1 2010-11-15 13:59:06 -06:00
jba
94a48d23d0 Set HDEPENDS_METHOD to CMD which was overidden by CONFIG.gnuCommon. 2010-11-15 13:43:17 -06:00
jba
cf18208579 Added and removed include files. 2010-11-15 11:27:17 -06:00
Janet Anderson
7cf01b091b Removed unneeded include line. 2010-11-15 10:31:16 -06:00
Janet Anderson
e1c1dd45a6 Added include lines for host build CONFIG_SITE files. 2010-11-14 19:49:17 -06:00
Janet Anderson
8e40be47a0 Removed VX_DIR definition- no longer works in CONFIG_SITE.*.Common files. 2010-11-14 19:29:53 -06:00
Andrew Johnson
9777c63e23 documentation: Paragraphs on epicsEvent and Cygwin support. 2010-11-12 16:48:21 -06:00
Andrew Johnson
18594e1a34 subArray: Bugfix, allow array puts to VAL
Fixed a bug reported by Michael Abbott, NORD goes -ve.
Modified soft channel support so when INP="" it extracts the relevent
sub-array of the existing VAL field; use an external put to set the
array. This lets the other records pull a series of values from the
record in sequence.
2010-11-12 16:09:09 -06:00
Janet Anderson
99e7e7727a Provide a link-time path for readline directory.
Remove unneeded READLINE definitions from last commit.
2010-11-11 13:45:09 -06:00
Janet Anderson
adb201a048 Now RUNTIME_LDFLAGS is set here. 2010-11-11 13:43:53 -06:00
Janet Anderson
56ada25dd7 RUNTIME_LDFLAGS now set in CONFIG_COMMON. Use LINKER_USE_RPATH for
readline dir.
2010-11-11 13:41:03 -06:00
Janet
23bbe233f7 Moved COMMANDLINE to CONFIG_SITE.Common.win32-x86-mingw 2010-11-10 16:59:06 -06:00
Janet Anderson
c48fe29e89 Allow arm cross targets to use readline as command line library. 2010-11-10 12:02:20 -06:00
Andrew Johnson
b5c185877d RTEMS: Allow for 64-bit compatibility in RTEMS 4.10. 2010-11-10 09:44:19 -06:00
Janet Anderson
b82db48335 Use win32-x86 values for default values. 2010-11-09 15:37:08 -06:00
Janet Anderson
da8ae994e4 Initial version. 2010-11-09 15:12:20 -06:00
Janet Anderson
8d2cd8b96c Updated to match extensions/configure. 2010-11-09 14:55:13 -06:00
Janet Anderson
91631919e5 Minor changes. 2010-11-09 08:32:36 -06:00
Janet Anderson
181c4e126a Added includes for CONFIG_SITE files for hostarch. 2010-11-08 08:18:58 -06:00
Janet Anderson
32ebff1881 Removed OPT flag lines which are same as gnu compiler build defaults. 2010-11-08 08:16:12 -06:00
Ralph Lange
e65253f8b9 ca: Minor fix in CA Reference Manual 2010-11-05 15:57:34 -04:00
Ralph Lange
3398950f9d ca: Added chapter about firewalls to CA Reference Manual 2010-11-05 15:41:39 -04:00
Andrew Johnson
2477bf52e6 libCom: Cygwin socket unblocking again...
It helps to include the cygwin header file that
actually has the version number in it...
2010-11-04 14:24:13 -05:00
Andrew Johnson
e7179fc289 libCom: Fix cygwin socket shutdown issue.
Cygwin 1.7 changed the socket shutdown method from BothShutdown
to Close. This fix looks at the cygwin version to work out what
value to return from esscimqi().
2010-11-04 13:30:44 -05:00
Jeff Hill
f340b3e153 o removed -O3 from mingw debug builds (so the issues below are reproduced on mingw)
o gnu compiler for windows doesnt support well dll exporting individual functions from a class
in debug builds so I switched to exporting the entire interface class in several places
o fixed several places in ca lib where include of epicsTimer.h wasnt properly ifdef'd so
that it is imported by ca header files
--- these issues were already fixed on cvs main trunk ---
2010-11-04 10:19:54 -06:00
Andrew Johnson
b4d7b6f851 Merged Jeff's fix for Bug 667384
This commit was needed to reorder the commit history so that everyone
else's commits since 2010-09-27 remain on the mainline.
2010-11-01 18:07:15 -05:00
Jeff Hill
36175b1368 merged in R3.14.12 2010-11-01 15:15:51 -06:00
Jeff Hill
e372a83096 neglected to unlock on error return path 2010-11-01 15:01:04 -06:00
Jeff Hill
3ad06eb0a3 fixed request and response bytes amount was revered in printf 2010-11-01 15:00:02 -06:00
Janet Anderson
93c39c86f7 Added includes for host's CONFIG_SITE files. Changed all to -include. 2010-11-01 14:35:49 -05:00
Andrew Johnson
46b912bc16 cas: Workaround for vxWorks-ppc604 compiler issue. 2010-10-29 12:15:48 -05:00
Andrew Johnson
1e6464cdc4 libCom/test: Various improvements.
Made epicsThreadOnceTest more deterministic, replacing an
epicsThreadSleep() with epicsEventMustWait(), and added a diagnostic
message before running the thread recurse test.

Eric added a series of checks to epicsEventTest.cpp which ensure that
epicsEventSignal() only wakes one waiting thread.
2010-10-29 11:58:44 -05:00
Janet Anderson
c84c3d49ad R3.14.12-pre2-DEV 2010-10-27 17:05:43 -05:00
89 changed files with 1047 additions and 296 deletions

View File

@@ -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=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
EPICS_DEV_SNAPSHOT=-pre2
#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

View File

@@ -258,6 +258,7 @@ LOADABLE_SHRLIB_SUFFIX=$(SHRLIB_SUFFIX)
COMMANDLINE_LIBRARY = EPICS
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
#--------------------------------------------------
# Flags

View File

@@ -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

View File

@@ -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)))

View File

@@ -55,7 +55,7 @@ CCC = $(GNU_BIN)/c++
#-------------------------------------------------------
# Linker flags
OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib
OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib -L$(SDK_DIR)/usr/lib/system
#-------------------------------------------------------
# Shared libraries

View File

@@ -29,4 +29,11 @@ ifeq ($(BUILD_CLASS),CROSS)
# Provide a link-time path for products
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for readline
RUNTIME_LDFLAGS_READLINE_YES = -Wl,-rpath-link,$(GNU_DIR)/lib
RUNTIME_LDFLAGS_READLINE = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_CURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_NCURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
endif

View File

@@ -35,8 +35,6 @@ SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
GNU_TARGET=sparc-sun-solaris2
STLPORT_CFLAGS_YES= -library=stlport4
@@ -53,17 +51,17 @@ OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
# OS libraries used when generating shared libraries or static binaries
OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -lCrun -lc
OP_SYS_LDLIBS_9 += -lumem -lCrun -lc
OP_SYS_LDLIBS_8 += -ldl -lCrun -lc
OP_SYS_LDLIBS_9 += -ldl -lumem -lCrun -lc
OP_SYS_LDLIBS_10 += -lumem -lCrun -lc
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
# Definitions used when COMMANDLINE_LIBRARY is READLINE
READLINE_DIR = $(GNU_DIR)
INCLUDES_READLINE = -I$(READLINE_DIR)/include
RUNTIME_LDFLAGS_READLINE += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
LDLIBS_READLINE = -lreadline -lcurses
# Use archive if there is a problem with the readline shared library
#LDLIBS_READLINE = -Bstatic -lreadline -Bdynamic -lcurses

View File

@@ -15,7 +15,7 @@ COMPILER_CPPFLAGS = -D_REENTRANT
STLPORT_LDLIBS_NO =
OP_SYS_LDLIBS_8 =
OP_SYS_LDLIBS_9 =
OP_SYS_LDLIBS_8 = -ldl
OP_SYS_LDLIBS_9 = -ldl
OP_SYS_LDLIBS_10 =

View File

@@ -36,8 +36,6 @@ SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
GNU_TARGET=x86-sun-solaris2
STLPORT_CFLAGS_YES= -library=stlport4
@@ -52,8 +50,8 @@ OP_SYS_CFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
OP_SYS_LDFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -lCrun -lc
OP_SYS_LDLIBS_9 += -lCrun -lc
OP_SYS_LDLIBS_8 += -ldl -lCrun -lc
OP_SYS_LDLIBS_9 += -ldl -lCrun -lc
OP_SYS_LDLIBS_10 += -lCrun -lc
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
@@ -61,7 +59,8 @@ OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
# Definitions used when COMMANDLINE_LIBRARY is READLINE
READLINE_DIR = $(GNU_DIR)
INCLUDES_READLINE = -I$(READLINE_DIR)/include
RUNTIME_LDFLAGS_READLINE += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
LDLIBS_READLINE = -lreadline -lcurses
# Use archive if there is a problem with the readline shared library

View File

@@ -14,7 +14,7 @@ COMPILER_CPPFLAGS = -D_REENTRANT
STLPORT_LDLIBS_NO =
OP_SYS_LDLIBS_8 = -lc
OP_SYS_LDLIBS_9 = -lc
OP_SYS_LDLIBS_8 = -ldl -lc
OP_SYS_LDLIBS_9 = -ldl -lc
OP_SYS_LDLIBS_10 = -lc

View File

@@ -1,9 +1,10 @@
# CONFIG.Common.vxWorks-mpc8540
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for vxWorks-mpc8540 targets: MPC8540 CPU with >32MB RAM.
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-mpc8540
#
# This file is maintained by the EPICS build community.
# Definitions for vxWorks-mpc8540 target archs
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8540
#-------------------------------------------------------
# Include definitions common to all vxWorks target archs

View File

@@ -0,0 +1,26 @@
# CONFIG.Common.vxWorks-mpc8548
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for vxWorks-mpc8548 target archs
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8548
#-------------------------------------------------------
# Include definitions common to all vxWorks target archs
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
ARCH_DEP_CFLAGS = -DCPU_VARIANT=_ppc85XX_e500v2
ARCH_DEP_CFLAGS += -mlongcall
# This flag isn't present in early vxWorks 6.x versions
#ARCH_DEP_CFLAGS += -te500v2
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -0,0 +1,14 @@
# CONFIG.Common.vxWorks-mpc8548-debug
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for vxWorks-mpc8548-debug targets.
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8548-debug
#-------------------------------------------------------
# Include definitions common to all vxWorks archs
include $(CONFIG)/os/CONFIG.Common.vxWorks-mpc8548
CROSS_OPT = NO

View File

@@ -0,0 +1,24 @@
# $Revision-Id$
#
# Definitions for vxWorks-ppc603 targets with >32MB of RAM
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc603_long
#
# This file is maintained by the EPICS build community.
#-------------------------------------------------------
# Include definitions common to all vxWorks target archs
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
ARCH_DEP_CFLAGS = -mstrict-align
GNU_TARGET = powerpc-wrs-vxworks
# Tell compiler to generate long branches
ARCH_DEP_CFLAGS += -mlongcall

View File

@@ -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

View File

@@ -0,0 +1,13 @@
# $Revision-Id$
#
# Definitions for vxWorks-ppc32sf targets
# Site-specific overrides go in CONFIG_SITE.Common.vxWorks-ppc32sf
#
# This file is maintained by the EPICS build community.
#-------------------------------------------------------
# Inherit the settings from vxWorks-ppc32
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32
# Tell compiler to use software floating-point
ARCH_DEP_CFLAGS += -msoft-float

View File

@@ -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

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.cygwin-x86.cygwin-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.cygwin-x86
include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86
-include $(CONFIG)/os/CONFIG.Common.cygwin-x86
-include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.cygwin-x86
-include $(CONFIG)/os/CONFIG_SITE.cygwin-x86.cygwin-x86
BUILD_CLASS = HOST

View File

@@ -9,6 +9,8 @@
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.darwin-ppc.darwin-ppc
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -9,6 +9,9 @@
-include $(CONFIG)/os/CONFIG.Common.darwin-x86
-include $(CONFIG)/os/CONFIG.darwin-x86.darwin-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-x86
-include $(CONFIG)/os/CONFIG_SITE.darwin-x86.darwin-x86
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -7,8 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
-include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
#-include $(CONFIG)/os/CONFIG_SITE.Common.linux-x86
#-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-x86
BUILD_CLASS=HOST
HOST_OPT=NO

View File

@@ -7,8 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.linux-x86_64.linux-x86_64-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
-include $(CONFIG)/os/CONFIG.linux-x86_64.linux-x86_64
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-x86_64
-include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.linux-x86_64
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -7,7 +7,9 @@
# Sites may override these definitions in CONFIG_SITE.solaris-sparc.solaris-sparc-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
-include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
-include $(CONFIG)/os/CONFIG_SITE.Common.solaris-sparc
-include $(CONFIG)/os/CONFIG_SITE.solaris-sparc.solaris-sparc
BUILD_CLASS=HOST
HOST_OPT=NO

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.solaris-x86.solaris-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.solaris-x86
include $(CONFIG)/os/CONFIG.solaris-x86.solaris-x86
-include $(CONFIG)/os/CONFIG.Common.solaris-x86
-include $(CONFIG)/os/CONFIG.solaris-x86.solaris-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.solaris-x86
-include $(CONFIG)/os/CONFIG_SITE.solaris-x86.solaris-x86
BUILD_CLASS=HOST

View File

@@ -26,7 +26,4 @@ LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
# Override linking with gcc library from CONFIG.gnuCommon
GNU_LDLIBS_YES =
OPT_CFLAGS_NO = -O3 -g
OPT_CXXFLAGS_NO = -O3 -g
OP_SYS_LDLIBS = -lws2_32

View File

@@ -7,8 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.win32-x86-mingw.win32-x86-mingw-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw
-include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
-include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw
-include $(CONFIG)/os/CONFIG_SITE.Common.win32-x86-mingw
-include $(CONFIG)/os/CONFIG_SITE.win32-x86-mingw.win32-x86-mingw
BUILD_CLASS = HOST

View File

@@ -7,10 +7,14 @@
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86-debug.win32-x86-debug
-include $(CONFIG)/os/CONFIG.Common.win32-x86
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.Common.win32-x86
-include $(CONFIG)/os/CONFIG_SITE.win32-x86.win32-x86
GNU = NO
HDEPENDS_METHOD = CMD
BUILD_CLASS = HOST
HOST_OPT = NO

View File

@@ -9,7 +9,8 @@
# iOS Version number
#IOS_VERSION = 3.2
IOS_VERSION = 4.1
#IOS_VERSION = 4.1
IOS_VERSION = 4.3
# Most sites will want shared libraries

View File

@@ -1,5 +1,7 @@
# CONFIG_SITE.Common.linux-cris
#
# $Revision-Id$
#
# Site Specific definitions for linux-cris target
# Only the local epics system manager should modify this file
@@ -15,9 +17,21 @@
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
# to inform the system of the shared library location.
# If readline is not installed comment the following line
# to omit command-line editing and history support
# Depending on your version of Linux you may want one of the following
# lines to enable command-line editing and history in iocsh. If you're
# not sure which, start with the top one and work downwards until the
# build doesn't fail to link the readline library. If none of them work,
# comment them all out to build without readline support.
# No other libraries needed (recent Fedora, Ubuntu etc.):
#COMMANDLINE_LIBRARY = READLINE
# Needs -lncurses (RHEL 5 etc.):
#COMMANDLINE_LIBRARY = READLINE_NCURSES
# Needs -lcurses (older versions)
#COMMANDLINE_LIBRARY = READLINE_CURSES
OP_SYS_CFLAGS += -g

View File

@@ -18,12 +18,19 @@
# to inform the system of the shared library location.
# Depending on your version of Linux you'll want one of the following
# lines to enable command-line editing and history support. If you're
# lines to enable command-line editing and history in iocsh. If you're
# not sure which, start with the top one and work downwards until the
# build doesn't fail to link the readline library. If none of them
# work, comment them all out.
#COMMANDLINE_LIBRARY = READLINE
COMMANDLINE_LIBRARY = READLINE_NCURSES
# build doesn't fail to link the readline library. If none of them work,
# comment them all out to build without readline support.
# No other libraries needed (recent Fedora, Ubuntu etc.):
COMMANDLINE_LIBRARY = READLINE
# Needs -lncurses (RHEL 5 etc.):
#COMMANDLINE_LIBRARY = READLINE_NCURSES
# Needs -lcurses (older versions)
#COMMANDLINE_LIBRARY = READLINE_CURSES
OP_SYS_CFLAGS += -g

View File

@@ -18,12 +18,19 @@
# to inform the system of the shared library location.
# Depending on your version of Linux you'll want one of the following
# lines to enable command-line editing and history support. If you're
# lines to enable command-line editing and history in iocsh. If you're
# not sure which, start with the top one and work downwards until the
# build doesn't fail to link the readline library. If none of them
# work, comment them all out.
# build doesn't fail to link the readline library. If none of them work,
# comment them all out to build without readline support.
# No other libraries needed (recent Fedora, Ubuntu etc.):
COMMANDLINE_LIBRARY = READLINE
# Needs -lncurses (RHEL 5 etc.):
#COMMANDLINE_LIBRARY = READLINE_NCURSES
# Needs -lcurses (older versions)
#COMMANDLINE_LIBRARY = READLINE_CURSES
OP_SYS_CFLAGS += -g

View File

@@ -0,0 +1,6 @@
# $Revision-Id$
#
# Site Specific definitions for the vxWorks-mpc8548 target
#
# Only the local epics system manager should modify this file
#-------------------------------------------------------

View File

@@ -7,6 +7,5 @@
# jba overrides
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-486
#VX_DIR = T:/tornado20
BORLAND = c:\\Borland\\Bcc55

View File

@@ -8,5 +8,4 @@
# jba test overrides
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-486
#CROSS_COMPILER_TARGET_ARCHS+=vxWorks-68040
#VX_DIR = T:/tornado20
#INSTALL_LOCATION = G:/testInstall

View File

@@ -172,7 +172,7 @@ exampleIoc_SRCS += devXxxSoft.c
exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
PROD_IOC_vxWorks = example
example_SRCS += sncExample.stt
example_SRCS += sncExample.st
example_LIBS += exampleIoc
example_LIBS += seq pv
example_LIBS += $(EPICS_BASE_IOC_LIBS)
@@ -263,7 +263,7 @@ dev<i>name</i> = { ... };</q></p>
<h3>Registration code changed</h3>
<p>Registration code for application specific functions, e.g. subroutine record
init and process functions, must been changed as follows</p>
init and process functions, must be changed as follows</p>
<ol>
<li>Include the following header files after all existing #includes:
@@ -468,4 +468,9 @@ should add the definition</p>
<p>to your application config/RELEASE file.</p>
</body>
<h3>Optional <i>top</i>/configure/CONFIG_SITE changes.</h3>
<p>Review and optionally modify site build settings.</p>
</html>

View File

@@ -4,11 +4,21 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Known Problems in R3.14.12</title>
<title>Known Problems in R3.14.12.1</title>
</head>
<body>
<h1 style="text-align: center">EPICS Base R3.14.12: Known Problems</h1>
<h1 style="text-align: center">EPICS Base R3.14.12.1: Known Problems</h1>
<p>Any patch files linked below should be applied at the root of the
base-3.14.12.1 tree. Download them, then use the GNU Patch program as
follows:</p>
<blockquote><pre>% <b>cd <i>/path/to/</i>base-3.14.12.1</b>
% <b>patch -p0 &lt; <i>/path/to/</i>file.patch</b></pre></blockquote>
<p>The following significant problems have been reported with this
version of EPICS Base:</p>
<ul>

View File

@@ -3,21 +3,230 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>EPICS Base R3.14.12 Release Notes</title>
<title>EPICS Base R3.14.12.1 Release Notes</title>
</head>
<body lang="en">
<h1 align="center">EPICS Base Release 3.14.12</h1>
<h1 align="center">EPICS Base Release 3.14.12.1</h1>
<!-- Insert new items immediately below here ... -->
<h2 align="center">Changes between 3.14.12 and 3.14.12.1</h2>
<p>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.</p>
<h4>Launchpad Bugs Resolved</h4>
<p>The following are links to bugs in the Launchpad bug tracker that have been
fixed in this release:</p>
<ul>
<li>693534
<a href="https://launchpad.net/bugs/693534">
errlog causes crash on IOC exit</a></li>
<li>701673
<a href="https://launchpad.net/bugs/701673">
Large array problem in 3.14.12</a></li>
<li>717252
<a href="https://launchpad.net/bugs/771252">
local caput causes ioc crash on win32</a></li>
<li>750549
<a href="https://launchpad.net/bugs/750549 ">
epicsTime has non-portable c++ static initialization</a></li>
<li>753137
<a href="https://launchpad.net/bugs/753137">
Makefile dependency checking of database files is broken</a></li>
</ul>
<h4>New/Updated target architectures</h4>
<p>The following target architectures have been added or updated:</p>
<dl>
<dt>vxWorks-mpc8548</dt>
<dt>vxWorks-mpc8548-debug</dt>
<dd style="margin-bottom: 1ex">This PowerPC CPU is used on the Emerson MVME4100
VME CPU board (from Ernest Williams, SLAC).</dd>
<dt>vxWorks-ppc32</dt>
<dt>vxWorks-ppc32sf</dt>
<dt>vxWorks-ppc32-debug</dt>
<dt>vxWorks-ppc32sf-debug</dt>
<dd style="margin-bottom: 1ex">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.</dd>
<dt>ios-386</dt>
<dt>ios-arm</dt>
<dd style="margin-bottom: 1ex">Updated for iOS 4.3, which is now the default OS
version (from Tom Palaia, ORNL).</dd>
</dl>
<h4>RTEMS TFTP filesystem</h4>
<p>Use the new mount API to initialize TFTP on newer RTEMS versions.</p>
<h4>C++ build issues on older Solaris compiler</h4>
<p>Dirk Zimoch reported some problems building with an older SUNWspro C++
compiler which have been resolved where possible.</p>
<h4>FreeBSD broadcast problem</h4>
<p>The <tt>ifreq_size</tt> macro in freebsd/osdsock.h must be different in BSD
4.4.</p>
<h4>Thread exit synchronization</h4>
<p>When finished waiting for a thread to exit, signal the event in case other
threads are waiting also.</p>
<h4>Win32 osdTime provider fix</h4>
<p>Jeff Hill fixed the last time compare in PLL drift factor update loop.</p>
<h4>Errlog can lose messages</h4>
<p>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.</p>
<p>When the IOC is shutting down, the errlog thread should process all queued
messages before it quits.</p>
<h4>Back-slash escapes for Win32</h4>
<p>Stephen Norum pointed out the need for various Perl scripts to escape
back-slash characters in Windows file paths.</p>
<h4>catools on Windows</h4>
<p>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.</p>
<h2 align="center">Changes between 3.14.11 and 3.14.12</h2>
<!-- Insert new items immediately below here ... -->
<h4>Launchpad Bugs Resolved</h4>
<p>The following are links to bugs in the Launchpad bug tracker that have been
fixed in this release:</p>
<ul>
<li>541258
<a href="https://bugs.launchpad.net/epics-base/+bug/541258">
compiler warnings in base</a></li>
<li>541264
<a href="https://bugs.launchpad.net/epics-base/+bug/541264">
CA subscription element count is fixed - eliminates compressed video
option</a></li>
<li>541331
<a href="https://bugs.launchpad.net/epics-base/+bug/541331">
Several devLib routines don't use vector table</a></li>
<li>541391
<a href="https://bugs.launchpad.net/epics-base/+bug/541391">
when subscribing for zero elements, array element count should be
dynamic</a></li>
<li>545385
<a href="https://bugs.launchpad.net/epics-base/+bug/545385">
SIGFPE calculating epicsNAN, epicsINF</a></li>
<li>546991
<a href="https://bugs.launchpad.net/epics-base/+bug/546991">
prev. value fields not initialized in init_record</a></li>
<li>551909
<a href="https://bugs.launchpad.net/epics-base/+bug/551909">
macExpandString writes out of boundary</a></li>
<li>552803
<a href="https://bugs.launchpad.net/epics-base/+bug/552803">
Compress record segfaults on ALG (algorithm) change</a></li>
<li>571121
<a href="https://bugs.launchpad.net/epics-base/+bug/571121">
Perl issue compiling with INSTALL_LOCATION set</a></li>
<li>572589
<a href="https://bugs.launchpad.net/epics-base/+bug/572589">
Make dbl emit empty strings for non-existent fields</a></li>
<li>595154
<a href="https://bugs.launchpad.net/epics-base/+bug/595154">
C++ errors building base using cygwin1.7</a></li>
<li>595240
<a href="https://bugs.launchpad.net/epics-base/+bug/595240">
C code uses C++ keywords as variable names</a></li>
<li>595242
<a href="https://bugs.launchpad.net/epics-base/+bug/595242">
C code uses C++ "//" style comments</a></li>
<li>615916
<a href="https://bugs.launchpad.net/epics-base/+bug/615916">
Bug in RULES.Db breaks parallel make when using MSI</a></li>
<li>625034
<a href="https://bugs.launchpad.net/epics-base/+bug/625034">
Remove compiler checks for VMS in src/toolsComm/flex</a></li>
<li>626848
<a href="https://bugs.launchpad.net/epics-base/+bug/626848">
Build with GNU make 3.82 fails when installing libraries</a></li>
<li>626859
<a href="https://bugs.launchpad.net/epics-base/+bug/626859">
RTEMS build does not create .d dependancy files</a></li>
<li>627511
<a href="https://bugs.launchpad.net/epics-base/+bug/627511">
MSVC linker fails if input lib dirs start with forward slash</a></li>
<li>644263
<a href="https://bugs.launchpad.net/epics-base/+bug/644263">
EPICS softIOC always dies in response to SIGHUP</a></li>
<li>650000
<a href="https://bugs.launchpad.net/epics-base/+bug/650000">
caput tool won't write to mbbo w/o state strings</a></li>
<li>663875
<a href="https://bugs.launchpad.net/epics-base/+bug/663875">
NTP broadcasts break NTP synchronization (RTEMS)</a></li>
<li>667384
<a href="https://bugs.launchpad.net/epics-base/+bug/667384">
are the request and response bytes pending reversed in casr?</a></li>
<li>680702
<a href="https://bugs.launchpad.net/epics-base/+bug/680702">
calc and calcout record get_precision bug</a></li>
</ul>
<h4>Support for Cygwin 1.7</h4>
<p>Base can now built with shared libraries on Cygwin 1.7.x, although only with
the gcc-3 compiler. Cygwin 1.5.x only works when compiled without shared
libraries (set <tt>STATIC_BUILD=YES</tt> and <tt>SHARED_LIBRARIES=NO</tt> in
<tt>configure/CONFIG_SITE</tt>). There is code in Base now that depends on the
Cygwin version, so make sure that you rebuild Base if you upgrade your Cygwin
installation.</p>
<h4>epicsEvent</h4>
<p>epicsEvent is now explicitly required to act as a simple binary semaphore.
A single epicsEventSignal call must awaken just one thread when multiple
threads are waiting for the event. A test that checks for this has been
added to epicsEventTest and the Application Developer's Guide has been updated
to describe this requirement.</p>
<h4>Enable array puts to subArray records</h4>
<p>It is now possible to put an array into the VAL field of a soft channel
subArray record whose INP field is empty. Processing the record then causes the
sub-array extraction process to be done on the current VAL array. This can be
used to feed a sequence of values into some other record (set INDX=1 and
NELM=MALM and read one element out of the VAL field each time).</p>
<h4>Added windows-x64 target</h4>
<p>64-bit binaries for Microsoft Windows platforms can now be built using the
target architecture windows-x64, which is also a valid cross-build target for a
win32-x86 host. We do not currently support 64-bit MinGW or Cygwin builds.</p>
win32-x86 host. We do not currently support or recommend trying to use 64-bit
builds on MinGW or Cygwin.</p>
<h4>Deleted osf-alpha targets</h4>
@@ -84,8 +293,8 @@ connections over ssh. See the CA reference manual for more details.</p>
<h4>Record Types aai and aao</h4>
<ul>
<li>Fixed bug in memory allocation that caused crashes when linking other records
to aai or aao.</li>
<li>Fixed bug in memory allocation that caused crashes when linking other
records to aai or aao.</li>
<li>Fixed bug where NELM was modified instead of NORD.</li>
<li>Added Soft Channel device support.</li>
<li>Added SIOL link and proper simulation mode for Soft Channel support.</li>
@@ -113,19 +322,20 @@ macro <tt>NO_DEVLIB_COMPAT</tt> is defined.</li>
<li>The "virtual os" table was renamed from <tt>pdevLibVirtualOS</tt> to
<tt>pdevLibVME</tt> reflecting the fact that other bus types will need seperate
tables.</li>
<li>The "virtual os" table API has been moved to a seperate header file,
<li>The "virtual os" table API has been moved to a different header file,
<tt>devLibVMEImpl.h</tt>.</li>
</ul>
<h4>DTYP and INP/OUT order</h4>
<p>The fields DTYP and INP/OUT can now be specified in any order.</p>
<p>The fields DTYP and INP/OUT can now be specified in any order in a database
instance (.db) file.</p>
<h4>Rewrite epicsThreadOnce()</h4>
<p>Michael Davidsaver suggested a better implementation of epicsThreadOnce()
which makes it possible for all architectures to detect recursive initialization
functions. This change also renames the routines to remove the original macro
functions. This change also renames the routines to remove the original macro,
and fixes some questionable usage in places.</p>
<h4>Many Record Types</h4>
@@ -136,7 +346,7 @@ giving correct initial monitor behavior in some circumstances.</p>
<h4>Compress Record Type</h4>
<p>Fixed crash when ALG (algorithm) was changed to Average at runtime.</p>
<p>Fixed a crash when ALG (algorithm) was changed to Average at runtime.</p>
<h4>configure/RELEASE Enhancements</h4>
@@ -148,9 +358,11 @@ definition is expanded. The variable <tt>EPICS_HOST_ARCH</tt> can now be used,
but target-architecture-specific values must be set in a target-specific
<tt>configure/RELEASE</tt> file such as <tt>RELEASE.Common.linux-x86</tt>.</p>
<h4>VxWorks 6.7 support</h4>
<h4>VxWorks 6.7 and 6.8 support</h4>
<p>Added build support for the latest Wind River release.</p>
<p>Added build support for the latest Wind River releases. This does not
include the ability to run on SMP vxWorks systems though, those will need some
more extensive modifications.</p>
<h4>RTEMS 4.10 support</h4>
@@ -162,7 +374,7 @@ is used.</p>
<p>Changes to the way in which we generate header dependency files, which are
now named with a <tt>.d</tt> suffix instead of <tt>.depends</tt>. We now use
the compiler to generate these if possible, and create them in the
the compiler to generate these where possible, and create them in the
<tt>O.$(T_A)</tt> directory.</p>
<h4>Installed file permissions</h4>
@@ -184,7 +396,11 @@ server.</p>
readline; some need <tt>-lcurses</tt>, others <tt>-lncurses</tt> and others
don't require either. The <tt>configure/os/CONFIG_SITE.Common.linux-*</tt>
files now make this configuration easy to choose between different settings for
the <tt>COMMANDLINE_LIBRARY</tt> variable.</p>
the <tt>COMMANDLINE_LIBRARY</tt> variable. If your build fails as it's trying
to create the <tt>antelope</tt> binary in the Base directory
<tt>src/toolsComm/antelope/O.<i>arch</i></tt> this is almost certainly the
problem. You will need to do a <tt>make rebuild</tt> from the top of Base after
fixing the setting of <tt>COMMANDLINE_LIBRARY</tt>.</p>
<h4>CA Command Line Tools Changes</h4>

View File

@@ -209,7 +209,17 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
{
#ifdef OMIT_NFS_SUPPORT
printf ("***** Initializing TFTP *****\n");
#if __RTEMS_MAJOR__>4 || \
(__RTEMS_MAJOR__==4 && __RTEMS_MINOR__>9) || \
(__RTEMS_MAJOR__==4 && __RTEMS_MINOR__==9 && __RTEMS_REVISION__==99)
mount_and_make_target_path(NULL,
"/TFTP",
RTEMS_FILESYSTEM_TYPE_TFTPFS,
RTEMS_FILESYSTEM_READ_WRITE,
NULL);
#else
rtems_bsdnet_initialize_tftp_filesystem ();
#endif
if (!hasLocalFilesystem) {
char *path;
int pathsize = 200;

View File

@@ -1,8 +1,16 @@
/*************************************************************************\
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
* National Laboratory.
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <fcntl.h> /* for open() */
#include <fcntl.h>
#include <unistd.h>
#include <rtems/rtems_bsdnet.h>
#include <bsp.h>
#include <string.h>
@@ -125,12 +133,13 @@ motScriptParm(const char *mot_script_boot, char parm)
int l;
while (*mot_script_boot != '\0') {
if (isspace(*mot_script_boot)
if (isspace(*(unsigned char *)mot_script_boot)
&& (*(mot_script_boot+1) == '-')
&& (*(mot_script_boot+2) == parm)) {
mot_script_boot += 3;
cp = mot_script_boot;
while ((*mot_script_boot != '\0') && !isspace(*mot_script_boot))
while ((*mot_script_boot != '\0') &&
!isspace(*(unsigned char *)mot_script_boot))
mot_script_boot++;
l = mot_script_boot - cp;
ret = malloc(l+1);

View File

@@ -64,6 +64,7 @@ $Date$</span></small></p>
<li><a href="#Network">IP Network Administration Background
Information</a></li>
<li><a href="#port">IP port numbers</a></li>
<li><a href="#firewall">Firewalls</a></li>
<li><a href="#Environmen">WAN Environment</a></li>
<li><a href="#Disconnect">Disconnect Time Out Interval / Server Beacon
Period</a></li>
@@ -451,6 +452,32 @@ different port numbers then an extended syntax may be used with the
EPICS_CA_ADDR_LIST environment variable. See <a href="#Environmen">WAN
Environment</a> below.</p>
<h3><a name="firewall">Firewalls</a></h3>
<p>If you want channel access clients on a machine to be able to see
beacons and replies to broadcast PV search requests you need to permit
inbound UDP packets with source port EPICS_CA_SERVER_PORT (default is 5064)
or destination port EPICS_CA_REPEATER_PORT (default is 5065). On systems
using iptables this can be accomplished by rules like</p>
<pre>
-A INPUT -s 192.168.0.0/22 -p udp --sport 5064 -j ACCEPT
-A INPUT -s 192.168.0.0/22 -p udp --dport 5065 -j ACCEPT
</pre>
<p>If you want channel access servers (e.g. "soft IOCs") on a machine to be
able to see clients you need to permit inbound TCP or UDP packets with source
port EPICS_CA_SERVER_PORT (default is 5064). On systems using iptables this
can be accomplished by rules like</p>
<pre>
-A INPUT -s 192.168.0.0/22 -p udp --dport 5064 -j ACCEPT
-A INPUT -s 192.168.0.0/22 -p tcp --dport 5064 -j ACCEPT
</pre>
<p>In all cases the "-s 192.168.0.0/22" specifies the range of addresses from
which you wish to accept packets.</p>
<h3><a name="Environmen">WAN Environment</a></h3>
<p>When the CA client library connects a channel it must first determine the IP
@@ -1295,7 +1322,7 @@ the output.</p>
</tr>
<tr>
<td>-s</td>
<td>Get value as string (may honour server-side precision)</td>
<td>Get value as string (honors server-side precision)</td>
</tr>
<tr>
<td>-lx</td>
@@ -1439,7 +1466,7 @@ the output.</p>
</tr>
<tr>
<td>-s</td>
<td>Get value as string (may honour server-side precision)</td>
<td>Get value as string (honors server-side precision)</td>
</tr>
<tr>
<td>-lx</td>

View File

@@ -360,6 +360,6 @@ void bheFreeStore::release ( void * pCadaver )
freeList.release ( pCadaver );
}
epicsShareFunc bheMemoryManager::~bheMemoryManager () {}
bheMemoryManager::~bheMemoryManager () {}

View File

@@ -45,9 +45,9 @@ class bheMemoryManager;
// using a pure abstract wrapper class around the free list avoids
// Tornado 2.0.1 GNU compiler bugs
class bheMemoryManager {
class epicsShareClass bheMemoryManager {
public:
epicsShareFunc virtual ~bheMemoryManager ();
virtual ~bheMemoryManager ();
virtual void * allocate ( size_t ) = 0;
virtual void release ( void * ) = 0;
};

View File

@@ -28,6 +28,18 @@
#include "epicsTimer.h"
#ifdef epicsExportSharedSymbols
# define repeaterSubscribeTimerh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef repeaterSubscribeTimerh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class epicsMutex;
class cacContextNotify;

View File

@@ -26,8 +26,18 @@
#ifndef tcpRecvWatchdogh
#define tcpRecvWatchdogh
#ifdef epicsExportSharedSymbols
# define tcpRecvWatchdogh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef tcpRecvWatchdogh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class tcpiiu;
class tcpRecvWatchdog : private epicsTimerNotify {

View File

@@ -26,8 +26,19 @@
#ifndef tcpSendWatchdogh
#define tcpSendWatchdogh
#ifdef epicsExportSharedSymbols
# define tcpSendWatchdogh_epicsExportSharedSymbols
# undef epicsExportSharedSymbols
#endif
#include "epicsTimer.h"
#ifdef tcpSendWatchdogh_epicsExportSharedSymbols
# define epicsExportSharedSymbols
# include "shareLib.h"
#endif
class tcpSendWatchdog : private epicsTimerNotify {
public:
tcpSendWatchdog (

View File

@@ -1866,10 +1866,14 @@ void tcpiiu::unlinkAllChannels (
guard.assertIdenticalMutex ( this->mutex );
while ( nciu * pChan = this->createReqPend.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
pChan->serviceShutdownNotify ( cbGuard, guard );
}
while ( nciu * pChan = this->createRespPend.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
// we dont yet know the server's id so we cant
// send a channel delete request and will instead
// trust that the server can do the proper cleanup
@@ -1878,12 +1882,16 @@ void tcpiiu::unlinkAllChannels (
}
while ( nciu * pChan = this->v42ConnCallbackPend.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
pChan->serviceShutdownNotify ( cbGuard, guard );
}
while ( nciu * pChan = this->subscripReqPend.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
@@ -1891,6 +1899,8 @@ void tcpiiu::unlinkAllChannels (
}
while ( nciu * pChan = this->connectedList.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
@@ -1898,6 +1908,8 @@ void tcpiiu::unlinkAllChannels (
}
while ( nciu * pChan = this->unrespCircuit.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
// if we know that the circuit is unresponsive
// then we dont send a channel delete request and
@@ -1907,6 +1919,8 @@ void tcpiiu::unlinkAllChannels (
}
while ( nciu * pChan = this->subscripUpdateReqPend.get () ) {
pChan->channelNode::listMember =
channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );

View File

@@ -73,6 +73,13 @@ LIBSRCS += casDGIntfIO.cc
LIBSRCS += casStreamIO.cc
LIBSRCS += ipIgnoreEntry.cc
# There is a bug in some vxWorks compilers that these work around:
ifeq ($(VX_GNU_VERSION), 4.1.2)
casStreamOS_CXXFLAGS_vxWorks-ppc604_altivec = -O0
casStreamOS_CXXFLAGS_vxWorks-ppc604_long = -O0
casStreamOS_CXXFLAGS_vxWorks-ppc604 = -O0
endif
LIBSRCS_vxWorks += templateInstances.cpp
LIBRARY = cas

View File

@@ -321,7 +321,7 @@ inline void casStreamOS::disarmRecv ()
//
// casStreamOS::armSend()
//
inline void casStreamOS::armSend()
void casStreamOS::armSend()
{
if ( this->outBufBytesPending() == 0u ) {
return;

View File

@@ -87,7 +87,7 @@ static void usage (void)
" -e <nr>: Use %%e format, with a precision of <nr> digits\n"
" -f <nr>: Use %%f format, with a precision of <nr> digits\n"
" -g <nr>: Use %%g format, with a precision of <nr> digits\n"
" -s: Get value as string (may honour server-side precision)\n"
" -s: Get value as string (honors server-side precision)\n"
" -lx: Round to long integer and print as hex number\n"
" -lo: Round to long integer and print as octal number\n"
" -lb: Round to long integer and print as binary number\n"
@@ -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) {

View File

@@ -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) {

View File

@@ -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.
\*************************************************************************/
@@ -70,7 +69,7 @@ void usage (void)
" -e <nr>: Use %%e format, with a precision of <nr> digits\n"
" -f <nr>: Use %%f format, with a precision of <nr> digits\n"
" -g <nr>: Use %%g format, with a precision of <nr> digits\n"
" -s: Get value as string (may honour server-side precision)\n"
" -s: Get value as string (honors server-side precision)\n"
" -lx: Round to long integer and print as hex number\n"
" -lo: Round to long integer and print as octal number\n"
" -lb: Round to long integer and print as binary number\n"
@@ -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) {

View File

@@ -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) {

View File

@@ -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;

View File

@@ -72,15 +72,24 @@ static long read_sa(subArrayRecord *prec)
if (nRequest > prec->malm)
nRequest = prec->malm;
dbGetLink(&prec->inp, prec->ftvl, prec->bptr, 0, &nRequest);
prec->nord = ecount = nRequest - prec->indx;
if (prec->inp.type == CONSTANT)
nRequest = prec->nord;
else
dbGetLink(&prec->inp, prec->ftvl, prec->bptr, 0, &nRequest);
ecount = nRequest - prec->indx;
if (ecount > 0) {
int esize = dbValueSize(prec->ftvl);
if (ecount > prec->nelm)
ecount = prec->nelm;
memmove(prec->bptr, (char *)prec->bptr + prec->indx * esize,
ecount * esize);
}
} else
ecount = 0;
prec->nord = ecount;
if (nRequest > 0 &&
prec->tsel.type == CONSTANT &&

View File

@@ -119,10 +119,11 @@ epicsShareFunc int errlogPrintf(const char *pFormat, ...)
errlogInit(0);
if (pvtData.atExit || (isOkToBlock && pvtData.toConsole)) {
va_start(pvar, pFormat);
vfprintf(stderr, pFormat, pvar);
nchar = vfprintf(stderr, pFormat, pvar);
va_end (pvar);
fflush(stderr);
}
if (pvtData.atExit) return nchar;
pbuffer = msgbufGetFree(isOkToBlock);
if (!pbuffer) return 0;
va_start(pvar, pFormat);
@@ -494,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);
@@ -533,8 +532,10 @@ static msgNode *msgbufGetNode(void)
char *plimit = pbuffer + pvtData.buffersize;
pnextFree = plast->message + adjustToWorstCaseAlignment(plast->length);
if (pfirst <= plast &&
pnextFree + pvtData.msgNeeded > plimit) {
if (pfirst > plast) {
plimit = (char *)pfirst;
}
else if (pnextFree + pvtData.msgNeeded > plimit) {
pnextFree = pbuffer; /* Hit end, wrap to start */
plimit = (char *)pfirst;
}
@@ -552,7 +553,9 @@ static char *msgbufGetFree(int noConsoleMessage)
{
msgNode *pnextSend;
epicsMutexMustLock(pvtData.msgQueueLock);
if (epicsMutexLock(pvtData.msgQueueLock) != epicsMutexLockOK)
return 0;
if ((ellCount(&pvtData.msgQueue) == 0) && pvtData.missedMessages) {
int nchar;

View File

@@ -169,6 +169,8 @@ bool epicsThread::exitWait ( const double delay ) throw ()
"epicsThread::exitWait()\n" );
epicsThreadSleep ( epicsMin ( delay, 5.0 ) );
}
// the event mechanism is used for other purposes
this->event.signal ();
return this->terminated;
}

View File

@@ -74,8 +74,6 @@ public:
bool useDiffTimeOptimization;
};
static const epicsTimeLoadTimeInit lti;
//
// epicsTimeLoadTimeInit ()
//
@@ -125,6 +123,9 @@ inline void epicsTime::addNanoSec (long nSecAdj)
//
epicsTime::epicsTime ( const time_t_wrapper & ansiTimeTicks )
{
// avoid c++ static initialization order issues
static epicsTimeLoadTimeInit & lti = * new epicsTimeLoadTimeInit ();
//
// try to directly map time_t into an unsigned long integer because this is
// faster on systems w/o hardware floating point and a simple integer type time_t.
@@ -212,6 +213,8 @@ epicsTime epicsTime::getEvent (const epicsTimeEvent &event)
//
epicsTime::operator time_t_wrapper () const
{
// avoid c++ static initialization order issues
static epicsTimeLoadTimeInit & lti = * new epicsTimeLoadTimeInit ();
time_t_wrapper wrap;
if ( lti.useDiffTimeOptimization ) {

View File

@@ -124,7 +124,7 @@ BOOL WINAPI DllMain (
#if _WIN32_WINNT >= 0x0501
/*
* Only in WXP
* Thats a shame becaus ethis is probably much faster
* Thats a shame because this is probably much faster
*/
success = GetModuleHandleEx (
GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
@@ -268,7 +268,8 @@ static void threadCleanupWIN32 ( void )
return;
}
while ( ( pParm = ( win32ThreadParam * ) ellFirst ( & pGbl->threadList ) ) ) {
while ( ( pParm = ( win32ThreadParam * )
ellFirst ( & pGbl->threadList ) ) ) {
epicsParmCleanupWIN32 ( pParm );
}
@@ -446,7 +447,8 @@ epicsShareFunc epicsThreadBooleanStatus epicsShareAPI epicsThreadHighestPriority
/*
* epicsThreadGetStackSize ()
*/
epicsShareFunc unsigned int epicsShareAPI epicsThreadGetStackSize ( epicsThreadStackSizeClass stackSizeClass )
epicsShareFunc unsigned int epicsShareAPI
epicsThreadGetStackSize ( epicsThreadStackSizeClass stackSizeClass )
{
static const unsigned stackSizeTable[epicsThreadStackBig+1] = {4000, 6000, 11000};
@@ -628,18 +630,21 @@ epicsShareFunc epicsThreadId epicsShareAPI epicsThreadCreate (const char *pName,
free ( pParmWIN32 );
return NULL;
}
EnterCriticalSection ( & pGbl->mutex );
ellAdd ( & pGbl->threadList, & pParmWIN32->node );
LeaveCriticalSection ( & pGbl->mutex );
wstat = ResumeThread ( pParmWIN32->handle );
if (wstat==0xFFFFFFFF) {
EnterCriticalSection ( & pGbl->mutex );
ellDelete ( & pGbl->threadList, & pParmWIN32->node );
LeaveCriticalSection ( & pGbl->mutex );
CloseHandle ( pParmWIN32->handle );
free ( pParmWIN32 );
return NULL;
}
EnterCriticalSection ( & pGbl->mutex );
ellAdd ( & pGbl->threadList, & pParmWIN32->node );
LeaveCriticalSection ( & pGbl->mutex );
return ( epicsThreadId ) pParmWIN32;
}
@@ -955,10 +960,17 @@ static void epicsThreadShowPrivate ( epicsThreadId id, unsigned level )
(void *) pParm, idForFormat, pParm->epicsPriority,
epics_GetThreadPriorityAsString ( pParm->handle ),
epicsThreadIsSuspended ( id ) ? "suspend" : "ok" );
if ( level ) {
fprintf (epicsGetStdout(), " %-8p %-8p ",
(void *) pParm->handle, (void *) pParm->parm );
}
}
else {
fprintf (epicsGetStdout(),
"NAME EPICS-ID WIN32-ID EPICS-PRI WIN32-PRI STATE " );
if ( level ) {
fprintf (epicsGetStdout(), " HANDLE FUNCTION PARAMETER" );
}
}
fprintf (epicsGetStdout(),"\n" );
}

View File

@@ -409,8 +409,8 @@ epicsTimerNotify::expireStatus currentTime::expire ( const epicsTime & )
EnterCriticalSection ( & this->mutex );
LONGLONG perfCounterDiff = curPerfCounter.QuadPart - this->lastPerfCounterPLL;
if ( curPerfCounter.QuadPart >= this->lastPerfCounter ) {
LONGLONG perfCounterDiff;
if ( curPerfCounter.QuadPart >= this->lastPerfCounterPLL ) {
perfCounterDiff = curPerfCounter.QuadPart - this->lastPerfCounterPLL;
}
else {

View File

@@ -0,0 +1,30 @@
/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, 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
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/* $Revision-Id$ */
/*
* Author: Jeff Hill
*/
#include <cygwin/version.h>
#define epicsExportSharedSymbols
#include "osiSock.h"
enum epicsSocketSystemCallInterruptMechanismQueryInfo
epicsSocketSystemCallInterruptMechanismQuery ()
{
#if (CYGWIN_VERSION_DLL_MAJOR >= 1007)
// Behaviour changed in Cygwin 1.7 release.
return esscimqi_socketCloseRequired;
#else
return esscimqi_socketBothShutdownRequired;
#endif
}

View File

@@ -77,7 +77,11 @@ typedef socklen_t osiSocklen_t;
# define SHUT_RDWR 2
#endif
#define ifreq_size(pifreq) (sizeof(pifreq->ifr_name))
#if BSD4_4
# define ifreq_size(pifreq) (pifreq->ifr_addr.sa_len + sizeof(pifreq->ifr_name))
#else
# define ifreq_size(pifreq) sizeof(*pifreq)
#endif
#endif /*osdSockH*/

View File

@@ -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;

View File

@@ -260,29 +260,31 @@ MAIN(epicsErrlogTest)
for (i = 0; i < N; i++) {
errlogPrintfNoConsole(msg);
}
epicsThreadSleep(0.1); /* should really be a second Event */
testOk1(pvt.count == 0);
epicsThreadSleep(0.1); /* should really be a second Event */
pvt.jam = -2; /* Block before #th message */
/* Extract the first 2 messages, 2*(sizeof(msgNode) + 128) bytes */
pvt.jam = -2;
epicsEventSignal(pvt.jammer);
epicsThreadSleep(0.1);
testDiag("Drain %u messages", pvt.count);
testDiag("Drained %u messages", pvt.count);
testOk1(pvt.count == 2);
testDiag("Add two more (%d total)", (int) N+2);
errlogPrintfNoConsole(msg);
/* The buffer has space for 1 more message: sizeof(msgNode) + 256 bytes */
errlogPrintfNoConsole(msg); /* Use up that space */
testDiag("Overflow the buffer");
errlogPrintfNoConsole(msg);
testOk1(pvt.count == 2);
epicsEventSignal(pvt.jammer);
epicsEventSignal(pvt.jammer); /* Empty */
errlogFlush();
testDiag("Logged %u messages", pvt.count);
testOk1(pvt.count == N+2);
testDiag("Logged %u messages", pvt.count);
testOk1(pvt.count == N+1);
/* Clean up */
errlogRemoveListener(&logClient);

View File

@@ -106,6 +106,52 @@ static void producer(void *arg)
testOk(errors == 0, "%s: errors = %d", name, errors);
}
#define SLEEPERCOUNT 3
struct wakeInfo {
epicsEventId event;
epicsMutexId countMutex;
int count;
};
static void sleeper(void *arg)
{
struct wakeInfo *wp = (struct wakeInfo *)arg;
epicsEventMustWait(wp->event);
epicsMutexLock(wp->countMutex);
wp->count++;
epicsMutexUnlock(wp->countMutex);
}
static void eventWakeupTest(void)
{
struct wakeInfo wakeInfo, *wp = &wakeInfo;
int i, c;
wp->event = epicsEventMustCreate(epicsEventEmpty);
wp->countMutex = epicsMutexMustCreate();
wp->count = 0;
for (i = 0 ; i < SLEEPERCOUNT ; i++)
epicsThreadCreate("Sleeper",
epicsThreadPriorityScanHigh,
epicsThreadGetStackSize(epicsThreadStackSmall),
sleeper,
wp);
epicsThreadSleep(0.5);
epicsMutexLock(wp->countMutex);
c = wp->count;
epicsMutexUnlock(wp->countMutex);
testOk(c == 0, "all threads still sleeping");
for (i = 1 ; i <= SLEEPERCOUNT ; i++) {
epicsEventSignal(wp->event);
epicsThreadSleep(0.5);
epicsMutexLock(wp->countMutex);
c = wp->count;
epicsMutexUnlock(wp->countMutex);
testOk(c == i, "%d thread%s awakened, expected %d", c, c == 1 ? "" : "s", i);
}
epicsEventDestroy(wp->event);
epicsMutexDestroy(wp->countMutex);
}
} // extern "C"
static double eventWaitMeasureDelayError( const epicsEventId &id, const double & delay )
@@ -144,7 +190,7 @@ MAIN(epicsEventTest)
epicsEventId event;
int status;
testPlan(11);
testPlan(12+SLEEPERCOUNT);
event = epicsEventMustCreate(epicsEventEmpty);
@@ -200,6 +246,7 @@ MAIN(epicsEventTest)
epicsThreadSleep(1.0);
eventWaitTest();
eventWakeupTest();
return testDone();
}

View File

@@ -55,6 +55,7 @@ class exThread : public epicsThreadRunable {
public:
exThread ();
void waitForCompletion ();
~exThread() {};
private:
epicsThread thread;
bool done;

View File

@@ -22,6 +22,7 @@ epicsThreadOnceId onceFlag = EPICS_THREAD_ONCE_INIT;
epicsThreadOnceId twiceFlag = EPICS_THREAD_ONCE_INIT;
epicsMutexId lock;
epicsEventId go;
epicsEventId done;
int runCount = 0;
int initCount = 0;
@@ -49,6 +50,8 @@ void onceThread(void *ctx)
epicsMutexMustLock(lock);
doneCount++;
if (doneCount == runCount)
epicsEventSignal(done);
epicsMutexUnlock(lock);
}
@@ -79,6 +82,7 @@ MAIN(epicsThreadOnceTest)
testPlan(3 + NUM_ONCE_THREADS);
go = epicsEventMustCreate(epicsEventEmpty);
done = epicsEventMustCreate(epicsEventEmpty);
lock = epicsMutexMustCreate();
for (i = 0; i < NUM_ONCE_THREADS; i++) {
@@ -92,12 +96,13 @@ MAIN(epicsThreadOnceTest)
epicsThreadSleep(0.1);
testOk(runCount == NUM_ONCE_THREADS, "runCount = %d", runCount);
epicsEventSignal(go);
epicsThreadSleep(0.1);
epicsEventSignal(go); /* Use epicsEventBroadcast(go) when available */
epicsEventMustWait(done);
testOk(doneCount == NUM_ONCE_THREADS, "doneCount = %d", doneCount);
testDiag("init was run by %s", initBy);
testDiag("Expecting thread recurse to suspend:");
tid = epicsThreadCreate("recurse", epicsThreadPriorityMedium,
epicsThreadGetStackSize(epicsThreadStackSmall),
recurseThread, 0);

View File

@@ -28,7 +28,7 @@
*/
/* code using a timer must implement epicsTimerNotify */
class epicsTimerNotify {
class epicsShareClass epicsTimerNotify {
public:
enum restart_t { noRestart, restart };
class expireStatus {
@@ -41,13 +41,13 @@ public:
double delay;
};
epicsShareFunc virtual ~epicsTimerNotify () = 0;
virtual ~epicsTimerNotify () = 0;
/* return "noRestart" or "expireStatus ( restart, 30.0 )" */
virtual expireStatus expire ( const epicsTime & currentTime ) = 0;
epicsShareFunc virtual void show ( unsigned int level ) const;
virtual void show ( unsigned int level ) const;
};
class epicsTimer { /* X aCC 655 */
class epicsShareClass epicsTimer { /* X aCC 655 */
public:
/* calls cancel (see warning below) and then destroys the timer */
virtual void destroy () = 0;
@@ -67,7 +67,7 @@ public:
double getExpireDelay ();
virtual void show ( unsigned int level ) const = 0;
protected:
epicsShareFunc virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
};
class epicsTimerQueue { /* X aCC 655 */

View File

@@ -1,5 +1,9 @@
# $Revision-Id$
# You might want to change this to some shared set of rules, e.g.
# RULES=/path/to/epics/support/modules/rules/x-y
RULES=$(EPICS_BASE)
INSTALL_IDLFILE = $(INSTALL)
include $(TOP)/configure/RELEASE
@@ -10,7 +14,7 @@ ifdef T_A
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
endif
CONFIG=$(EPICS_BASE)/configure
CONFIG=$(RULES)/configure
include $(CONFIG)/CONFIG
# Override for definition in base

View File

@@ -10,6 +10,7 @@
#
-include $(TOP)/configure/os/CONFIG_SITE.Common.Common
-include $(TOP)/configure/os/CONFIG_SITE.win32-x86.win32-x86
# ---------- java definitions
JAVA_DIR=c:/j2sdk1.4.1_01
@@ -29,11 +30,11 @@ IDL = /usr/local/idl
# IDL=$(IDL)/external/rpc is the sun4 version
IDLRPC = $(IDL)/external/rpc.solaris
X11_LIB = c:/cygwin/lib
X11_INC = c:/cygwin/include
#X11_LIB = c:/cygwin/lib
#X11_INC = c:/cygwin/include
MOTIF_LIB = $(X11_LIB)
MOTIF_INC = $(X11_INC)
#MOTIF_LIB = $(X11_LIB)
#MOTIF_INC = $(X11_INC)
OPENWIN =
INTERVIEWS_BIN =

View File

@@ -31,7 +31,8 @@ TK_TCL = /usr/lib
IDL =
#JAVA_DIR=/usr/local/java
JAVA_DIR=/usr/java/j2sdk1.4.1
#JAVA_DIR=/usr/java/j2sdk1.4.1
JAVA_DIR=/usr
JAVA_INC=$(JAVA_DIR)/include
INTERVIEWS_BIN=/usr/local/interviews/bin/O.Linux

View File

@@ -30,7 +30,7 @@ JAVA_DIR=/usr
# Sciplot and XRTgraph used by medm
SCIPLOT=YES
#XRTGRAPH_EXTENSIONS = YES
#XRTGRAPH = /usr/local/xrtgraph
#XRTGRAPH = /usr/local/xrtgraph64
XRTGRAPH_EXTENSIONS =
XRTGRAPH =

View File

@@ -38,10 +38,13 @@ IV_LIB=/usr/local/interviews/lib/O.solaris
WINGZ_INC = /opt/local/Wingz2/incl
WINGZ_LIB = /opt/local/Wingz2/lib
#MATHEMATICA = /usr/local/math
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
XRTGRAPH_EXTENSIONS = YES
XRTGRAPH = /opt/local/xrtgraph
#XRTGRAPH_EXTENSIONS = YES
#XRTGRAPH = /opt/local/xrtgraph
SCIPLOT = YES
QUESTWIN = /usr/local/questwin
TK_LIB = /opt/local/lib

View File

@@ -10,5 +10,5 @@
# leave the line empty.
#
-include $(TOP)/configure/os/CONFIG_SITE.solaris-sparc.solaris-sparc
-include $(TOP)/configure/os/CONFIG_SITE.solaris-sparc64.solaris-sparc64

View File

@@ -18,3 +18,9 @@ ATLAS_LIB = /usr/local/oag/3rdParty/ATLAS/SunOS_SunUSIII_4/lib
F2C_LIB = /usr/local/oag/3rdParty/F2C/SunOS_SunUSIII_4/lib
CLAPACK_INCLUDE = /usr/local/oag/3rdParty/CLAPACK/SunOS_SunUSIII_4/include
ATLAS_INCLUDE = /usr/local/oag/3rdParty/ATLAS/SunOS_SunUSIII_4/include
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
#XRTGRAPH_EXTENSIONS =
#XRTGRAPH =
SCIPLOT = YES

View File

@@ -0,0 +1,8 @@
#
# $Revision-Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
-include $(TOP)/configure/os/CONFIG_SITE.solaris-x86.solaris-x86

View File

@@ -86,9 +86,9 @@ QUESTWIN =
# Define XRTGRAPH_EXTENSIONS = YES only if using XRT/graph 3.x
# and you want the extensions for MEDM
XRTGRAPH_EXTENSIONS = NO
XRTGRAPH =
# Define SCIPLOT if you don't have XRT/graph
#SCIPLOT = YES
#XRTGRAPH =
SCIPLOT = YES
# z library created in SDDS extension
ZLIB_CFLAG = -DzLib
@@ -98,8 +98,7 @@ z_DIR = $(EPICS_EXTENSIONS_LIB)
CLAPACK_INCLUDE = c:/CLAPACK/include
CLAPACK_LIB = c:/CLAPACK/lib
EXCEED = Exceed7.10
EXCEED = Exceed13.0
ifeq ($(EXCEED),Exceed5)
X11_LIB = c:/exceed5/xdk/lib
@@ -191,6 +190,18 @@ ifeq ($(EXCEED),Exceed12.0)
HCLXmu_DIR=$(X11_LIB)
EXCEED_CFLAGS=/DXMSTATIC /DMOTIFAPP
endif
ifeq ($(EXCEED),Exceed13.0)
XDK=C:/Exceed13.0/XDK
X11_LIB = $(XDK)/lib
X11_INC = $(XDK)/include
EXCEED_XLIBS=XmStatic XmStatXt Xlib HCLXmu
XmStatic_DIR=$(X11_LIB)
XmStatXt_DIR=$(X11_LIB)
Xlib_DIR=$(X11_LIB)
HCLXmu_DIR=$(X11_LIB)
EXCEED_CFLAGS=/DXMSTATIC /DMOTIFAPP
endif
######################################################
# Override for XFree86/LessTif

View File

@@ -0,0 +1,8 @@
#
# $Revision-Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
-include $(TOP)/configure/os/CONFIG_SITE.win32-x86.win32-x86

View File

@@ -159,12 +159,13 @@ static long get_units(DBADDR *paddr, char *units)
static long get_precision(DBADDR *paddr, long *pprecision)
{
calcRecord *prec = (calcRecord *)paddr->precord;
int fieldIndex = dbGetFieldIndex(paddr);
if (paddr->pfield == (void *)&prec->val) {
*pprecision = prec->prec;
} else {
*pprecision = prec->prec;
if (fieldIndex != calcRecordVAL)
recGblGetPrec(paddr, pprecision);
}
return 0;
}

View File

@@ -374,12 +374,13 @@ static long get_units(DBADDR *paddr, char *units)
static long get_precision(DBADDR *paddr, long *pprecision)
{
calcoutRecord *prec = (calcoutRecord *)paddr->precord;
int fieldIndex = dbGetFieldIndex(paddr);
if (paddr->pfield == (void *)&prec->val) {
*pprecision = prec->prec;
} else {
*pprecision = prec->prec;
if (fieldIndex != calcoutRecordVAL)
recGblGetPrec(paddr, pprecision);
}
return 0;
}

View File

@@ -194,9 +194,8 @@ static long put_array_info(DBADDR *paddr, long nNew)
subArrayRecord *prec = (subArrayRecord *) paddr->precord;
if (nNew > prec->malm)
prec->nord = prec->malm;
else
prec->nord = nNew;
nNew = prec->malm;
prec->nord = nNew;
return 0;
}

View File

@@ -9,6 +9,10 @@ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
# in file LICENSE that is included with this distribution.
#*************************************************************************
use FindBin qw($Bin);
use lib "$Bin/../../lib/perl";
use EPICS::Path;
($file, $subname, $bldTop) = @ARGV;
$numberRecordType = 0;
$numberDeviceSupport = 0;
@@ -18,6 +22,10 @@ $numberDriverSupport = 0;
$c_bad_ident_chars = '[^0-9A-Za-z_]';
$subname =~ s/$c_bad_ident_chars/_/g;
# Process bldTop like convertRelease.pl does
$bldTop = LocalPath(UnixPath($bldTop));
$bldTop =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
open(INP,"$file") or die "$! opening file";
while(<INP>) {
next if m/ ^ \s* \# /x;

View File

@@ -1566,6 +1566,7 @@ static void putNotifyErrorReply ( struct client *client, caHdrLargeArray *mp, in
0u, mp->m_dataType, mp->m_count, statusCA,
mp->m_available, 0 );
if ( status != ECA_NORMAL ) {
SEND_UNLOCK ( client );
errlogPrintf ("%s at %d: should always get sufficent space for put notify error reply\n",
__FILE__, __LINE__);
return;
@@ -2144,6 +2145,7 @@ static void search_fail_reply ( caHdrLargeArray *mp, void *pPayload, struct clie
status = cas_copy_in_header ( client, CA_PROTO_NOT_FOUND,
0u, mp->m_dataType, mp->m_count, mp->m_cid, mp->m_available, NULL );
if ( status != ECA_NORMAL ) {
SEND_UNLOCK ( client );
errlogPrintf ( "%s at %d: should always get sufficent space for search fail reply?\n",
__FILE__, __LINE__ );
return;

View File

@@ -33,10 +33,6 @@
#define epicsExportSharedSymbols
#include "server.h"
/* As an optimisation, any message allocated with a large header is resized to
* use a small header if the payload size is below this threshold. */
#define SMALL_MESSAGE_THRESHOLD 65
/*
* cas_send_bs_msg()
*
@@ -357,19 +353,8 @@ void cas_commit_msg ( struct client *pClient, ca_uint32_t size )
if ( pMsg->m_postsize == htons ( 0xffff ) ) {
ca_uint32_t * pLW = ( ca_uint32_t * ) ( pMsg + 1 );
assert ( size <= ntohl ( *pLW ) );
if (size < SMALL_MESSAGE_THRESHOLD) {
/* If the message is sufficiently small it can be worth converting a
* large message header into a small header. This saves us all of 8
* bytes over the wire, so it's not such a big deal. */
pMsg->m_postsize = htons((ca_uint16_t) size);
pMsg->m_count = htons((ca_uint16_t) ntohl(pLW[1]));
memmove(pLW, pLW + 2, size);
size += sizeof(caHdr);
}
else {
pLW[0] = htonl ( size );
size += sizeof ( caHdr ) + 2 * sizeof ( *pLW );
}
pLW[0] = htonl ( size );
size += sizeof ( caHdr ) + 2 * sizeof ( *pLW );
}
else {
assert ( size <= ntohs ( pMsg->m_postsize ) );

View File

@@ -416,8 +416,8 @@ static void log_one_client (struct client *client, unsigned level)
send_delay, recv_delay);
printf(
"\tUnprocessed request bytes=%u, Undelivered response bytes=%u\n",
client->send.stk,
client->recv.cnt - client->recv.stk );
client->recv.cnt - client->recv.stk,
client->send.stk );
printf(
"\tState=%s%s%s\n",
state[client->disconnect?1:0],

View File

@@ -144,6 +144,7 @@ sub cdCommands {
my $startup = $cwd;
$startup =~ s/^$root/$iocroot/o if ($opt_t);
$startup =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
print OUT "startup = \"$startup\"\n";
@@ -156,6 +157,7 @@ sub cdCommands {
foreach my $app (@includes) {
my $iocpath = my $path = $macros{$app};
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
$iocpath =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
my $app_lc = lc($app);
print OUT "$app_lc = \"$iocpath\"\n"
if (-d $path);
@@ -187,6 +189,7 @@ sub envPaths {
foreach my $app (@includes) {
my $iocpath = my $path = $macros{$app};
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
$iocpath =~ s/([\\"])/\\\1/g; # escape back-slashes and double-quotes
print OUT "epicsEnvSet(\"$app\",\"$iocpath\")\n" if (-d $path);
}
close OUT;

View File

@@ -28,6 +28,9 @@ $Getopt::Std::OUTPUT_HELP_VERSION = 1;
my $path = AbsPath(shift);
# Escape shell special characters unless on Windows, which doesn't allow them.
$path =~ s/([!"\$&'\(\)*,:;<=>?\[\\\]^`{|}])/\\\1/g unless $^O eq 'MSWin32';
print "$path\n";

View File

@@ -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 ===================================================

176
startup/win32.bat Executable file → Normal file
View File

@@ -14,87 +14,135 @@ 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 -------------------
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%
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@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 --------------- 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 ======================================================
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 ===================================================