Bug#386815: gtk+2.0: FTBFS (ppc64): sibling call optimization to `IA__gdk_display_open' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls

Andreas Jochens aj at andaco.de
Sun Sep 10 12:21:31 UTC 2006


Package: gtk+2.0
Version: 2.8.20-1
Severity: wishlist
Tags: patch

Hello,

when building 'gtk+2.0' on ppc64/unstable, I get the following error:

/bin/sh ../libtool --mode=link powerpc64-linux-gnu-gcc  -g -O2 -Wall   -o gtk-query-immodules-2.0  queryimmodules.o libgtk-x11-2.0.la ../gdk-pixbuf/libgdk_pixbuf-2.0.la ../gdk/libgdk-x11-2.0.la 
powerpc64-linux-gnu-gcc -g -O2 -Wall -o gtk-query-immodules-2.0 queryimmodules.o  ./.libs/libgtk-x11-2.0.a /gtk+2.0-2.8.20/build-tree/gtk+-2.8.20-static/gdk/.libs/libgdk-x11-2.0.a /usr/lib/libatk-1.0.so ../gdk-pixbuf/.libs/libgdk_pixbuf-2.0.a ../gdk/.libs/libgdk-x11-2.0.a /usr/lib/libpangocairo-1.0.so -lSM -lICE /usr/lib/libpangoft2-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libfreetype.so -lfontconfig -lXext -lXrender -lX11 -lXinerama -lXi -lXrandr -lXcursor -lXfixes /gtk+2.0-2.8.20/build-tree/gtk+-2.8.20-static/gdk-pixbuf/.libs/libgdk_pixbuf-2.0.a /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libtiff.so -lz -lc /usr/lib/libjpeg.so -lpng12 -lm
/usr/bin/ld: /gtk+2.0-2.8.20/build-tree/gtk+-2.8.20-static/gdk/.libs/libgdk-x11-2.0.a(gdk.o)(.text+0x574): sibling call optimization to `IA__gdk_display_open' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `IA__gdk_display_open' extern
/usr/bin/ld: /gtk+2.0-2.8.20/build-tree/gtk+-2.8.20-static/gdk/.libs/libgdk-x11-2.0.a(gdk.o)(.text+0x5ec): sibling call optimization to `IA__gdk_display_open' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `IA__gdk_display_open' extern
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
make[5]: *** [gtk-query-immodules-2.0] Error 1
make[5]: Leaving directory `/gtk+2.0-2.8.20/build-tree/gtk+-2.8.20-static/gtk'

With the attached patch, which adds '-mminimal-toc' to CFLAGS
for each call of 'configure', the packages can be compiled on ppc64.

Regards
Andreas Jochens

diff -urN ../tmp-orig/gtk+2.0-2.8.20/debian/rules ./debian/rules
--- ../tmp-orig/gtk+2.0-2.8.20/debian/rules	2006-09-10 09:44:19.000000000 +0000
+++ ./debian/rules	2006-09-10 08:29:57.000000000 +0000
@@ -16,7 +16,11 @@
 # from having to guess our platform (since we know it already)
 DEB_HOST_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_BUILD_GNU_CPU	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
 
+ifeq ($(DEB_BUILD_GNU_CPU),powerpc64)
+	CFLAGS += -mminimal-toc
+endif
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
 	CFLAGS += -O0
@@ -86,7 +90,7 @@
 	cp -ar $(BUILD_DIR) $(BUILD_SHARED_DIR)
 
 	# Add here commands to configure the package.
-	cd $(BUILD_SHARED_DIR) && \
+	cd $(BUILD_SHARED_DIR) && CFLAGS="$(CFLAGS)" \
 	./configure	--host=$(DEB_HOST_GNU_TYPE) \
 			--build=$(DEB_BUILD_GNU_TYPE) \
 			--prefix=/usr \
@@ -114,7 +118,7 @@
 	cp -ar $(BUILD_DIR) $(BUILD_STATIC_DIR)
 
 	# Add here commands to configure the package.
-	cd $(BUILD_STATIC_DIR) && \
+	cd $(BUILD_STATIC_DIR) && CFLAGS="$(CFLAGS)" \
 	./configure	--host=$(DEB_HOST_GNU_TYPE) \
 			--build=$(DEB_BUILD_GNU_TYPE) \
 			--prefix=/usr \
@@ -143,7 +147,7 @@
 	cp -ar $(BUILD_DIR) $(BUILD_DFB_DIR)
 
 	# Add here commands to configure the package.
-	cd $(BUILD_DFB_DIR) && \
+	cd $(BUILD_DFB_DIR) && CFLAGS="$(CFLAGS)" \
 	./configure	--host=$(DEB_HOST_GNU_TYPE) \
 			--build=$(DEB_BUILD_GNU_TYPE) \
 			--prefix=/usr \





More information about the Pkg-gnome-maintainers mailing list