Package: brightside
Version: 1.4.0-4.1
Severity: important
Tags: patch
User: debian-...@lists.debian.org
Usertags: ld-as-needed

brightside fails to build when ld defaults to --as-needed because it puts 
libraries before the
objects that use them.
See http://wiki.debian.org/ToolChain/DSOLinking#Only_link_with_needed_libraries

Build log:
x86_64-linux-gnu-gcc  -Wall -g -O2  -Wl,-Bsymbolic-functions -Wl,-z,relro -o 
brightside -pthread
-lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 
-lpopt -lbonobo-2
-lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgconf-2 -lglade-2.0 -lxml2 
-lwnck-1 -lgtk-x11-2.0
-lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 
-lgdk_pixbuf-2.0 -lcairo
-lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 
-lrt -lglib-2.0  
-lasound    brightside-volume.o brightside-volume-dummy.o  
brightside-volume-alsa.o
brightside-volume-oss.o brightside-fb-level.o brightside-util.o brightside.o  
-lX11
brightside.o: In function `update_use_pcm_cb':
/tmp/buildd/brightside-1.4.0/src/brightside.c:407: undefined reference to 
`gconf_client_get_bool'
brightside.o: In function `brightside_exit':
/tmp/buildd/brightside-1.4.0/src/brightside.c:379: undefined reference to 
`g_free'
brightside.o: In function `pager_hide':
/tmp/buildd/brightside-1.4.0/src/brightside.c:1284: undefined reference to 
`gtk_widget_hide'
brightside.o: In function `dialog_hide':
/tmp/buildd/brightside-1.4.0/src/brightside.c:725: undefined reference to 
`gtk_widget_hide'
brightside.o: In function `update_settings_cb':
/tmp/buildd/brightside-1.4.0/src/brightside.c:576: undefined reference to 
`gconf_client_get_bool'
/tmp/buildd/brightside-1.4.0/src/brightside.c:542: undefined reference to 
`gconf_client_get_int'
/tmp/buildd/brightside-1.4.0/src/brightside.c:565: undefined reference to 
`gtk_timeout_remove'
/tmp/buildd/brightside-1.4.0/src/brightside.c:566: undefined reference to 
`gtk_timeout_add'
[...]

diff -u brightside-1.4.0/src/Makefile.in brightside-1.4.0/src/Makefile.in
--- brightside-1.4.0/src/Makefile.in
+++ brightside-1.4.0/src/Makefile.in
@@ -206,7 +206,7 @@
 	brightside.c brightside.h
 
 
-brightside_LDFLAGS = \
+brightside_LIBS = \
 	$(EXTRA_GNOME_LIBS)				\
 	$(ALSA_LIBS)					\
 	$(INTLLIBS)
@@ -225,7 +225,7 @@
 
 EGGFILES2 = eggtrayicon.h eggtrayicon.c
 
-brightside_properties_LDFLAGS = \
+brightside_properties_LIBS = \
 	$(EXTRA_GNOME_LIBS)			\
 	$(INTLLIBS)
 
@@ -360,10 +360,10 @@
 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 brightside$(EXEEXT): $(brightside_OBJECTS) $(brightside_DEPENDENCIES) 
 	@rm -f brightside$(EXEEXT)
-	$(LINK) $(brightside_LDFLAGS) $(brightside_OBJECTS) $(brightside_LDADD) $(LIBS)
+	$(LINK) $(brightside_LDFLAGS) $(brightside_OBJECTS) $(brightside_LDADD) $(LIBS) $(brightside_LIBS)
 brightside-properties$(EXEEXT): $(brightside_properties_OBJECTS) $(brightside_properties_DEPENDENCIES) 
 	@rm -f brightside-properties$(EXEEXT)
-	$(LINK) $(brightside_properties_LDFLAGS) $(brightside_properties_OBJECTS) $(brightside_properties_LDADD) $(LIBS)
+	$(LINK) $(brightside_properties_LDFLAGS) $(brightside_properties_OBJECTS) $(brightside_properties_LDADD) $(LIBS) $(brightside_properties_LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT) core *.core

Reply via email to