genode/repos/base/mk
Norman Feske f54c85e045 Genode application binary interface (ABI)
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
2016-12-23 16:50:28 +01:00
..
spec Revert "arm: prevent 64K default alignment of text segment" 2016-08-10 11:07:57 +02:00
base-libs.mk Genode application binary interface (ABI) 2016-12-23 16:50:28 +01:00
dep_lib.mk Genode application binary interface (ABI) 2016-12-23 16:50:28 +01:00
dep_prg.mk
generic.mk
global.mk mk: always use linker scripts from base 2016-07-15 11:38:26 +02:00
lib.mk Genode application binary interface (ABI) 2016-12-23 16:50:28 +01:00
prg.mk Genode application binary interface (ABI) 2016-12-23 16:50:28 +01:00
README
util.inc mk: shortcircuit select_from_ports for pkg tool 2016-07-15 11:38:26 +02:00

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/'.