[meta-ti] Getting TI tools into [host] SDK
Denys Dmytriyenko
denys at ti.com
Fri Mar 10 18:53:23 PST 2017
On Fri, Mar 10, 2017 at 06:45:00PM -0800, Khem Raj wrote:
>
>
> On 3/10/17 6:27 PM, Denys Dmytriyenko wrote:
> > On Fri, Mar 10, 2017 at 06:00:20PM -0800, Khem Raj wrote:
> >>
> >>
> >> On 3/10/17 5:47 PM, Denys Dmytriyenko wrote:
> >>> On Wed, Mar 08, 2017 at 09:03:28AM -0800, Khem Raj wrote:
> >>>> On 17-03-08 09:10:18, Gary Thomas wrote:
> >>>>> I'm trying to build a [host] SDK for my target which uses some
> >>>>> TI tools, via -c populate_sdk_ext
> >>>
> >>> Gary,
> >>>
> >>> We don't use -c populate_sdk to produce SDKs. Instead, we still rely on the
> >>> old meta-toolchain mechanism. First, because it can be incorporated into other
> >>> recipes - i.e. we have a recipe that combines rootfs and SDK into one tarball.
> >>> Second, it provides more control to what get's packaged into SDK. Third, it
> >>> doesn't have this undefined magic to packaging stuff - i.e. this post is an
> >>> example of it failing. And only one slight drawback - requires keeping rootfs
> >>> image recipe in sync with meta-toolchain SDK recipe...
> >>>
> >>>
> >>>>> In particular, I'm using recipes-ti/devtools/ti-cgt-pru_2.1.4.bb
> >>>>> I include ti-cgt-pru-native to use the tools in my bitbake recipes - that works fine.
> >>>>> I include ti-cgt-pru in my target image to get the tools on my board - that also works.
> >>>>>
> >>>>> The problem is that in my SDK, none of the binaries are included, including clpru:
> >>>>>
> >>>>> $ ls -l /home/gthomas/my_ti_sdk/tmp/sysroots/rainier-p8701/usr/share/ti/cgt-pru
> >>>>> total 16
> >>>>> drwxrwxr-x 2 gthomas gthomas 12288 Mar 8 08:22 include
> >>>>> drwxrwxr-x 3 gthomas gthomas 4096 Mar 8 08:22 lib
> >>>>>
> >>>>> I added this to try and include the files:
> >>>>> TOOLCHAIN_HOST_TASK += "'nativesdk-ti-cgt-pru"
> >>>>> and I can see that there was a nativesdk-ti-cgt-pru built which does have all the
> >>>>> executables included, they just aren't being packaged.
> >>>>>
> >>>>> $ ls tmp/work/x86_64-nativesdk-mysdk-linux/nativesdk-ti-cgt-pru/2.1.4-r0/image/opt/mydistro/2.2+snapshot/sysroots/x86_64-amltdsdk-linux/usr/share/ti/cgt-pru/bin
> >>>>
> >>>> perhaps you need to correct the install location for nativesdk may be
> >>>> via overriding do_install
> >>>
> >>> Why?
> >>
> >> because /usr/share doesnt look normal place for putting executables.
> >
> > True in general, but that shouldn't matter. FILES_${PN} lists those and that
> > should be enough. It appears you are just guessing...
> >
> > Sidenote:
> > This PRU CodeGen toolchain is kind of weird - it targets PRUs (Programmable
> > Real-time Units http://elinux.org/Ti_AM33XX_PRUSSv2) and provides binaries in
> > bin/, headers in include/ and libraries in lib/ directories. Some of the names
> > collide with system (e.g. libc.a) and hence cannot be installed in standard
> > locations, thus /usr/share. In fact, many of non-Linux specific components
> > that deal with specialized cores (i.e. non-general-purpose ARM, such as DSP,
> > PRU, IPU, numerous Cortex-M accelerators, etc.) are in fact as weird and are
> > also getting installed in /usr/share to not confuse people and not conflict
> > with the rest of the system...
>
> it would be better to have multiple sysroots for all these variants
> would be way simpler and understandable, but why do I care.
Unfortunately, OE doesn't easily support separate sysroots for "secondary"
processors, besides host and target, like DSP. We had looked into that long
time ago w/o much success. If you have any suggestions or recommendations, I'm
all ears!
--
Denys
More information about the meta-ti
mailing list