Bug 13484

Summary: FTBFS: missing LDFLAGS for src/check-compat/
Product: Telepathy Reporter: Diego Escalante Urrelo <diegoe>
Component: libtelepathyAssignee: Simon McVittie <smcv>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: blocker    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Diego Escalante Urrelo 2007-12-02 00:31:24 UTC
Honestly I don't know if this is the correct fix, but it allowed me to build:

diff -rN -u old-libtelepathy/src/check-compat/Makefile.am new-libtelepathy/src/check-compat/Makefile.am
--- old-libtelepathy/src/check-compat/Makefile.am       2007-12-02 03:28:56.000000000 -0500
+++ new-libtelepathy/src/check-compat/Makefile.am       2007-12-02 03:28:56.000000000 -0500
@@ -3,6 +3,8 @@
     $(TP_GLIB_CFLAGS) \
     $(WNO_DEPRECATED_DECLARATIONS)
 
+AM_LDFLAGS = $(TP_GLIB_LIBS)
+
 everything_CFLAGS = $(AM_CFLAGS) -Wall -Wextra
 
 noinst_PROGRAMS = \
Comment 1 Simon McVittie 2007-12-03 03:10:58 UTC
I don't know what the right fix is, but that's not it (libraries shouldn't go in LDFLAGS but in LDADD).

What error do you get, what commands do make/libtool end up running, and what platform are you on?

Ideally, please do "make -k -C src/check-compat" to get *all* the output and errors from src/check-compat. If you could attach your src/libtelepathy.la so I can see what libtool thinks it depends on, that'd also be helpful.
Comment 2 Diego Escalante Urrelo 2007-12-03 09:06:35 UTC
Hey,

I'm on Debian Sid, on x86, make -k -C outputs this:

if gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I../..    -I./.. -I.. -I/home/diego/gnome/telepathy/build//include/telepathy-1.0 -I/usr/include/dbus-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/dbus-1.0/include   -Wno-deprecated-declarations -g -MT tp-props-iface.o -MD -MP -MF ".deps/tp-props-iface.Tpo" -c -o tp-props-iface.o tp-props-iface.c; \
        then mv -f ".deps/tp-props-iface.Tpo" ".deps/tp-props-iface.Po"; else rm -f ".deps/tp-props-iface.Tpo"; exit 1; fi
/bin/sh ../../libtool --tag=CC --mode=link gcc -std=gnu99 -I./.. -I.. -I/home/diego/gnome/telepathy/build//include/telepathy-1.0 -I/usr/include/dbus-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/dbus-1.0/include   -Wno-deprecated-declarations -g   -o tp-props-iface  tp-props-iface.o  
gcc -std=gnu99 -I./.. -I.. -I/home/diego/gnome/telepathy/build//include/telepathy-1.0 -I/usr/include/dbus-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/dbus-1.0/include -Wno-deprecated-declarations -g -o tp-props-iface tp-props-iface.o   
tp-props-iface.o: In function `tp_props_iface_get_properties_async_callback':
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:31: undefined reference to `g_value_get_type'
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:31: undefined reference to `dbus_g_type_get_struct'
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:31: undefined reference to `dbus_g_type_get_collection'
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:31: undefined reference to `dbus_g_proxy_end_call'
tp-props-iface.o: In function `tp_props_iface_list_properties_async_callback':
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:69: undefined reference to `dbus_g_type_get_struct'
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:69: undefined reference to `dbus_g_type_get_collection'
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:69: undefined reference to `dbus_g_proxy_end_call'
tp-props-iface.o: In function `tp_props_iface_set_properties_async_callback':
/home/diego/gnome/telepathy/libtelepathy/src/check-compat/./../tp-props-iface-gen.h:106: undefined reference to `dbus_g_proxy_end_call'
collect2: ld returned 1 exit status
make: *** [tp-props-iface] Error 1
make: Target `all' not remade because of errors.
make: Leaving directory `/home/diego/gnome/telepathy/libtelepathy/src/check-compat'

libtelepathy.la is:
# libtelepathy.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.24 Debian 1.5.24-1 (1.1220.2.456 2007/06/24 02:25:32)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='libtelepathy.so.2'

# Names of this library.
library_names='libtelepathy.so.2.6.0 libtelepathy.so.2 libtelepathy.so'

# The name of the static archive.
old_library=''

# Libraries that this one depends upon.
dependency_libs=' -L/home/diego/gnome/telepathy/build//lib /home/diego/gnome/telepathy/build//lib/libtelepathy-glib.la -ldbus-glib-1 -ldbus-1 /usr/lib/libgobject-2.0.la /usr/lib/libglib-2.0.la'

# Version information for libtelepathy.
current=8
age=6
revision=0

# Is this an already installed library?
installed=no

# Should we warn about portability when linking against -modules?
shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='/home/diego/gnome/telepathy/build//lib'


don't mind asking for more info.
Comment 3 Simon McVittie 2007-12-04 06:12:06 UTC
Amusingly enough, your FTBFS is because you're compiling without optimizations. As a result, the static functions that call into dbus-glib, but are never called, are not optimized away to nothing, and as a result linking against dbus-glib is needed (linking against telepathy-glib is not required though). I'll fix this in darcs.
Comment 4 Simon McVittie 2007-12-04 10:26:14 UTC
Fixed in Darcs, will be in the next release.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.