GNOME Bugzilla – Bug 528143
[goom] fails to build on 32-bit ppc
Last modified: 2008-04-15 16:59:52 UTC
With latest pre-release the goom plugin fails to build on PPC: [...] /bin/sh ../../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I../.. -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -Wall -Werror -g -I/usr/include/liboil-0.3 -g -Wall -O2 -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo './'`graphic.c cc -DHAVE_CONFIG_H -I. -I. -I../.. -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -Wall -Werror -g -I/usr/include/liboil-0.3 -g -Wall -O2 -c graphic.c -fPIC -DPIC -o .libs/libgstgoom_la-graphic.o cc -DHAVE_CONFIG_H -I. -I. -I../.. -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -Wall -Werror -g -I/usr/include/liboil-0.3 -g -Wall -O2 -c graphic.c -o libgstgoom_la-graphic.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=link cc -g -Wall -O2 -Wl,-z,defs -Wl,-O1 -Wl,--as-needed -o libgstgoom.la -rpath /usr/lib/gstreamer-0.10 -module -avoid-version -export-symbols-regex '^_*gst_plugin_desc$' -no-undefined libgstgoom_la-gstgoom.lo libgstgoom_la-drawmethods.lo libgstgoom_la-sound_tester.lo libgstgoom_la-mathtools.lo libgstgoom_la-goomsl_heap.lo libgstgoom_la-goomsl_hash.lo libgstgoom_la-goomsl.lo libgstgoom_la-lines.lo libgstgoom_la-ifs.lo libgstgoom_la-surf3d.lo libgstgoom_la-tentacle3d.lo libgstgoom_la-v3d.lo libgstgoom_la-convolve_fx.lo libgstgoom_la-flying_stars_fx.lo libgstgoom_la-plugin_info.lo libgstgoom_la-goom_tools.lo libgstgoom_la-config_param.lo libgstgoom_la-filters.lo libgstgoom_la-goom_core.lo libgstgoom_la-graphic.lo -pthread -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -lm -loil-0.3 -lm -lrt libgstgoomconfigparse.la generating symbol list for `libgstgoom.la' /usr/bin/nm -B .libs/libgstgoom_la-gstgoom.o .libs/libgstgoom_la-drawmethods.o .libs/libgstgoom_la-sound_tester.o .libs/libgstgoom_la-mathtools.o .libs/libgstgoom_la-goomsl_heap.o .libs/libgstgoom_la-goomsl_hash.o .libs/libgstgoom_la-goomsl.o .libs/libgstgoom_la-lines.o .libs/libgstgoom_la-ifs.o .libs/libgstgoom_la-surf3d.o .libs/libgstgoom_la-tentacle3d.o .libs/libgstgoom_la-v3d.o .libs/libgstgoom_la-convolve_fx.o .libs/libgstgoom_la-flying_stars_fx.o .libs/libgstgoom_la-plugin_info.o .libs/libgstgoom_la-goom_tools.o .libs/libgstgoom_la-config_param.o .libs/libgstgoom_la-filters.o .libs/libgstgoom_la-goom_core.o .libs/libgstgoom_la-graphic.o ./.libs/libgstgoomconfigparse.a | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libgstgoom.exp /bin/grep -E -e "^_*gst_plugin_desc$" ".libs/libgstgoom.exp" > ".libs/libgstgoom.expT" mv -f ".libs/libgstgoom.expT" ".libs/libgstgoom.exp" echo "{ global:" > .libs/libgstgoom.ver cat .libs/libgstgoom.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libgstgoom.ver echo "local: *; };" >> .libs/libgstgoom.ver cc -shared .libs/libgstgoom_la-gstgoom.o .libs/libgstgoom_la-drawmethods.o .libs/libgstgoom_la-sound_tester.o .libs/libgstgoom_la-mathtools.o .libs/libgstgoom_la-goomsl_heap.o .libs/libgstgoom_la-goomsl_hash.o .libs/libgstgoom_la-goomsl.o .libs/libgstgoom_la-lines.o .libs/libgstgoom_la-ifs.o .libs/libgstgoom_la-surf3d.o .libs/libgstgoom_la-tentacle3d.o .libs/libgstgoom_la-v3d.o .libs/libgstgoom_la-convolve_fx.o .libs/libgstgoom_la-flying_stars_fx.o .libs/libgstgoom_la-plugin_info.o .libs/libgstgoom_la-goom_tools.o .libs/libgstgoom_la-config_param.o .libs/libgstgoom_la-filters.o .libs/libgstgoom_la-goom_core.o .libs/libgstgoom_la-graphic.o -Wl,--whole-archive ./.libs/libgstgoomconfigparse.a -Wl,--no-whole-archive -Wl,--as-needed /usr/lib/libgstbase-0.10.so /usr/lib/libgstreamer-0.10.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libgthread-2.0.so /usr/lib/libxml2.so /usr/lib/libglib-2.0.so -loil-0.3 -lm -lrt -Wl,-z -Wl,defs -Wl,-O1 -pthread -pthread -Wl,-soname -Wl,libgstgoom.so -Wl,-version-script -Wl,.libs/libgstgoom.ver -o .libs/libgstgoom.so .libs/libgstgoom_la-plugin_info.o:(.got2+0x50): undefined reference to `ppc_zoom_G4' .libs/libgstgoom_la-plugin_info.o:(.got2+0x54): undefined reference to `ppc_zoom_generic' collect2: ld returned 1 exit status make[4]: *** [libgstgoom.la] Error 1 make[4]: Leaving directory `/build/buildd/gst-plugins-good0.10-0.10.7.2/gst/goom' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/build/buildd/gst-plugins-good0.10-0.10.7.2/gst' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/build/buildd/gst-plugins-good0.10-0.10.7.2' make[1]: *** [all] Error 2 make[1]: Leaving directory `/build/buildd/gst-plugins-good0.10-0.10.7.2' make: *** [debian/stamp-makefile-build] Error 2 Complete build log at http://experimental.debian.net/fetch.php?&pkg=gst-plugins-good0.10&ver=0.10.7.2-1&arch=powerpc&stamp=1208216588&file=log&as=raw
The fix for this is, to comment the PPC specific part in plugin_info.c... Tim said that the PPC specific assembly doesn't build for him so he disabled building it.
Created attachment 109286 [details] [review] Disable ppc optimisations for 32-bit PPC as well See #522767 for the asm build failure. Looks like I only disabled the PPC optimisations for 64-bit PPC but not 32-bit.
Committed: 2008-04-15 Tim-Philipp Müller <tim at centricular dot net> * gst/goom/plugin_info.c: (setOptimizedMethods): Disable altivec optimisations for 32-bit PPC as well to make things build properly on all PPC systems. Fixes #528143 Fix still needs to be verified though.