Am Wed, 19 Oct 2011 15:00:23 +0530
schrieb Nilesh Govindarajan <cont...@nileshgr.com>:

> This is what I get when I try to install networkmanager-9999 which is
> required by gnome-3.2.0
> [SNIP]
> -pthread -pthread
> -Wl,--as-needed ../marshallers/.libs/libmarshallers.a 
> ./logging/.libs/libnm-logging.a ./dns-manager/.libs/libdns-manager.a 
> ./vpn-manager/.libs/libvpn-manager.a ./dhcp-manager/.libs/libdhcp-manager.a
> ./ip6-manager/.libs/libip6-manager.a
> ./supplicant-manager/.libs/libsupplicant-manager.a
> ./dnsmasq-manager/.libs/libdnsmasq-manager.a
> ./ppp-manager/.libs/libppp-manager.a
> ./modem-manager/.libs/libmodem-manager.a
> ./bluez-manager/.libs/libbluez-manager.a ./settings/.libs/libsettings.a
> /media/500GB/gentoo_portage/tmp/portage/net-misc/networkmanager-9999/work/networkmanager-9999/libnm-util/.libs/libnm-util.so
> ./backends/.libs/libnmbackend.a ../libnm-util/.libs/libnm-util.so
> -luuid -lssl3 -lsmime3 -lnssutil3 -lnss3 -lplds4 -lplc4 -lnspr4
> -ldbus-glib-1 -ldbus-1 -lpthread /usr/lib64/libgudev-1.0.so
> -L/usr/lib64 /usr/lib64/libudev.so -lgthread-2.0 -lnl
> -lpolkit-gobject-1 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lrt
> -lglib-2.0 -lm -ldl -pthread NetworkManager-main.o: In function
> `main': main.c:(.text+0xa63): undefined reference to
> `g_thread_supported' collect2: ld returned 1 exit status
> make[4]: *** [NetworkManager] Error 1
> make[4]: Leaving directory
> `/media/500GB/gentoo_portage/tmp/portage/net-misc/networkmanager-9999/work/networkmanager-9999/src'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory
> `/media/500GB/gentoo_portage/tmp/portage/net-misc/networkmanager-9999/work/networkmanager-9999/src'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory
> `/media/500GB/gentoo_portage/tmp/portage/net-misc/networkmanager-9999/work/networkmanager-9999/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> `/media/500GB/gentoo_portage/tmp/portage/net-misc/networkmanager-9999/work/networkmanager-9999'
> make: *** [all] Error 2
> 
> 
> The error is g_thread_supported is an undefined reference. This seems
> to be related to glib. 

what is your version of glib? in the version i have installed
(dev-libs/glib-2.28.8) it is a macro in gthread:

# grep g_thread_supported /usr/include/glib-2.0/glib/gthread.h
 * g_thread_supported macro but provided for language bindings.
    (g_thread_supported () ? G_THREAD_UF (op, arg) : (fail))
    (g_thread_supported () ?
                                                \ (g_thread_supported
() ? ((void(*)(GCond*, GMutex*, gulong, gchar*))\ (g_thread_supported
() ?                                            \ #define
g_thread_supported()     1 #define g_thread_supported()
(g_threads_got_initialized)

an a macro is not a function you can link to compiled into the library:

# nm /usr/lib64/libgthread-2.0.a | grep g_thread_supported

that would explain why linking against it doesn't work.

maybe that changed in newer versions of glib?

> Anybody has a solution? I tried masking
> networkmanager, but emerge won't allow me to do that when I try to
> install gnome-base/gnome-3.2.0 (layman overlay)
> 

Reply via email to