Xfce Forum

Sub domains
 

You are not logged in.

#1 2007-05-01 09:29:46

alpha
Guest

g_thread_init() not referenced

I try to compile xfburn on Fedora Core 6. However, I get this error about g_thread_init. I figured out that this is related to GTK right?
My GTK version: 2.10.11

xfburn-xfburn-main.o: In function `main':
/root/xfburn/xfburn/xfburn-main.c:66: undefined reference to `g_thread_init'
collect2: ld returned 1 exit status
make[2]: *** [xfburn] Fout 1
make[2]: Map '/root/xfburn/xfburn' wordt verlaten
make[1]: *** [all-recursive] Fout 1
make[1]: Map '/root/xfburn' wordt verlaten
make: *** [all] Fout 2

Can anyone help ?

#2 2007-05-01 11:20:28

Nick
Dev
From: ~
Registered: 2005-02-17
Posts: 1,144
Website

Re: g_thread_init() not referenced

It's related to glib's gthread library. This library is not explicitly added to the CFLAGS and LDADD flags of xfburn and so it fails to link. You can try adding the following lines in xfburn/Makefile.am and configure.in.in:

[code=xfburn/Makefile.am]
xfburn_CFLAGS =                                \
+    $(GTHREAD_CFLAGS)                        \
    $(LIBBURN_CFLAGS)                        \
    $(LIBISOFS_CFLAGS)                        \
    $(LIBXFCEGUI4_CFLAGS)                        \
    $(EXO_CFLAGS)                            \
    $(THUNAR_VFS_CFLAGS)

xfburn_LDADD =                                \
+    $(GTHREAD_LIBS)                            \
    $(LIBBURN_LIBS)                            \
    $(LIBISOFS_LIBS)                        \
    $(LIBXFCEGUI4_LIBS)                        \
    $(EXO_LIBS)                            \
    $(THUNAR_VFS_LIBS)
[/code]

[code=configure.in.in]
XDT_CHECK_PACKAGE([LIBBURN], [libburn-1], [0.3.0])
XDT_CHECK_PACKAGE([LIBISOFS], [libisofs-1], [0.2.3])
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
+XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])
XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0])
XDT_CHECK_PACKAGE([EXO], [exo-0.3], [0.3.0])
[/code]

You need to run autogen.sh afterwards to generate new build files. If it works, file a bug report in the Xfce Bugzilla with the information above.

Offline

#3 2007-05-01 12:24:55

alpha
Guest

Re: g_thread_init() not referenced

Thanks for the suggestion, but it fails with the same error again. Notice, that I was not able to find the rules you wanted to change in Makefile.am. So I copied all of those directly into Makefile.am (without the '+' of course). I'm thinking that you may be right and that I'm missing files  :? . I already checked yum and gtk2-devel and glib2-devel are installed. Here is the relevant output of .configure:

configure:21621: checking GTHREAD_CFLAGS
configure:21624: result: -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
configure:21627: checking GTHREAD_LIBS
configure:21630: result: -pthread -L/lib -lgthread-2.0 -lrt -lglib-2.0

So I went into those dirs and they all seemed to contain files:

tree -f /usr/include/glib-2.0
/usr/include/glib-2.0
|-- /usr/include/glib-2.0/glib
|   |-- /usr/include/glib-2.0/glib/galloca.h
|   |-- /usr/include/glib-2.0/glib/garray.h
|   |-- /usr/include/glib-2.0/glib/gasyncqueue.h
|   |-- /usr/include/glib-2.0/glib/gatomic.h
|   |-- /usr/include/glib-2.0/glib/gbacktrace.h
|   |-- /usr/include/glib-2.0/glib/gbase64.h
|   |-- /usr/include/glib-2.0/glib/gbookmarkfile.h
|   |-- /usr/include/glib-2.0/glib/gcache.h
|   |-- /usr/include/glib-2.0/glib/gcompletion.h
|   |-- /usr/include/glib-2.0/glib/gconvert.h
|   |-- /usr/include/glib-2.0/glib/gdataset.h
|   |-- /usr/include/glib-2.0/glib/gdate.h
|   |-- /usr/include/glib-2.0/glib/gdir.h
|   |-- /usr/include/glib-2.0/glib/gerror.h
|   |-- /usr/include/glib-2.0/glib/gfileutils.h
|   |-- /usr/include/glib-2.0/glib/ghash.h
|   |-- /usr/include/glib-2.0/glib/ghook.h
|   |-- /usr/include/glib-2.0/glib/gi18n-lib.h
|   |-- /usr/include/glib-2.0/glib/gi18n.h
|   |-- /usr/include/glib-2.0/glib/giochannel.h
|   |-- /usr/include/glib-2.0/glib/gkeyfile.h
|   |-- /usr/include/glib-2.0/glib/glist.h
|   |-- /usr/include/glib-2.0/glib/gmacros.h
|   |-- /usr/include/glib-2.0/glib/gmain.h
|   |-- /usr/include/glib-2.0/glib/gmappedfile.h
|   |-- /usr/include/glib-2.0/glib/gmarkup.h
|   |-- /usr/include/glib-2.0/glib/gmem.h
|   |-- /usr/include/glib-2.0/glib/gmessages.h
|   |-- /usr/include/glib-2.0/glib/gnode.h
|   |-- /usr/include/glib-2.0/glib/goption.h
|   |-- /usr/include/glib-2.0/glib/gpattern.h
|   |-- /usr/include/glib-2.0/glib/gprimes.h
|   |-- /usr/include/glib-2.0/glib/gprintf.h
|   |-- /usr/include/glib-2.0/glib/gqsort.h
|   |-- /usr/include/glib-2.0/glib/gquark.h
|   |-- /usr/include/glib-2.0/glib/gqueue.h
|   |-- /usr/include/glib-2.0/glib/grand.h
|   |-- /usr/include/glib-2.0/glib/grel.h
|   |-- /usr/include/glib-2.0/glib/gscanner.h
|   |-- /usr/include/glib-2.0/glib/gshell.h
|   |-- /usr/include/glib-2.0/glib/gslice.h
|   |-- /usr/include/glib-2.0/glib/gslist.h
|   |-- /usr/include/glib-2.0/glib/gspawn.h
|   |-- /usr/include/glib-2.0/glib/gstdio.h
|   |-- /usr/include/glib-2.0/glib/gstrfuncs.h
|   |-- /usr/include/glib-2.0/glib/gstring.h
|   |-- /usr/include/glib-2.0/glib/gthread.h
|   |-- /usr/include/glib-2.0/glib/gthreadpool.h
|   |-- /usr/include/glib-2.0/glib/gtimer.h
|   |-- /usr/include/glib-2.0/glib/gtree.h
|   |-- /usr/include/glib-2.0/glib/gtypes.h
|   |-- /usr/include/glib-2.0/glib/gunicode.h
|   |-- /usr/include/glib-2.0/glib/gutils.h
|   `-- /usr/include/glib-2.0/glib/gwin32.h
|-- /usr/include/glib-2.0/glib-object.h
|-- /usr/include/glib-2.0/glib.h
|-- /usr/include/glib-2.0/gmodule.h
`-- /usr/include/glib-2.0/gobject
    |-- /usr/include/glib-2.0/gobject/gboxed.h
    |-- /usr/include/glib-2.0/gobject/gclosure.h
    |-- /usr/include/glib-2.0/gobject/genums.h
    |-- /usr/include/glib-2.0/gobject/gmarshal.h
    |-- /usr/include/glib-2.0/gobject/gobject.h
    |-- /usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
    |-- /usr/include/glib-2.0/gobject/gparam.h
    |-- /usr/include/glib-2.0/gobject/gparamspecs.h
    |-- /usr/include/glib-2.0/gobject/gsignal.h
    |-- /usr/include/glib-2.0/gobject/gsourceclosure.h
    |-- /usr/include/glib-2.0/gobject/gtype.h
    |-- /usr/include/glib-2.0/gobject/gtypemodule.h
    |-- /usr/include/glib-2.0/gobject/gtypeplugin.h
    |-- /usr/include/glib-2.0/gobject/gvalue.h
    |-- /usr/include/glib-2.0/gobject/gvaluearray.h
    |-- /usr/include/glib-2.0/gobject/gvaluecollector.h
    `-- /usr/include/glib-2.0/gobject/gvaluetypes.h

2 directories, 74 files
[root@Alpha ~]# tree -f /usr/lib/glib-2.0/include
/usr/lib/glib-2.0/include
`-- /usr/lib/glib-2.0/include/glibconfig.h

0 directories, 1 file

(I'm not gonna tree /lib  ;D )

Do you have any more suggestions please? (btw, I'm using the latest SVN version)

#4 2007-05-01 12:50:57

Nick
Dev
From: ~
Registered: 2005-02-17
Posts: 1,144
Website

Re: g_thread_init() not referenced

Well I'm sure those lines are in Makefile.am (in the xfburn directory with the *.c and *.h files, not the Makefile.am in the root folder).

Offline

#5 2007-05-01 14:19:13

alpha
Guest

Re: g_thread_init() not referenced

It worked  ;D . Dude, you are a genious  yikes thanks. I'll fill a bug report.

#6 2007-05-01 17:00:41

pollux
Member
From: Namur - Belgium
Registered: 2004-01-21
Posts: 2
Website

Re: g_thread_init() not referenced

FYI i fixed that with revision 25663

Offline

Board footer

Powered by FluxBB