[Debian GNUstep maintainers] Bug#633543: cynthiune.app: FTBFS with ld that defaults to --as-needed: undefined reference to `convert8to16'
Colin Watson
cjwatson at ubuntu.com
Mon Jul 11 12:42:30 UTC 2011
Package: cynthiune.app
Version: 0.9.5-13
Severity: important
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch oneiric
I noticed that somebody had synced the base GNUstep packages from
experimental into Ubuntu oneiric, so I started work on rebuilding all
the application packages against that new version so that we can drop
the older library versions. cynthiune.app failed to build as follows:
https://launchpadlibrarian.net/74973762/buildlog_ubuntu-oneiric-i386.cynthiune.app_0.9.5-13_FAILEDTOBUILD.txt.gz
gcc -shared -rdynamic -L../../Frameworks/Cynthiune/Cynthiune.framework/Versions/Current -lCynthiune -Wl,-z,defs -Wl,--as-needed -Wl,-rpath,/usr/lib/cynthiune.app -shared-libgcc -fexceptions -o ./AudioFile.format/./AudioFile ./obj/AudioFile.obj/AudioFile.m.o -L/usr/local/lib -L/usr/lib -L/usr/lib -laudiofile -lm -lgnustep-gui -lgnustep-base -lpthread -lobjc -lm
./obj/AudioFile.obj/AudioFile.m.o: In function `-[AudioFile _readNext8BitChunk:withSize:]':
/build/buildd/cynthiune.app-0.9.5/Bundles/AudioFile/AudioFile.m:122: undefined reference to `convert8to16'
It appears that link-libs.patch needs to be extended to cover this;
-lCynthiune is clearly in the wrong place on the link line for
--as-needed (http://wiki.debian.org/ToolChain/DSOLinking). This
probably doesn't affect Debian right now because --as-needed is a
positional option and only affects those libraries listed after it, but
Ubuntu's linker defaults to --as-needed right out of the gate.
Nevertheless, I believe that the debian-gcc team is tracking these
problems and wants to make Debian packages work cleanly with such a
linker.
Here's a patch. Does it seem like a reasonable approach?
* debian/patches/link-libs.patch: Use ADDITIONAL_GUI_LIBS rather than
ADDITIONAL_LDFLAGS in frameworks.make.
diff -u cynthiune.app-0.9.5/debian/patches/link-libs.patch cynthiune.app-0.9.5/debian/patches/link-libs.patch
--- cynthiune.app-0.9.5/debian/patches/link-libs.patch
+++ cynthiune.app-0.9.5/debian/patches/link-libs.patch
@@ -33,6 +33,8 @@
* Bundles/Taglib/GNUmakefile.preamble (ADDITIONAL_LDFLAGS)
(BUNDLE_LIBS): Likewise.
(TAGLIB_LIBS): Link only against libtaglib_c.
+ * frameworks.make (ADDITIONAL_LDFLAGS): Rename as...
+ (ADDITIONAL_GUI_LIBS): ...this.
--- cynthiune.app-0.9.5.orig/Frameworks/Cynthiune/GNUmakefile
+++ cynthiune.app-0.9.5/Frameworks/Cynthiune/GNUmakefile
@@ -209,0 +212,9 @@
+--- cynthiune.app-0.9.5.orig/frameworks.make
++++ cynthiune.app-0.9.5/frameworks.make
+@@ -10,5 +10,5 @@
+ ifeq (mingw32, $(GNUSTEP_TARGET_OS))
+ ADDITIONAL_GUI_LIBS += -L$(FRAMEWORKS_DIRS)/../../Cynthiune.app $(_ldflags)
+ else
+-ADDITIONAL_LDFLAGS += $(_ldflags)
++ADDITIONAL_GUI_LIBS += $(_ldflags)
+ endif
Thanks,
--
Colin Watson [cjwatson at ubuntu.com]
More information about the pkg-GNUstep-maintainers
mailing list