scheduler/pthread.c breakage (and fix)

Gerald Pfeifer gerald at pfeifer.com
Sat Nov 8 05:09:17 CST 2003


[ wine-devel -> wine-patches ]

On Thu, 6 Nov 2003, Gerald Pfeifer wrote:
> Revision 1.47 of scheduler/pthread.c broke compilation on FreeBSD
> -CURRENT:
>
>   ../scheduler/pthread.c: In function `wine_pthread_create_thread':
>   ../scheduler/pthread.c:265: error: `SYS_rfork' undeclared...

I noticed that your (Alexandre's) follow-up patches fixed this, thanks!

Unfortunately, FreeBSD is still broken without the patch below, which I
successfully tested on SUSE Linux 9.0, FreeBSD 4.8, and FreeBSD 5.1.

Gerald

ChangeLog:
Add appropriate pthread flags for FreeBSD.
Index: loader/Makefile.in
===================================================================
RCS file: /home/wine/wine/loader/Makefile.in,v
retrieving revision 1.11
diff -u -3 -p -r1.11 Makefile.in
--- Makefile.in	6 Nov 2003 23:05:41 -0000	1.11
+++ Makefile.in	8 Nov 2003 09:49:14 -0000
@@ -28,7 +28,12 @@ wine-kthread: $(KTHREAD_OBJS) Makefile.i
 	$(CC) -o $@ $(LDEXECFLAGS) $(KTHREAD_OBJS) $(LIBWINE) $(LIBPORT) $(EXTRALIBS) $(LDFLAGS)

 wine-pthread: $(PTHREAD_OBJS) Makefile.in
-	$(CC) -o $@ $(LDEXECFLAGS) $(PTHREAD_OBJS) $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS)
+	if [ `uname -s` = "FreeBSD" ] && [ `uname -r | cut -c1` = 4 ]; then \
+          l=-pthread; \
+	elif [ `uname -s` = "FreeBSD" ]; then \
+          l=-lc_r; \
+        fi; \
+	$(CC) -o $@ $(LDEXECFLAGS) $(PTHREAD_OBJS) $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $$l

 $(MODULE): $(MAIN_BINARY)
 	$(RM) $(MODULE) && $(LN_S) $(MAIN_BINARY) $(MODULE)



More information about the wine-patches mailing list