EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Minor issues building base 7.0.4 on Windows
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "'Johnson, Andrew N.'" <anj at anl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Fri, 5 Jun 2020 21:01:55 +0000

Hi Andrew,

 

Thanks for the reply.

 

Ø  One more possibility, which may be exactly your circumstance: If the source tree has a .git directory but you don’t have a copy of git installed on that Windows machine. In that case I think you could create a git.bat script somewhere in your PATH containing one line such as:

 

Ø  @echo GSECARS-Build

 

Ø  When the genVersionHeader.pl script sees the .git directory it asks git to describe the source, and that little batch file gives it an answer which it will happily accept. As long as the answer is the same the second time it will not trigger on the second build. This will also remove those “'git' is not recognized as an internal or external command, operable program or batch file” errors.

 

That worked, thanks.  Now when I run make a second time I only see the following lines.  I assume this is normal?

 

H:\epics\base-7.0.4>make -sj

dbHeaderTest.c

dbHeaderTestxx.cpp

 

 

Ø  The other error you were reporting from convertRelease.pl can probably be fixed by applying this change, please let me know if it helps:

 

Yes, applying that change to convertRelease.pl eliminated the errors like the following:

 

Can't locate EPICS/Path.pm in @INC (you may need to install the EPICS::Path module) (@INC contains: H:/epics-devel/base-7.0.4/src/tools/../../lib/perl C:/Perl64/site/lib C:/Perl64/lib .) at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.

Thanks,

Mark

 

 

From: Johnson, Andrew N. <anj at anl.gov>
Sent: Monday, June 1, 2020 11:35 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Subject: Re: Minor issues building base 7.0.4 on Windows

 

Hi Mark,

 

On Jun 1, 2020, at 8:24 PM, Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> wrote:

 

I like to use “make -sj” so it is fast and only shows me warnings and errors.  But it is then possible to miss the fact that the build actually failed because the failure message has scrolled away to be followed by warnings from a thread that is still building.

So I then typically run “make -sj” again to make sure there is no output, confirming that the previous build succeeded.

This change makes that no longer possible. I wonder if minute precision is really useful?

 

On machines that do have a copy of git on them (and when compiling a source tree that was checked out using git), the script that generates that header file will only update it on the second pass if there has been a change to the source code since the previous build. Thus on your linux systems you may see the second builds running the genVersionHeader.pl script, but they won't recompile any source files or relink the results.

 

There is a way to override the version check if you are building from the published tarfile (where there is no .git directory), although from your earlier evidence I suspect this won’t help you: Setting

GENVERSIONDEFAULT=GSECARS-Build

as a environment variable or as a ‘make’ command-line argument which provide a string which will override the build date/time in the VCS Version number.

 

One more possibility, which may be exactly your circumstance: If the source tree has a .git directory but you don’t have a copy of git installed on that Windows machine. In that case I think you could create a git.bat script somewhere in your PATH containing one line such as:

 

@echo GSECARS-Build

 

When the genVersionHeader.pl script sees the .git directory it asks git to describe the source, and that little batch file gives it an answer which it will happily accept. As long as the answer is the same the second time it will not trigger on the second build. This will also remove those “'git' is not recognized as an internal or external command, operable program or batch file” errors.

 

 

The other error you were reporting from convertRelease.pl can probably be fixed by applying this change, please let me know if it helps:

 

diff --git a/src/tools/convertRelease.pl b/src/tools/convertRelease.pl

index 9ccb6f55d..87a1267c0 100644

--- a/src/tools/convertRelease.pl

+++ b/src/tools/convertRelease.pl

@@ -19,7 +19,7 @@ use Getopt::Std;

 $Getopt::Std::STANDARD_HELP_VERSION = 1;

 

 use FindBin qw($Bin);

-use lib ("$Bin/../../lib/perl");

+use lib ("$Bin/../../lib/perl", $Bin);

 

 use EPICS::Path;

 use EPICS::Release;



- Andrew

 

 

 



Sent from my iPhone


On Jun 1, 2020, at 7:41 PM, Michael Davidsaver <mdavidsaver at gmail.com> wrote:

What you are describing is a result of a change I made
to include VCS revision in the build in place of __DATE__.

This makes the output of eg. iocInit a bit more useful.


Starting iocInit
############################################################################
## EPICS R7.0.4.1-DEV
## Rev. R7.0.4-36-g4ba9dafeef3934e5e10d
############################################################################


Or anything which calls coreRelease() from epicsRelease.h

If no VCS tool is in use (eg. no '.git'), or not available,
the default fallback is to use the current time with minute precision.
(cf. src/tools/genVersionHeader.pl)

https://github.com/epics-base/epics-base/commit/b43aafae701b4b4fd835117cf63b2e563482184b

https://epics.anl.gov/core-talk/2019/msg01402.php



On 6/1/20 3:40 PM, Mark Rivers via Tech-talk wrote:
Correction:



Ø  Normally when “make” completes successfully and then one runs “make” again it does not actually do anything.  For base 7.0.4 that is what I observe for Linux.  But on Windows every time I run “make” after it has completed successfully it produces the following output.



Actually on base 7.0.4 it does recompile on Linux as well, you just don’t see any output if using –sj.



But this problem does not occur on base 7.0.3.1.  Here is the output when I rebuild with windows-x64-static on base 7.0.3.1.



H:\epics\base-7.0.3.1>make -sj8



H:\epics\base-7.0.3.1>



It does not do anything, but on 7.0.4 there is lots of output as it recompiles and rebuilds libraries each time you run it.



Mark







*From:* Mark Rivers
*Sent:* Monday, June 1, 2020 3:31 PM
*To:* tech-talk <tech-talk at aps.anl.gov>
*Subject:* Minor issues building base 7.0.4 on Windows



When I try to build base 7.0.4 on windows-x64-static with Visual Studio 2015 I have the following issues, which appear to be minor:



1)      “make clean uninstall” produces many error messages like this:



H:\epics-devel\base-7.0.4>make -sj clean uninstall

Can't locate EPICS/Path.pm in @INC (you may need to install the EPICS::Path module) (@INC contains: H:/epics-devel/base-7.0.4/src/tools/../../lib/perl C:/Perl64/site/lib C:/Perl64/lib .) at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.

BEGIN failed--compilation aborted at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.

Can't locate EPICS/Path.pm in @INC (you may need to install the EPICS::Path module) (@INC contains: H:/epics-devel/base-7.0.4/src/tools/../../lib/perl C:/Perl64/site/lib C:/Perl64/lib .) at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.

BEGIN failed--compilation aborted at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.

Can't locate EPICS/Path.pm in @INC (you may need to install the EPICS::Path module) (@INC contains: H:/epics-devel/base-7.0.4/src/tools/../../lib/perl C:/Perl64/site/lib C:/Perl64/lib .) at H:/epics-devel/base-7.0.4/src/tools/convertRelease.pl line 24.





2)      “make –sj” produces these messages:



H:\epics-devel\base-7.0.4>make –sj8 > windows_build1.txt

'git' is not recognized as an internal or external command,

operable program or batch file.

'git' is not recognized as an internal or external command,

operable program or batch file.

'git' is not recognized as an internal or external command,

operable program or batch file.



3)      Normally when “make” completes successfully and then one runs “make” again it does not actually do anything.  For base 7.0.4 that is what I observe for Linux.  But on Windows every time I run “make” after it has completed successfully it produces the following output.



epicsRelease.c

Appending rsrvIocRegister.obj

Appending online_notify.obj

Appending cast_server.obj

Appending camessage.obj

Appending camsgtask.obj

Appending caservertask.obj

Appending caserverio.obj

Appending registryIocRegister.obj

Appending registryCommon.obj

Appending registryFunction.obj

Appending registryJLinks.obj

Appending registryDriverSupport.obj

Appending registryDeviceSupport.obj

Appending registryRecordType.obj

Appending iocshRegisterCommon.obj

Appending dlload.obj

Appending miscIocRegister.obj

Appending iocInit.obj

Appending epicsRelease.obj

Appending dbtoolsIocRegister.obj

Appending dbLoadTemplate.obj

Appending dbStaticIocRegister.obj

Appending dbStaticRun.obj

Appending dbPvdLib.obj

Appending dbYacc.obj

Appending dbStaticLib.obj

Appending dbServer.obj

Appending dbUnitTest.obj

Appending dbState.obj

Appending chfPlugin.obj

Appending dbIocRegister.obj

Appending dbContextReadNotifyCache.obj

Appending dbPutNotifyBlocker.obj

Appending dbSubscriptionIO.obj

Appending dbChannelIO.obj

Appending dbContext.obj

Appending cvtBpt.obj

Appending dbCaTest.obj

Appending dbCa.obj

Appending callback.obj

Appending recGbl.obj

Appending db_test.obj

Appending db_access.obj

Appending dbTest.obj

Appending dbEvent.obj

Appending dbScan.obj

Appending dbNotify.obj

Appending dbLink.obj

Appending dbJLink.obj

Appending dbExtractArray.obj

Appending dbFastLinkConv.obj

Appending dbDbLink.obj

Appending dbConvertJSON.obj

Appending dbConvert.obj

Appending dbConstLink.obj

Appending dbChannel.obj

Appending dbBkpt.obj

Appending dbAccess.obj

Appending dbLock.obj

Appending asIocRegister.obj

Appending asCa.obj

Appending asDbLib.obj

Appending lnkDebug.obj

Appending lnkState.obj

Appending lnkCalc.obj

Appending lnkConst.obj

Appending decimate.obj

Appending sync.obj

Appending arr.obj

Appending dbnd.obj

Appending ts.obj

Appending asSubRecordFunctions.obj

Appending devEnviron.obj

Appending devStdio.obj

Appending devTimestamp.obj

Appending devGeneralTime.obj

Appending devSoSoftCallback.obj

Appending devPrintfSoftCallback.obj

Appending devMbboDirectSoftCallback.obj

Appending devMbboSoftCallback.obj

Appending devLsoSoftCallback.obj

Appending devLoSoftCallback.obj

Appending devI64outSoftCallback.obj

Appending devCalcoutSoftCallback.obj

Appending devBoSoftCallback.obj

Appending devAoSoftCallback.obj

Appending devSiSoftCallback.obj

Appending devMbbiSoftCallback.obj

Appending devMbbiDirectSoftCallback.obj

Appending devLiSoftCallback.obj

Appending devI64inSoftCallback.obj

Appending devBiSoftCallback.obj

Appending devAiSoftCallback.obj

Appending devWfSoft.obj

Appending devSoSoft.obj

Appending devSiSoft.obj

Appending devSASoft.obj

Appending devPrintfSoft.obj

Appending devMbboSoftRaw.obj

Appending devMbboSoft.obj

Appending devMbboDirectSoftRaw.obj

Appending devMbboDirectSoft.obj

Appending devMbbiSoftRaw.obj

Appending devMbbiSoft.obj

Appending devMbbiDirectSoftRaw.obj

Appending devMbbiDirectSoft.obj

Appending devLsoSoft.obj

Appending devLsiSoft.obj

Appending devLoSoft.obj

Appending devLiSoft.obj

Appending devI64outSoft.obj

Appending devI64inSoft.obj

Appending devHistogramSoft.obj

Appending devEventSoft.obj

Appending devCalcoutSoft.obj

Appending devBoDbState.obj

Appending devBoSoftRaw.obj

Appending devBoSoft.obj

Appending devBiDbState.obj

Appending devBiSoftRaw.obj

Appending devBiSoft.obj

Appending devAoSoftRaw.obj

Appending devAoSoft.obj

Appending devAiSoftRaw.obj

Appending devAiSoft.obj

Appending devAaoSoft.obj

Appending devAaiSoft.obj

Appending waveformRecord.obj

Appending subArrayRecord.obj

Appending subRecord.obj

Appending stringoutRecord.obj

Appending stringinRecord.obj

Appending stateRecord.obj

Appending seqRecord.obj

Appending selRecord.obj

Appending printfRecord.obj

Appending permissiveRecord.obj

Appending mbboDirectRecord.obj

Appending mbboRecord.obj

Appending mbbiDirectRecord.obj

Appending mbbiRecord.obj

Appending lsoRecord.obj

Appending lsiRecord.obj

Appending longoutRecord.obj

Appending longinRecord.obj

Appending int64outRecord.obj

Appending int64inRecord.obj

Appending histogramRecord.obj

Appending fanoutRecord.obj

Appending eventRecord.obj

Appending dfanoutRecord.obj

Appending compressRecord.obj

Appending calcoutRecord.obj

Appending calcRecord.obj

Appending boRecord.obj

Appending biRecord.obj

Appending aSubRecord.obj

Appending aoRecord.obj

Appending aiRecord.obj

Appending aaoRecord.obj

Appending aaiRecord.obj

Appending ioRecord.obj

Appending arrRecord.obj

Appending xRecord.obj

Appending jlinkz.obj

Appending devx.obj

Appending xLink.obj

Appending dbLinkdset.obj

Appending xRecord.obj

Appending arrRecord.obj

Appending asTestLib.obj

dbHeaderTest.c

dbHeaderTestxx.cpp

Appending reftrackioc.obj

Appending PVAClientRegister.obj

Appending PVAServerRegister.obj

Appending pvaClientRPC.obj

Appending pvaClientNTMultiMonitor.obj

Appending pvaClientNTMultiGet.obj

Appending pvaClientNTMultiData.obj

Appending pvaClientNTMultiPut.obj

Appending pvaClientMultiMonitorDouble.obj

Appending pvaClientMultiPutDouble.obj

Appending pvaClientMultiGetDouble.obj

Appending pvaClientMultiChannel.obj

Appending pvaClientPutGet.obj

Appending pvaClientMonitor.obj

Appending pvaClientPut.obj

Appending pvaClientGet.obj

Appending pvaClientProcess.obj

Appending pvaClientChannel.obj

Appending pvaClientMonitorData.obj

Appending pvaClientGetData.obj

Appending pvaClientPutData.obj

Appending pvaClientData.obj

Appending pvaClient.obj

Appending pvalink_channel.obj

Appending pvalink_link.obj

Appending pvalink_jlif.obj

Appending pvalink_lset.obj

Appending pvalink.obj

Appending tpool.obj

Appending dbf_copy.obj

Appending configparse.obj

Appending pdbgroup.obj

Appending imagedemo.obj

Appending demo.obj

Appending pdbsingle.obj

Appending pdb.obj

Appending qsrv.obj

Appending pvif.obj

Appending scalarAlarmSupport.obj

Appending controlSupport.obj

Appending processRecordRegister.obj

Appending addRecordRegister.obj

Appending removeRecordRegister.obj

Appending traceRecordRegister.obj

Appending processRecord.obj

Appending addRecord.obj

Appending removeRecord.obj

Appending traceRecord.obj

Appending registerChannelProviderLocal.obj

Appending monitorFactory.obj

Appending channelLocal.obj

Appending channelProviderLocal.obj

Appending pvDatabase.obj

Appending pvRecord.obj

Appending pvTimestampPlugin.obj

Appending pvDeadbandPlugin.obj

Appending pvArrayPlugin.obj

Appending pvCopy.obj

Appending pvPlugin.obj



So it appears to be recompiling epicsRelease.c, dbHeaderTest.c, and dbHeaderTestxx.cpp and rebuilding the libraries that contain those.



Mark




 

 

-- 

Complexity comes for free, simplicity you have to work for.

 


Replies:
Re: Minor issues building base 7.0.4 on Windows Johnson, Andrew N. via Tech-talk
References:
Minor issues building base 7.0.4 on Windows Mark Rivers via Tech-talk
RE: Minor issues building base 7.0.4 on Windows Mark Rivers via Tech-talk
Re: Minor issues building base 7.0.4 on Windows Michael Davidsaver via Tech-talk
Re: Minor issues building base 7.0.4 on Windows Mark Rivers via Tech-talk
Re: Minor issues building base 7.0.4 on Windows Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: PILZ modbus communications dropouts Brown, Garth via Tech-talk
Next: Re: Minor issues building base 7.0.4 on Windows Johnson, Andrew N. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Minor issues building base 7.0.4 on Windows Johnson, Andrew N. via Tech-talk
Next: Re: Minor issues building base 7.0.4 on Windows Johnson, Andrew N. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 05 Jun 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·