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