genode/repos/libports
Alexander Boettcher 916bd88e5e base: extend PD session by system_control_cap
Per Affinity::Location a system control cap can be requested. The capability
provides an RPC interface to request and set Cpu_state, as provided by the
former Pd::managing_system(Cpu_state) method. Invocation of those system
control capabilities then *can* (see below) be executed on the desired CPU
as described by Affinity::Location.

The system control cap will be invalid for kernels that don't support
system_control/managing_system functionality at all.

The system control cap will be ever by the same, e.g. ignoring the
Affinity::Location parameter, if the used kernel doesn't support or doesn't
require the feature to execute the system control per CPU.

The commit is a preparation step to add guarded and selective x86 MSR
access per CPU.

Fixes #5009
2023-10-04 13:22:07 +02:00
..
doc libports: update doc/libc.txt 2023-05-30 12:03:33 +02:00
include libyuv: add support to overwrite default allocator 2023-10-04 13:22:06 +02:00
lib libyuv: add support to overwrite default allocator 2023-10-04 13:22:06 +02:00
ports libyuv: add support to overwrite default allocator 2023-10-04 13:22:06 +02:00
recipes libyuv: add support to overwrite default allocator 2023-10-04 13:22:06 +02:00
run rpi: disable run scripts that use 'drivers_nic_rpi' 2023-09-29 12:17:45 +02:00
src base: extend PD session by system_control_cap 2023-10-04 13:22:07 +02:00
README Update README files 2023-03-13 14:32:53 +01:00

This directory contains ports of 3rd-party libraries to Genode.


Usage
-----

The tool './tool/ports/prepare_port' in the toplevel directory automates the
task of downloading and preparing the 3rd-party source codes. One can select
individual ports that have to be prepared by specifying their base names
(without the version number) as command-line argument. For example, the
following command prepares both the C library and the Freetype library:
! ./tool/ports/prepare_port libc freetype

To compile and link against 3rd-party libraries of the 'libports' repository,
you have to include the repository into the build process by appending it to the
'REPOSITORIES' declaration of your '<build-dir>/etc/build.conf' file.


Under the hood
--------------

For each library, there is a file contained in the 'libports/ports/'
subdirectory. The file is named after the library and contains the
library-specific rules for downloading the source code and installing header
files.


How does 'libports' relate to the other repositories?
-----------------------------------------------------

Most libraries hosted in the 'libports' repository expect a complete C
library, which is provided via the 'libc' port. The libc, in turn, depends on
the 'os' repository for its back end.