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  <20182019  2020  2021  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  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Stream fails on windows-x64 against base-7.0.2
From: Dirk Zimoch via Tech-talk <[email protected]>
To: Mark Rivers <[email protected]>, "Gofron, Kazimierz" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Fri, 21 Dec 2018 14:48:45 +0100
Now using the mingw make instead of the cygwin make, I have successfully built EPICS base 7.0.2 and StreamDevice 2.2.8. No problem!

Kaz,

Have you upgraded from StreamDevice 2.7 to 2.8. If yes, are you sure you have cleaned up properly before rebuilding? Make sure all old 2.7 *.dll, *.h, *.dbd files are gone. 'make distclean' should do the job.

My linker line looks like this:

link -nologo -subsystem:windows -dll -debug -incremental:no -fixed:no -MACHINE:X64 -out:stream.dll -implib:stream.lib DebugInterface.obj DummyInterface.obj AsynDriverInterface.obj EnumConverter.obj BCDConverter.obj RawConverter.obj RawFloatConverter.obj BinaryConverter.obj ChecksumConverter.obj MantissaExponentConverter.obj TimestampConverter.obj devaoStream.obj devaiStream.obj devboStream.obj devbiStream.obj devmbboStream.obj devmbbiStream.obj devmbboDirectStream.obj devmbbiDirectStream.obj devlongoutStream.obj devlonginStream.obj devstringoutStream.obj devstringinStream.obj devwaveformStream.obj devaaiStream.obj devaaoStream.obj devcalcoutStream.obj devlsiStream.obj devlsoStream.obj devint64inStream.obj devint64outStream.obj StreamVersion.obj StreamBuffer.obj StreamError.obj StreamProtocol.obj StreamFormatConverter.obj StreamCore.obj StreamBusInterface.obj StreamEpics.obj ../../../asyn4-30/lib/windows-x64/asyn.lib ../../../base-7.0.2/lib/windows-x64/dbRecStd.lib ../../../base-7.0.2/lib/windows-x64/dbCore.lib ../../../base-7.0.2/lib/windows-x64/ca.lib ../../../base-7.0.2/lib/windows-x64/Com.lib
   Creating library stream.lib and object stream.exp
StreamEpics.obj : warning LNK4049: locally defined symbol StreamDebugFile imported
Installing shared library ../../../bin/windows-x64/stream.dll
Installing library ../../../lib/windows-x64/stream.lib
make[2]: Leaving directory 'D:/user/zimoch/StreamDevice/src/O.windows-x64'
make[1]: Leaving directory 'D:/user/zimoch/StreamDevice/src'


I have a warning about StreamDebugFile which I don't know how to fix. But it works just fine.


Dirk


On 21.12.2018 13:46, Mark Rivers wrote:
Hi Dirk,


Trying to build EPICS 7 in windows-x64 fails with:


I have built base 7.0.2 with Visual Studio 2010, 2017, and 2017.


I am using Windows 10 cmd.exe, Visual Studio 2017 cl, cygwin make and  cygwin perl.


I think that is your problem.  cygwin make is not supported for building with Visual Studio.  See this page:


https://epics.anl.gov/base/win32.php


which says:


"We no longer support using the Cygwin tools for Microsoft API builds, use versions of Perl and GNUmake that directly support the Microsoft API instead. See below for Cygwin builds."


That page has a link to version of GNUMake 4.2.1 which I have been using with no problems.


Mark



________________________________
From: [email protected] <[email protected]> on behalf of Dirk Zimoch via Tech-talk <[email protected]>
Sent: Friday, December 21, 2018 5:10 AM
To: Gofron, Kazimierz; EPICS
Subject: Re: Stream fails on windows-x64 against base-7.0.2

Hello Kaz,

I had put some effort into making StreamDevice 2.8 compatible with
Windows dynamic linking, which was a pain in the ass. I had tested
everything with 3.16.1 and got no errors, only some strange warnings.

I have now again tested StreamDevice 2.8.8 with several versions of
EPICS base. Here are my results:
R3.14.12.7: Success
R3.15.5: Success
R3.15.6: Success
R3.16.1: Success
R3.16.2: Success
R7.0.1.1: cannot build base
R7.0.2: cannot build base

Trying to build EPICS 7 in windows-x64 fails with:

D:\user\zimoch\base-7.0.2\bin\windows-x64\e_flex.exe: can't open
skeleton file /cygdrive/d/user/zimoch/base-7.0.2/include/flex.skel.static
Installing PERL_MODULES file
/cygdrive/d/user/zimoch/base-7.0.2/lib/perl/EPICS/macLib.pm
make[4]: *** No rule to make target 'asLib_lex.c', needed by 'asLib.c'.
Stop.
make[4]: Leaving directory
'/cygdrive/d/user/zimoch/base-7.0.2/modules/libcom/src/O.windows-x64'
make[3]: ***
[/cygdrive/d/user/zimoch/base-7.0.2/configure/RULES_ARCHS:58:
install.windows-x64] Error 2
make[3]: Leaving directory
'/cygdrive/d/user/zimoch/base-7.0.2/modules/libcom/src'
make[2]: ***
[/cygdrive/d/user/zimoch/base-7.0.2/configure/RULES_DIRS:84:
src.install] Error 2
make[2]: Leaving directory
'/cygdrive/d/user/zimoch/base-7.0.2/modules/libcom'
make[1]: *** [../configure/RULES_DIRS:84: libcom.install] Error 2
make[1]: Leaving directory '/cygdrive/d/user/zimoch/base-7.0.2/modules'
make: *** [configure/RULES_DIRS:84: modules.install] Error 2

The same with 7.0.1.1. No idea what's wrong now. Building EPICS 3.16 was
no problem at all.

I am using Windows 10 cmd.exe, Visual Studio 2017 cl, cygwin make and
cygwin perl.

D:\user\zimoch\base-7.0.1.1>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

D:\user\zimoch\base-7.0.1.1>make -v
GNU Make 4.2.1
Built for i686-pc-cygwin
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


D:\user\zimoch\base-7.0.1.1>perl -v

This is perl 5, version 22, subversion 2 (v5.22.2) built for
cygwin-thread-multi-64int

Copyright 1987-2015, Larry Wall

Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Dirk


On 20.12.2018 20:37, Gofron, Kazimierz via Tech-talk wrote:
I am using:

Windows 10 Pro

Visual Studio 2010 Professional

|Make 4.||2.||1 (from the EPICS web site)|

|Strawberry perl ||(v5.28.1.1)|

This issue is similar to:

https://github.com/epics-modules/softGlue/issues/1

and

https://github.com/epics-modules/sscan/issues/3

link -nologo -subsystem:windows -dll -LTCG -incremental:no -opt:ref
-release  -MACHINE:X64      -out:stream.dll -implib:stream.lib
DebugInterface.obj DummyInterface.obj AsynDriverInterface.obj
EnumConverter.obj BCDConverter.obj RawConverter.obj
RawFloatConverter.obj BinaryConverter.obj ChecksumConverter.obj
MantissaExponentConverter.obj TimestampConverter.obj devaoStream.obj
devaiStream.obj devboStream.obj devbiStream.obj devmbboStream.obj
devmbbiStream.obj devmbboDirectStream.obj devmbbiDirectStream.obj
devlongoutStream.obj devlonginStream.obj devstringoutStream.obj
devstringinStream.obj devwaveformStream.obj devcalcoutStream.obj
devaaiStream.obj devaaoStream.obj devscalcoutStream.obj
StreamVersion.obj StreamBuffer.obj StreamError.obj StreamProtocol.obj
StreamFormatConverter.obj StreamCore.obj StreamBusInterface.obj
StreamEpics.obj      c:/epics/support/asyn/lib/windows-x64/asyn.lib
c:/epics/base-7.0.2/lib/windows-x64/dbRecStd.lib
c:/epics/base-7.0.2/lib/windows-x64/dbCore.lib
c:/epics/base-7.0.2/lib/windows-x64/ca.lib
c:/epics/base-7.0.2/lib/windows-x64/Com.lib

     Creating library stream.lib and object stream.exp

devaoStream.obj : error LNK2001: unresolved external symbol interruptAccept

devwaveformStream.obj : error LNK2001: unresolved external symbol
pamapdbfType

StreamEpics.obj : error LNK2001: unresolved external symbol pdbbase

stream.dll : fatal error LNK1120: 3 unresolved externals

make[3]: *** [c:/epics/base-7.0.2/configure/RULES_BUILD:292: stream.dll]
Error 1120

make[3]: Leaving directory
'C:/epics/support/stream/StreamDevice/src/O.windows-x64'

make[2]: *** [c:/epics/base-7.0.2/configure/RULES_ARCHS:58:
install.windows-x64] Error 2

make[2]: Leaving directory 'C:/epics/support/stream/StreamDevice/src'

make[1]: *** [c:/epics/base-7.0.2/configure/RULES_DIRS:84: src.install]
Error 2

make[1]: Leaving directory 'C:/epics/support/stream/StreamDevice'

make: *** [configure/RULES_DIRS:88: StreamDevice.install] Error 2

Kaz


Replies:
RE: Stream fails on windows-x64 against base-7.0.2 Mark Rivers via Tech-talk
References:
Stream fails on windows-x64 against base-7.0.2 Gofron, Kazimierz via Tech-talk
Re: Stream fails on windows-x64 against base-7.0.2 Dirk Zimoch via Tech-talk
Re: Stream fails on windows-x64 against base-7.0.2 Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: Stream fails on windows-x64 against base-7.0.2 Mark Rivers via Tech-talk
Next: RE: Stream fails on windows-x64 against base-7.0.2 Mark Rivers 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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Stream fails on windows-x64 against base-7.0.2 Mark Rivers via Tech-talk
Next: RE: Stream fails on windows-x64 against base-7.0.2 Mark Rivers 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  <20182019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·