Package: cdw Version: 0.7.0-1 Severity: important Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu ubuntu-patch oneiric User: debian-...@lists.debian.org Usertags: ld-as-needed
cdw 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: gcc -std=gnu99 -O2 -g -O3 -lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn -o cdw cdw-cddb.o cdw-main.o ../src/external_tools/libcdwexternaltools.a ../src/disc_and_drive/libcdwdiscanddrive.a ../src/tasks/libcdwtasks.a ../src/external_tools/libcdwexternaltools.a ../src/user_interface/libcdwuserinterface.a ../src/utilities/libcdwutilities.a ../src/native_file_system/libcdwnativefilesystem.a ../src/optical_file_systems/libcdwopticalfilesystems.a ../src/configuration/libcdwconfiguration.a ../src/user_interface/libcdwuserinterface.a ../gnulib/lib/libgnulib.a ../src/external_tools/libcdwexternaltools.a ../src/tasks/libcdwtasks.a cdw-main.o: In function `cdw_main_loop': /tmp/buildd/cdw-0.7.0/src/main.c:261: undefined reference to `wgetch' /tmp/buildd/cdw-0.7.0/src/main.c:388: undefined reference to `current_item' /tmp/buildd/cdw-0.7.0/src/main.c:388: undefined reference to `item_index' /tmp/buildd/cdw-0.7.0/src/main.c:390: undefined reference to `menu_driver' [...]
--- cdw-0.7.0.orig/src/Makefile.am +++ cdw-0.7.0/src/Makefile.am @@ -11,7 +11,7 @@ include $(top_srcdir)/Makefile.cdw.am # define common linker flags -AM_LDFLAGS = -lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn +cdw_LIBS = -lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn # list source files @@ -58,7 +58,8 @@ cdw_LDADD = $(top_builddir)/src/external $(top_builddir)/src/user_interface/libcdwuserinterface.a \ $(top_builddir)/gnulib/lib/libgnulib.a \ $(top_builddir)/src/external_tools/libcdwexternaltools.a \ - $(top_builddir)/src/tasks/libcdwtasks.a + $(top_builddir)/src/tasks/libcdwtasks.a \ + $(cdw_LIBS) cdw_SOURCES = $(cdw_source_files) @@ -81,7 +82,8 @@ cdw_tests_LDADD = $(top_builddir)/src/ut $(top_builddir)/src/user_interface/libcdwuserinterface_check.a \ $(top_builddir)/gnulib/lib/libgnulib.a \ $(top_builddir)/src/external_tools/libcdwexternaltools_check.a \ - $(top_builddir)/src/tasks/libcdwtasks_check.a + $(top_builddir)/src/tasks/libcdwtasks_check.a \ + $(cdw_LIBS) cdw_tests_SOURCES = $(cdw_source_files) --- cdw-0.7.0.orig/src/Makefile.in +++ cdw-0.7.0/src/Makefile.in @@ -298,7 +298,7 @@ CDW_BUILD_CFLAGS_WARNINGS = -Wformat -Wf # use $(top_srcdir); $(top_builddir) would fail during "make distcheck" # define common linker flags -AM_LDFLAGS = -lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn +cdw_LIBS = -lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn # list source files cdw_source_files = cddb.c main.c @@ -318,7 +318,8 @@ cdw_LDADD = $(top_builddir)/src/external $(top_builddir)/src/user_interface/libcdwuserinterface.a \ $(top_builddir)/gnulib/lib/libgnulib.a \ $(top_builddir)/src/external_tools/libcdwexternaltools.a \ - $(top_builddir)/src/tasks/libcdwtasks.a + $(top_builddir)/src/tasks/libcdwtasks.a \ + $(cdw_LIBS) cdw_SOURCES = $(cdw_source_files) cdw_tests_CPPFLAGS = -DCDW_UNIT_TEST_CODE $(AM_CPPFLAGS) @@ -336,7 +337,8 @@ cdw_tests_LDADD = $(top_builddir)/src/ut $(top_builddir)/src/user_interface/libcdwuserinterface_check.a \ $(top_builddir)/gnulib/lib/libgnulib.a \ $(top_builddir)/src/external_tools/libcdwexternaltools_check.a \ - $(top_builddir)/src/tasks/libcdwtasks_check.a + $(top_builddir)/src/tasks/libcdwtasks_check.a \ + $(cdw_LIBS) cdw_tests_SOURCES = $(cdw_source_files)