[yocto] Can't get *.a's into SDK sysroot

Zoran Stojsavljevic zoran.stojsavljevic at gmail.com
Wed Jul 25 01:23:36 PDT 2018


Hello Andre,

> RDEPENDS_${PN}-dev += "${PN}-staticdev"

I also read this email, and decided to investigate myself. Since I
wrote meta-mylayer with cannelloni recipe in it.

To find out if the recipe works correctly, and it is incorporated
(upfront) in ROOTFS, I did the following:
[1] Did the compilation of the clean tree;
[2] After that, I did: bitbake -s | grep cannelloni -> yes, the build
system sees it;
[3] Changed to ${TMPDIR}/work and issued the command: find . -name cannelloni

To my surprise, the search produced empty results.

Then I added your line to the cannelloni recipe: RDEPENDS_${PN}-dev +=
"${PN}-staticdev"

Again, bitbake -c cleanall cannelloni, then bitbake cannelloni, and
step [3] produced visible results.

Now I see it in the .../tmp/work/...

But, there were NOT any changes in: .../tmp/deploy/images/beaglebone/
directory (in ${build} directory, I guess)???

So, what I need to do to see build components changed (since I assume,
cannelloni still did not make it in ROOTFS)???

Thank you,
Zoran
_______

On Wed, Jul 25, 2018 at 2:08 AM, Andre McCurdy <armccurdy at gmail.com> wrote:
> On Tue, Jul 24, 2018 at 4:53 PM, Greg Wilson-Lindberg <GWilson at sakuraus.com>
> wrote:
>>
>> I've created a recipe for Canfestival (a CAN bus CANOpen support library).
>> I have had it building for a while, but I had the configuration set up to
>> build all parts of it as .so's. I need to change it so that parts of the
>> library are .a's. My problem is that I can't get the .a's to copy to the SDK
>> sysroot /usr/lib directory. The .a's are in the canfestival image/usr/lib &
>> sysroot-destdir/usr/lib directories, but nothing that I've tried has gotten
>> them to the SDK sysroot.
>>
>>
>>
>> Here is the canfestival_3-asc.bb file that I'm using:
>>
>>
>>
>> SUMMARY = "Independent CANOpen® stack"
>>
>> DESCRIPTION = "CanFestival focuses on providing an ANSI-C platform
>> independent \
>>
>>                CANOpen® stack that can be built as master or slave nodes
>> on PCs, \
>>
>>                Real-time IPCs, and Microcontrollers."
>>
>>
>>
>> HOMEPAGE = "http://www(dot)canfestival(dot)org/" // obfuscated to get past
>> our email system
>>
>>
>>
>> SRCREV = "895:8973dd8be7e8"
>>
>>
>>
>> SRC_URI =
>> "hg://bitbucket.org/Mongo;protocol=https;module=canfestival-3-asc \
>>
>>            file://canfestival_3-asc-configure.patch \
>>
>>            file://canfestival_3-asc-makefile.in.patch \
>>
>>            file://canfestival_3-asc-src_makefile.in.patch \
>>
>>            \
>>
>>            file://sdo.c.patch \
>>
>>            file://def.h.patch \
>>
>>            "
>>
>> PR = 'r01'
>>
>>
>>
>> LICENSE = "LGPLv2"
>>
>> LIC_FILES_CHKSUM = "file://COPYING;md5=46ec399d3928b6c91e3634ab7263af44 \
>>
>>                     file://LICENCE;md5=085e7fb76fb3fa8ba9e9ed0ce95a43f9"
>>
>>
>>
>> TARGET_CC_ARCH += "${LDFLAGS}"
>>
>>
>>
>>
>>
>>
>>
>> do_configure() {
>>
>>     bbplain "Starting Configure"
>>
>>     #bbplain "rootfs: ${D}"
>>
>>     ./configure --target=unix --prefix=${D}/usr/ --can=socket
>> --timers=unix  --SDO_MAX_SIMULTANEOUS_TRANSFERS=30
>> --SDO_MAX_LENGTH_TRANSFER=4096 --MAX_NB_TIMER=128 --SDO_TIMEOUT_MS=3000
>> --debug="WAR"
>>
>>
>>
>>     bbplain "Configure Done"
>>
>> }
>>
>>
>>
>> do_compile() {
>>
>>     oe_runmake canfestival
>>
>> }
>>
>>
>>
>> do_install() {
>>
>>     bbplain "Starting Install"
>>
>>     #bbplain "rootfs: ${D}"
>>
>>     oe_runmake install PREFIX=${D}/usr/
>>
>>
>>
>>     bbplain "Install Done"
>>
>> }
>>
>>
>>
>> FILES_${PN}-dbg = "/usr/src/debug/canfestival"
>>
>> FILES_${PN}-dev = "/usr/lib/libcanfestival*.a
>> /usr/include/canfestival/*.h"
>>
>> FILES_${PN} = "/usr/lib/libcanfestival*.a /usr/lib/libcanfestival*.so"
>>
>>
>>
>> #PACKAGE_BEFORE_PN = "${PN}-info"
>>
>> #FILES_${PN}-info = "usr/lib/pkgconfig"
>>
>>
>>
>> I've fiddled with the various FILES lines, but nothing that I do gets the
>> .a files copied to the SDK sysroot /usr/lib directory.
>>
>>
>>
>> Any insight into what is going wrong would be greatly appreciated.
>
>
> Assuming the static libs are being built and installed correctly they should
> be packaged correctly by the default packaging rules. ie you shouldn't need
> to tweak any FILES_xxx values.
>
> However you will need to ensure that the -staticdev package gets included in
> the SDK. Assuming you always want the static libs for this particular recipe
> to be available then you can try adding the following to the recipe:
>
>   RDEPENDS_${PN}-dev += "${PN}-staticdev"
>
>
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>


More information about the yocto mailing list