genode/base/lib/mk
Martin Stein 0b64328944 base: setup thread object for main thread in CRT0
For a main thread a thread object is created by the CRT0 before _main gets
called so that _main can already run in a generic environment that, e.g.,
catches stack overflows as a page-fault instead of corrupting the BSS.
Additionally dynamic programs have only one CRT0 - the one of the LDSO -
which does the initialization for both LDSO and program.

ref #989
2014-02-25 14:58:05 +01:00
..
arm Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
x86_32 Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
x86_64 Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
cxx.mk Add dependency rule for CXX_OBJECTS (fix #719) 2013-04-26 16:47:15 +02:00
platform.mk Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
startup.inc base: setup thread object for main thread in CRT0 2014-02-25 14:58:05 +01:00
syscall.mk Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
toolchain_stdcxx.mk Add stdcxx-4.6.1 to libports, fix #339 2012-09-04 12:37:56 +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'.