Chuck Wolber
2018-11-29 00:09:50 UTC
Background: I have an image that works in pyro. I am migrating the image to
thud.
Some of the add-on code to our image requires the /lib64 directory (in
particular the VirtualBox Additions). I have proven that a simple symlink
(/lib -> /lib64) fixes the problem. This symlink was being applied with the
following code at the very bottom of the image:
IMAGE_PREPROCESS_COMMAND += "symlink_lib64; "
symlink_lib64() {
ln -s /lib ${IMAGE_ROOTFS}/lib64
}
When I use that same code with Yocto thud, I get the following build error:
DEBUG: Executing shell function prelink_image
Size before prelinking 818112.
/build/poky/tmp/work/qemux86_64-linux/common-os-image/1.0-r0/recipe-sysroot-native/usr/sbin/prelink:
Could not record directory /lib/modules-load.d: No such file or directory
WARNING: exit code 1 from a shell command.
Looking at the image generation diagram here (
https://www.yoctoproject.org/docs/2.6/overview-manual/overview-manual.html#image-generation-dev-environment),
it would seem to indicate that IMAGE_PREPROCESS_COMMAND runs after the
linker steps in do_rootfs. So it is unclear why prelink is failing during
the do_image phase.
Where is the correct place to create a /lib -> /lib64 symlink in our image
recipe?
Thank you,
..Ch:W..
thud.
Some of the add-on code to our image requires the /lib64 directory (in
particular the VirtualBox Additions). I have proven that a simple symlink
(/lib -> /lib64) fixes the problem. This symlink was being applied with the
following code at the very bottom of the image:
IMAGE_PREPROCESS_COMMAND += "symlink_lib64; "
symlink_lib64() {
ln -s /lib ${IMAGE_ROOTFS}/lib64
}
When I use that same code with Yocto thud, I get the following build error:
DEBUG: Executing shell function prelink_image
Size before prelinking 818112.
/build/poky/tmp/work/qemux86_64-linux/common-os-image/1.0-r0/recipe-sysroot-native/usr/sbin/prelink:
Could not record directory /lib/modules-load.d: No such file or directory
WARNING: exit code 1 from a shell command.
Looking at the image generation diagram here (
https://www.yoctoproject.org/docs/2.6/overview-manual/overview-manual.html#image-generation-dev-environment),
it would seem to indicate that IMAGE_PREPROCESS_COMMAND runs after the
linker steps in do_rootfs. So it is unclear why prelink is failing during
the do_image phase.
Where is the correct place to create a /lib -> /lib64 symlink in our image
recipe?
Thank you,
..Ch:W..