All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: Chris Conroy <Chris.Conroy@hillcrestlabs.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: Prebuilt toolchains
Date: Fri, 13 Nov 2009 16:00:35 -0700	[thread overview]
Message-ID: <4AFDE513.3080205@mlbassoc.com> (raw)
In-Reply-To: <1258137696.4913.55.camel@conroy-linux>

On 11/13/2009 11:41 AM, Chris Conroy wrote:
> On Fri, 2009-11-13 at 10:25 -0700, Gary Thomas wrote:
>> This helped me find the problem - libgcc was required by busybox and
>> the default provider for libgcc included gcc-cross.
>>
>> I ended up with only these [few] changes to get my own toolchain to
>> do the job:
>>
>>     #
>>     # Use prebuilt compiler components
>>     #
>>     TOOLCHAIN = "external"
>>     HOST_SYS = "${TARGET_ARCH}-${TARGET_OS}"
>>     TARGET_SYS = "${TARGET_ARCH}-${TARGET_OS}"
>>     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 += " virtual/libc "
>>     ASSUME_PROVIDED += " virtual/libintl "
>>     ASSUME_PROVIDED += " virtual/libiconv "
>>     export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \
>>                              -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir} \
>>                              -Wl,-O1"
>>
>> The HOST_SYS and TARGET_SYS changes were necessary because my toolchain
>> is called 'powerpc-linux-XXX', not 'powerpc-oe-linux-XXX'.
>>
>> I chose these changes (instead of just your advice) because I was already
>> down this path.  Sadly, this incantation *did* complete the build, but the
>> resulting file system did not import any of the "provided" libraries from
>> my external toolchain.  Did I miss something that would let the build
>> import these libraries?
>
> Yeah, this is the problem with ASSUME_PROVIDED as I see it. It removes
> the build system knowledge of these things and basically gives the
> responsibility for managing them back to you. Not good.
>
>>
>> Finally, in an effort to explore and understand more, I tried your method:
>>     #
>>     # Use prebuilt compiler components
>>     #
>>     TOOLCHAIN = "external"
>>     HOST_SYS = "${TARGET_ARCH}-${TARGET_OS}"
>>     TARGET_SYS = "${TARGET_ARCH}-${TARGET_OS}"
>>     export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \
>>                              -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir} \
>>                              -Wl,-O1"
>>     PREFERRED_PROVIDER_linux-libc-headers = "external-toolchain"
>>     PREFERRED_PROVIDER_glibc-thread-db = "external-toolchain"
>>     PREFERRED_PROVIDER_libstdc++-dev = "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_virtual/libc =  "external-toolchain"
>>     PREFERRED_PROVIDER_virtual/libintl =  "external-toolchain"
>>     PREFERRED_PROVIDER_virtual/libiconv =  "external-toolchain"
>>
>> Which led to these errors right away:
>>     ERROR: Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers
>>     (['/local/Angstrom_BeagleBoard  /openembedded/recipes/glibc/glibc_2.6.1.bb',
>>     '/local/Angstrom_BeagleBoard/openembedded/recipes/meta/external-toolchain.bb']) for runtime dependecy libsegfault
>>     The entries resulting in this conflict were: ['PREFERRED_PROVIDER_virtual/libc = glibc', 'PREFERRED_PROVIDER_virtual/libintl = external-toolchain']
>>     ERROR: Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers
>>     (['/local/Angstrom_BeagleBoard/openembedded/recipes/gcc/gcc-cross_4.4.2.bb',
>>     '/local/Angstrom_BeagleBoard/openembedded/recipes/meta/external-toolchain.bb']) for runtime dependecy libgcc
>>     The entries resulting in this conflict were: ['PREFERRED_PROVIDER_virtual/powerpc-linux-gcc = gcc-cross', 'PREFERRED_PROVIDER_virtual/libintl = external-toolchain']
>>
>
> You may need to edit the RPROVIDES of your toolchain. Here's what mine
> looks like:
>
> RPROVIDES = " glibc-dbg glibc catchsegv sln nscd ldd localedef
> glibc-utils glibc-dev glibc-locale libsegfault glibc-extra-nss
> glibc-thread-db glibc-pcprofile \
>                libgcc libgcc-dev libstdc++-dev libstdc++"
> PACKAGES_DYNAMIC = "glibc-gconv-*"
> INHIBIT_DEFAULT_DEPS = "1"

Still no joy, I'm afraid.  I now get a *huge* series of messages like these:

NOTE: preferred version 2.11.4.1 of xf86-video-geode not available (for item libsegfault)
NOTE: preferred version 1.0.1 of font-screen-cyrillic not available (for item libsegfault)
NOTE: preferred version 1.2.4 of opie-securityplugin-dummy not available (for item libsegfault)
NOTE: preferred version 6.9.0 of xf86-video-ati not available (for item libsegfault)
NOTE: preferred version 12.5.1 of xf86-input-vmmouse not available (for item libsegfault)
ERROR: Conflicting PREFERRED_PROVIDER entries were found which resulted in an attempt to select multiple providers 
(['/local/Angstrom_BeagleBoard/openembedded/recipes/gcc/gcc-cross_4.4.2.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxpm_3.5.7.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libice_1.0.4.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxrandr_1.2.3.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxfixes_4.0.3.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxinerama_1.0.3.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/libqpe/libqpe-opie_1.2.4.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libx11_1.1.5.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-proto/xproto_7.0.13.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxt_1.0.5.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxv_1.0.4.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxcursor_1.1.9.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxrender_0.9.4.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-xserver/xserver-xorg_1.5.3.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/gcc/gcc-cross-intermediate_4.4.2.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxext_1.0.4.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxi_1.2.0.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxmu_1.0.4.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/glibc/glibc_2.6.1.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/binutils/binutils-cross_2.20.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/glibc/glibc-initial_2.6.1.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxcomposite_0.4.0.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libsm_1.1.0.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxft_2.1.13.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/gcc/gcc-cross-initial_4.4.2.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-app/xrandr_1.2.3.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxaw_1.0.4.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxxf86vm_1.0.2.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/qte/qte-mt_2.3.10.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/xorg-lib/libxdamage_1.1.1.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/linux-libc-headers/linux-libc-headers_2.6.23.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/gnome/gconf-dbus_svn.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/avahi/avahi_0.6.24.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/libgpewidget/libgpewidget_0.117.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/libsdl/libsdl-x11_1.2.11.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/meta/external-toolchain.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/linux/linux_2.6.31.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/gtk+/gtk+_2.14.2.bb', 
'/local/Angstrom_BeagleBoard/openembedded/recipes/libusb/libusb_0.1.12.bb', '/local/Angstrom_BeagleBoard/openembedded/recipes/db/db3_3.2.9.bb']) for runtime dependecy libsegfault
The entries resulting in this conflict were: ['PREFERRED_PROVIDER_virtual/powerpc-linux-gcc = gcc-cross', 'PREFERRED_PROVIDER_libxpm = libxpm', 'PREFERRED_PROVIDER_libice = 
libice', 'PREFERRED_PROVIDER_libxrandr = libxrandr', 'PREFERRED_PROVIDER_libxfixes = libxfixes', 'PREFERRED_PROVIDER_libxinerama = libxinerama', 'PREFERRED_PROVIDER_virtual/libqpe1 
= libqpe-opie', 'PREFERRED_PROVIDER_virtual/libx11 = libx11', 'PREFERRED_PROVIDER_xproto = xproto', 'PREFERRED_PROVIDER_libxt = libxt', 'PREFERRED_PROVIDER_libxv = libxv', 
'PREFERRED_PROVIDER_libxcursor = libxcursor', 'PREFERRED_PROVIDER_libxrender = libxrender', 'PREFERRED_PROVIDER_virtual/xserver = xserver-xorg', 
'PREFERRED_PROVIDER_virtual/powerpc-linux-gcc-intermediate = gcc-cross-intermediate', 'PREFERRED_PROVIDER_libxext = libxext', 'PREFERRED_PROVIDER_libxi = libxi', 
'PREFERRED_PROVIDER_libxmu = libxmu', 'PREFERRED_PROVIDER_virtual/libc = glibc', 'PREFERRED_PROVIDER_virtual/powerpc-linux-binutils = binutils-cross', 
'PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = glibc-initial', 'PREFERRED_PROVIDER_libxcomposite = libxcomposite', 'PREFERRED_PROVIDER_libsm = libsm', 
'PREFERRED_PROVIDER_libxft = libxft', 'PREFERRED_PROVIDER_virtual/powerpc-linux-gcc-initial = gcc-cross-initial', 'PREFERRED_PROVIDER_xrandr = xrandr', 'PREFERRED_PROVIDER_libxaw = 
libxaw', 'PREFERRED_PROVIDER_libxxf86vm = libxxf86vm', 'PREFERRED_PROVIDER_virtual/libqte2 = qte-mt', 'PREFERRED_PROVIDER_libxdamage = libxdamage', 
'PREFERRED_PROVIDER_linux-libc-headers = linux-libc-headers', 'PREFERRED_PROVIDER_gconf = gconf-dbus', 'PREFERRED_PROVIDER_avahi = avahi', 'PREFERRED_PROVIDER_libgpewidget = 
libgpewidget', 'PREFERRED_PROVIDER_virtual/libsdl = libsdl-x11', 'PREFERRED_PROVIDER_virtual/libintl = external-toolchain', 'PREFERRED_PROVIDER_virtual/kernel = linux', 
'PREFERRED_PROVIDER_gtk+ = gtk+', 'PREFERRED_PROVIDER_virtual/libusb0 = libusb', 'PREFERRED_PROVIDER_virtual/db = db3']

Why is this so hard??  I just want to use the tools I already
have (and my customers are comfortable with)!

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



  reply	other threads:[~2009-11-13 23:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-11 17:00 Prebuilt toolchains Gary Thomas
2009-11-11 20:39 ` Chris Conroy
2009-11-11 21:07   ` Gary Thomas
2009-11-11 21:29     ` Chris Conroy
2009-11-13 14:06       ` Gary Thomas
2009-11-13 15:57         ` Chris Conroy
2009-11-13 17:25           ` Gary Thomas
2009-11-13 18:41             ` Chris Conroy
2009-11-13 23:00               ` Gary Thomas [this message]
2009-11-16 22:40                 ` Gary Thomas
2009-11-17  3:12                   ` Mike Turquette
2009-11-17  7:34 ` Koen Kooi
2009-11-18 13:40   ` Gary Thomas
2009-11-18 15:29     ` Gary Thomas
2009-11-18 23:24   ` Gary Thomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AFDE513.3080205@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=Chris.Conroy@hillcrestlabs.com \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.