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  <20142015  2016  2017  2018  2019  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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Visual Studio 2010 problem and solution
From: Mark Rivers <[email protected]>
To: "'EPICS Tech Talk'" <[email protected]>
Date: Fri, 13 Jun 2014 17:36:57 +0000
Folks,

Unfortunately I now have another problem, which is very strange.

On May 27 installed VS2010 SP1 and was able to build everything on windows-x64-dynamic.

Today, without changing EPICS base or doing any explicit changes to Visual Studio I have a new problem.  

When building ca.dll in base/src/ca I get the following errors:

***********************************************************************************
H:\epics\base\src\ca>make
make -C O.windows-x64-dynamic -f ../Makefile TOP=../../.. T_A=windows-x64-dynamic install
make[1]: Entering directory `H:/epics/base/src/ca/O.windows-x64-dynamic'
link /nologo /subsystem:windows /dll /LTCG /incremental:no /opt:ref /release /version:3.14  /MACHINE:X64     /implib:ca.lib /out:ca.dll          cac.obj cacChannel.obj cacChannelNo
tify.obj cacContextNotify.obj cacReadNotify.obj cacWriteNotify.obj cacStateNotify.obj access.obj iocinf.obj convert.obj test_event.obj repeater.obj searchTimer.obj disconnectGovern
orTimer.obj repeaterSubscribeTimer.obj baseNMIU.obj nciu.obj netiiu.obj udpiiu.obj tcpiiu.obj noopiiu.obj netReadNotifyIO.obj netWriteNotifyIO.obj netSubscription.obj tcpSendWatchd
og.obj tcpRecvWatchdog.obj bhe.obj ca_client_context.obj oldChannelNotify.obj oldSubscription.obj getCallback.obj getCopy.obj putCallback.obj syncgrp.obj CASG.obj syncGroupNotify.o
bj syncGroupReadNotify.obj syncGroupWriteNotify.obj localHostName.obj comQueRecv.obj comQueSend.obj comBuf.obj hostNameCache.obj msgForMultiplyDefinedPV.obj ca.res    ..\\..\\..\\lib\\windows-x64-dynamic\\Com.lib  ws2_32.lib advapi32.lib user32.lib
   Creating library ca.lib and object ca.exp
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_SERVER_PORT
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_NAME_SERVERS
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_MAX_ARRAY_BYTES
cac.obj : error LNK2001: unresolved external symbol EPICS_CA_CONN_TMO
iocinf.obj : error LNK2001: unresolved external symbol EPICS_CA_AUTO_ADDR_LIST
iocinf.obj : error LNK2001: unresolved external symbol EPICS_CA_ADDR_LIST
repeater.obj : error LNK2001: unresolved external symbol EPICS_CA_REPEATER_PORT
udpiiu.obj : error LNK2001: unresolved external symbol EPICS_CA_MAX_SEARCH_PERIOD
ca.dll : fatal error LNK1120: 8 unresolved externals
make[1]: *** [ca.dll] Error 1120
make[1]: Leaving directory `H:/epics/base/src/ca/O.windows-x64-dynamic'
make: *** [install.windows-x64-dynamic] Error 2
***********************************************************************************

So it cannot find EPICS_CA_MAX_ARRAY_BYTES, etc.  But if I run "dumpbin /exports" on Com.lib they are defined, and Com.lib is being linked with:

***********************************************************************************
H:\epics\base\src\ca>dumpbin /exports ..\..\lib\windows-x64-dynamic\Com.lib
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file ..\..\lib\windows-x64-dynamic\Com.lib

File Type: LIBRARY

     Exports

       ordinal    name

                  ??0SingletonUntyped@@QEAA@XZ (public: __cdecl SingletonUntyped::SingletonUntyped(void))
                  ??0epicsDeadlockDetectMutex@@QEAA@I@Z (public: __cdecl epicsDeadlockDetectMutex::epicsDeadlockDetectMutex(unsigned int))
...
                  EPICS_AR_PORT
                  EPICS_CAS_AUTO_BEACON_ADDR_LIST
                  EPICS_CAS_BEACON_ADDR_LIST
                  EPICS_CAS_BEACON_PERIOD
                  EPICS_CAS_BEACON_PORT
                  EPICS_CAS_IGNORE_ADDR_LIST
                  EPICS_CAS_INTF_ADDR_LIST
                  EPICS_CAS_SERVER_PORT
                  EPICS_CA_ADDR_LIST
                  EPICS_CA_AUTO_ADDR_LIST
                  EPICS_CA_BEACON_PERIOD
                  EPICS_CA_CONN_TMO
                  EPICS_CA_MAX_ARRAY_BYTES
                  EPICS_CA_MAX_SEARCH_PERIOD
                  EPICS_CA_NAME_SERVERS
                  EPICS_CA_REPEATER_PORT
                  EPICS_CA_SERVER_PORT
                  EPICS_CMD_PROTO_PORT
                  EPICS_IOC_LOG_FILE_COMMAND
                  EPICS_IOC_LOG_FILE_LIMIT
                  EPICS_IOC_LOG_FILE_NAME
                  EPICS_IOC_LOG_INET
                  EPICS_IOC_LOG_PORT
                  EPICS_TIMEZONE
                  EPICS_TS_NTP_INET
                  IOCSH_HISTSIZE
***********************************************************************************

Building base works fine when building statically on 32 and 64-bit.  It fails when building dynamically on 32 and 64-bit.  As I said I built successfully on 64-bit on May 27, and have done nothing since then.

The only thing I can think of is that Windows Updates ran on May 28 and did security updates to VS2010 SP1.

Has anyone else seen a similar problem?

Any ideas?

Thanks,
Mark


-----Original Message-----
From: Mark Rivers 
Sent: Wednesday, May 28, 2014 10:08 AM
To: EPICS Tech Talk
Subject: Visual Studio 2010 problem and solution

Folks,

We recently installed some Windows Updates on our machines, and found that Visual Studio 2010 then failed to build DLLs when building EPICS base, for example:

>    Creating library Com.lib and object Com.exp
> Generating code
> Finished generating code
> LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

Andrew Johnson found a Web page discussing this problem, which contained the solution.

The solution is to install Visual Studio 2010 SP1.  I am not sure exactly which Windows Update caused the problem, but it may be an update to .NET.

I'm posting this to save others needing to rediscover the solution.

Mark




Replies:
RE: Visual Studio 2010 problem and solution Mark Rivers
References:
Visual Studio 2010 problem and solution Mark Rivers

Navigate by Date:
Prev: RE: Compiling helloWorld of EPICS V4 on 64bit linux had a link error [SEC=UNOFFICIAL] david.hickin
Next: Re: sequencer installation Vikram Bhagat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  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: Visual Studio 2010 problem and solution Heesterman, Peter J
Next: RE: Visual Studio 2010 problem and solution Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·