Dan Kegel wrote:
Seeing as nobody talked about this for a while, I decided to takeDavid Fraser wrote:Dan Kegel wrote:However, it's not clear to me that's required for developing winethreads-over-pthreads. People could probably get started on that with their current Linux, even though it's not 100% posix-compliant, and has odd quirks like using a special management thread, etc.Exactly. Who's going to start it?According to a recent post, a quick try at basing things on pthreads is at http://www.geocrawler.com/archives/3/9376/2001/12/50/7309863/ but I guess there's more to be done. So the question is, who's going to be the first to get a "new pthreads" Linux system up and running to verify the problem and try out that patch? (http://kt.zork.net/wine/wn20030131_155.html#2 has a nice summary of recent discussions, but searching google for wine pthreads yields a few interesting tidbits, too.) - Dan
this patch and integrate it into my CVS copy... I did and the relevant
files compile fine, with one warning
gcc -c -I. -I. -I../../include -I../../include -g -O2 -Wall -Wpointer-arith -mpreferred-stack-boundary=2 -gstabs+ -fPIC -D__WINESRC__ -D_NTSYSTEM_ -DBINDIR="\"/usr/local/bin\"" -DETCDIR="\"/usr/local/etc\"" -D_REENTRANT -o ../../scheduler/sysdeps.o ../../scheduler/sysdeps.c
../../scheduler/sysdeps.c: In function `SYSDEPS_SpawnThread':
../../scheduler/sysdeps.c:219: warning: passing arg 3 of `pthread_create' from incompatible pointer type
Not being an autoconf wizard I had to define USE_PTHREADS manually
in the files ... how could I add a --enable-pthreads switch?
When compiled, gave me the following error linking wine in miscemu:
gcc -o wine wine.spec.o main.o -L../dlls -lntdll.dll -L../library -lwine -L../unicode -lwine_unicode -lm
../dlls/libntdll.dll.so: undefined reference to `pthread_create'
../dlls/libntdll.dll.so: undefined reference to `pthread_attr_setstackaddr'
../dlls/libntdll.dll.so: undefined reference to `pthread_once'
../dlls/libntdll.dll.so: undefined reference to `pthread_attr_setstacksize'
../dlls/libntdll.dll.so: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make[1]: *** [wine] Error 1
If I tried to add libpthread, I got:
gcc -o wine wine.spec.o main.o -L../dlls -lntdll.dll -L../library -lwine -L../unicode -lwine_unicode -lm -lpthread
../dlls/libntdll.dll.so: the use of `pthread_attr_setstackaddr' is deprecated, use `pthread_attr_setstack'
so I replaced that, and it got rid of the warning...
Then everything links fine, but running gives an error because of an assert in library/port.c because the pthread
functions in scheduler/pthreads.c had been compiled out in the patch. I compiled them back in and wine just
hangs...
Hmmmm .... not very useful to anyone but I'd thought I'd let you know.
If anyone wants I can post the patch (to wine-patches?)
David