genode/repos/base/lib/mk
Norman Feske 2f9d430c00 base-linux: 64-bit ARM support
This patch adds support for running Genode/Linux on the AARCH64
architecture.

- The kernel-agnostic startup code (crt0) had to be extended to
  capture the initial stack pointer, which the Linux kernel uses
  to pass the process environment. This is in line with the
  existing startup code for x86_32 and x86_64.

- The link order of the host libraries linked to lx_hybrid
  programs had to be adjusted such that libgcc appears at last
  because the other libraries depend on symbols provided by
  libgcc.

- When using AARCH64 Linux as host, one can execute run scripts
  via 'make run/<script> KERNEL=linux BOARD=linux' now.

Issue #4136
2021-05-10 11:17:20 +02:00
..
spec base-linux: 64-bit ARM support 2021-05-10 11:17:20 +02:00
base-common.inc base: move Xml_generator::Node::Node behind ABI 2021-04-20 12:03:03 +02:00
base.inc base: refactor VM/vCPU API 2021-02-23 12:07:18 +01:00
base.mk Build dynamically linked executables by default 2016-12-14 11:22:27 +01:00
cxx.mk cxx: localize operator new(unsigned long) in supc++.o 2021-02-23 12:02:41 +01:00
ld-platform.inc base: avoid superfluous postprocessing of ldso 2021-01-25 14:00:43 +01:00
ld.mk Generalize ABI mechanism to shared objects 2017-01-13 13:06:54 +01:00
ldso_so_support.mk Cleanup shared-object support mechanics 2020-05-18 10:16:13 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
startup.inc base: remove platform.mk and syscall.mk 2017-01-13 13:06:53 +01:00
timeout-arm.mk base: remove alarm library from base 2020-10-09 13:33:36 +02:00
timeout.mk base: remove alarm library from base 2020-10-09 13:33:36 +02:00

This directory contains library description files.  Each '<libname>.mk' file
holds the instruction for building the library '<libname>'. These makefiles are
never used directly but they are called from the build system when required.
When called, the build system passes the following variables:

:'BASE_DIR': This is the base directory of the source tree.

Source codes are specified by setting the 'SRC_CC' and 'SRC_C' variables.
The source code locations must be specified via 'vpath'.
A library can include other libraries by setting the 'LIBS'
variable.

Each '<libname>.mk' file must include the 'lib.mk' role file:

! include $(BASE_DIR)/mk/lib.mk

Libraries implementing one and the same library interface may have specific
implementations for different platforms. Such platform-specific '<libname>.mk'
files should be placed into corresponding subdirectories. For example, the
'linux'-specific implementation of the 'server' library resides in the 'linux/'
subdirectory. The build system automatically searches the right '<libname>.mk'
file by evaluating the 'SPECS' configuration variable. If 'SPECS' is set to
'host linux', the build system will look into the directories './', './host',
and './linux'.