Leon Woestenberg
2005-Dec-23 08:59 UTC
[Fontconfig] fontconfig configure-generated libtool fails to find cross-compiled libs
Hello all, I am cross-compiling fontconfig on a x86_64 development platform for running on a x86 platform. I have a basic cross compiler setup up which works properly, but nothing much else (no chroot/fakeroot/scratchbox approach). libreetype, libexpat and libz are already properly cross-compiled and tested on the target without too much trouble. They each sit in their own {freetype,expat,zlib}/sysroot directory. I configure fontconfig as follows: ./configure --host=i686-pc-linux --prefix=/usr \ CPPFLAGS="-I`pwd`/../../freetype/sysroot/usr/include -I`pwd`/../../expat/sysroot/usr/include" \ CFLAGS="-I`pwd`/../../freetype/sysroot/usr/include -I`pwd`/../../expat/sysroot/usr/include" \ LDFLAGS="-L`pwd`/../../expat/sysroot/usr/lib -L`pwd`/../../freetype/sysroot/usr/lib -L`pwd`/../../zlib/sysroot/usr/lib" \ -with-freetype-config="../../freetype/sysroot/usr/bin/freetype-config" Subsequent make runs well through the compilation stage, but fails on linking (see output below). Obviously, configure (or the generated libtool) picks op the development host shared library directories and the wrong freetype lib is linked against, then it fails. I have tried several overrides, but cannot succeed in getting fontconfig to build (other than doing everything manual). How must I tell fontconfig''s configure where my libraries are, such that libtool these only? Thanks and regards, Leon Woestenberg. Making install in src make[1]: Entering directory `/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/src'' /bin/sh ../libtool --mode=link /home/cross/sandbox/tracs/diy/i686/nptl/bin/i686-linux-gcc -I/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/include -I/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/include -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/lib -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/lib -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../zlib/sysroot/usr/lib -o libfontconfig.la -rpath /usr/lib -version-info 1:4:0 fcatomic.lo fcblanks.lo fccache.lo fccfg.lo fccharset.lo fcdbg.lo fcdefault.lo fcdir.lo fcfreetype.lo fcfs.lo fcinit.lo fclang.lo fclist.lo fcmatch.lo fcmatrix.lo fcname.lo fcpat.lo fcstr.lo fcxml.lo -lfreetype -lexpat /home/cross/sandbox/tracs/diy/i686/nptl/bin/i686-linux-gcc -shared .libs/fcatomic.o .libs/fcblanks.o .libs/fccache.o .libs/fccfg.o .libs/fccharset.o .libs/fcdbg.o .libs/fcdefault.o .libs/fcdir.o .libs/fcfreetype.o .libs/fcfs.o .libs/fcinit.o .libs/fclang.o .libs/fclist.o .libs/fcmatch.o .libs/fcmatrix.o .libs/fcname.o .libs/fcpat.o .libs/fcstr.o .libs/fcxml.o -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/lib -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/lib -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../zlib/sysroot/usr/lib /usr/lib/libfreetype.so /usr/lib/libexpat.so -Wl,-soname -Wl,libfontconfig.so.1 -o .libs/libfontconfig.so.1.0.4 /usr/lib/libfreetype.so: could not read symbols: File in wrong format collect2: ld returned 1 exit status make[1]: *** [libfontconfig.la] Error 1 make[1]: Leaving directory `/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/src'' make: *** [install-recursive] Error 1 ~/sandbox/tracs/fontconfig
Leon Woestenberg
2005-Dec-24 13:56 UTC
[Fontconfig] fontconfig configure-generated libtool fails to find cross-compiled libs
Hello, I fixed one bug in my arguments to configure but it didn''t save the day. My cross-compiled "freetype-config" was giving out absolute paths, so I have created a script "freetype-config2" that calls "freetype-config --prefix=/myrootforfreetype/usr". When this script is used, it gives out the correct dirs etc. However, I seem to have gotten stuck on an issue with libtool: http://lists.debian.org/debian-embedded/2005/09/msg00030.html How can I override the libtool being used (by fontconfig)? Regards, Leon. Leon Woestenberg wrote:> Hello all, > > I am cross-compiling fontconfig on a x86_64 development platform for > running on a x86 platform. I have a basic cross compiler setup up > which works properly, but nothing much else (no > chroot/fakeroot/scratchbox approach). libreetype, libexpat and libz > are already properly cross-compiled and tested on the target without > too much trouble. > > They each sit in their own {freetype,expat,zlib}/sysroot directory. I > configure fontconfig as follows: > > ./configure --host=i686-pc-linux --prefix=/usr \ > CPPFLAGS="-I`pwd`/../../freetype/sysroot/usr/include > -I`pwd`/../../expat/sysroot/usr/include" \ > CFLAGS="-I`pwd`/../../freetype/sysroot/usr/include > -I`pwd`/../../expat/sysroot/usr/include" \ > LDFLAGS="-L`pwd`/../../expat/sysroot/usr/lib > -L`pwd`/../../freetype/sysroot/usr/lib > -L`pwd`/../../zlib/sysroot/usr/lib" \ > -with-freetype-config="../../freetype/sysroot/usr/bin/freetype-config" > > Subsequent make runs well through the compilation stage, but fails on > linking (see output below). Obviously, configure (or the generated > libtool) picks op the development host shared library directories and > the wrong freetype lib is linked against, then it fails. > > I have tried several overrides, but cannot succeed in getting > fontconfig to build (other than doing everything manual). > > How must I tell fontconfig''s configure where my libraries are, such > that libtool these only? > > Thanks and regards, > > Leon Woestenberg. > > > > Making install in src > make[1]: Entering directory > `/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/src'' > /bin/sh ../libtool --mode=link > /home/cross/sandbox/tracs/diy/i686/nptl/bin/i686-linux-gcc > -I/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/include > -I/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/include > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/lib > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/lib > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../zlib/sysroot/usr/lib > -o libfontconfig.la -rpath /usr/lib -version-info 1:4:0 fcatomic.lo > fcblanks.lo fccache.lo fccfg.lo fccharset.lo fcdbg.lo fcdefault.lo > fcdir.lo fcfreetype.lo fcfs.lo fcinit.lo fclang.lo fclist.lo > fcmatch.lo fcmatrix.lo fcname.lo fcpat.lo fcstr.lo fcxml.lo -lfreetype > -lexpat > /home/cross/sandbox/tracs/diy/i686/nptl/bin/i686-linux-gcc -shared > .libs/fcatomic.o .libs/fcblanks.o .libs/fccache.o .libs/fccfg.o > .libs/fccharset.o .libs/fcdbg.o .libs/fcdefault.o .libs/fcdir.o > .libs/fcfreetype.o .libs/fcfs.o .libs/fcinit.o .libs/fclang.o > .libs/fclist.o .libs/fcmatch.o .libs/fcmatrix.o .libs/fcname.o > .libs/fcpat.o .libs/fcstr.o .libs/fcxml.o > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../expat/sysroot/usr/lib > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../freetype/sysroot/usr/lib > -L/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/../../zlib/sysroot/usr/lib > /usr/lib/libfreetype.so /usr/lib/libexpat.so -Wl,-soname > -Wl,libfontconfig.so.1 -o .libs/libfontconfig.so.1.0.4 > /usr/lib/libfreetype.so: could not read symbols: File in wrong format > collect2: ld returned 1 exit status > make[1]: *** [libfontconfig.la] Error 1 > make[1]: Leaving directory > `/home/cross/sandbox/tracs/fontconfig/fontconfig-2.3.2/src'' > make: *** [install-recursive] Error 1 > ~/sandbox/tracs/fontconfig > > _______________________________________________ > Fontconfig mailing list > Fontconfig@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/fontconfig