[yocto] ASSUME_PROVIDED, cmake-native and why cmake is subsequently not found?

Robert P. J. Day rpjday at crashcourse.ca
Thu Apr 25 05:05:15 PDT 2019


  (warning: i've been away from YP for well over a year and am now
studiously trying to catch up, so i have some work to do.)

  currently trying to build a "core-image-minimal" for a zedboard on
my wholly unsupported fedora 30 (branched) system, so i'm well aware
there will almost certainly be breakage as i try to resolve version
numbers and so on, but working off the "thud" branch, the first issue
i had was trying to configure cmake-native -- the error message is
exactly what you can read someone asking about here:

https://stackoverflow.com/questions/52663287/glibcxx-3-4-26-not-found

/home/rpjday/oe/builds/zedboard/tmp/work/x86_64-linux/cmake-native/3.12.2-r0/build/Bootstrap.cmk/cmake:
/home/rpjday/oe/builds/zedboard/tmp/sysroots-uninative/x86_64-linux/usr/lib/libstdc++.so.6:
version `GLIBCXX_3.4.26' not found (required by
/home/rpjday/oe/builds/zedboard/tmp/work/x86_64-linux/cmake-native/3.12.2-r0/build/Bootstrap.cmk/cmake)
| ---------------------------------------------
| Error when bootstrapping CMake:
| Problem while running initial CMake
| ---------------------------------------------

  i'm unsure how to resolve that easily, but my first reaction was,
"if i already have cmake installed on the host, why not just take
advantage of ASSUME_PROVIDED"? i recall from some time back asking why
more host utils were not, by default, included in ASSUME_PROVIDED, and
the answer (quite reasonably) was that one wants to have as few
variables as possible for reliably replicated builds.

  fair enough, but in my case, until i figure out how to fix that, i
thought, why not just:

  ASSUME_PROVIDED += "cmake-native"

so i did, and that got me past the cmake-native build issue, until i
hit this trying to build libsolv-native:

DEBUG: Executing shell function do_configure
/home/rpjday/oe/builds/zedboard/tmp/work/x86_64-linux/libsolv-native/0.6.35-r0/temp/run.do_configure.16705:
line 130: cmake: command not found

  hang on ... why would a subsequent recipe not be able to locate
/usr/bin/cmake on my host after i explicitly identified cmake-native
as assumed to be provided? is there something about the libsolv-native
recipe that does not take that possibility into account? i'm just
about to check, but if someone has an explanation for that, i'm
all ears.

  finally, regarding ASSUME_PROVIDED, given that i'm already living
life dangerously with an unsupported distro, is there any harm in just
loading up on ASSUME_PROVIDED packages, as long as they work? in many
cases, i can see that the version that would be built by YP is close
to, if not identical to, my host version. so other than risking
breakage down the line as versions change, as long as the host
packages work, is there any harm in just taking advantage of them?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                         http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================


More information about the yocto mailing list