[Sumover-dev] [svn commit] r4765 - in vic/branches/mpeg4: win32

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Wed Apr 7 14:26:23 BST 2010


Author: douglask
Date: Wed Apr  7 14:26:23 2010
New Revision: 4765

Modified:
   vic/branches/mpeg4/vic.2008.vcproj
   vic/branches/mpeg4/win32/win32.c

Log:
Extract from pthreads-win32 README:

Define PTW32_STATIC_LIB when building your application. Also, your
application must call a two non-portable routines to initialise some
state on startup and cleanup before exit. One other routine needs
to be called to cleanup after any Win32 threads have called POSIX API
routines. See README.NONPORTABLE or the html reference manual pages for
details on these routines:

BOOL pthread_win32_process_attach_np (void);
BOOL pthread_win32_process_detach_np (void);
BOOL pthread_win32_thread_attach_np (void); // Currently a no-op
BOOL pthread_win32_thread_detach_np (void);

Modified: vic/branches/mpeg4/vic.2008.vcproj
==============================================================================
--- vic/branches/mpeg4/vic.2008.vcproj	(original)
+++ vic/branches/mpeg4/vic.2008.vcproj	Wed Apr  7 14:26:23 2010
@@ -222,7 +222,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\;codec;render;rtp;net;win32;video;..\common\src;codec\tmndec;"codec\tmn-x";codec\jpeg;codec\p64;x264\include;ffmpeg\include;C:\Tcl\include\tcl8.5;C:\msys\1.0\local\include;C:\msys\local\include;c:\mingw\local\include;"$(DXSDK_DIR)\include""
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_IPv6;USE_ZVFS;USE_DDRAW;HAVE_SWSCALE;HAVE_STDLIB_H;SASR;ED_YBITS=4;SIGRET=void;SIGARGS=int;NLAYER=8;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32_WINNT=_WIN32_WINNT_WINXP"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;PTW32_STATIC_LIB;HAVE_IPv6;USE_ZVFS;USE_DDRAW;HAVE_SWSCALE;HAVE_STDLIB_H;SASR;ED_YBITS=4;SIGRET=void;SIGARGS=int;NLAYER=8;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32_WINNT=_WIN32_WINNT_WINXP"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="1"
@@ -241,7 +241,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.lib libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a"
+				AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.lib libavcodec.a libavutil.a libpostproc.a libswscale.a libx264.a libpthreadGC2.a libz.a"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="C:\Tcl\lib;ffmpeg\lib;x264\lib;&quot;$(DXSDK_DIR)\Lib\x86&quot;;C:\msys\1.0\lib;&quot;C:\mingw\lib\gcc\mingw32\4.2.1-sjlj&quot;;c:\mingw\local\lib;c:\mingw\local\bin;c:\mingw\lib;C:\msys\lib;&quot;$(SolutionDir)Debug&quot;;C:\msys\1.0\local\lib;C:\msys\local\lib;C:\msys\1.0\lib\gcc\mingw32\4.4.0;C:\msys\1.0\lib\gcc\mingw32\4.2.0;C:\msys\lib\gcc\mingw32\4.4.0;C:\msys\lib\gcc\mingw32\4.2.0"
 				IgnoreDefaultLibraryNames="MSVCRTD.lib"
@@ -309,7 +309,7 @@
 				Optimization="2"
 				EnableIntrinsicFunctions="true"
 				AdditionalIncludeDirectories=".\;codec;render;rtp;net;win32;video;..\common\src;codec\tmndec;&quot;codec\tmn-x&quot;;codec\jpeg;codec\p64;x264\include;ffmpeg\include;C:\Tcl\include\tcl8.5;C:\msys\1.0\local\include;C:\msys\local\include;&quot;$(DXSDK_DIR)\include&quot;"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_IPv6;USE_ZVFS;USE_DDRAW;HAVE_SWSCALE;HAVE_STDLIB_H;SASR;ED_YBITS=4;SIGRET=void;SIGARGS=int;NLAYER=8;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32_WINNT=_WIN32_WINNT_WINXP"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;PTW32_STATIC_LIB;HAVE_IPv6;USE_ZVFS;USE_DDRAW;HAVE_SWSCALE;HAVE_STDLIB_H;SASR;ED_YBITS=4;SIGRET=void;SIGARGS=int;NLAYER=8;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32_WINNT=_WIN32_WINNT_WINXP"
 				RuntimeLibrary="2"
 				EnableFunctionLevelLinking="true"
 				UsePrecompiledHeader="0"
@@ -327,7 +327,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.lib libavcodec.a libavutil.a libpostproc.a libswscale.a libpthread.a libx264.a libz.a"
+				AdditionalDependencies="tcl85.lib tk85.lib uclmm.lib ws2_32.lib comsuppwd.lib iphlpapi.lib vfw32.lib ddraw.lib dxguid.lib strmiids.lib quartz.lib libgcc.a libmingwex.lib libavcodec.a libavutil.a libpostproc.a libswscale.a libx264.a libpthreadGC2.a libz.a"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\Tcl\lib;x264\lib;ffmpeg\lib;&quot;$(DXSDK_DIR)\Lib\x86&quot;;C:\msys\1.0\lib;&quot;C:\mingw\lib\gcc\mingw32\4.2.1-sjlj&quot;;c:\mingw\local\lib;c:\mingw\local\bin;c:\mingw\lib;C:\msys\lib;&quot;$(SolutionDir)Release&quot;;C:\msys\1.0\local\lib;C:\msys\local\lib;C:\msys\1.0\lib\gcc\mingw32\4.4.0;C:\msys\1.0\lib\gcc\mingw32\4.2.0;C:\msys\lib\gcc\mingw32\4.4.0;C:\msys\lib\gcc\mingw32\4.2.0"
 				IgnoreDefaultLibraryNames="MSVCRTD.lib"

Modified: vic/branches/mpeg4/win32/win32.c
==============================================================================
--- vic/branches/mpeg4/win32/win32.c	(original)
+++ vic/branches/mpeg4/win32/win32.c	Wed Apr  7 14:26:23 2010
@@ -62,7 +62,7 @@
     
     switch (sysinfo.wProcessorArchitecture) {
     case PROCESSOR_ARCHITECTURE_INTEL:
-		(void)strcpy(ub->machine, "ix86");
+		(void)strcpy(ub->machine, "x86");
 		break;
     case PROCESSOR_ARCHITECTURE_MIPS :
 		(void)strcpy(ub->machine, "mips");
@@ -73,6 +73,11 @@
     case PROCESSOR_ARCHITECTURE_PPC:
 		(void)strcpy(ub->machine, "ppc");
 		break;
+#ifdef PROCESSOR_ARCHITECTURE_AMD64
+    case PROCESSOR_ARCHITECTURE_AMD64:
+		(void)strcpy(ub->machine, "x86-64");
+		break;
+#endif
     default:
 		(void)strcpy(ub->machine, "unknown");
 		break;
@@ -155,6 +160,14 @@
     return 0;
 }
 
+#ifdef PTW32_STATIC_LIB
+void detach_ptw32(void)
+{
+    pthread_win32_process_attach_np();
+    pthread_win32_thread_attach_np();
+}
+#endif
+
 extern void TkWinXInit(HINSTANCE hInstance);
 extern int main(int argc, const char *argv[]);
 
@@ -171,7 +184,14 @@
 {
     char *p;
     WSADATA WSAdata;
-	
+
+#ifdef PTW32_STATIC_LIB
+	/* Necessity when linking with pthreads-win32 static library */
+    pthread_win32_process_attach_np();
+    pthread_win32_thread_attach_np();
+    atexit(detach_ptw32);
+#endif
+
     /* XXX
 	* initialize our socket interface plus the tcl 7.5 socket
 	* interface (since they redefine some routines we call).



More information about the Sumover-dev mailing list