Makefile: Support usr-merged root filesystems#2781
Conversation
Without this UVM built with this Makefile doesn't boot when using Azure Linux rootfs. This is a new version of microsoft#2485 Signed-off-by: Dominic Ayre <dominicayre@microsoft.com> Co-authored-by: Tingmao Wang <tingmaowang@microsoft.com> Signed-off-by: Tingmao Wang <tingmaowang@microsoft.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the rootfs packaging logic in the repository’s Makefile so the generated UVM delta rootfs can boot correctly when the input base root filesystem is usr-merged (e.g., Azure Linux), where /bin is effectively provided via /usr/bin.
Changes:
- Detect whether the provided
$(BASE)rootfs is usr-merged by examining howbinis represented. - When usr-merged, create
rootfs/usr/binand makerootfs/bina symlink tousr/binto match expected binary locations. - Preserve existing behavior for non-usr-merged base rootfs inputs by creating
rootfs/binas a real directory.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| rm -rf /tmp/base-rootfs && mkdir -p /tmp/base-rootfs | ||
| tar -xf $(BASE) -C /tmp/base-rootfs --no-anchored --no-recursion bin | ||
| if [ "$$(readlink -f /tmp/base-rootfs/bin)" = "/tmp/base-rootfs/usr/bin" ]; then \ | ||
| mkdir -p rootfs/usr/bin; \ | ||
| ln -s usr/bin rootfs/bin; \ | ||
| else \ | ||
| mkdir -p rootfs/bin; \ | ||
| fi |
There was a problem hiding this comment.
--no-anchored means that bin also matches usr/bin. This was suggested by @helsaawy
There was a problem hiding this comment.
I think the suggestion is valid (at least partially). we're not cleaning up /tmp/base-rootfs, so it will persist between runs and may incorrectly resolve to usr-merged for non usr-merged. so mktemp -d approach is reasonable here. feedback on readlink is secondary.
Without this UVM built with this Makefile doesn't boot when using Azure Linux rootfs.
This is a new version of #2485
Signed-off-by: Dominic Ayre dominicayre@microsoft.com Signed-off-by: Tingmao Wang tingmaowang@microsoft.com