[Openembedded-users] External toolchain + uclibc
Khem Raj
raj.khem at gmail.com
Tue Jan 18 19:26:26 UTC 2011
On Tue, Jan 18, 2011 at 7:25 AM, Rahul Gundecha
<rahul.gundecha at gmail.com> wrote:
> Here is what I am doing -
> I am having a external toolchain based on glibc. I want to build uclibc
> library of OE. And compile other packages against uclibc library for ARM.
>
> I have a recipe external-toolchain-<vendor>.bb in openembedded/recipes/meta/
> directory.
> Problem here is I do not find file /usr/include/bits/uClibc_config.h in
> oe/tmp/sysroots/ directory which signifies that this is a uclibc system.
>
OK I am assuming that the external toolchain you are trying to plugin
is a uclibc-based toolchain
please note that if external toolchain is constructed with other
libraries (e.g. glibc eglibc) then it may have
problems building a uclibc based system. So make sure that external
toolchain was configured with uclibc
secondly the TARGET_OS for arm/uclibc systems with EABI is
linux-uclibceabi and not linux-uclibc
if you use linux-uclibc it will use Old ABI which may not be what the
external toolchain is configured for.
> Pasting my local.conf file contents below.
> DL_DIR = "${PWD}/oe_sources"
> TMPDIR = "${PWD}/tmp"
>
> # BitBake configuration
> BBFILES = "${PWD}/openembedded/recipes/*/*.bb"
> BBFILES += "${PWD}/local/recipes/*/*.bb"
> BBFILE_COLLECTIONS="upstream local"
> BBFILE_PATTERN_upstream = "^${PWD}/openembedded/"
> BBFILE_PATTERN_local = "^${PWD}/local/"
> BBFILE_PRIORITY_upstream = "5"
> BBFILE_PRIORITY_local = "10"
> BBMASK = ""
>
> PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
> PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-qpe"
> #PREFERRED_PROVIDERS += "
> virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
> #PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
> #PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
> PREFERRED_PROVIDER_virtual/libx11 = "diet-x11"
>
> PREFERRED_PROVIDER_linux-libc-headers = "external-toolchain"
> PREFERRED_PROVIDER_glibc-thread-db = "external-toolchain"
> PREFERRED_PROVIDER_libstdc++ = "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial =
> "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate =
> "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "external-toolchain"
> PREFERRED_PROVIDER_virtual/binutils = "external-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc =
> "external-toolchain"
> PREFERRED_PROVIDER_libgcc = "external-toolchain"
> PREFERRED_PROVIDER_virtual/libc = "external-toolchain"
> PREFERRED_PROVIDER_virtual/libintl = "external-toolchain"
> PREFERRED_PROVIDER_virtual/libiconv = "external-toolchain"
>
> ASSUME_PROVIDED += " linux-libc-headers "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}gcc "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}gcc-cross "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}gcc-initial "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}gcc-intermediate "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}binutils "
> ASSUME_PROVIDED += " virtual/${TARGET_PREFIX}libc-for-gcc "
> ASSUME_PROVIDED += " libgcc "
> ASSUME_PROVIDED += " libstdc++ "
> ASSUME_PROVIDED += " virtual/libc "
> ASSUME_PROVIDED += " virtual/libintl "
> ASSUME_PROVIDED += " virtual/libiconv "
>
> ASSUME_SHLIBS = "libc.so.6:libc libstdc++.so.6:libstdc++
> libgcc_s.so.1:libgcc libm.so.6:libm libdl.so.2:libdl libcrypt.so.1:libcrypt
> libutil.so.1:libutil"
>
> MACHINE="<machine-name>"
> DISTRO="mcm"
> IMAGE_FSTYPES = "jffs2"
> ENABLE_BINARY_LOCALE_GENERATION = "0"
> #PARALLEL_MAKE = "-j 2"
> #BB_NUMBER_THREADS = "2"
>
> IPKG_ARCHS = "all armv5te ${MACHINE}"
> TARGET_ARCH = "arm"
> TARGET_VENDOR = "<vendor-name>"
> TARGET_OS = "linux-uclibc"
> TARGET_FPU = "soft"
>
> DISTRO_TYPE = "release"
> INHERIT += " package_ipk package_tar debian"
> PARALLEL_MAKE = "-j 2"
> BBINCLUDELOGS = "yes"
>
> export TOOLCHAIN_PATH =
> "${PWD}/../<vendor-name>/toolchain/<toolchain-prefix>"
> export PRE_BUILT =
> "${PWD}/../<vendor-name>/toolchain/<toolchain-prefix>/<toolchain-prefix>"
> export TOOLCHAIN_PREFIX = "<toolchain-prefix>"
> export TOOLCHAIN_OPTIONS = " --sysroot=${PKG_CONFIG_SYSROOT_DIR} "
>
> CVS_TARBALL_STASH = "http://www.oesources.org/source/current/"
> export CC = "<toolchain-prefix>-gcc-4.2.0
> ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> export CXX = "<toolchain-prefix>-g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> export CPP = "<toolchain-prefix>-gcc-4.2.0 -E${TOOLCHAIN_OPTIONS}"
> export LD = "<toolchain-prefix>-ld${TOOLCHAIN_OPTIONS}"
> export AR = "<toolchain-prefix>-ar"
> export AS = "<toolchain-prefix>-as"
> export RANLIB = "<toolchain-prefix>-ranlib"
> export STRIP = "<toolchain-prefix>-strip"
> export OBJCOPY = "<toolchain-prefix>-objcopy"
> BB_NUMBER_THREADS = "1"
>
> On Tue, Jan 18, 2011 at 12:40 PM, Khem Raj <raj.khem at gmail.com> wrote:
>>
>> On (18/01/11 12:34), Rahul Gundecha wrote:
>> > Hi all,
>> >
>> > I am building OE using external toolchain with uclibc. Does anyone did
>> > this
>> > process before? If yes, please point me the procedure for it.
>> >
>> > I am able to build OE using external toolchain with glibc. However I
>> > referred to sample config files and made necessary changes to build
>> > using
>> > uclibc. No luck in this case.
>>
>> what did you do to make uclibc external toolchains and what sort of errors
>> do you end up with.
>>
>> >
>> > Thanks,
>> > Rahul
>>
>> > _______________________________________________
>> > Openembedded-users mailing list
>> > Openembedded-users at linuxtogo.org
>> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-users
>>
>
>
More information about the Openembedded-users
mailing list