Package: quickplot
Version: 0.8.15-3
Severity: normal
Tags: patch
User: debian-...@lists.debian.org
Usertags: ld-as-needed

quickplot 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:
g++ -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 
-I/usr/include/atk-1.0 -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pango-1.0 
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 
-I/usr/include/libpng12 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include 
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ 
-I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 
-I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include 
-I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include 
-I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 
-I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 
-I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 
-I/usr/lib/cairomm-1.0/include    -DHTMLDIR=\"/usr/share/doc/quickplot/html\" 
-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security 
-Wall -pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2
 .4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-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   -lsndfile   
-Wl,-Bsymbolic-functions -Wl,-z,relro -o quickplot q-App.o q-App_parseArgs.o 
q-ButtonBar.o q-ColorGen.o q-Field.o q-FieldReader.o q-File.o q-FileList.o 
q-FileReader.o q-File_readASCIIFile.o q-File_readSndDouble.o 
q-File_readSndFile.o q-File_readSndFloat.o q-File_readSndInt.o 
q-File_readSndShort.o q-Globel.o q-Graph.o q-GraphConfig.o 
q-Graph_drawAutoGrid.o q-LinearField.o q-MainMenuBar.o q-MainWindow.o q-Plot.o 
q-PlotConfig.o q-PlotList.o q-PlotLister.o q-PlotSelector.o 
q-Plot_cullDrawLine.o q-Source.o q-StatusBar.o q-ValueSlider.o q-about_html.o 
q-errorStr.o q-getOpt.o q-help_html.o q-launchBrowser.o q-main.o 
q-parseGeometry.o q-usage.o  
q-App.o: In function `quitLater':
/tmp/buildd/quickplot-0.8.15/App.cpp:186: undefined reference to 
`gtk_idle_remove_by_data'
/tmp/buildd/quickplot-0.8.15/App.cpp:187: undefined reference to 
`Gtk::Main::quit()'
q-App.o: In function `~App':
/tmp/buildd/quickplot-0.8.15/App.cpp:198: undefined reference to 
`Gtk::Main::~Main()'
q-App.o: In function `App::_createMainWindow(bool)':
/tmp/buildd/quickplot-0.8.15/App.cpp:84: undefined reference to 
`Gtk::Widget::set_sensitive(bool)'
[...]
diff -Nru quickplot-0.8.15/debian/control quickplot-0.8.15/debian/control
--- quickplot-0.8.15/debian/control	2011-08-24 14:47:35.000000000 +0200
+++ quickplot-0.8.15/debian/control	2011-11-02 20:04:05.000000000 +0100
@@ -2,7 +2,7 @@
 Section: math
 Priority: optional
 Maintainer: Muammar El Khatib <muam...@debian.org>
-Build-Depends: debhelper (>> 5), libgtkmm-2.4-dev, libsndfile1-dev, docbook-to-man
+Build-Depends: debhelper (>> 5), libgtkmm-2.4-dev, libsndfile1-dev, docbook-to-man, dh-autoreconf
 Standards-Version: 3.9.2
 Homepage: http://quickplot.sourceforge.net/
 
diff -Nru quickplot-0.8.15/debian/patches/move_libs_to_ldadd.diff quickplot-0.8.15/debian/patches/move_libs_to_ldadd.diff
--- quickplot-0.8.15/debian/patches/move_libs_to_ldadd.diff	1970-01-01 01:00:00.000000000 +0100
+++ quickplot-0.8.15/debian/patches/move_libs_to_ldadd.diff	2011-11-02 20:06:58.000000000 +0100
@@ -0,0 +1,15 @@
+Description: Move libs to LDADD to fix FTBFS with ld --as-needed.
+Author: Felix Geyer <debfx-...@fobos.de>
+
+--- quickplot-0.8.15.orig/Makefile.am
++++ quickplot-0.8.15/Makefile.am
+@@ -53,7 +53,8 @@ BUILT_SOURCES =\
+ quickplot_CXXFLAGS = -Wall $(GTKMM_CXXFLAGS) $(SNDFILE_CFLAGS) -DHTMLDIR=\"$(htmldir)\"
+ 
+ 
+-quickplot_LDFLAGS = -Wall $(GTKMM_LIBS) $(SNDFILE_LIBS)
++quickplot_LDFLAGS = -Wall
++quickplot_LDADD = $(GTKMM_LIBS) $(SNDFILE_LIBS)
+ # -lefence
+ 
+ # require automake 1.7
diff -Nru quickplot-0.8.15/debian/patches/series quickplot-0.8.15/debian/patches/series
--- quickplot-0.8.15/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ quickplot-0.8.15/debian/patches/series	2011-11-02 20:05:12.000000000 +0100
@@ -0,0 +1 @@
+move_libs_to_ldadd.diff
diff -Nru quickplot-0.8.15/debian/rules quickplot-0.8.15/debian/rules
--- quickplot-0.8.15/debian/rules	2011-08-24 14:47:20.000000000 +0200
+++ quickplot-0.8.15/debian/rules	2011-11-02 20:03:50.000000000 +0100
@@ -9,6 +9,7 @@
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
+	dh_autoreconf
 	./configure --prefix=/usr 
 	touch configure-stamp
 
@@ -31,6 +32,8 @@
 	# Add here commands to clean up after the build process.
 	[ ! -f Makefile ] || $(MAKE) distclean
 
+	dh_autoreconf_clean
+
 	dh_clean
 
 install: install-stamp

Reply via email to