cloudius-systems / osv

OSv, a new operating system for the cloud.
osv.io
Other
4.12k stars 605 forks source link

loader.py: fix 'osv syms' load bootfs.manifest #1329

Closed wkozaczuk closed 3 months ago

wkozaczuk commented 3 months ago

It has been a while since we extracted the ZFS code from the kernel to build it as a shared library libsolaris.so that gets placed on the bootfs filesystem and loaded from there. For details see d7a627484b34aa8254d8fe444972aa18fe007ca7.

The command osv syms used when debugging and implemented in loader.py relies on the list of files that go into the image and is specified in build/last/usr.manifest. Unfortunately, libsolaris.so is not part of this manifest file but instead is part of bootfs.manifest. This causes the osv syms command to break as illustrated by #1324.

This patch fixes this by changing the Manifest class constructor to load information about files from both bootfs.manifest and usr.manifest.

This patch also fixes warnings about unescaped backslashes in the regex expressions.

Fixes #1324