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 <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 2015 2016 2017 2018 2019 <2020> 2021 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: | Paul Chu <cm_chu at hotmail.com>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 30 Jul 2020 11:23:56 +0000 |
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 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 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. |