14251 Commits

Author SHA1 Message Date
3ee59d1249 base: remove exceptions for signal-context alloc
This patch unifies the error types of Alloc_contex_result and
Signal_source_result using the common Alloc_error. It replaces the use
of exceptions by error types witin core and removes the use of the 'new'
operator from the Signal_broker.

Issue #5245
2025-05-27 08:33:22 +02:00
3d8f77f227 core: remove 'new' from platform_rom_modules.cc
Issue #5245
2025-05-27 08:33:22 +02:00
0bf28224a7 base: use common Session_error in session factory
This patch unifies Parent::Session_error, Root::Create_error, and
Local_service::Create_error by using the centrally defined Session_error.
This type is now also used by Session_state::Factory, which thereby
becomes void of exceptions.

The patch also streamlines the Session_response enum type to become
consistent with the naming of the Session_error conditions.

Issue #5245
2025-05-27 08:33:22 +02:00
02a8e79064 event_filter: log number of present fingers
This extends the motion-logging of the log filter to also print the
number of present distinct touch IDs (i.e. fingers).

Issue #5578
2025-05-27 08:33:22 +02:00
2c7e040bd0 event_filter: make multitouch tracking more robust
When the multitouch driver occasionally looses track of a finger, it
may occur that touch id 0 is released before the other ids. This messes
with the gesture detection. This commit adds a Multitouch struct that reliably
tracks the presence of fingers for all gestures and thereby moves this state
out of the individual gestures.

Fixes #5578
2025-05-27 08:32:06 +02:00
7d6b9698c0 qt6: fix compile errors with GCC 14
Fixes #5579
2025-05-27 08:32:06 +02:00
9cf819c17c libc: prevent warning about overriding hidden
.../repos/base/include/base/slab.h:167:24: warning: ‘virtual void Genode::Slab::free(void*, Genode::size_t)’ was hidden [-Woverloaded-virtual=]
  167 |                 void   free(void *addr, size_t) override { _free(addr); }
      |                        ^~~~
.../repos/libports/src/lib/libc/malloc.cc:68:22: note:   by ‘void Libc::Slab_alloc::free(void*)’
   68 |                 void free(void *ptr) { Slab::free(ptr, _object_size); }
2025-05-27 08:32:06 +02:00
d12e6f1616 libffi: adapt to GCC 14
Issue #5540
2025-05-27 08:32:06 +02:00
4a6c5bd00a base-fiasco: adapt to GCC 14
Issue #5540
2025-05-27 08:32:06 +02:00
fd3d7ca837 mk: use .dword for undefined for riscv-ABI stubs
.long is 32-bit on riscv64 and will not link when undefined symbols are
created this way. Use .dword which is 64 bit wide.
2025-05-27 08:32:06 +02:00
1944f920f6 dde_linux: remove legacy_linux port
Retired the port for now because all drivers depending on it got
updated by now.

Issue #5559.
2025-05-27 08:32:06 +02:00
bbaff7334b lx_emul: unify Block bindings
Consolidate the Genode-C-API Block users by having one implementation
in the lx_emul library.

Fixes #5559.
2025-05-27 08:32:06 +02:00
f28da3b8a1 hw: revoke signal contexts in destruction
When destroying a signal context on behalf of core, we've to
ensure that it isn't used directly within core/kernel any further
to signal interrupts and vcpu events to.

Fix #5529
2025-05-27 08:32:06 +02:00
f28114e72a hw: collect irq and vm session objects in registry
Ref #5529
2025-05-27 08:32:06 +02:00
11b2a1aed0 genode_rel.ld: keep .init_array.* entries
Fixes #5574
2025-05-27 08:32:06 +02:00
52f69baa42 ldso: fix page fault at IP 0 with GCC 14 on RISC-V
Always inline Reloc_plt_generic constructor in order to avoid call
through GOT which is zeroed.

issue #5576
2025-05-27 08:32:06 +02:00
42bc8d8e87 hw/riscv: add dummy symbols of signal receiver
These symbols are never called in core but the linker fails to
garbage-collect them as on other platforms.
2025-05-27 08:32:05 +02:00
1a682f6832 ada-runtime: update to GNAT v14
Issue #5540
2025-05-27 08:32:05 +02:00
129364da42 spark: move RTS preparation into import-spark.mk
As lib/spark is a shared library it may not be build (if at all) before
the spark component itself. Therefore, the RTS preparation of
ada_source_path/ada_object_path may be required on component build.

Issue #5540
2025-05-27 08:32:05 +02:00
5a5cdcc7c7 Remove unsupported -ffreestanding from CC_ADA_OPT
Issue #5540
2025-05-27 08:32:05 +02:00
374aa5e39d base-foc: fix port for modern .section assembler flags
Issue #5540
2025-05-27 08:32:05 +02:00
92798e01eb usb_net: adjust to gcc 14.2 toolchain update
Issue #5540
2025-05-27 08:32:05 +02:00
27c0092f51 ccid: fix compile errors with GCC 14
Fixes #5549
2025-05-27 08:32:05 +02:00
3cba6a1102 hw: unify Vm_root and (x86) Vm_session_component
The Core::Vm_root class for x86 and armv7/8 is actually
identical apart from the detail that it has to create
distinct Vm_session_component variants. Therefore, unify
it's class declaration, and most of the definitions,
apart from _create_session.
The Vmx_session_component and Svm_session_component classes
are also identical apart from the concrete page-table used.
Therefore, unify those classes to one x86-specific
Vm_session_component template that takes the page-table as
argument.

Ref #5572
2025-05-27 08:32:05 +02:00
5a35b2987e linker: add .lbss data section to linker script
Some symbols end up in the large bss data section, e.g. bootstrap
cpu stacks of base-hw, which needs to be assigned within the linker
script to not end outside the binary's address range.

Ref #5540
Ref #5565
2025-05-27 08:32:05 +02:00
2757e8a26e base-okl4: relax warnings to fix build with GCC 14
Issue #5540
2025-05-27 08:32:05 +02:00
c991e101c2 qt6: define QT_HOST_PATH
Fixes #5570
2025-05-27 08:32:05 +02:00
747b609e48 qt5: fix compile errors with GCC 14
Fixes #5571
2025-05-27 08:32:05 +02:00
53e76243a1 lx_hybrid: add delete(void*, unsigned long) for 32 bit
Genode tool-chain creates calls to delete(void*, unsigned long) on
32-bit targets, because size_t is unsinged long. In contrast the
host-tool chain that links hybrid targets only contains delete(void*,
unsigned) because size_t is unsigned fot these platforms. Hence, we
create a wrapper for delete(*, unsigned long) that calls the unsigned
version.

issue #5560
2025-05-27 08:32:05 +02:00
b4a8642a72 base/quota_guard.h: remove exceptions
This patch replaces the use of exceptions and the 'Reservation' guard
object by the 'Allocation' pattern.

Issue #5245
2025-05-27 08:32:05 +02:00
b73d407ed3 core: remove Core_virtual_memory_exhausted
Issue #5245
2025-05-27 08:32:05 +02:00
1087828e06 core: use _alloc_obj instead of new
Issue #5563
2025-05-27 08:32:05 +02:00
b54ca289e6 root/component.h: add '_alloc_obj' helper method
This method eliminates the need for using 'new' for the creation of
session objects, eliminating the throwing of Out_of_ram, Out_of_caps,
and Denied exceptions.

Issue #5563
2025-05-27 08:32:05 +02:00
2b993c22b0 base/memory.h: Memory::Constrained_obj_allocator
The 'Constrained_obj_allocator' template can be used to turn a byte
allocator into an allocator of a specific object type.

Fixes #5563
2025-05-27 08:32:05 +02:00
bb94c2b3b1 root/component.h: support errors as return values
The '_create_session' method returns now a 'Create_result' instead
of a pointer. This result can either be a reference to the new
session object or an 'Create_error' code.

The '_upgrade_session' and '_destroy_session' method now take a
reference instead of a pointer as argument.

Fixes #5562
2025-05-27 08:32:05 +02:00
ba60d5f1de less: fix compile error with GCC 14
Fixes #5558
2025-05-27 08:32:05 +02:00
f54a4cf54d gdb: fix compile error with GCC 14
Fixes #5557
2025-05-27 08:32:05 +02:00
c8579c4e77 base-linux: fix compile errors with GCC 14 and older glibc
Fixes #5567
2025-05-27 08:32:05 +02:00
2e204170f8 base-hw: fix compile error for GCC 14
Issue #5565
2025-05-27 08:32:05 +02:00
faa900b8ba virtualbox6: fix compile errors with GCC 14
Fixes #5553
2025-05-27 08:32:04 +02:00
80bce92df9 vim: fix compile error with GCC 14
Fixes #5548
2025-05-27 08:32:04 +02:00
54e203df24 vfs_tresor: fix compile error with GCC 14
Fixes #5552
2025-05-27 08:32:04 +02:00
de678cf576 sel4: fix GCC-14 build error
Renaming the local variable fixes the following error:

  declaration of ‘Genode::Quota_guard<Genode::Ram_quota>::Reservation ram’
  shadows a parameter

Issue #5540
2025-05-27 08:32:04 +02:00
20bcd9ed26 prepare_ports: prevent regeneration from '*.yy' files
Issue #5540
2025-05-27 08:32:04 +02:00
974a9f15c2 foc: enable GCC 14 support
Issue #5564
2025-05-27 08:32:04 +02:00
3df1c2edf5 os/packet_stream.h: propagate construction errors
The initialization of the packet-stream allocator via
'Range_allocator::add_range' can fail with an 'Alloc_error'. This could
be observed with run/nic_router_stress running in Pistachio.

The patch reflects the construction error as constant 'constructed' that
can now be evaluated by the creating code.

It also fixes the particular problem of the NIC/Uplink-session creation
error in the NIC router and adds diagnostic messages to reveal further
manifestations of this problem.

Fixes #5566
2025-05-27 08:32:04 +02:00
28e3daaff0 base/output.h: Make 'Ok' printable
Issue #5245
2025-05-27 08:32:04 +02:00
c9842d4b43 sanitizer: update to version 14.2.0
Issue #5540
2025-05-27 08:32:04 +02:00
c5262a6d14 gcov: update to version 14.2.0
Issue #5540
2025-05-27 08:32:04 +02:00
617190bf36 stdcxx: update to version 14.2.0
Issue #5540
2025-05-27 08:32:04 +02:00