From: Geert U. <ge...@li...> - 2003-10-02 14:28:51
|
On Thu, 2 Oct 2003, Jan Hudec wrote: > On Thu, Oct 02, 2003 at 12:03:10 +0200, Geert Uytterhoeven wrote: > > Hence _your_ simple application doesn't need libpthread. > > Hence NEITHER OF GTK, GDK, GLIB, GMODULE, GOBJECT, PANGO, ATK, X11 NEED > libpthread! > > > | gcc -Wl,-T,arch/um/uml.lds.s -static -Wl,--wrap,malloc -Wl,--wrap,free -Wl, --wrap,calloc -o linux arch/um/main.o vmlinux -L/usr/lib -lutil -L/usr/X11R6/li b -lgtk -lgdk -lX11 -lXi -lXext -lglib -lgmodule -ldl -lm -lgthread > > However if you link with gthread, you need pthread. > So: a) Please don't blame it on X11. What about this: | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x74c): In function `_XEventsQueued': | : undefined reference to `pthread_equal' | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x766): In function `_XEventsQueued': | : undefined reference to `pthread_equal' | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x781): In function `_XEventsQueued': | : undefined reference to `pthread_equal' | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x79a): In function `_XEventsQueued': | : undefined reference to `pthread_equal' | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x7b7): In function `_XEventsQueued': | : undefined reference to `pthread_equal' | /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xafc): more undefined references to `pthread_equal' follow Some investigation shows that libX11 needs pthread_equal() when linked statically, while it doesn't need it when linked dynamically. > b) Don't link against gthread unless you need them. > b.1) If you only call Gtk stuff in one thread, you don't need them. > b.2) If you call Gtk stuff from more than one thread, you can still > provide gthread library with custom locking and get rid of > pthread. I tried that, providing my own implementation for pthread_equal(). However, it hangs during gtk_init(). Since this doesn't happen within my stand-alone GTK test app, it must be some interaction between UML and GTK... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li... In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |