[Debian GNUstep maintainers] Bug#631148: gnustep-gui: FTBFS with ld --as-needed

Andreas Moog amoog at ubuntu.com
Mon Jun 20 19:38:28 UTC 2011


Package: gnustep-gui
Version: 0.20.0-1
Severity: minor
Tags: upstream patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear maintainer,

gnustep-gui FTBFS with ld --as-needed:

gcc  -rdynamic -lgnustep-gui    -Wl,-z,defs -Wl,--as-needed -shared-libgcc -fexceptions -fgnu-runtime -o obj/say \
		./obj/say.obj/say.m.o \
		  -L../../Source/./obj -L/usr/local/lib    -L/usr/local/lib -L/usr/lib     -lgnustep-base   -lpthread -lobjc   -lm
../obj/say.obj/say.m.o:(.data.rel+0x14): undefined reference to `__objc_class_name_NSSpeechSynthesizer'
collect2: ld returned 1 exit status

(from https://launchpadlibrarian.net/73807566/buildlog_ubuntu-oneiric-i386.gnustep-gui_0.20.0-1_FAILEDTOBUILD.txt.gz)

The attached patch fixes that by disabling as-needed for gnustep-gui. The 
correct fix however has to be done upstream, by including a variable like 
TOOL_LIBS in /usr/share/GNUstep/Makefiles/Instance/tool.make and put it 
after the object argument in the linker call.

See http://wiki.debian.org/ToolChain/DSOLinking#Only_link_with_needed_libraries
for a little expanded explanation.

Thanks for considering the patch

- -- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-999-generic (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBAgAGBQJN/6GwAAoJEGHzRCZ03mYkLKUP/RD2ow/Orr7TGvdfYPxgp7EF
+OWFsDbnYtASsjfYQihwE66JwzD2Bnp2FMtW8P7T8N90vSyrh9chSiTeZtNCDBBb
DwV2Sb3ZVwE91kITwGurRyMGWoY0xyl2gYV/zvhPlukwpX6wh64n8gY2StnmwJ3p
8tEwI1vexFOBIniWK0x90s4k1IwJs0qB2bpbp6N7c3CapLZGtKJdEZarOGRfQ/Ql
utbmBIryMV0Z9bGxTCbu7n+IUYoeYzOYJDezoU7hpIZ2ii+JnvmDsAu3ibqqXIws
wNmI9yU6lV5G0gBvXoaoJnxdFPszr+dshtuRAgqwA3Ks0NAAFkcIw+PVjtN5txdN
YK7vzwjFdb3Ew3CISlxkFYgPfxtHQqXRlydDg6V0Pb7cF1+X2WWPCx9zi1mrBdgh
3DB0tkazu0Bv0BIPE7seQ9Lqhy3E/Rk8tEbsjjlkaDJTeg5me7TUwToPmrq8CpEQ
NZ3C1dhec5uW8Rgrl3jGVSHaMcDhL7I5zg3FewCQk5DIthh6i2nybGeedUkFXhOq
U2sMK4o5TV57aancZMAniJduUiwTTT/wOStrGzeuZBPNYNDzA0UuRdjxndTRx6rq
sR06l+iiv3EsES2IfDl/AcLgarybyXvqtqQelmJ2TjiGClbRguhLLCdsbciDbu6K
SpF0of4L6FCtIPg+pO8L
=ioYZ
-----END PGP SIGNATURE-----
-------------- next part --------------
>From 9e8f5da6f3c8a7cb75d8a2829ed17d9b0ef0fa3c Mon Sep 17 00:00:00 2001
From: Andreas Moog <amoog at ubuntu.com>
Date: Mon, 20 Jun 2011 21:27:45 +0200
Subject: [PATCH] * debian/patches/fix_as_needed.patch:   - set
 -Wl,-no-as-needed for -lgnustep-gui, fixes a FTBFS with    
 ld --as-needed.

---
 debian/changelog                   |    8 ++++++++
 debian/patches/fix_as_needed.patch |   17 +++++++++++++++++
 debian/patches/series              |    1 +
 3 files changed, 26 insertions(+), 0 deletions(-)
 create mode 100644 debian/patches/fix_as_needed.patch

diff --git a/debian/changelog b/debian/changelog
index 9a57fbc..c44fe0f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+gnustep-gui (0.20.0-2) UNRELEASED; urgency=low
+
+  * debian/patches/fix_as_needed.patch:
+    - set -Wl,-no-as-needed for -lgnustep-gui, fixes a FTBFS with
+      ld --as-needed.
+
+ -- Andreas Moog <amoog at ubuntu.com>  Mon, 20 Jun 2011 21:24:53 +0200
+
 gnustep-gui (0.20.0-1) experimental; urgency=low
 
   * New major upstream release.
diff --git a/debian/patches/fix_as_needed.patch b/debian/patches/fix_as_needed.patch
new file mode 100644
index 0000000..27a762d
--- /dev/null
+++ b/debian/patches/fix_as_needed.patch
@@ -0,0 +1,17 @@
+Description: with ld --as-needed, libraries specified before objects
+ don't get considered by ld, so disable the flag for gnustep-gui.
+Author: Andreas Moog <amoog at ubuntu.com>
+Bug-Ubuntu: https://launchpad.net/bugs/771006
+
+--- a/Tools/say/GNUmakefile	2010-06-22 19:37:11 +0000
++++ b/Tools/say/GNUmakefile	2011-06-20 19:07:11 +0000
+@@ -18,7 +18,7 @@
+ 	-L/usr/local/lib 
+ 
+ say_OBJCFLAGS += -std=c99 -g -Werror
+-say_LDFLAGS += -lgnustep-gui
++say_LDFLAGS += -Wl,-no-as-needed -lgnustep-gui -Wl,-as-needed
+ 
+ -include GNUmakefile.preamble
+ include $(GNUSTEP_MAKEFILES)/tool.make
+
diff --git a/debian/patches/series b/debian/patches/series
index ccb6ec5..acdc5ca 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,1 @@
-# No patches.
+fix_as_needed.patch
-- 
1.7.5.4



More information about the pkg-GNUstep-maintainers mailing list