GNOME Bugzilla – Bug 707146
[PATCH] Fixes crosscompiling/linking witth Android's NDK r8e toolchain (possibly others)
Last modified: 2013-09-02 18:09:51 UTC
Created attachment 253642 [details] [review] patch When building with this toolchain I was bitten by a libtool 'can not build a shared library error' at media-engines-simple linking time. Tracing that up I found out the problem laid on these harcoded flags in configure.ac, -shared was the one to blame but -fPIC should neither be there. Args passed to configure were: --with-media-engine=simple --without-ui --disable-tracker-plugin --disable-silent-rules --disable-external-plugin --disable-mpris-plugin And the error: libtool: compile: arm-linux-androideabi-gcc -DHAVE_CONFIG_H -I. -I../../.. -D_REENTRANT -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gupnp-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gssdp-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/libxml2 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/libsoup-2.4 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/glib-2.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/lib/glib-2.0/include -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gee-0.8 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gupnp-av-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/uuid -DDATA_DIR=\"/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/share/rygel\" -include config.h -I../../../src/librygel-core -I../../../src/librygel-core -I../../../src/librygel-server -I../../../src/librygel-server -DG_LOG_DOMAIN=\"MediaEngine-Simple\" -w -MT librygel_media_engine_simple_la-rygel-simple-media-engine.lo -MD -MP -MF .deps/librygel_media_engine_simple_la-rygel-simple-media-engine.Tpo -c rygel-simple-media-engine.c -o librygel_media_engine_simple_la-rygel-simple-media-engine.o mv -f .deps/librygel_media_engine_simple_la-rygel-simple-media-engine.Tpo .deps/librygel_media_engine_simple_la-rygel-simple-media-engine.Plo mv -f .deps/librygel_media_engine_simple_la-rygel-simple-data-source.Tpo .deps/librygel_media_engine_simple_la-rygel-simple-data-source.Plo /bin/bash ../../../libtool --tag=CC --mode=link arm-linux-androideabi-gcc -D_REENTRANT -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gupnp-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gssdp-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/libxml2 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/libsoup-2.4 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/glib-2.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/lib/glib-2.0/include -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gee-0.8 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/gupnp-av-1.0 -I/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/include/uuid -DDATA_DIR='"/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/share/rygel"' -include config.h -I../../../src/librygel-core -I../../../src/librygel-core -I../../../src/librygel-server -I../../../src/librygel-server -DG_LOG_DOMAIN='"MediaEngine-Simple"' -w -shared -fPIC -module -avoid-version -Wl,-z,defs -L/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/lib -o librygel-media-engine-simple.la -rpath /home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/lib/rygel-2.0/engines librygel_media_engine_simple_la-rygel-simple-media-engine.lo librygel_media_engine_simple_la-rygel-simple-data-source.lo -Wl,--export-dynamic -L/home/reynaldo/devel/Collabora/Intel_dLeyna/github/dleyna-collabora-android/NativeLibs/install-armeabi-android-14/lib -lgupnp-1.0 -lgee-0.8 -lgupnp-av-1.0 -luuid -lgssdp-1.0 -lgmodule-2.0 -lxml2 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -liconv ../../../src/librygel-core/librygel-core-2.0.la ../../../src/librygel-server/librygel-server-2.0.la libtool: link: can not build a shared library libtool: link: See the libtool documentation for more information. libtool: link: Fatal configuration error. make[4]: *** [librygel-media-engine-simple.la] Error 1 To give you more context; Intel's OTC is working on bringing an opensource DLNA stack to Android. This small fix and other changes to Rygel (and other related projects) are part of that effort.