mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 13:26:27 +00:00
tool/link.h: remove outdated comment
This commit is contained in:
parent
f390543550
commit
b1b70e6c35
33
tool/link.h
33
tool/link.h
@ -2,39 +2,6 @@
|
||||
* \brief Stub for compiling GCC support libraries without libc
|
||||
* \author Norman Feske
|
||||
* \date 2011-08-31
|
||||
*
|
||||
* The target components of GCC tool chains (i.e. libsupc++, libgcc_eh, and
|
||||
* libstdc++) depend on the presence of libc includes. For this reason, a C
|
||||
* library for the target platform is normally regarded as a prerequisite for
|
||||
* building a complete tool chain. However, for low-level operating-system
|
||||
* code, this prerequisite is not satisfied.
|
||||
*
|
||||
* There are two traditional solutions to this problem. The first is to leave
|
||||
* out those target components from the tool chain and live without full C++
|
||||
* support (using '-fno-rtti' and '-fno-exceptions'). Because Genode relies on
|
||||
* such C++ features however, this is no option. The other traditional solution
|
||||
* is to use a tool chain compiled for a different target platform such as
|
||||
* Linux. However, this approach calls for subtle problems because the target
|
||||
* components are compiled against glibc and make certain presumptions about
|
||||
* the underlying OS environment. E.g., the 'libstdc++' library of a Linux tool
|
||||
* chain contains references to glibc's 'stderr' symbol, which does not exist
|
||||
* on Genode's libc derived from FreeBSD. More critical assumptions are related
|
||||
* to the mechanism used for thread-local storage.
|
||||
*
|
||||
* This header file overcomes these problems by providing all function
|
||||
* prototypes and type declarations that are mandatory for compiling GCC's
|
||||
* target components. Using this libc stub, all GCC target components can be
|
||||
* built without the need for additional libc support. Of course, for actually
|
||||
* using these target components, the target OS has to provide the
|
||||
* implementation of a small subset of functions declared herein. On Genode,
|
||||
* this subset is provided by the 'cxx' library.
|
||||
*
|
||||
* The code of the target components expects usual C header file names such as
|
||||
* 'stdio.h'. It does not include 'libgcc_libc_stub.h'. By creating symlinks
|
||||
* for all those file names pointing to this file, we ensure that this file is
|
||||
* always included on the first occurrence of the inclusion of any libc header
|
||||
* file. The set of symlinks pointing to this libc stub are created
|
||||
* automatically by the 'tool_chain' script.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user