Hello<br><br>I'm experiencing the same problem since I'm using external toolchains. It took me quite a few time to figure out the problem (and when cross compiling from amd64 to i386, you don't even get any error at link time, but generated binaries are unusuable...).<br>
<br>The problem is that when installing directfb, librairies are relinked for the destination directory. This relink step uses the .la linker scripts from the directfb installation which haven't been processed to replace the libdir path.<br>
Thus, it ends up adding -L/usr/lib instead of -L$(STAGING_DIR)/usr/lib to the compiler options.<br><br>Here is a patch to fix the problem. Apply it to your buildroot copy, and rm -rf output/build/directfb-1.4.2<br><br>I'm pretty sure that others librairies have the same issue. We might need to factorise this fix in Makefile.autotools.in... Not sure yet.<br>
<br>Regards,<br><br>--<br>Lionel<br><br><div class="gmail_quote">On Thu, Jan 28, 2010 at 2:13 PM, Gilles Talis <span dir="ltr"><<a href="mailto:gilles.talis@gmail.com">gilles.talis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<div><br></div><div>I am trying to cross-compile DirectFB using buildroot and I have an issue during the installation phase.</div><div>I am using an external binary toolchain (codesourcery ARM toolchain). The output of my compilation is as follows:</div>

<div><br></div><div>I have the same error for pretty much all libraries generated by the build process. At some point, compiler points the wrong libs directory: /usr/lib instead of <staging_dir>/usr/lib</div><div>This is specific to DirectFB as I can compile about almost anything else :-)</div>

<div><br></div><div>Example with the one of the GFX drivers libs generated:</div><div><br></div><div><div>Making install in nvidia</div><div>make[4]: Entering directory `/work/arm-linux/build/directfb-1.4.2/gfxdrivers/nvidia'</div>

<div>make[5]: Entering directory `/work/arm-linux/build/directfb-1.4.2/gfxdrivers/nvidia'</div><div>make[5]: Nothing to be done for `install-exec-am'.</div><div>test -z "/usr/lib/directfb-1.4-0/gfxdrivers" || /bin/mkdir -p "/work/arm-linux/target/usr/lib/directfb-1.4-0/gfxdrivers"</div>

<div>test -z "/usr/lib/directfb-1.4-0/gfxdrivers" || /bin/mkdir -p "/work/arm-linux/target/usr/lib/directfb-1.4-0/gfxdrivers"</div><div> /bin/bash ../../libtool   --mode=install /usr/bin/install -c -s '<a href="http://libdirectfb_nvidia.la" target="_blank">libdirectfb_nvidia.la</a>' '/work/arm-linux/target/usr/lib/directfb-1.4-0/gfxdrivers/<a href="http://libdirectfb_nvidia.la" target="_blank">libdirectfb_nvidia.la</a>'</div>

<div>libtool: install: warning: relinking `<a href="http://libdirectfb_nvidia.la" target="_blank">libdirectfb_nvidia.la</a>'</div><div>(cd /work/arm-linux/build/directfb-1.4.2/gfxdrivers/nvidia; /bin/bash ../../libtool  --tag=CC --mode=relink /data/omap_linux/a0919486/arm-unknown-linux-uclibcgnueabi/bin/arm-linux-gcc -Os -pipe -Os --sysroot /work/arm-linux/staging/ -O3 -ffast-math -pipe -Os -pipe -Os --sysroot /work/arm-linux/staging/ -D_GNU_SOURCE -Werror-implicit-function-declaration -module -avoid-version --sysroot /work/arm-linux/staging/ -lz --sysroot /work/arm-linux/staging/ -o <a href="http://libdirectfb_nvidia.la" target="_blank">libdirectfb_nvidia.la</a> -rpath /usr/lib/directfb-1.4-0/gfxdrivers nvidia.lo nvidia_state.lo nvidia_2d.lo nvidia_3d.lo nvidia_primary.lo nvidia_overlay.lo -lm ../../lib/direct/<a href="http://libdirect.la" target="_blank">libdirect.la</a> ../../lib/fusion/<a href="http://libfusion.la" target="_blank">libfusion.la</a> ../../src/<a href="http://libdirectfb.la" target="_blank">libdirectfb.la</a> -ldl -lpthread -inst-prefix-dir /work/arm-linux/target)  </div>

<div>/data/omap_linux/a0919486/arm-unknown-linux-uclibcgnueabi/bin/arm-linux-gcc -Os -pipe -Os  --sysroot /work/arm-linux/staging/ -shared  .libs/nvidia.o .libs/nvidia_state.o .libs/nvidia_2d.o .libs/nvidia_3d.o .libs/nvidia_primary.o .libs/nvidia_overlay.o  -lz -lm -L/work/arm-linux/target/usr/lib -L/usr/lib -ldirect -lfusion -ldirectfb -ldl -lpthread  -Wl,-soname -Wl,libdirectfb_nvidia.so -o .libs/libdirectfb_nvidia.so</div>

<div>/usr/lib/libm.so: file not recognized: File format not recognized</div><div>collect2: ld returned 1 exit status</div><div>libtool: install: error: relink `<a href="http://libdirectfb_nvidia.la" target="_blank">libdirectfb_nvidia.la</a>' with the above command before installing it</div>

<div>make[5]: *** [install-nvidiaLTLIBRARIES] Error 1</div><div><br></div></div><div>Any help would be highly appreciated</div><div>Gilles.</div>
<br>_______________________________________________<br>
buildroot mailing list<br>
<a href="mailto:buildroot@busybox.net">buildroot@busybox.net</a><br>
<a href="http://lists.busybox.net/mailman/listinfo/buildroot" target="_blank">http://lists.busybox.net/mailman/listinfo/buildroot</a><br></blockquote></div><br>