changeset 1143:e6beaa3ac4f8

upgrade package freetds to cvs
author Mark Brand <mabrand@mabrand.nl>
date Thu, 16 Sep 2010 13:40:27 +0200
parents 8c9251d47a2d
children 294deb360584
files src/freetds-1-fastforward.patch
diffstat 1 files changed, 559 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/freetds-1-fastforward.patch	Thu Sep 16 09:57:40 2010 +0200
+++ b/src/freetds-1-fastforward.patch	Thu Sep 16 13:40:27 2010 +0200
@@ -154749,3 +154749,562 @@
  					token_ptr, NULL,	/* ignore mech type */
  					&send_tok, &ret_flags, NULL);	/* ignore time_rec */
  
+
+commit 2ca6508a8c5874a321f7b42ba6d8396a40850996
+Author: freddy77 <freddy77>
+Date:   Thu Sep 16 07:44:33 2010 +0000
+
+    add documentation for "enable gssapi delegation" option
+
+diff --git a/ChangeLog b/ChangeLog
+index cae3676..ad3094a 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,7 @@
++Thu Sep 16 09:44:12 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
++	* doc/userguide.sgml:
++	- add documentation for "enable gssapi delegation" option
++
+ Thu Sep 16 09:36:57 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
+ 	* include/tds.h src/tds/config.c src/tds/gssapi.c:
+ 	- add delegate option for Kerberos (patch from Peter C. Norton)
+@@ -2880,4 +2884,4 @@ Wed Jan  9 19:54:43 EST 2008	JK Lowden <jklowden@freetds.org>
+ 	* ChangeLog-0.82 added because of release
+ 	
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3124 2010/09/16 07:37:23 freddy77 Exp $
++$Id: ChangeLog,v 1.3125 2010/09/16 07:44:33 freddy77 Exp $
+diff --git a/doc/userguide.sgml b/doc/userguide.sgml
+index 39ed977..01a6d5b 100644
+--- a/doc/userguide.sgml
++++ b/doc/userguide.sgml
+@@ -9,8 +9,8 @@
+ ]>
+ <book>
+ 	<bookinfo>
+-		<date>$Date: 2010/02/07 21:55:49 $</date>
+-		<releaseinfo>$Revision: 1.129 $</releaseinfo>
++		<date>$Date: 2010/09/16 07:44:33 $</date>
++		<releaseinfo>$Revision: 1.130 $</releaseinfo>
+ 		<title>&freetds; User Guide</title>
+ 		<subtitle>A Guide to Installing, Configuring, and Running &freetds;</subtitle>
+ 		<author>
+@@ -62,9 +62,9 @@ This guide is here for you, and we hope that you will be here for it, that other
+ The version you're reading is:
+ 			</para> 
+   			<simplelist type='vert'>
+-<member>$Revision: 1.129 $</>
+-<member>$Date: 2010/02/07 21:55:49 $</>
+-<member>CVS control number $Id: userguide.sgml,v 1.129 2010/02/07 21:55:49 jklowden Exp $.</>
++<member>$Revision: 1.130 $</>
++<member>$Date: 2010/09/16 07:44:33 $</>
++<member>CVS control number $Id: userguide.sgml,v 1.130 2010/09/16 07:44:33 freddy77 Exp $.</>
+   			</simplelist>
+ 			</footnote>
+ can be found on the &freetds; 
+@@ -617,7 +617,7 @@ url="http://www.madgoat.com">www.madgoat.com</ulink>).</para>
+ 		</sect3>
+ 		</sect2>
+ 		<sect2 id="osx"><title>OS X&reg;</title>
+-  			<para>As of this writing ($Date: 2010/02/07 21:55:49 $), the regular distribution compiles on OS X.  Releases prior to 0.63 either did not compile or required patching.  </para>
++  			<para>As of this writing ($Date: 2010/09/16 07:44:33 $), the regular distribution compiles on OS X.  Releases prior to 0.63 either did not compile or required patching.  </para>
+ 
+ 		<sect3 id="OSX.Build.Update">
+ 			<title>Alternative build procedure</title>
+@@ -1043,6 +1043,12 @@ As of 0.62 FreeTDS uses iconv to convert all character data, so there's no need
+ 	<entry>off</entry>
+ 	<entry>Specify if encryption is desidered. Supported for Microsoft servers. <symbol>off</> disables encryption (only if needed); <symbol>request</> means use if available; <symbol>required</> means create and allow encrypted connections only.</entry>
+ 	</row>
++	<row>
++	<entry>enable gssapi delegation</entry>
++	<entry>on/off</entry>
++	<entry>off</entry>
++	<entry>Enable delegation flag using Kerberos.</entry>
++	</row>
+ </tbody>
+ </tgroup>
+ </table>
+
+commit c8c8c374592dcd99334ce0c5d99a0ce3250ab27e
+Author: freddy77 <freddy77>
+Date:   Thu Sep 16 08:15:06 2010 +0000
+
+    remove depracate file
+
+diff --git a/win32/FreeTDSW.def b/win32/FreeTDSW.def
+deleted file mode 100644
+index 43bca48..0000000
+--- a/win32/FreeTDSW.def
++++ /dev/null
+@@ -1,114 +0,0 @@
+-EXPORTS
+-	SQLAllocConnect
+-	SQLAllocEnv
+-	SQLAllocHandle
+-	SQLAllocStmt
+-	SQLBindCol
+-	SQLBindParam
+-	SQLBindParameter
+-;	SQLBrowseConnect
+-	SQLCancel
+-	SQLCloseCursor
+-	SQLColAttribute
+-	SQLColAttributes
+-	SQLColumnPrivileges
+-	SQLColumns
+-	SQLConnect
+-	SQLCopyDesc
+-	SQLDescribeCol
+-;	SQLDescribeParam
+-	SQLDisconnect
+-	SQLDriverConnect
+-	SQLEndTran
+-	SQLError
+-	SQLExecDirect
+-	SQLExecute
+-	SQLExtendedFetch
+-	SQLFetch
+-	SQLFetchScroll
+-	SQLForeignKeys
+-	SQLFreeConnect
+-	SQLFreeEnv
+-	SQLFreeHandle
+-	SQLFreeStmt
+-	SQLGetConnectAttr
+-	SQLGetConnectOption
+-	SQLGetCursorName
+-	SQLGetData
+-	SQLGetDescField
+-	SQLGetDescRec
+-	SQLGetDiagField
+-	SQLGetDiagRec
+-	SQLGetEnvAttr
+-	SQLGetFunctions
+-	SQLGetInfo
+-	SQLGetStmtAttr
+-	SQLGetStmtOption
+-	SQLGetTypeInfo
+-	SQLMoreResults
+-	SQLNativeSql
+-	SQLNumParams
+-	SQLNumResultCols
+-	SQLParamData
+-	SQLParamOptions
+-	SQLPrepare
+-	SQLPrimaryKeys
+-	SQLProcedureColumns
+-	SQLProcedures
+-	SQLPutData
+-	SQLRowCount
+-	SQLSetConnectAttr
+-	SQLSetConnectOption
+-	SQLSetCursorName
+-	SQLSetDescField
+-	SQLSetDescRec
+-	SQLSetEnvAttr
+-	SQLSetParam
+-	SQLSetPos
+-	SQLSetScrollOptions
+-	SQLSetStmtAttr
+-	SQLSetStmtOption
+-	SQLSpecialColumns
+-	SQLStatistics
+-	SQLTablePrivileges
+-	SQLTables
+-	SQLTransact
+-	ConfigDSN
+-	ConfigDriver
+-	ConfigTranslator
+-	DllRegisterServer
+-	DllUnregisterServer
+-	SQLColAttributeW
+-	SQLColumnPrivilegesW
+-	SQLColumnsW
+-	SQLConnectW
+-	SQLDescribeColW
+-	SQLDriverConnectW
+-	SQLErrorW
+-	SQLExecDirectW
+-	SQLForeignKeysW
+-	SQLGetConnectAttrW
+-	SQLGetConnectOptionW
+-	SQLGetCursorNameW
+-	SQLGetDescFieldW
+-	SQLGetDescRecW
+-	SQLGetDiagFieldW
+-	SQLGetDiagRecW
+-	SQLGetInfoW
+-	SQLGetTypeInfoW = SQLGetTypeInfo
+-	SQLGetStmtAttrW
+-	SQLNativeSqlW
+-	SQLPrepareW
+-	SQLPrimaryKeysW
+-	SQLProcedureColumnsW
+-	SQLProceduresW
+-	SQLSetConnectAttrW
+-	SQLSetConnectOptionW
+-	SQLSetCursorNameW
+-	SQLSetDescFieldW
+-	SQLSetStmtAttrW
+-	SQLSpecialColumnsW
+-	SQLStatisticsW
+-	SQLTablePrivilegesW
+-	SQLTablesW
+-
+
+commit 5039f55c14a47535aa5007d59dee203f7b0db1ca
+Author: freddy77 <freddy77>
+Date:   Thu Sep 16 11:10:01 2010 +0000
+
+    add project and definition file for dblib dll (patch from LacaK)
+
+diff --git a/ChangeLog b/ChangeLog
+index ad3094a..cab0a7f 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++Thu Sep 16 13:09:29 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
++	* win32/Makefile.am win32/dblib.def win32/msvc6/FreeTDS.dsw:
++	* win32/msvc6/Makefile.am win32/msvc6/dblib_dll.dsp:
++	- add project and definition file for dblib dll (patch from LacaK)
++
+ Thu Sep 16 09:44:12 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
+ 	* doc/userguide.sgml:
+ 	- add documentation for "enable gssapi delegation" option
+@@ -2884,4 +2889,4 @@ Wed Jan  9 19:54:43 EST 2008	JK Lowden <jklowden@freetds.org>
+ 	* ChangeLog-0.82 added because of release
+ 	
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3125 2010/09/16 07:44:33 freddy77 Exp $
++$Id: ChangeLog,v 1.3126 2010/09/16 11:10:01 freddy77 Exp $
+diff --git a/win32/Makefile.am b/win32/Makefile.am
+index 3febb6c..4c57bb7 100644
+--- a/win32/Makefile.am
++++ b/win32/Makefile.am
+@@ -5,7 +5,8 @@ EXTRA_DIST      = config.h FreeTDS.def FreeTDS_w.def initnet.c \
+ 		setup.rc resource.h \
+ 		version.rc version.rc.in \
+ 		freetds.nsh freetds.nsh.in \
+-		installfreetds.bat freetds.nsi
++		installfreetds.bat freetds.nsi \
++		dblib.def
+ 
+ CLEANFILES = setup.res
+ 
+diff --git a/win32/dblib.def b/win32/dblib.def
+new file mode 100644
+index 0000000..a06feac
+--- /dev/null
++++ b/win32/dblib.def
+@@ -0,0 +1,74 @@
++EXPORTS
++	dbbind
++	dbcancel
++	dbcanquery
++	dbclose
++	dbclrbuf
++	dbcmd
++	dbcmdrow
++	dbtablecolinfo
++	dbcolinfo
++	dbcollen
++	dbcolname
++	dbcolsource
++	dbcoltype
++	dbcoltypeinfo
++	dbcolutype
++	dbconvert
++	dbcount
++	dbcurcmd
++	dbcurrow
++	dbdata
++	dbdatecmp
++	dbdatecrack
++	dbdatlen
++	dbdead
++	dberrhandle
++	dbexit
++	dbfcmd
++	dbfirstrow
++	dbfreebuf
++	dbinit
++	dbisavail
++	dbiscount
++	dbisopt
++	dblastrow
++	dblogin
++	dbloginfree
++	dbmorecmds
++	dbmoretext
++	dbmsghandle
++	dbname
++	dbnextrow
++	dbnullbind
++	dbnumalts
++	dbnumcols
++	dbnumcompute
++	dbnumrets
++	tdsdbopen
++	dbopen
++	dbprtype
++	dbresults
++	dbrows
++	dbrowtype
++
++	dbsetlname
++	dbsetlversion
++	dbsetlogintime
++	dbsetopt
++	dbsetrow
++	dbsettime
++	dbsetuserdata
++	dbsetversion
++	dbservcharset
++
++	dbsqlexec
++	dbsqlok
++	dbsqlsend
++
++	dbstrlen
++	dbtds
++	dbvarylen
++
++	dbuse
++	dbwillconvert
+diff --git a/win32/msvc6/FreeTDS.dsw b/win32/msvc6/FreeTDS.dsw
+index db86aef..c72be60 100644
+--- a/win32/msvc6/FreeTDS.dsw
++++ b/win32/msvc6/FreeTDS.dsw
+@@ -33,6 +33,21 @@ Package=<4>
+ 
+ ###############################################################################
+ 
++Project: "dblib_dll"=".\dblib_dll.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name libTDS
++    End Project Dependency
++}}}
++
++###############################################################################
++
+ Project: "libTDS"=".\libTDS.dsp" - Package Owner=<4>
+ 
+ Package=<5>
+diff --git a/win32/msvc6/Makefile.am b/win32/msvc6/Makefile.am
+index 39aefda..cd94d30 100644
+--- a/win32/msvc6/Makefile.am
++++ b/win32/msvc6/Makefile.am
+@@ -1,3 +1,3 @@
+ EXTRA_DIST	= FreeTDS.dsp FreeTDS.dsw iconv_replacement.c \
+-		libTDS.dsp dblib.dsp libct.dsp
++		libTDS.dsp dblib.dsp dblib_dll.dsp libct.dsp
+ 
+diff --git a/win32/msvc6/dblib_dll.dsp b/win32/msvc6/dblib_dll.dsp
+new file mode 100644
+index 0000000..d1801f3
+--- /dev/null
++++ b/win32/msvc6/dblib_dll.dsp
+@@ -0,0 +1,128 @@
++# Microsoft Developer Studio Project File - Name="dblib_dll" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
++
++CFG=dblib_dll - Win32 Release
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "dblib.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "dblib.mak" CFG="dblib_dll - Win32 Release"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "dblib_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
++!MESSAGE "dblib_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++# PROP Scc_ProjName ""
++# PROP Scc_LocalPath ""
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "dblib_dll - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir "dbdll_Release"
++# PROP BASE Intermediate_Dir "dbdll_Release"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "dbdll_Release"
++# PROP Intermediate_Dir "dbdll_Release"
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
++# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "../../include" /I "../../src" /D "HAVE_CONFIG_H" /D "UNIXODBC" /D "_FREETDS_LIBRARY_SOURCE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FREETDS_EXPORTS" /D "HAVE_SQLGETPRIVATEPROFILESTRING" /FR /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib /nologo /dll /machine:I386
++# ADD LINK32 ws2_32.lib /nologo /dll /machine:I386
++
++!ELSEIF  "$(CFG)" == "dblib_dll - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir "dbdll_Debug"
++# PROP BASE Intermediate_Dir "dbdll_Debug"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "dbdll_Debug"
++# PROP Intermediate_Dir "dbdll_Debug"
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /I "../../include" /D "HAVE_CONFIG_H" /D "UNIXODBC" /D "_FREETDS_LIBRARY_SOURCE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FREETDS_EXPORTS" /D "HAVE_SQLGETPRIVATEPROFILESTRING" /FR /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib /nologo /dll /machine:I386
++# ADD LINK32 ws2_32.lib /nologo /dll /machine:I386
++
++!ENDIF 
++
++# Begin Target
++
++# Name "dblib_dll - Win32 Release"
++# Name "dblib_dll - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
++# Begin Source File
++
++SOURCE=..\..\src\dblib\dblib.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\src\dblib\dbopen.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\src\dblib\dbutil.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\src\dblib\rpc.c
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl"
++# Begin Source File
++
++SOURCE=..\..\src\dblib\error_table.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\include\sybdb.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\include\syberror.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\..\include\sybfront.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\dblib.def
++# End Source File
++# End Group
++# End Target
++# End Project
+
+commit 77e7c6e9f3bbfe0689e0f9ef584e51404e8aacfe
+Author: freddy77 <freddy77>
+Date:   Thu Sep 16 11:12:08 2010 +0000
+
+    init mutex fixes
+
+diff --git a/ChangeLog b/ChangeLog
+index cab0a7f..512adb0 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++Thu Sep 16 13:11:46 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
++	* include/tdsthread.h: init mutex fixes
++
+ Thu Sep 16 13:09:29 CEST 2010    Frediano Ziglio <freddy77_A_gmail_D_com>
+ 	* win32/Makefile.am win32/dblib.def win32/msvc6/FreeTDS.dsw:
+ 	* win32/msvc6/Makefile.am win32/msvc6/dblib_dll.dsp:
+@@ -2889,4 +2892,4 @@ Wed Jan  9 19:54:43 EST 2008	JK Lowden <jklowden@freetds.org>
+ 	* ChangeLog-0.82 added because of release
+ 	
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3126 2010/09/16 11:10:01 freddy77 Exp $
++$Id: ChangeLog,v 1.3127 2010/09/16 11:12:08 freddy77 Exp $
+diff --git a/include/tdsthread.h b/include/tdsthread.h
+index 9b24677..bc3b903 100644
+--- a/include/tdsthread.h
++++ b/include/tdsthread.h
+@@ -22,7 +22,7 @@
+ #ifndef TDSTHREAD_H
+ #define TDSTHREAD_H 1
+ 
+-/* $Id: tdsthread.h,v 1.8 2010/07/31 11:20:35 freddy77 Exp $ */
++/* $Id: tdsthread.h,v 1.9 2010/09/16 11:12:08 freddy77 Exp $ */
+ 
+ #undef TDS_HAVE_MUTEX
+ 
+@@ -34,7 +34,7 @@
+ #define TDS_MUTEX_LOCK(mtx) pthread_mutex_lock(mtx)
+ #define TDS_MUTEX_UNLOCK(mtx) pthread_mutex_unlock(mtx)
+ #define TDS_MUTEX_DECLARE(name) pthread_mutex_t name
+-#define TDS_MUTEX_INIT(mtx) do { *(mtx) = PTHREAD_MUTEX_INITIALIZER; } while(0)
++#define TDS_MUTEX_INIT(mtx) pthread_mutex_init(mtx, NULL)
+ #define TDS_MUTEX_FREE(mtx) pthread_mutex_destroy(mtx)
+ 
+ #define TDS_HAVE_MUTEX 1
+@@ -50,6 +50,12 @@ typedef struct tds_win_mutex_t_ {
+ } tds_win_mutex_t;
+ 
+ void tds_win_mutex_lock(tds_win_mutex_t *mutex);
++static inline int tds_win_mutex_init(tds_win_mutex_t *mtx)
++{
++	mtx->lock = NULL;
++	mtx->done = 0;
++	return 0;
++}
+ /* void tds_win_mutex_unlock(tds_win_mutex_t *mutex); */
+ 
+ #define TDS_MUTEX_DEFINE(name) tds_win_mutex_t name = { NULL, 0 }
+@@ -57,7 +63,7 @@ void tds_win_mutex_lock(tds_win_mutex_t *mutex);
+ 	do { if ((mtx)->done) EnterCriticalSection(&(mtx)->crit); else tds_win_mutex_lock(mtx); } while(0)
+ #define TDS_MUTEX_UNLOCK(mtx) LeaveCriticalSection(&(mtx)->crit)
+ #define TDS_MUTEX_DECLARE(name) tds_win_mutex_t name
+-#define TDS_MUTEX_INIT(mtx) do { (mtx)->lock = NULL; (mtx)->done = 0; } while(0)
++#define TDS_MUTEX_INIT(mtx) tds_win_mutex_init(mtx)
+ #define TDS_MUTEX_FREE(mtx) do { if ((mtx)->done) { DeleteCriticalSection(&(mtx)->crit); (mtx)->done = 0; } } while(0)
+ 
+ #define TDS_HAVE_MUTEX 1