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 S. Engbretson" <[email protected]>
To: "'Mark Rivers'" <[email protected]>, "'Kevin Peterson'" <[email protected]>, "'J. Lewis Muir'" <[email protected]>, <[email protected]>
Date: Tue, 29 Sep 2015 12:37:32 -0500
Not wanting to sound like a total ass . . . . but these sorts of issues seem to pop up all the time in Tech-Talk when people want to deploy this software for the first time, or after versions changes on certain modules.  While validating the builds against those 4 different archs would be nice, could it also be extended to rebuilding all of this on totally fresh (virtual) systems? The #1 phrase that I total hate as an answer to anything is, "It works on my system."

Probably why people park on old versions of software for very long periods.

-----Original Message-----
From: Mark Rivers [mailto:[email protected]] 
Sent: Tuesday, September 29, 2015 12:17 PM
To: Kevin Peterson <[email protected]>; J. Lewis Muir <[email protected]>; Mark S. Engbretson <[email protected]>; [email protected]
Subject: RE: Unable to build support modules on Windows, with base 3.15.2

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
>




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
RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers

Navigate by Date:
Prev: RE: Unable to build support modules on Windows, with base 3.15.2 Mark Rivers
Next: Serial port COM10: not work? Heesterman, Peter J
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 Mark Rivers
Next: Re: Unable to build support modules on Windows, with base 3.15.2 Ben Franksen
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 ·