[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#210347: libc6: pthread_cond_timedwait.dpatch breaks Wine



Package: libc6
Version: 2.3.2-6
Severity: important

pthread_cond_timedwait.dpatch contains this chunk

--- libc/linuxthreads/sysdeps/pthread/pthread-functions.h.jj   2003-04-20 03:37:06.000000000 -0400
+++ libc/linuxthreads/sysdeps/pthread/pthread-functions.h      2003-09-01 05:35:34.000000000 -0400
@@ -54,6 +54,8 @@ struct pthread_functions
                                 const pthread_condattr_t *);
   int (*ptr___pthread_cond_signal) (pthread_cond_t *);
   int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
+  int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
+                                     const struct timespec *);
   int (*ptr_pthread_equal) (pthread_t, pthread_t);
   void (*ptr___pthread_exit) (void *);
   int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);

which inserts a new member in the middle of a structure, instead of at the
end. Non-NPTL builds of Wine actually calls __libc_pthread_init() with its
own version of this "struct pthread_functions", in order to force libc to
use Win32-compatible synchronization primitives, and this kind of change
breaks Wine. Moving the new field to the end of the structure ought to make
it easier to keep this Wine-compatible until you add NPTL support
(Wine can use native pthreads only with NPTL, not with LinuxThreads).

-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux renegade 2.4.20-k6 #1 Mon Jan 13 23:49:14 EST 2003 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages libc6 depends on:
ii  libdb1-compat                 2.1.3-7    The Berkeley database routines [gl

-- no debconf information




Reply to: