2007-05-11 19:27:18

by Petteri Räty

[permalink] [raw]
Subject: [Bluez-devel] Fix linking order so that -Wl,--as-needed works

gcc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/freetype2
-I/usr/include/libpng12 -Wall -O2 -D_FORTIFY_SOURCE=2 -Wl,--as-needed
-o bluetooth-sendto main.o -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0
-lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0
-lgmodule-2.0 -ldl -lglib-2.0 -ldbus-glib-1 -ldbus-1 -lgobject-2.0
-lglib-2.0 ../common/libcommon.a
../common/libcommon.a(client.o): In function
`bluetooth_client_cancel_discovery':
client.c:(.text+0x566): undefined reference to `dbus_g_proxy_call'
../common/libcommon.a(client.o): In function
`bluetooth_client_discover_devices':
client.c:(.text+0x666): undefined reference to `dbus_g_proxy_call'
../common/libcommon.a(client.o): In function
`bluetooth_client_create_bonding':
client.c:(.text+0x79f): undefined reference to `dbus_g_proxy_begin_call'
../common/libcommon.a(client.o): In function
`adapter_create_bonding_async_callback':
client.c:(.text+0x7f1): undefined reference to `dbus_g_proxy_end_call'
../common/libcommon.a(client.o): In function
`bluetooth_client_register_passkey_agent':
client.c:(.text+0x8de): undefined reference to
`dbus_g_object_type_install_info'
client.c:(.text+0x904): undefined reference to
`dbus_g_connection_register_g_object'
client.c:(.text+0x937): undefined reference to `dbus_g_proxy_new_for_name'
client.c:(.text+0x974): undefined reference to `dbus_g_proxy_call'
../common/libcommon.a(client.o): In function `insert_device':
client.c:(.text+0xb80): undefined reference to `dbus_g_proxy_call'
client.c:(.text+0xbbd): undefined reference to `dbus_g_proxy_call'
client.c:(.text+0xbfd): undefined reference to `dbus_g_proxy_call'
client.c:(.text+0xc3b): undefined reference to `dbus_g_proxy_call'
../common/libcommon.a(client.o):client.c:(.text+0xf8c): more undefined
references to `dbus_g_proxy_call' follow
../common/libcommon.a(client.o): In function `add_adapter':
client.c:(.text+0x12b1): undefined reference to `dbus_g_proxy_new_for_name'
client.c:(.text+0x1328): undefined reference to `dbus_g_proxy_add_signal'
client.c:(.text+0x134f): undefined reference to
`dbus_g_proxy_connect_signal'


This is fixed with the attached patch. See
http://www.gentoo.org/proj/en/qa/asneeded.xml for background.

Regards,
Petteri Räty
--
Gentoo developer


Attachments:
bluez-gnome-linking-order.patch (568.00 B)
signature.asc (252.00 B)
OpenPGP digital signature
(No filename) (286.00 B)
(No filename) (164.00 B)
Download all attachments