[XviD-devel] dshow gcc-3.3.1 patch

Reini Urban rurban at x-ray.at
Thu Aug 5 17:41:07 CEST 2004


I had to add one more tiny patch to dshow/Makefile to let actually 
xvid.ax compile:

add the --allow-multiple-definition linker flag, because
I get

   multiple definition of `_QACONTAINERFLAGS'
   CAbout.obj(.bss+0x0):CAbout.cpp: first defined here
 
/cygdrive/p/DX90SDK/Samples/C++/DirectShow/BaseClasses/strmbase.lib(ddmm.o)(.bss+0x0):ddmm.cpp: 
   multiple definition of `_QACONTAINERFLAGS'
   CAbout.obj(.bss+0x0):CAbout.cpp: first defined here

in about all strmbase.lib object files. (new stream.h in the dx90 summer 
2004 update ?)

attached is the accumulated patch.

I added the dshow filter also to my daily mingw builds at
http://xarch.tu-graz.ac.at/home/rurban/software/xvid/

Reini Urban schrieb:
> I needed the following patch to be able to compile the dx90 baseclass 
> library strmbase.lib
> 
> latest dx90 update: summer 2004 (dxsdk_sum2004.exe)
> latest cygwin gcc release 3.3.1
> 
> I guess the I64 suffix is gcc-3.4 or MSVC7 specific.
> MSVC6 also didn't want this.
-- 
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/

-------------- next part --------------
--- xvidcore/dshow/dxpatch/dx90sdk-update-gcc.patch.orig	2004-07-27 22:15:37.000000000 +0100
+++ xvidcore/dshow/dxpatch/dx90sdk-update-gcc.patch	2004-08-05 14:47:09.720239800 +0100
@@ -58,7 +58,7 @@
 +RANLIB=ranlib
 +
 +CXX=g++
-+CXXFLAGS=-O2 -fno-for-scope -mthreads
++CXXFLAGS=-O2 -fno-for-scope -mthreads -mno-cygwin
 +
 +all: $(LIB)
 +
@@ -154,7 +154,7 @@
 diff -burN /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/refclock.h ./Samples/C++/DirectShow/BaseClasses/refclock.h
 --- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/refclock.h	Mon Aug 18 16:03:32 2003
 +++ ./Samples/C++/DirectShow/BaseClasses/refclock.h	Tue Jul 27 20:42:25 2004
-@@ -14,7 +14,11 @@
+@@ -14,8 +14,12 @@
  
  const UINT RESOLUTION = 1;                      /* High resolution timer */
  const INT ADVISE_CACHE = 4;                     /* Default cache size */
@@ -166,6 +166,17 @@
  
  inline LONGLONG WINAPI ConvertToMilliseconds(const REFERENCE_TIME& RT)
  {
+--- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/refclock.h	Mon Aug 18 16:03:32 2003
++++ ./Samples/C++/DirectShow/BaseClasses/refclock.h	Tue Jul 27 20:42:25 2004
+@@ -168,2 +168,2 @@
+ protected:
+     CAMSchedule * const m_pSchedule;
+
+-    void Restart (IN REFERENCE_TIME rtMinTime = 0I64) ;
++    void Restart (IN REFERENCE_TIME rtMinTime = 0/*I64*/) ;
+ };
+
+ #endif
 diff -ur /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/streams.h.orig ./Samples/C++/DirectShow/BaseClasses/streams.h
 --- /c/DX90SDK-orig/Samples/C++/DirectShow/BaseClasses/streams.h      2004-07-27 23:04:18.000000000 +0200
 +++ ./Samples/C++/DirectShow/BaseClasses/streams.h   2004-07-27 23:03:57.000000000 +0200
--- xvidcore/dshow/Makefile~	2004-07-25 12:13:16.000000000 +0100
+++ xvidcore/dshow/Makefile	2004-08-05 16:13:49.557901000 +0100
@@ -109,14 +109,13 @@
 	@cp $(SRC_DIR)/xvid.ax.def $(BUILD_DIR)/xvid.ax.def
 	@cd $(BUILD_DIR) && \
 		$(CC) $(LDFLAGS) \
-			-mno-cygwin -shared -Wl,-dll,--out-implib,$@.a,--enable-stdcall-fixup \
+			-mno-cygwin -shared -Wl,-dll,--out-implib,$@.a,--enable-stdcall-fixup,--allow-multiple-definition \
 			-o $@ \
 			$(OBJECTS) xvid.ax.def \
 			-L$(DXTREE)/Lib -lstrmiids \
 			$(DXBASECLASSES)/strmbase.lib \
 			-luuid -lwinmm -lole32 -loleaut32 -lcomctl32 -lstdc++
 			
-
 clean:
 	@echo "  Cl: Object files and target lib"
 	@$(RM) $(BUILD_DIR)


More information about the XviD-devel mailing list