genode/repos/base
Norman Feske 5ae0dab6c5 mk: remove implicit build of shared libraries
This patch removes the implicit build of all shared libraries a target
depends on. Targets only depend on the respective ABIs instead. This
alleviates the need to locally build complex shared libraries (think of
Qt) when developing applications. Instead, application developers can
use binary depot archives.

The implementation splits the mk/lib.mk file into three files:
- mk/a.mk   for building one static library (.lib.a)
- mk/so.mk  for building one shared object  (.lib.so)
- mk/abi.mk for building one ABI stub       (.abi.so)

Furthermore, the commit moves messages and the collection of build
artifacts to var/libdeps, triggers the build of kernel-specific
ld-<kernel>.lib.so, and prunes the lib-dependency tree at ABIs.

Fixes #5061
2023-11-28 14:44:29 +01:00
..
board qemu: set default cpu model for x86_64 explicitly 2023-06-16 11:24:25 +02:00
etc tool chain: update version to 23.05 2023-05-30 12:03:27 +02:00
include base: restore the session phase in `Parent_service' 2023-11-28 14:24:26 +01:00
lib mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
ports grub2: add small default font 2023-02-27 08:20:46 +01:00
recipes depot: update recipe hashes 2023-10-25 14:01:40 +02:00
run core: rework page-fault resolution 2023-06-16 11:24:26 +02:00
src lib/timout: fix interpolation optimization 2023-11-28 14:24:23 +01:00
xsd base_types.xsd: allow session labels of length 0 2018-11-16 14:37:19 +01:00
README Update README files 2023-03-13 14:32:53 +01:00

This is the generic Genode base system, which consists of two parts:

:_Core_: is the root of the Genode component tree. It provides abstractions for
  the lowest-level hardware resources such as RAM, ROM, CPU, and device access.
  All generic parts of core can be found here. For kernel-specific parts,
  refer to the appropriate 'base-<kernel>' directory.

:_Base libraries and interfaces: that are used by each Genode component
  to interact with other components. This is the glue that holds everything
  together.

Depending on the used kernel, core may export information about the hardware
platform as a ROM called 'platform_info'. For example, if the ACPI RSDT and
XSDT physical pointer are reported by the used kernel and/or bootloader, core
provides this information in the ROM as follows.

!<platform_info>
! <acpi revision="2" rsdt="0x1fe93074" xsdt="0x1fe930e8"/>
! <boot>
!   <framebuffer phys="0x7300000" width="1024" height="768" bpp="32"/>
! </boot>
!</platform_info>

If the graphics device is initialised and can be directly used by a
framebuffer driver, core provides the physical pointer to the framebuffer, the
resolution, and color depth in bits.