Enable KVM by default, since beginning with Qemu 6.1.0 the initial
AMD-NPT fault is missing and no guest code is actually mapped by us ...
Qemu+KVM on AMD is working fine, however the initial guest fault address is
page aligned and not the exact IP as on Intel ...
On some platforms in rare cases the timeout of 2 seconds is not
enough. This can have different reasons: host-load when using qemu,
stucking serial line output, scheduling anomaly. But in general
the test succeeds when increasing the waiting time slightly.
When implemented as inline header function, __builtin_unreachable seems
to trigger dangerous compiler optimizations, like removing the '_state =
USER' because the compiler assumes a non-returning branch.
fixes#5587
The change prevents the following build errors on riscv.
In file included from /data/depot/checker/api/vfs/2025-05-18/include/vfs/readonly_value_file_system.h:19,
from /data/depot/checker/src/vfs_legacy_oss/2025-05-18/src/lib/vfs/legacy_oss/vfs_oss.cc:22:
/data/depot/checker/api/vfs/2025-05-18/include/vfs/readonly_value_file_system.h: In instantiation of ‘class Vfs::Readonly_value_file_system<unsigned int>’:
/data/depot/checker/src/vfs_legacy_oss/2025-05-18/src/lib/vfs/legacy_oss/vfs_oss.cc:152:26: required from here
152 | _channels_fs .value(channels);
| ^
/data/depot/checker/api/vfs/2025-05-18/include/vfs/single_file_system.h:229:22: error: ‘virtual void Vfs::Single_file_system::close(Vfs::Vfs_handle*)’ was hidden [-Werror=overloaded-virtual=]
229 | void close(Vfs_handle *handle) override
| ^~~~~
/data/depot/checker/api/vfs/2025-05-18/include/vfs/readonly_value_file_system.h:170:22: note: by ‘void Vfs::Readonly_value_file_system< <template-parameter-1-1>, BUF_SIZE>::close(Vfs::Vfs_watch_handle*) [with T = unsigned int; unsigned int BUF_SIZE = 128]’
170 | void close(Vfs_watch_handle *handle) override
| ^~~~~
https://stackoverflow.com/questions/9995421/gcc-woverloaded-virtual-warnings
suggests to address this by an explicit using statement.
Issue #5540
otherwise the estimated size may be too small because of sparse files and
the creation of the image fails because of insufficient space in the image
file.
Seen with seL4 images
Issue #5581
During run/bomb, an attempt to delegate an already revoked capability may
lead to:
Assertion failed: delegated
genode/repos/base-sel4/src/lib/base/ipc.cc:252
also in core and the system hangs up.
Instead, continue and return an invalid capability. The higher level session
code can, will and have to deal with invalid capabilities already.
Issue #5581
This commit introduces 'raise(Unexpected_error)' for situations
that were formerly reflected directly as exceptions. Those conditions
still result in an exception but with added diagnostics.
The few parts of the API that strictly rely on C++ exceptions
(Xml_node, GENODE_RPC_THROW) are now guarded via __EXCEPTIONS.
Issue #5245
Besides replacing 'new' by 'Memory::Constrained_obj_allocator',
this patch consolidates the error types of the RPC functions that
can produce allocation failures.
The patch also removes the use of 'Attached_ram_dataspace' and
'Attached_dataspace' because these utilities throw.
Allocation errors of the trace-control area are now explicitly reflected
by 'Constructed' state values to Cpu_root.
Issue #5245