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  2018  2019  <20202021  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  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Base Compilation Failed Under Cygwin gcc 9+
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Freddie Akeroyd - UKRI STFC <freddie.akeroyd at stfc.ac.uk>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Mon, 3 Aug 2020 17:29:21 +0000
Fix committed to the 7.0 branch (but not tested). Thanks guys.

- Andrew



On Jul 30, 2020, at 3:05 PM, Freddie Akeroyd - UKRI STFC <freddie.akeroyd at stfc.ac.uk> wrote:

Hi Andrew,
 
I’m afraid I don’t know if it could break compatibility with older Cygwin versions. As TCP_NODELAY is a macro, maybe using:
 
#ifndef TCP_NODELAY
#include <netinet/tcp.h>
#endif
 
would be safe enough
 
Regards,
 
Freddie
 
 
From: Johnson, Andrew N. <anj at anl.gov> 
Sent: 30 July 2020 19:11
To: Paul Chu <cm_chu at hotmail.com>
Cc: Akeroyd, Freddie (STFC,RAL,ISIS) <freddie.akeroyd at stfc.ac.uk>; tech-talk at aps.anl.gov
Subject: Re: EPICS Base Compilation Failed Under Cygwin gcc 9+
 
Hi Freddie, 
 
Will that #include change need to be wrapped in some GCC or Cygwin version check? I wouldn’t want to break builds against older versions, especially since we aren’t actively testing Cygwin builds any more.
 
Thanks,
 
- Andrew


On Jul 30, 2020, at 12:42 PM, Paul Chu via Tech-talk <tech-talk at aps.anl.gov> wrote:
 
Thanks Freddie,
 
Yes, your solution does the trick. It should probably be added to the future release.
 
Thanks,
Paul
 
From: Freddie Akeroyd - UKRI STFC <freddie.akeroyd at stfc.ac.uk> 
Sent: Thursday, July 30, 2020 7:24 PM
To: Paul Chu <cm_chu at hotmail.com>; tech-talk at aps.anl.gov
Subject: RE: EPICS Base Compilation Failed Under Cygwin gcc 9+
 
Hi,
 
I wonder if the definition of TCP_NODELAY has moved location in gcc 9.0.*  - if you add:
 
    #include <netinet/tcp.h>
 
To the file does that help? If so, then    modules/libcom/src/osi/os/cygwin32/osdSock.h    is probably a better place for it to be more permanently added.  
 
Regards,
 
Freddie
 
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Paul Chu via Tech-talk
Sent: 30 July 2020 08:10
To: 'tech-talk at aps.anl.gov' <tech-talk at aps.anl.gov>
Subject: EPICS Base Compilation Failed Under Cygwin gcc 9+
 
Hi,
 
The EPICS Base is broken for Cygwin under gcc 9.0.* The error message seems pointing to “TCP_NODELAY” not declared. I tried for several Base 3.15.*, 3.14.*, and 7.*, and all got the same error messages (see below). If using gcc 7.4.*, all versions can compile without any issue.  Does anybody experience the same issue?
 
g++  -D_POSIX_THREADS -D_POSIX_TIMERS           -DUNIX  -DCYGWIN32     -O3 -g   -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL   -I. -I../O.Common -I. -I. -I.. -I../../../../src/ca/client/test -I../../../../include/compiler/gcc -I../../../../include/os/cygwin32 -I../../../../include         -o tcpiiu.obj -c ../tcpiiu.cpp
In file included from ../localHostName.h:32,
                 from ../tcpiiu.cpp:32:
../../../../include/epicsSingleton.h:164:15: warning: ‘void* SingletonUntyped::pInstance() const’ redeclared without dllimport attribute after being referenced with dll linkage
  164 | inline void * SingletonUntyped :: pInstance () const
      |               ^~~~~~~~~~~~~~~~
../tcpiiu.cpp: In constructor ‘tcpiiu::tcpiiu(cac&, epicsMutex&, epicsMutex&, cacContextNotify&, double, epicsTimerQueue&, const osiSockAddr&, comBufMemoryManager&, unsigned int, ipAddrToAsciiEngine&, const priLev&, SearchDestTCP*)’:
../tcpiiu.cpp:728:56: error: ‘TCP_NODELAY’ was not declared in this scope
  728 |     int status = setsockopt ( this->sock, IPPROTO_TCP, TCP_NODELAY,
      |                                                        ^~~~~~~~~~~
make[3]: *** [../../../../configure/RULES_BUILD:240: tcpiiu.obj] Error 1
make[3]: Leaving directory '/cygdrive/c/epics/base-3.15.7/src/ca/client/O.CYGWIN-X86_64'
make[2]: *** [../../../configure/RULES_ARCHS:58: install.CYGWIN-X86_64] Error 2
make[2]: Leaving directory '/cygdrive/c/epics/base-3.15.7/src/ca/client'
make[1]: *** [../configure/RULES_DIRS:84: ca/client.install] Error 2
make[1]: Leaving directory '/cygdrive/c/epics/base-3.15.7/src'
make: *** [configure/RULES_DIRS:84: src.install] Error 2
 
Thanks,
Paul
 
Paul Chu
Head of Accelerator Division
Nanjing Proton Source
Nanjing University, Nanjing, China
 
<image001.png>
 
This email and any attachments are intended solely for the use of the named recipients. If you are not the intended recipient you must not use, disclose, copy or distribute this email or any of its attachments and should notify the sender immediately and delete this email from your system. UK Research and Innovation (UKRI) has taken every reasonable precaution to minimise risk of this email or any attachments containing viruses or malware but the recipient should carry out its own virus and malware checks before opening the attachments. UKRI does not accept any liability for any losses or damages which the recipient may sustain due to presence of any viruses. Opinions, conclusions or other information in this message and attachments that are not related directly to UKRI business are solely those of the author and do not represent the views of UKRI.
 
-- 
Complexity comes for free, simplicity you have to work for.
 

This email and any attachments are intended solely for the use of the named recipients. If you are not the intended recipient you must not use, disclose, copy or distribute this email or any of its attachments and should notify the sender immediately and delete this email from your system. UK Research and Innovation (UKRI) has taken every reasonable precaution to minimise risk of this email or any attachments containing viruses or malware but the recipient should carry out its own virus and malware checks before opening the attachments. UKRI does not accept any liability for any losses or damages which the recipient may sustain due to presence of any viruses. Opinions, conclusions or other information in this message and attachments that are not related directly to UKRI business are solely those of the author and do not represent the views of UKRI.


-- 
Complexity comes for free, simplicity you have to work for.


References:
EPICS Base Compilation Failed Under Cygwin gcc 9+ Paul Chu via Tech-talk
RE: EPICS Base Compilation Failed Under Cygwin gcc 9+ Freddie Akeroyd - UKRI STFC via Tech-talk
RE: EPICS Base Compilation Failed Under Cygwin gcc 9+ Paul Chu via Tech-talk
Re: EPICS Base Compilation Failed Under Cygwin gcc 9+ Johnson, Andrew N. via Tech-talk
RE: EPICS Base Compilation Failed Under Cygwin gcc 9+ Freddie Akeroyd - UKRI STFC via Tech-talk

Navigate by Date:
Prev: Re: MiniPIX TPX3 detector Wang Xiaoqiang (PSI) via Tech-talk
Next: Re: MiniPIX TPX3 detector Gofron, Kazimierz 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  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: RE: EPICS Base Compilation Failed Under Cygwin gcc 9+ Freddie Akeroyd - UKRI STFC via Tech-talk
Next: cs-studio linux version that works with archiver astrid morreale 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  2018  2019  <20202021  2022  2023  2024 
ANJ, 03 Aug 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·