From aaafb1a5de33d7d73ef352f6cd49f9478f75fb29 Mon Sep 17 00:00:00 2001 From: Ben Franksen Date: Sat, 25 Feb 2017 16:42:29 -0500 Subject: [PATCH 1/5] db: call rset::get_precision with wrong type --- src/db/dbConvert.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/db/dbConvert.c b/src/db/dbConvert.c index deb1b1319..8b52edc05 100644 --- a/src/db/dbConvert.c +++ b/src/db/dbConvert.c @@ -1628,7 +1628,7 @@ static long getFloatString( char *pbuffer = (char *)pto; float *psrc=(float *)(paddr->pfield); long status = 0; - int precision = 6; + long precision = 6; struct rset *prset = 0; if(paddr) prset = dbGetRset(paddr); @@ -1838,7 +1838,7 @@ static long getDoubleString( char *pbuffer = (char *)pto; double *psrc=(double *)(paddr->pfield); long status = 0; - int precision = 6; + long precision = 6; struct rset *prset = 0; if(paddr) prset = dbGetRset(paddr); @@ -3940,7 +3940,7 @@ static long putFloatString( const float *pbuffer = (const float *)pfrom; char *pdest=(char *)(paddr->pfield); long status = 0; - int precision = 6; + long precision = 6; struct rset *prset = dbGetRset(paddr); short size=paddr->field_size; @@ -4150,7 +4150,7 @@ static long putDoubleString( const double *pbuffer = (const double *)pfrom; char *pdest=(char *)(paddr->pfield); long status = 0; - int precision = 6; + long precision = 6; struct rset *prset = dbGetRset(paddr); short size=paddr->field_size; From d744b06a289c362a3e158332a820e9ba31c010ab Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 27 Feb 2017 11:07:17 -0500 Subject: [PATCH 2/5] libca: findOrCreateVirtCircuit() can return w/ piiu==NULL --- src/ca/cac.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ca/cac.cpp b/src/ca/cac.cpp index 60f737ad7..3c19e09b9 100644 --- a/src/ca/cac.cpp +++ b/src/ca/cac.cpp @@ -635,11 +635,13 @@ void cac::transferChanToVirtCircuit ( // must occur before moving to new iiu pChan->getPIIU(guard)->uninstallChanDueToSuccessfulSearchResponse ( guard, *pChan, currentTime ); - piiu->installChannel ( - guard, *pChan, sid, typeCode, count ); + if ( piiu ) { + piiu->installChannel ( + guard, *pChan, sid, typeCode, count ); - if ( newIIU ) { - piiu->start ( guard ); + if ( newIIU ) { + piiu->start ( guard ); + } } } From 2a0cd00958c57877e8b68dc5639e3b4e22560bca Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 27 Feb 2017 14:48:30 -0500 Subject: [PATCH 3/5] libca: lock when removing from msgMultiPVList --- src/ca/cac.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ca/cac.cpp b/src/ca/cac.cpp index 3c19e09b9..c7488d76f 100644 --- a/src/ca/cac.cpp +++ b/src/ca/cac.cpp @@ -1306,9 +1306,11 @@ void cac::pvMultiplyDefinedNotify ( msgForMultiplyDefinedPV & mfmdpv, callbackManager mgr ( this->notify, this->cbMutex ); epicsGuard < epicsMutex > guard ( this->mutex ); this->exception ( mgr.cbGuard, guard, ECA_DBLCHNL, buf, __FILE__, __LINE__ ); + + // remove from the list under lock + this->msgMultiPVList.remove ( mfmdpv ); } - // remove from the list and delete msg object - this->msgMultiPVList.remove ( mfmdpv ); + // delete msg object mfmdpv.~msgForMultiplyDefinedPV (); this->mdpvFreeList.release ( & mfmdpv ); } From 214e9534cc64d4bd47b6e1c57a8f16034bf11bbc Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 3 Mar 2017 18:18:57 -0600 Subject: [PATCH 4/5] Allow 'make -q' to work with CHECK_RELEASE=NO --- configure/RULES_BUILD | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index eca015ca7..141757acf 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -4,7 +4,7 @@ # Copyright (c) 2002 The Regents of the University of California, as # Operator of Los Alamos National Laboratory. # EPICS BASE is distributed subject to a Software License Agreement found -# in the file LICENSE that is included with this distribution. +# in the file LICENSE that is included with this distribution. #************************************************************************* # # Rules for making things specified in Makefile @@ -104,7 +104,7 @@ TAPFILES += $(TESTSCRIPTS:.t=.tap) endif #--------------------------------------------------------------- -# Libraries +# Libraries # LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS) \ @@ -117,16 +117,16 @@ $(INSTALL_LIBS): $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS) $(INSTALL_LOADABL # Main targets -install: buildInstall +install: buildInstall -buildInstall : build +buildInstall: build # Allows rebuild to work with parallel builds option, -j. install: $(patsubst rebuild,clean,$(filter rebuild,$(MAKECMDGOALS))) rebuild: clean install -build : inc +build: inc build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODNAME) \ $(TARGETS) $(TESTSCRIPTS) $(INSTALL_LIB_INSTALLS) @@ -176,7 +176,7 @@ warnRelease: -$(CONVERTRELEASE) checkRelease noCheckRelease: ifeq ($(EPICS_HOST_ARCH),$(T_A)) - @echo "Warning: RELEASE file consistency checks have been disabled" + $(info Warning: RELEASE file consistency checks have been disabled) endif #--------------------------------------------------------------- @@ -289,7 +289,7 @@ endif $(LIBNAME): $(LIBRARY_OBJS) -$(DLL_LINK_LIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS) +$(DLL_LINK_LIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS) $(LIBNAME) $(DLL_LINK_LIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX): @$(RM) $@ From f71102982f142b82c675d31a3b6a88669d121aaf Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 6 Mar 2017 18:46:46 -0600 Subject: [PATCH 5/5] Fix "make -q" problems with shared library stubs --- configure/RULES_BUILD | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index 370fd36c1..abc14cae2 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -279,13 +279,17 @@ endif # RANLIB $(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \ $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS) -$(DLLSTUB_LIBNAME): $(SHRLIBNAME); +# Stub library timestamps may be earlier than the DLL itself. +# This order-only prerequisite resolves any related problems. +# The $(LINK.shrlib) command must build both library files if +# the target requires a separate stub library file. +$(DLLSTUB_LIBNAME): | $(SHRLIBNAME); $(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX): @$(RM) $@ $(LINK.shrlib) $(MT_DLL_COMMAND) -$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME); +$(TESTDLLSTUB_LIBNAME): | $(TESTSHRLIBNAME); $(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX): @$(RM) $@ $(LINK.shrlib)