mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-07 14:28:44 +00:00
f54c85e045
This patch decouples the kernel-specific implementation of the dynamic linker from its kernel-agnostic binary interface. The name of the kernel-specific dynamic linker binary now corresponds to the kernel, e.g., 'ld-linux.lib.so' or 'ld-nova.lib.so'. Applications are no longer linked directly against a concrete instance of the dynamic linker but against a shallow stub called 'ld.lib.so'. This stub contains nothing but the symbols provided by the dynamic linker. It thereby represents the Genode ABI. At system-integration time, the kernel-specific run/boot_dir back ends integrate the matching the kernel-specific variant of the dynamic linker as 'ld.lib.so' into the boot image. The ABI symbol file for the dynamic linker is located at 'base/lib/symbols/ld'. It contains the joint ABI of all supported architectures. The new utility 'tool/abi_symbols' eases the creation of such an ABI symbol file for a given shared library. Its result should be manually inspected and edited as needed. The patch removes the 'syscall' library from 'base_libs.mk' to avoid polluting the kernel-agnostic ABI with kernel-specific interfaces. Issue #2190 Issue #2195 |
||
---|---|---|
.. | ||
spec | ||
base-libs.mk | ||
dep_lib.mk | ||
dep_prg.mk | ||
generic.mk | ||
global.mk | ||
lib.mk | ||
prg.mk | ||
README | ||
util.inc |
This directory contains the build system. In consists mainly of makefile templates for different directory roles. :'global.mk': This file contains global variables, for example the definitions of the tools to use. :'generic.mk': Generic rules for creating file types from others. :'prg.mk': This file represents the target binary role of a directory. It must be included by all makefiles that build programs. :'lib.mk': This file represents a library role. It is never used from within the 'src/' directory but only from the <libname>.mk files in 'lib/mk/'.