On 01/04/2011 07:59 PM, Mike Frysinger wrote:
On Tuesday, January 04, 2011 04:02:59 Patrice Tisserand wrote:
Mike Frysinger wrote:
On Monday, January 03, 2011 05:19:58 Kfir Lavi wrote:
when I try to cross compile sys-fs/e2fsprogs I get this error:
checking for blkid_get_cache in -lblkid... no

copying the uuid and blkid files to the cross environment solve the
problem and the package compiles.
cp /tmp/target_root/usr/lib/libuuid.*
/usr/i686-gentoo-linux-gnu/usr/lib/ cp
/tmp/target_root/usr/lib/libblkid.* /usr/i686-gentoo-linux-gnu/usr/lib/
cp /tmp/target_root/lib/libuuid.so.1*  /usr/i686-gentoo-linux-gnu/lib/
cp /tmp/target_root/lib/libblkid.so.1*  /usr/i686-gentoo-linux-gnu/lib/

How can this problem be solved permanently?

you should be emerging library packages into your SYSROOT (/usr/$CTARGET)
before building/installing packages into your ROOT

Does adding -L /tmp/target_root/lib -L /tmp/target_root/usr/lib
-Wl,-rpath-link,/tmp/target_root/lib
-Wl,-rpath-link,/tmp/target_root/usr/lib to LDFLAGS could not be an
alternative ?

no.  that's broken by design.
Thanks for your answer, I have found the following sentence in gentoo embedded handbook: """The common convention is to use your /usr/CTARGET/ tree as your sysroot as the include/library directories in this tree are already encoded into the gcc cross-compiler for searching. You could use another directory and then add custom -I/-L paths to your CPPFLAGS/LDFLAGS, but this has historically proven to be problematic. Yes, it works most of the time, but the corner cases are why this method is discouraged. In the embedded handbook, we'll assume you're using the sysroot as your development ROOT.
"""
Do you know where I can find references about these corner cases ?

Also how can I handle creating 2 different target rootfs with different libraries versions but using the same cross-compilation toolchain?
Do I need to duplicate environment or is there some tips ?

Regards,
Patrice



Reply via email to