diff options
author | mycroft <mycroft@pkgsrc.org> | 2003-10-02 12:31:30 +0000 |
---|---|---|
committer | mycroft <mycroft@pkgsrc.org> | 2003-10-02 12:31:30 +0000 |
commit | 6e59d23cf459d59ddcfafd08336640f2aa92bc0a (patch) | |
tree | ddfc95ab22b46ef3e08cff44cf78484cea84389d /graphics | |
parent | 1995389b7f74be148a30887ff8cbdfc939959cde (diff) | |
download | pkgsrc-6e59d23cf459d59ddcfafd08336640f2aa92bc0a.tar.gz |
Fix mutex locking problems and some funkiness with %fs so that win32 codecs
work.
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/xine-lib/distinfo | 4 | ||||
-rw-r--r-- | graphics/xine-lib/patches/patch-al | 40 | ||||
-rw-r--r-- | graphics/xine-lib/patches/patch-am | 25 |
3 files changed, 68 insertions, 1 deletions
diff --git a/graphics/xine-lib/distinfo b/graphics/xine-lib/distinfo index da36c151eac..e7e894965f1 100644 --- a/graphics/xine-lib/distinfo +++ b/graphics/xine-lib/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.7 2003/10/02 10:11:49 mycroft Exp $ +$NetBSD: distinfo,v 1.8 2003/10/02 12:31:30 mycroft Exp $ SHA1 (xine-lib-1-rc0a.tar.gz) = ee41ba602179a9f02208a15e3dff36a1dfa00fac Size (xine-lib-1-rc0a.tar.gz) = 4211552 bytes @@ -12,3 +12,5 @@ SHA1 (patch-ah) = 3f9b23c4a7994259056b73209a9e194db759f06d SHA1 (patch-ai) = f71e3cb57bf30cbf9653a469c040b6e3f717ba97 SHA1 (patch-aj) = 54cf69b028d46327d46b5cc2a0ec457bd4a59b67 SHA1 (patch-ak) = 5e791e17755e0b7515d81f80790d529992e827d6 +SHA1 (patch-al) = 4e995a84efcb8ae17a803f8f1cc6118506be09b0 +SHA1 (patch-am) = 0441dcd9faf0c0e7f07c8d0fc7a61fcce435af76 diff --git a/graphics/xine-lib/patches/patch-al b/graphics/xine-lib/patches/patch-al new file mode 100644 index 00000000000..f628a3ba073 --- /dev/null +++ b/graphics/xine-lib/patches/patch-al @@ -0,0 +1,40 @@ +$NetBSD: patch-al,v 1.1 2003/10/02 12:31:30 mycroft Exp $ + +--- src/libw32dll/wine/win32.c.orig 2003-10-02 12:25:52.000000000 +0000 ++++ src/libw32dll/wine/win32.c 2003-10-02 12:21:50.000000000 +0000 +@@ -440,9 +442,8 @@ + + alccnt--; + +- if (last_alloc) +- pthread_mutex_unlock(&memmut); +- else ++ pthread_mutex_unlock(&memmut); ++ if (!last_alloc) + pthread_mutex_destroy(&memmut); + + //if (alccnt < 40000) printf("MY_RELEASE: %p\t%ld (%d)\n", header, header->size, alccnt); +@@ -1349,11 +1350,10 @@ + #endif + printf("wine/win32: Win32 Warning: Accessed uninitialized Critical Section (%p)!\n", c); + } +- if(cs->locked) ++ if(cs->locked++) + if(cs->id==pthread_self()) + return; + pthread_mutex_lock(&(cs->mutex)); +- cs->locked=1; + cs->id=pthread_self(); + return; + } +@@ -1371,8 +1371,8 @@ + printf("Win32 Warning: Leaving uninitialized Critical Section %p!!\n", c); + return; + } +- cs->locked=0; +- pthread_mutex_unlock(&(cs->mutex)); ++ if (!--cs->locked) ++ pthread_mutex_unlock(&(cs->mutex)); + return; + } + static void WINAPI expDeleteCriticalSection(CRITICAL_SECTION *c) diff --git a/graphics/xine-lib/patches/patch-am b/graphics/xine-lib/patches/patch-am new file mode 100644 index 00000000000..dbc665790cd --- /dev/null +++ b/graphics/xine-lib/patches/patch-am @@ -0,0 +1,25 @@ +$NetBSD: patch-am,v 1.1 2003/10/02 12:31:30 mycroft Exp $ + +--- src/libw32dll/wine/ldt_keeper.c.orig 2003-07-13 19:29:04.000000000 +0000 ++++ src/libw32dll/wine/ldt_keeper.c 2003-10-02 12:28:23.000000000 +0000 +@@ -147,18 +147,9 @@ + + void Check_FS_Segment(void) + { +- int fs; +- __asm__ __volatile__( +- "movw %%fs,%%ax; mov %%eax,%0" : "=r" (fs) :: "%eax" ++ __asm__ __volatile__( ++ "movl %0,%%eax; movw %%ax, %%fs" : : "i" (TEB_SEL) : "%eax" + ); +- fs = fs & 0xffff; +- +- if( fs != TEB_SEL ) { +- printf("ldt_keeper: FS segment is not set or has being lost!\n"); +- printf(" Please report this error to xine-devel@sourceforge.net\n"); +- printf(" Aborting....\n"); +- abort(); +- } + } + + #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) |