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

Subject: RE: Unable to build support modules on Windows, with base 3.15.2
From: Mark Rivers <[email protected]>
To: Kevin Peterson <[email protected]>, "J. Lewis Muir" <[email protected]>, "Mark S. Engbretson" <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 29 Sep 2015 17:17:02 +0000
Folks,

I have determined that the following changes are required to build synApps_5_8 on win32-x86.

- areaDetector has the following problems:

  - The top-level areaDetector is R2-0, while ADCore is R2-2.
    This is not allowed, the RELEASE.md for ADCore R2-2 clearly states that
    it requires R2-2 of the top-level areaDetector.  It was just luck that this
    worked on Linux and vxWorks.
    The problem on Windows is that the CONFIG_SITE.local file is missing some 
    critical lines.  Adding the following lines will allow it to work.
ifeq ($(OS_CLASS), WIN32)
    HDF5_STATIC_BUILD=$(STATIC_BUILD)
endif

  - The supplied top-level configure/RELEASE will not work under Windows on a Linux
    file system.  The normal areaDetector RELEASE_PATHS.local, 
    RELEASE_PATHS.local.win32-x86, RELEASE_LIBS.local, and RELEASE_PRODS.local
    must be used.
    

- seq needs to be updated to seq-2-2-snapshot-2015-05-27.  seq-2-2-1
and seq-2-2-2 do not build on win32-x86.  Hopefully there will be a new
official release of seq soon that builds on win32-x86.

- alive needs to be updated to the Subversion trunk version.  This should be tagged
as 1-1 soon.

- caputRecorder needs to be updated to 1-4-3.  1-4-2 does not build on dynamic
Windows architectures.

- softGlue needs to be updated to 2-5.  2-4-3 does not build on Windows.

- love-3-2-5 has an unneeded file configure/RELEASE.win32-x86 that makes
the build fail because it is not updated by "make release".  Delete that
file or update to Subversion trunk version.

- motor-6-9 will not build because of a problem in PhytronSrc.  Edit
  motorApp/PhytronSrc/phytronMotorAxis.cpp to make the following patch:
+#ifndef _WIN32
 #include <unistd.h>
+#endif

- The allenBradley, devIocStats, ipac, and seq modules cannot be built under Windows on a Linux file system
until the following line is added to configure/RELEASE immediately following
the line that defines EPICS_BASE:
-include $(TOP)/../configure/EPICS_BASE.$(EPICS_HOST_ARCH)

devIocStats/configure/RELEASE also needs the following line right after the line that defines SUPPORT:
-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)

xxx needs the following changes to configure/RELEASE:
corvette:support/xxx-5-8-3/configure>diff -U3 ~/scratch/synApps_5_8/support/xxx-5-8-3/configure/RELEASE .
--- /home/epics/scratch/synApps_5_8/support/xxx-5-8-3/configure/RELEASE	2015-03-27 13:45:36.000000000 -0500
+++ ./RELEASE	2015-09-29 11:12:19.600114581 -0500
@@ -26,10 +26,13 @@
 ##############################################################################
 
 # Define the path to the synApps support directory and uncomment.
SUPPORT=/home/oxygen/MOONEY/distrib/synApps_5_8/support
+-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)
 
 # Specify the standard synApps configuration.
 include $(SUPPORT)/configure/RELEASE
+-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)
+-include $(TOP)/../configure/EPICS_BASE.$(EPICS_HOST_ARCH)
 #CAPUTLOG=$(SUPPORT)/caPutLog-3-4


I think the synApps_5_8 Known Problems page should contain the above information.

I also think that in the future synApps should be tested on the following 4 architectures before a new release is issued: win32-x86, win32-x86-static, windows-x64, windows-x64-static.

Mark


________________________________________
From: Kevin Peterson [[email protected]]
Sent: Thursday, September 24, 2015 1:54 PM
To: Mark Rivers; J. Lewis Muir; Mark S. Engbretson; [email protected]
Subject: Re: Unable to build support modules on Windows, with base 3.15.2

I believe I get the following link error when building seq-2-2-1
(included with synApps_5_8) and seq-2-2-2 when building for win32-x86:

link -nologo  /LTCG /incremental:no /opt:ref /release
-out:snc.exe        lexer.obj snl.obj main.obj node.obj var_types.obj
analysis.obj gen_code
.obj gen_ss_code.obj gen_tables.obj sym_table.obj builtin.obj
type_check.obj     ..\\..\\..\\lib\\win32-x86\\seq.lib
..\\..\\..\\lib\\win32-x86\\pv.lib  D:\\ep
ics\\base-3.14.12.5\\lib\\win32-x86\\ca.lib
D:\\epics\\base-3.14.12.5\\lib\\win32-x86\\Com.lib
var_types.obj : error LNK2001: unresolved external symbol
__imp__prim_type_name
gen_tables.obj : error LNK2001: unresolved external symbol
__imp__prim_type_tag_name
snc.exe : fatal error LNK1120: 2 unresolved externals
make[4]: *** [snc.exe] Error 1120
make[4]: Leaving directory
`D:/epics/synApps_5_8/support/seq-2-2-2/src/snc/O.win32-x86'
make[3]: *** [install.win32-x86] Error 2
make[3]: Leaving directory `D:/epics/synApps_5_8/support/seq-2-2-2/src/snc'
make[2]: *** [snc.install] Error 2
make[2]: Leaving directory `D:/epics/synApps_5_8/support/seq-2-2-2/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `D:/epics/synApps_5_8/support/seq-2-2-2'
make: *** [D:/epics/synApps_5_8/support/seq-2-2-2.install] Error 2

alive-1-0 doesn't build for Windows unless you add the following libs to
its src/Makefile.  The alive svn repo contains a similar fix, but it
assumes ws2_64 is available, which it wasn't on my system.

+alive_SYS_LIBS_WIN32 += ws2_32
+alive_SYS_LIBS_WIN32 += Advapi32

The version of ADCore included in synApps_5_8 fails to link
out-of-the-box for win32-x86:

link /nologo /subsystem:windows /dll /LTCG /incremental:no /opt:ref
/release        /implib:NeXus.lib /out:NeXus.dll          napi.obj
napi5.obj napiu.obj nxdat
aset.obj nxio.obj nxstack.obj nxxml.obj stptok.obj
D:\\epics\\synApps_5_8\\support\\areaDetector-R2-0\\ADBinaries-R2-2\\lib\\win32-x86\\libhdf5.lib
 D:\\ep
ics\\synApps_5_8\\support\\areaDetector-R2-0\\ADBinaries-R2-2\\lib\\win32-x86\\libszip.lib
 D:\\epics\\synApps_5_8\\support\\areaDetector-R2-0\\ADBinaries-R2-2\
\lib\\win32-x86\\libzlib.lib
LIBCMT.lib(timeset.obj) : error LNK2005: ___daylight already defined in
MSVCRT.lib(MSVCR100.dll)
LIBCMT.lib(timeset.obj) : error LNK2005: ___timezone already defined in
MSVCRT.lib(MSVCR100.dll)
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other
libs; use /NODEFAULTLIB:library
NeXus.dll : fatal error LNK1169: one or more multiply defined symbols found
make[5]: *** [NeXus.dll] Error 1169
make[5]: Leaving directory
`D:/epics/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2/ADApp/nexusSrc/O.win32-x86'
make[4]: *** [install.win32-x86] Error 2
make[4]: Leaving directory
`D:/epics/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2/ADApp/nexusSrc'
make[3]: *** [nexusSrc.install] Error 2
make[3]: Leaving directory
`D:/epics/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2/ADApp'
make[2]: *** [ADApp.install] Error 2
make[2]: Leaving directory
`D:/epics/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2'
make[1]: ***
[D:/epics/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2.install] Error 2
make[1]: Leaving directory `D:/epics/synApps_5_8/support/areaDetector-R2-0'
make: *** [D:/epics/synApps_5_8/support/areaDetector-R2-0.install] Error 2

Those are the few errors that I copied into a text file before I gave up
trying to build synApps_5_8 for its areaDetector support.

Kevin

On 9/24/15 1:35 PM, Mark Rivers wrote:
>> Many of the problems seem to be caused by Makefiles that unconditionally build
>> code that doesn't work on Windows, and therefore are a problem for all
>> versions of Visual Studio.
>
> I build all of synApps, including the sequencer on Windows, and don't have those problems.  What modules specifically did you have trouble with?
>
> Mark
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Kevin Peterson
> Sent: Thursday, September 24, 2015 1:33 PM
> To: J. Lewis Muir; Mark S. Engbretson; [email protected]
> Subject: Re: Unable to build support modules on Windows, with base 3.15.2
>
> On 9/24/15 10:45 AM, J. Lewis Muir wrote:
>>> If you succeed at building base, you'll encounter more problems when
>>> you try to build other EPICS modules.
>>
>> Which problems are these?  If a certain compiler does not build
>> EPICS software correctly, it would be good to note that compiler as
>> unsupported on Andrew's page.
>
> I have not had a chance to document all of the problems I encountered
> trying to build synApps_5_8 with Visual Studio Community 2015.  Many of
> the problems seem to be caused by Makefiles that unconditionally build
> code that doesn't work on Windows, and therefore are a problem for all
> versions of Visual Studio.
>
> The sequencer is one module that is difficult to build on Windows, but
> those problems have already been discussed here.
>
> Kevin
>



Replies:
RE: Unable to build support modules on Windows, with base 3.15.2 Mark S. Engbretson
Re: Unable to build support modules on Windows, with base 3.15.2 Ben Franksen
Re: Unable to build support modules on Windows, with base 3.15.2 Kevin Peterson
References:
Unable to build support modules on Windows, with base 3.15.2 Heesterman, Peter J
Re: Unable to build support modules on Windows, with base 3.15.2 Jani Hakala
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
RE: Unable to build support modules on Windows, with base 3.15.2 Heesterman, Peter J
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
RE: Unable to build support modules on Windows, with base 3.15.2 Heesterman, Peter J
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
RE: Unable to build support modules on Windows, with base 3.15.2 Heesterman, Peter J
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
Re: Unable to build support modules on Windows, with base 3.15.2 Bob Soliday
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
RE: Unable to build support modules on Windows, with base 3.15.2 Mark S. Engbretson
Re: Unable to build support modules on Windows, with base 3.15.2 J. Lewis Muir
Re: Unable to build support modules on Windows, with base 3.15.2 Kevin Peterson
Re: Unable to build support modules on Windows, with base 3.15.2 J. Lewis Muir
Re: Unable to build support modules on Windows, with base 3.15.2 Kevin Peterson
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
Re: Unable to build support modules on Windows, with base 3.15.2 Kevin Peterson

Navigate by Date:
Prev: RE: Oerlikon leybold MAG.DRIVE iS Heesterman, Peter J
Next: RE: Unable to build support modules on Windows, with base 3.15.2 Mark S. Engbretson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Unable to build support modules on Windows, with base 3.15.2 Kevin Peterson
Next: RE: Unable to build support modules on Windows, with base 3.15.2 Mark S. Engbretson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·