[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