On Fri, Oct 6, 2017 at 7:56 AM, Patrick Vacek <patr...@advancedtelematic.com> wrote: > On 06.10.2017 15:36, Khem Raj wrote: >> On Fri, Oct 6, 2017 at 5:05 AM, Patrick Vacek >> <patr...@advancedtelematic.com> wrote: >>> Hello, >>> >>> I'm trying to understand how Yocto figures out which Boost libraries to >>> install in an image. I've been studying the Boost recipes and it looks >>> like RRECOMMENDS is used to specify all of the libraries, but yet my >>> image only gets a subset of them. It's the subset that I typically need, >>> so it's fine, but I want to understand how the process works. >>> >>> There's an additional tricky detail that got me looking into this. When >>> I bitbake a recipe I've written which just lists "boost" in DEPENDS, >>> running ldd the compiled executable does not appear to depend on a >>> couple of the boost libraries that I'd specified in CMake (although it >>> does depend on several others). Only the libraries that are specifically >>> mentioned with ldd are installed in the image. However, if I manually >>> cross-compile the same code via the native-sdk, ldd indicates that all >>> the expected libraries are dependencies. As such, that executable will >>> not be able to run on my device until I install the missing libraries. >>> Oddly, those libraries are built with bitbake, but not installed! How >>> does bitbake manage to remove some of these dependencies? >> >> it could be thst applications dependency detection mechanism is behaving >> differently and presenting different set to linker. >> >> Secondly its possible that linker options in play are different e.g. >> --as-needed and --copy-dt-needed-entries might be in play >> > > It turns out that the troublesome boost libraries are not actually used > after all! I haven't yet deduced if the sort of linker flags you > mentioned are being used, but that may be at the root of the issue. > > What's now confusing me is why, after removing all references to the > extraneous libraries, CMake still finds them and the cross-compiled > binary still links against them. The only thought I've had so far is > that they are a transitive dependency, although that seems unlikely. > However, that's probably a matter to look into with CMake, not Yocto...
its possible that the faulty build is using a linker which defaults to pulling libraries from DT_NEEDED segments -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto