Skip to content

Makefile: Support usr-merged root filesystems#2781

Open
micromaomao wants to merge 1 commit into
microsoft:mainfrom
micromaomao:usr-merged-fs
Open

Makefile: Support usr-merged root filesystems#2781
micromaomao wants to merge 1 commit into
microsoft:mainfrom
micromaomao:usr-merged-fs

Conversation

@micromaomao

Copy link
Copy Markdown
Member

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

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>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 how bin is represented.
  • When usr-merged, create rootfs/usr/bin and make rootfs/bin a symlink to usr/bin to match expected binary locations.
  • Preserve existing behavior for non-usr-merged base rootfs inputs by creating rootfs/bin as a real directory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile
Comment on lines +92 to +99
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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--no-anchored means that bin also matches usr/bin. This was suggested by @helsaawy

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@micromaomao micromaomao requested a review from helsaawy June 18, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants