Compare commits
18 Commits
R3.15.2-pr
...
R3.15.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7b20537b9 | ||
|
|
42a8e61832 | ||
|
|
37e1feac12 | ||
|
|
3090561b5e | ||
|
|
1849b9f4ab | ||
|
|
2bf58d3187 | ||
|
|
2f6fad0cc3 | ||
|
|
f384232864 | ||
|
|
33b9fba00b | ||
|
|
b7b9e2a79b | ||
|
|
6de155e97a | ||
|
|
1f73716d5c | ||
|
|
2774b4c4af | ||
|
|
bcf47ac663 | ||
|
|
da93312b79 | ||
|
|
874087f454 | ||
|
|
a6d3c4f792 | ||
|
|
f168a0f612 |
@@ -37,7 +37,7 @@ EPICS_PATCH_LEVEL = 0
|
||||
|
||||
# This will end in -DEV between official releases
|
||||
#EPICS_DEV_SNAPSHOT=-DEV
|
||||
EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-pre1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre2
|
||||
#EPICS_DEV_SNAPSHOT=-pre2-DEV
|
||||
@@ -45,7 +45,7 @@ EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-rc1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc2
|
||||
#EPICS_DEV_SNAPSHOT=-rc2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=
|
||||
EPICS_DEV_SNAPSHOT=
|
||||
|
||||
# No changes should be needed below here
|
||||
|
||||
|
||||
@@ -260,7 +260,7 @@ YACCOPT ?= $($*_YACCOPT)
|
||||
|
||||
$(LIBNAME) $(TESTLIBNAME): $(LIBRARY_OBJS)
|
||||
|
||||
$(LIBNAME) $(TESTLIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX):
|
||||
$(filter-out $(DLLSTUB_LIBNAME) $(TESTDLLSTUB_LIBNAME), $(LIBNAME) $(TESTLIBNAME)): $(LIB_PREFIX)%$(LIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(ARCMD)
|
||||
ifneq ($(strip $(RANLIB)),)
|
||||
@@ -270,13 +270,13 @@ endif # RANLIB
|
||||
$(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \
|
||||
$(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
$(DLLSTUB_LIBNAME): $(SHRLIBNAME)
|
||||
$(DLLSTUB_LIBNAME): $(SHRLIBNAME);
|
||||
$(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
$(MT_DLL_COMMAND)
|
||||
|
||||
$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME)
|
||||
$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME);
|
||||
$(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
|
||||
@@ -12,9 +12,11 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
ARCH_DEP_CFLAGS = $(GNU_TUNE_CFLAGS)
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_64_
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
||||
|
||||
OP_SYS_CFLAGS += -m64
|
||||
OP_SYS_LDFLAGS += -m64
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. x86_64-redhat-linux-gcc, put a GNU_TARGET definition in
|
||||
|
||||
@@ -12,3 +12,11 @@
|
||||
# Uncomment the following line if readline has problems
|
||||
#LDLIBS_READLINE = -lreadline -lcurses
|
||||
|
||||
|
||||
# It makes sense to include debugging symbols even in optimized builds
|
||||
# in case you want to attach gdb to the process or examine a core-dump.
|
||||
# This does cost disk space, but not memory as debug symbols are not
|
||||
# loaded into RAM when the binary is loaded.
|
||||
OPT_CFLAGS_YES += -g
|
||||
OPT_CXXFLAGS_YES += -g
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# a) LD_LIBRARY_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
|
||||
# executables.
|
||||
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
|
||||
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
|
||||
# will add the named directory to the list contained in the executables.
|
||||
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
|
||||
# to inform the system of the shared library location.
|
||||
@@ -33,6 +33,10 @@ COMMANDLINE_LIBRARY = READLINE
|
||||
#COMMANDLINE_LIBRARY = READLINE_CURSES
|
||||
|
||||
|
||||
# Permit access to 64-bit file-systems
|
||||
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64
|
||||
|
||||
|
||||
# Uncomment the followings lines to build with CLANG instead of GCC.
|
||||
#
|
||||
#GNU = NO
|
||||
@@ -49,7 +53,6 @@ OPT_CFLAGS_YES += -g
|
||||
OPT_CXXFLAGS_YES += -g
|
||||
|
||||
|
||||
# Tune GNU compiler output for a specific cpu-type
|
||||
# (e.g. generic, i386, i486, i586, or i686)
|
||||
# Tune GNU compiler output for a specific 32-bit cpu-type
|
||||
# (e.g. generic, native, i386, i686, pentium2/3/4, prescott, k6, athlon etc.)
|
||||
GNU_TUNE_CFLAGS = -mtune=generic
|
||||
|
||||
|
||||
@@ -47,3 +47,8 @@ COMMANDLINE_LIBRARY = READLINE
|
||||
# loaded into RAM when the binary is loaded.
|
||||
OPT_CFLAGS_YES += -g
|
||||
OPT_CXXFLAGS_YES += -g
|
||||
|
||||
|
||||
# Tune GNU compiler output for a specific 64-bit cpu-type
|
||||
# (e.g. generic, native, core2, nocona, k8, opteron, athlon64, barcelona etc.)
|
||||
GNU_TUNE_CFLAGS = -mtune=generic
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title>Known Problems in R3.15.1</title>
|
||||
<title>Known Problems in R3.15.2</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS Base R3.15.1: Known Problems</h1>
|
||||
<h1 style="text-align: center">EPICS Base R3.15.2: Known Problems</h1>
|
||||
|
||||
<p>Any patch files linked below should be applied at the root of the
|
||||
base-3.15.1 tree. Download them, then use the GNU Patch program as
|
||||
base-3.15.2 tree. Download them, then use the GNU Patch program as
|
||||
follows:</p>
|
||||
|
||||
<blockquote><pre>% <b>cd <i>/path/to/</i>base-3.15.1</b>
|
||||
<blockquote><pre>% <b>cd <i>/path/to/</i>base-3.15.2</b>
|
||||
% <b>patch -p0 < <i>/path/to/</i>file.patch</b></pre></blockquote>
|
||||
|
||||
<p>The following significant problems have been reported with this
|
||||
@@ -22,6 +22,11 @@ version of EPICS Base:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Parallel builds ("make -j") on native Windows are not working properly.
|
||||
Builds tend to hang (make saturating one core) - interrupting and calling make
|
||||
again usually finishes the build. Sequential builds work and are recommended
|
||||
for automated build environments.</li>
|
||||
|
||||
<li>64-bit Windows builds of the CAS library may not work with some compilers.
|
||||
The code in <tt>src/legacy/gdd</tt> is currently incompatible with the LLP64
|
||||
model that Windows uses for its 64-bit ABI.</li>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Installation Instructions
|
||||
|
||||
EPICS Base Release 3.15.1
|
||||
EPICS Base Release 3.15.2
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<BODY>
|
||||
<CENTER>
|
||||
<H1>Installation Instructions</H1>
|
||||
<H2>EPICS Base Release 3.15.1</H2><BR>
|
||||
<H2>EPICS Base Release 3.15.2</H2><BR>
|
||||
</CENTER>
|
||||
<HR>
|
||||
<H3> Table of Contents</H3>
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
<body lang="en">
|
||||
<h1 align="center">EPICS Base Release 3.15.2</h1>
|
||||
|
||||
<p style="color:red">This version of EPICS Base has not been released yet.</p>
|
||||
|
||||
<h2 align="center">Changes between 3.15.1 and 3.15.2</h2>
|
||||
<!-- Insert new items immediately below here ... -->
|
||||
|
||||
|
||||
@@ -144,17 +144,17 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<td>Tag the module in Bazaar, using these tag conventions:
|
||||
<ul>
|
||||
<li>
|
||||
<tt>R3.15.1-pre<i>n</i></tt>
|
||||
<tt>R3.15.2-pre<i>n</i></tt>
|
||||
— pre-release tag
|
||||
</li>
|
||||
<li>
|
||||
<tt>R3.15.1-rc<i>n</i></tt>
|
||||
<tt>R3.15.2-rc<i>n</i></tt>
|
||||
— release candidate tag, note the <tt>rc</tt> is now
|
||||
lower-case</li>
|
||||
</ul>
|
||||
<blockquote><tt>
|
||||
cd ~/base/mirror-3.15<br />
|
||||
bzr tag R3.15.1-rc<i>n</i>
|
||||
bzr tag R3.15.2-rc<i>n</i>
|
||||
</tt></blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -166,9 +166,9 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<blockquote><tt>
|
||||
cd ~/base<br />
|
||||
bzr export --keywords=publish
|
||||
--root=base-3.15.1-rc<i>n</i>
|
||||
-r tag:R3.15.1-rc<i>n</i>
|
||||
baseR3.15.1-rc<i>n</i>.tar.gz
|
||||
--root=base-3.15.2-rc<i>n</i>
|
||||
-r tag:R3.15.2-rc<i>n</i>
|
||||
baseR3.15.2-rc<i>n</i>.tar.gz
|
||||
mirror-3.15
|
||||
</tt></blockquote>
|
||||
This requires that the Bazaar keywords plugin is installed and
|
||||
@@ -289,7 +289,7 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<td>Tag the module in Bazaar:
|
||||
<blockquote><tt>
|
||||
cd ~/base/mirror-3.15<br />
|
||||
bzr tag R3.15.1</i>
|
||||
bzr tag R3.15.2</i>
|
||||
</tt></blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -301,9 +301,9 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<blockquote><tt>
|
||||
cd ~/base<br />
|
||||
bzr export --keywords=publish
|
||||
--root=base-3.15.1
|
||||
-r tag:R3.15.1
|
||||
baseR3.15.1.tar.gz
|
||||
--root=base-3.15.2
|
||||
-r tag:R3.15.2
|
||||
baseR3.15.2.tar.gz
|
||||
mirror-3.15
|
||||
</tt></blockquote>
|
||||
This requires that the Bazaar keywords plugin is installed and
|
||||
|
||||
@@ -652,7 +652,7 @@ not follow this pattern, but are still printable strings.
|
||||
|
||||
=item [1] R3.15 Channel Access Reference Manual by Jeffrey O. Hill
|
||||
|
||||
L<http://www.aps.anl.gov/epics/base/R3-15/0-docs/CAref.html>
|
||||
L<http://www.aps.anl.gov/epics/base/R3-15/2-docs/CAref.html>
|
||||
|
||||
=back
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ inline int aitString::installBuf(const char* pString, unsigned strLengthIn, unsi
|
||||
|
||||
inline int aitString::installBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ inline int aitString::installConstBuf(const char* pString, unsigned strLengthIn,
|
||||
|
||||
inline int aitString::installConstBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installConstBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -378,7 +378,7 @@ inline int aitString::installConstImortalBuf(const char* pString,
|
||||
|
||||
inline int aitString::installConstImortalBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installConstImortalBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ inline int aitString::copy(const char* pString, unsigned stringLength)
|
||||
|
||||
inline int aitString::copy(const char* p)
|
||||
{
|
||||
return this->copy(p, strlen(p));
|
||||
return this->copy(p, (unsigned) strlen(p));
|
||||
}
|
||||
|
||||
inline int aitString::copy(const aitString* p)
|
||||
@@ -436,7 +436,7 @@ inline aitString::aitString(void)
|
||||
|
||||
inline aitString::aitString(const char* p, aitStrType typeIn)
|
||||
{
|
||||
unsigned strLengthIn = strlen(p);
|
||||
unsigned strLengthIn = (unsigned) strlen(p);
|
||||
this->init(p, typeIn, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
|
||||
@@ -154,6 +154,8 @@ epicsShareFunc long dbChannelTest(const char *name);
|
||||
epicsShareFunc dbChannel * dbChannelCreate(const char *name);
|
||||
epicsShareFunc long dbChannelOpen(dbChannel *chan);
|
||||
|
||||
/*Following is also defined in db_convert.h*/
|
||||
epicsShareExtern unsigned short dbDBRnewToDBRold[];
|
||||
|
||||
/* In the following macros pChan is dbChannel* */
|
||||
|
||||
@@ -175,6 +177,9 @@ epicsShareFunc long dbChannelOpen(dbChannel *chan);
|
||||
/* evaluates to short */
|
||||
#define dbChannelExportType(pChan) ((pChan)->addr.dbr_field_type)
|
||||
|
||||
/* evaluates to short */
|
||||
#define dbChannelExportCAType(pChan) (dbDBRnewToDBRold[dbChannelExportType(pChan)])
|
||||
|
||||
/* evaluates to short */
|
||||
#define dbChannelFieldSize(pChan) ((pChan)->addr.field_size)
|
||||
|
||||
@@ -185,7 +190,7 @@ epicsShareFunc long dbChannelOpen(dbChannel *chan);
|
||||
#define dbChannelFinalFieldType(pChan) ((pChan)->final_type)
|
||||
|
||||
/* evaluates to short */
|
||||
#define dbChannelFinalExportType(pChan) ((pChan)->final_type)
|
||||
#define dbChannelFinalCAType(pChan) (dbDBRnewToDBRold[(pChan)->final_type])
|
||||
|
||||
/* evaluates to short */
|
||||
#define dbChannelFinalFieldSize(pChan) ((pChan)->final_field_size)
|
||||
|
||||
@@ -159,7 +159,7 @@ void dbChannelIO::show (
|
||||
|
||||
if ( level > 0u ) {
|
||||
printf ( " type %s, element count %li, field at %p\n",
|
||||
dbf_type_to_text ( dbChannelExportType ( this->dbch ) ),
|
||||
dbf_type_to_text ( dbChannelExportCAType ( this->dbch ) ),
|
||||
dbChannelElements ( this->dbch ),
|
||||
dbChannelField ( this->dbch ) );
|
||||
if ( level > 1u ) {
|
||||
@@ -206,7 +206,7 @@ short dbChannelIO::nativeType (
|
||||
epicsGuard < epicsMutex > & guard ) const
|
||||
{
|
||||
guard.assertIdenticalMutex ( this->mutex );
|
||||
return dbChannelExportType( this->dbch );
|
||||
return dbChannelExportCAType( this->dbch );
|
||||
}
|
||||
|
||||
void * dbChannelIO::operator new ( size_t size,
|
||||
|
||||
@@ -99,34 +99,21 @@
|
||||
#define oldDBR_STSACK_STRING oldDBR_PUT_ACKS + 1
|
||||
#define oldDBR_CLASS_NAME oldDBR_STSACK_STRING + 1
|
||||
|
||||
/*Following is defined in db_convert.h*/
|
||||
extern unsigned short dbDBRnewToDBRold[DBR_ENUM+1];
|
||||
|
||||
typedef char DBSTRING[MAX_STRING_SIZE];
|
||||
|
||||
|
||||
struct dbChannel * dbChannel_create(const char *pname)
|
||||
{
|
||||
dbChannel *chan = dbChannelCreate(pname);
|
||||
short ftype;
|
||||
|
||||
if (!chan)
|
||||
return NULL;
|
||||
|
||||
ftype = chan->addr.dbr_field_type;
|
||||
if (INVALID_DB_REQ(ftype)) {
|
||||
if (INVALID_DB_REQ(dbChannelExportType(chan)) ||
|
||||
dbChannelOpen(chan)) {
|
||||
dbChannelDelete(chan);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (dbChannelOpen(chan)) {
|
||||
dbChannelDelete(chan);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Convert final_type to CA's type mapping */
|
||||
chan->final_type = dbDBRnewToDBRold[chan->final_type];
|
||||
|
||||
return chan;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ int gft(const char *pname)
|
||||
|
||||
precord = dbChannelRecord(chan);
|
||||
elements = dbChannelElements(chan);
|
||||
type = dbChannelExportType(chan);
|
||||
type = dbChannelExportCAType(chan);
|
||||
|
||||
printf(" Record Name: %s\n", precord->name);
|
||||
printf("Record Address: 0x%p\n", precord);
|
||||
@@ -103,7 +103,7 @@ int pft(const char *pname, const char *pvalue)
|
||||
|
||||
precord = dbChannelRecord(chan);
|
||||
elements = dbChannelElements(chan);
|
||||
type = dbChannelExportType(chan);
|
||||
type = dbChannelExportCAType(chan);
|
||||
|
||||
printf(" Record Name: %s\n", precord->name);
|
||||
printf("Record Address: 0x%p\n", precord);
|
||||
|
||||
@@ -24,7 +24,7 @@ accepted by the EPICS IOC's dbLoadTemplate command.</p>
|
||||
|
||||
<h2>Command Syntax:</h2>
|
||||
|
||||
<pre>msi -V -g -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
|
||||
<pre>msi -V -g -D -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
|
||||
|
||||
<p>All parameters are optional. The -o, -I, -M, and -S switches may be
|
||||
separated from their associated value string by spaces if desired. Output will
|
||||
@@ -46,6 +46,13 @@ be written to stdout unless the -o option is given.</p>
|
||||
this was the behavior of previous versions of msi, but it does not follow
|
||||
common scoping rules and is discouraged.</dd>
|
||||
|
||||
<dt><tt>-D</tt></dt>
|
||||
<dd>Output dependency information suitable for including by a Makefile to
|
||||
stdout instead of performing the macro substitutions. The <tt>-o</tt> option
|
||||
must be given to specify the target name for the dependency rules. Other
|
||||
options should be given exactly as will be used in the macro substitution
|
||||
process.</dd>
|
||||
|
||||
<dt><tt>-o</tt> <i>file</i></dt>
|
||||
<dd>Output will be written to the specifed file rather than to the standard
|
||||
output.</dd>
|
||||
|
||||
@@ -1255,7 +1255,7 @@ static void claim_ciu_reply ( struct channel_in_use * pciu )
|
||||
}
|
||||
status = cas_copy_in_header (
|
||||
pciu->client, CA_PROTO_CREATE_CHAN, 0u,
|
||||
dbChannelFinalExportType(pciu->dbch), nElem, pciu->cid,
|
||||
dbChannelFinalCAType(pciu->dbch), nElem, pciu->cid,
|
||||
pciu->sid, NULL );
|
||||
if ( status == ECA_NORMAL ) {
|
||||
cas_commit_msg ( pciu->client, 0u );
|
||||
@@ -1301,7 +1301,7 @@ static int claim_ciu_action ( caHdrLargeArray *mp,
|
||||
}
|
||||
|
||||
DLOG ( 2, ("CAS: claim_ciu_action found '%s', type %d, count %d\n",
|
||||
pName, dbChannelExportType(dbch), dbChannelElements(dbch)) );
|
||||
pName, dbChannelCAType(dbch), dbChannelElements(dbch)) );
|
||||
|
||||
pciu = casCreateChannel (
|
||||
client,
|
||||
@@ -2348,7 +2348,7 @@ static int search_reply_udp ( caHdrLargeArray *mp, void *pPayload, struct client
|
||||
else {
|
||||
count = (ca_uint16_t) dbChannelFinalElements(dbch);
|
||||
}
|
||||
type = (ca_uint16_t) dbChannelFinalExportType(dbch);
|
||||
type = (ca_uint16_t) dbChannelFinalCAType(dbch);
|
||||
}
|
||||
|
||||
SEND_LOCK ( client );
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h> /* for MAXHOSTNAMELEN */
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
enum epicsSocketSystemCallInterruptMechanismQueryInfo
|
||||
epicsSocketSystemCallInterruptMechanismQuery ()
|
||||
{
|
||||
#if (CYGWIN_VERSION_DLL_MAJOR >= 1007) && (CYGWIN_VERSION_DLL_MINOR < 15)
|
||||
#if (CYGWIN_VERSION_DLL_MAJOR == 1007) && (CYGWIN_VERSION_DLL_MINOR < 15)
|
||||
// Behaviour changed in early Cygwin 1.7 releases, reverted later.
|
||||
return esscimqi_socketCloseRequired;
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user