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: Freddie Akeroyd - UKRI STFC via Tech-talk <tech-talk at aps.anl.gov>
To: "Johnson, Andrew N." <anj at anl.gov>, Paul Chu <cm_chu at hotmail.com>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 30 Jul 2020 20:05:16 +0000

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.


Replies:
Re: EPICS Base Compilation Failed Under Cygwin gcc 9+ Johnson, Andrew N. via Tech-talk
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

Navigate by Date:
Prev: Attocube IDS3010 Randall Cayford via Tech-talk
Next: Re: looking for aai/waveform example Hu, Yong 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+ Johnson, Andrew N. via Tech-talk
Next: Re: EPICS Base Compilation Failed Under Cygwin gcc 9+ Johnson, Andrew N. 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 ·