EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: RE: EPICS base compiling using Visual C++ 2005 Express
From: "Jeff Hill" <[email protected]>
To: "'guobao shen'" <[email protected]>, "'Ralph Lange'" <[email protected]>, "'Janet Anderson'" <[email protected]>
Cc: <[email protected]>
Date: Wed, 23 Nov 2005 15:25:04 -0700
> But if I tried to build shared libraries, I
> must copy the manifest specification file for
> each exe or dll file into bin/win32-x86 manually.

I created mantis entry 231.

> I also found that I can not execute the catools such as
> caget/cainfo/camonitor correctly.

This appears to be related to this line in caget.

    setvbuf(stdout,NULL,_IOLBF,0);    /* Set stdout to line buffering */

Apparently the new ms CRTL assert fails 2 <= size <= INT_MAX. That's a new
feature of visual C++ 2005 (see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/
_crt_setvbuf.asp). This does not match POSIX (see
http://www.opengroup.org/onlinepubs/007908799/xsh/setvbuf.html).

I did find that making this change appears to fix the problem.

    setvbuf(stdout,NULL,_IOLBF,2);    /* Set stdout to line buffering */

I created mantis entry 230.

Jeff

> -----Original Message-----
> From: guobao shen [mailto:[email protected]]
> Sent: Wednesday, November 23, 2005 5:09 AM
> To: 'Jeff Hill'; 'Vladimir Sirotenko'; [email protected]
> Subject: RE: EPICS base compiling using Visual C++ 2005 Express
> 
> Dear Dr. Jeff and Dr. Vladimir,
> 
> Thank you very much.
> 
> I succeeded in the compilation after removing the TD from the fdopen
> specification.
> If I tried to build static libraries, there was no problem. But if I tried
> to build shared
> libraried, I must copy the manifest specification file for each exe or dll
> file into
> bin/win32-x86 manually.
> 
> I also found that I can not execute the catools such as
> caget/cainfo/camonitor correctly.
> The only error message is "caget.exe has encountered a problem and needs
> to
> close."
> 
> Can you give any suggestion?
> 
> Thanks again.
> 
> Best Regards,
> 
> Guobao Shen
> J-PARC Control Group
> 
> 
> >
> > I looked into this "w+bTD" verses "W+B".
> >
> > The purpose of this code is to open an identical type of
> > temporary file on all OS. This particular problem is, of
> > course, in Microsoft specific code working with previous
> > versions, but not with Visual C++ 2005.
> >
> > The very latest documentation at MS with a 2005 time stamp on
> > it lists "T"
> > and "D" as valid Microsoft specific options to _fdopen. This
> > therefore smells like a bug at MS. Nevertheless, the proposed
> > change appears to work - not creating any permanent files on
> > the disk. This is probably because roughly equivalent options
> > are specified to the preceding open().
> >
> > We have committed the suggested change - ETA R3.14.8.
> >
> > Jeff
> >
> > > -----Original Message-----
> > > From: Vladimir Sirotenko [mailto:[email protected]]
> > > Sent: Tuesday, November 22, 2005 9:34 AM
> > > To: guobao shen; [email protected]
> > > Subject: Re: EPICS base compiling using Visual C++ 2005 Express
> > >
> > > Try to do the following, it worked for us:
> > >
> > > Antelope failed to run correctly because it could not create a
> > > temporary file.
> > > Modify src\libCom\osi\WIN32\epicsTempFile.cpp and remove
> > the TD from
> > > the fdopen specification.
> > >
> > >         pNewFile = _fdopen ( fd, "w+b" ); instead of pNewFile =
> > > _fdopen ( fd, "w+bTD" );
> > >
> > > Vladimir
> > >




References:
RE: EPICS base compiling using Visual C++ 2005 Express guobao shen

Navigate by Date:
Prev: Re: EDM wants to build on vxWorks-68040 target. Why? Ernest L. Williams Jr.
Next: RE: EDM on Windows + Hummingbird? Liyu, Andrei
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: EPICS base compiling using Visual C++ 2005 Express guobao shen
Next: EDM on Windows + Hummingbird? Michael E Urashka
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·