Bug#631738: lordsawar: FTBFS with ld --as-needed

Ilya Barygin barygin at gmail.com
Sun Jun 26 17:39:45 UTC 2011


Package: lordsawar
Version: 0.2.0-1
Severity: normal
Tags: patch
User: debian-gcc at lists.debian.org
Usertags: ld-as-needed

The package fails to build when --as-needed linker option is enabled,
because of incorrect order of parameters passed to ld. Here's a log of
failed build in Ubuntu:
https://launchpadlibrarian.net/70882027/buildlog_ubuntu-oneiric-i386.lordsawar_0.2.0-1_FAILEDTOBUILD.txt.gz

See also
http://wiki.debian.org/ToolChain/DSOLinking#Only_link_with_needed_libraries

The attached patch was used in Ubuntu to fix the problem.
https://launchpad.net/ubuntu/+source/lordsawar/0.2.0-1ubuntu1

-- System Information:
Debian Release: wheezy/sid
  APT prefers oneiric
  APT policy: (500, 'oneiric')
Architecture: i386 (i686)

Kernel: Linux 2.6.38-10-generic (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
-------------- next part --------------
Description: Correct the order of linker parameters so that it doesn't fail
 with --as-needed option.
Author: Ilya Barygin <barygin at gmail.com>
Bug-Ubuntu: https://launchpad.net/bugs/770984
--- a/src/pbm/Makefile.am
+++ b/src/pbm/Makefile.am
@@ -23,8 +23,8 @@
 lordsawar_pbm_SOURCES =  pbm.cpp main.cpp pbm.h ${top_srcdir}/src/pbm-game-client.cpp ${top_srcdir}/src/pbm-game-client.h ${top_srcdir}/src/game-client-decoder.cpp ${top_srcdir}/src/game-client-decoder.h ${top_srcdir}/src/chat-client.cpp ${top_srcdir}/src/chat-client.h
 
 
-lordsawar_pbm_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) $(SDL_LIBS) -ltar -lz \
-                         $(top_builddir)/src/liblordsawar.la \
+lordsawar_pbm_LDADD = $(top_builddir)/src/liblordsawar.la \
+                         $(LIBSIGC_LIBS) $(GTKMM_LIBS) $(SDL_LIBS) -ltar -lz \
                          @LIBINTL@ \
                          -L$(top_builddir)/src
 ##endif
--- a/src/pbm/Makefile.in
+++ b/src/pbm/Makefile.in
@@ -283,8 +283,8 @@
 #   02110-1301, USA.
 MAINTAINERCLEANFILES = Makefile.in
 lordsawar_pbm_SOURCES = pbm.cpp main.cpp pbm.h ${top_srcdir}/src/pbm-game-client.cpp ${top_srcdir}/src/pbm-game-client.h ${top_srcdir}/src/game-client-decoder.cpp ${top_srcdir}/src/game-client-decoder.h ${top_srcdir}/src/chat-client.cpp ${top_srcdir}/src/chat-client.h
-lordsawar_pbm_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) $(SDL_LIBS) -ltar -lz \
-                         $(top_builddir)/src/liblordsawar.la \
+lordsawar_pbm_LDADD = $(top_builddir)/src/liblordsawar.la -lz \
+                         $(LIBSIGC_LIBS) $(GTKMM_LIBS) $(SDL_LIBS) -ltar \
                          @LIBINTL@ \
                          -L$(top_builddir)/src
 
--- a/src/gls/Makefile.am
+++ b/src/gls/Makefile.am
@@ -22,20 +22,20 @@
 lordsawar_game_list_client_SOURCES = gls-client-main.cpp \
 				     gls-client-tool.cpp gls-client-tool.h
 
-lordsawar_game_list_client_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_list_client_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 
 lordsawar_game_list_server_SOURCES = main.cpp \
   gamelist-server.cpp gamelist-server.h 
 
-lordsawar_game_list_server_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_list_server_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 ##endif
--- a/src/gls/Makefile.in
+++ b/src/gls/Makefile.in
@@ -296,20 +296,20 @@
 lordsawar_game_list_client_SOURCES = gls-client-main.cpp \
 				     gls-client-tool.cpp gls-client-tool.h
 
-lordsawar_game_list_client_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_list_client_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 
 lordsawar_game_list_server_SOURCES = main.cpp \
   gamelist-server.cpp gamelist-server.h 
 
-lordsawar_game_list_server_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_list_server_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 
--- a/src/ghs/Makefile.am
+++ b/src/ghs/Makefile.am
@@ -22,22 +22,22 @@
 lordsawar_game_host_client_SOURCES = ghs-client-main.cpp \
 				     ghs-client-tool.cpp ghs-client-tool.h
 
-lordsawar_game_host_client_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_host_client_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawargamehost.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 
 lordsawar_game_host_server_SOURCES = main.cpp \
   gamehost-server.cpp gamehost-server.h 
 
-lordsawar_game_host_server_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_host_server_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawargamehost.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 ##endif
--- a/src/ghs/Makefile.in
+++ b/src/ghs/Makefile.in
@@ -298,22 +298,22 @@
 lordsawar_game_host_client_SOURCES = ghs-client-main.cpp \
 				     ghs-client-tool.cpp ghs-client-tool.h
 
-lordsawar_game_host_client_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_host_client_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawargamehost.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 
 lordsawar_game_host_server_SOURCES = main.cpp \
   gamehost-server.cpp gamehost-server.h 
 
-lordsawar_game_host_server_LDADD = $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
-                                   $(top_builddir)/src/liblordsawar.la \
+lordsawar_game_host_server_LDADD = $(top_builddir)/src/liblordsawar.la \
                                    $(top_builddir)/src/liblordsawargamelist.la \
                                    $(top_builddir)/src/liblordsawargamehost.la \
                                    $(top_builddir)/src/liblordsawarnet.la \
+                                   $(LIBSIGC_LIBS) $(GTKMM_LIBS) -ltar -lz \
                                    @LIBINTL@ \
                                    -L$(top_builddir)/src
 


More information about the Pkg-games-devel mailing list