EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: EPICS base 3.15.0.2
From: "Heesterman, Peter J" <[email protected]>
To: "Andrew Johnson" <[email protected]>
Cc: EPICS core-talk <[email protected]>, [email protected]
Date: Fri, 31 Oct 2014 11:23:45 -0000
Hi Andrew,

I have applied the patch, but this hasn't resolved the problem.

NB, flex.skel.static was only the first of many files that couldn't be found.
I had already (manually) copied the file - and a few more - but gave up on this approach.

NB2, I have never been able to use the -j build flag on Windows, it's always resulted in a race condition.
I haven't attempted to do so on this occasion. 

>> epicsBoolean
I wondered if it would be reasonable to typedef epicsBoolean to bool (rather than #define to int)?

BTW, I also noticed that if you type cd<RET> to the IOC shell, the application falls over.
This is due to null pointer dereference as no directory string has been provided.
(In the Windows shell, of course, this usage prints out the current directory.)

Cheers,

Peter.

-----Original Message-----
From: Andrew Johnson [mailto:[email protected]] 
Sent: 30 October 2014 22:39
To: Heesterman, Peter
Cc: [email protected]; EPICS core-talk
Subject: Re: EPICS base 3.15.0.2

Hi Peter,

On 10/29/2014 12:00 PM, Heesterman, Peter J wrote:
> 1. I was unable to makefile build from scratch, with either release or 
> debug build (make clean uninstall, make).
> 
>     See attached (the debug build fails sooner than the release build).
> 
>     This was for a fairly trivial reason, files which exist in the 
> download (e.g. flex.skel.static) hadn’t been copied into the relevant 
> install directory.

That appears to be a dependency issue, the flex.skel.static target needs to have been installed before we attempt to run the e_flex executable that uses it. I haven't come across this not working before, but it's not obvious that there is an explicit dependency anywhere so we probably need one. Please try applying the attached patch which I think should fix that specific problem, I'll commit the change if it works for you.
Were there any other places you came across like that with other files being used before they had been installed?

>     My VS project(s) are able to build all the code without problem. 
> In order to complete the release makefile build from scratch, I was able to:
> 
> make clean uninstall, VS build for _DEBUG which copies the files, make.

Dependency issues are pretty fickle, they can appear and disappear seemingly at random. Parallel builds (make -j) are good for picking them up, but the number of CPUs you have and the speed of your disk can both be major factors in when they appear.

> 2. You have removed a definition of epicsBoolean in epicsTypes.h.
> 
>     Presumably, you wish to deprecate use of this type; reasonable 
> given that bool exists in the C99 standard and is presumably 
> implemented on all platforms.
> 
>     But epicsBoolean is used in some modules, notably Asyn.

Ok, I have added it back to epicsTypes.h again.  We don't actually have
C99 support available on all our target OSs, but yes I would prefer to get rid of epicsBoolean, epicsTrue and epicsFalse which are really not necessary IMHO.

> 3. Another issue: you had removed include "menuGlobal.dbd" from base.dbd.
> 
> It’s needed. For example, I was seeking to run testAsynPortDriver, 
> which had errors (see attached).

The menuGlobal.dbd file is now generated by the src/ioc/db/Makefile from the list of files added to the menuGlobal_DBD variable in that file. It should be built inside the src/ioc/db/O.Common directory of Base and installed from there.

Your TestAsynPortDriver.log file shows that you're running the program in the wrong place; you need to cd to the iocBoot/ioctestAsynPortDriver directory first since the commands in the st.cmd file use relative paths that assume that's where it starts from.


> As a separate issue, the string of the error line:
> 
> Error: syntax error
>     at or before "" in file "../../dbd/testAsynPortDriver.dbd" line 
> 234
> 
> isn’t correctly terminated.
> It looks OK in a release build, but in a debug build it’s padded with 
> gibberish.

Can you send me an example of the gibberish in context, I can't replicate that issue here or see where it might be coming from.

Thanks,

- Andrew

--
People everywhere confuse what they read in newspapers with news.
-- A. J. Liebling

Attachment: base.base-3.15.0.2.x86.log
Description: base.base-3.15.0.2.x86.log


Replies:
RE: EPICS base 3.15.0.2 Mark Rivers
Re: EPICS base 3.15.0.2 Andrew Johnson
References:
Re: EPICS base 3.15.0.2 Andrew Johnson

Navigate by Date:
Prev: Re: EPICS base 3.15.0.2 Andrew Johnson
Next: RE: EPICS base 3.15.0.2 Mark Rivers
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS base 3.15.0.2 Andrew Johnson
Next: RE: EPICS base 3.15.0.2 Mark Rivers
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Oct 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·