aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/standards.texi
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-04-02 16:12:59 -0800
committerRichard Henderson <rth@gcc.gnu.org>2002-04-02 16:12:59 -0800
commit3a07982299bf63daceef53fcd690857b70b46670 (patch)
tree40958463b151053af37049643e7bea8afbc3aae5 /gcc/doc/standards.texi
parentc94ccb87d79be75dcfb2fda599111f04a0a01650 (diff)
downloadgcc-3a07982299bf63daceef53fcd690857b70b46670.zip
gcc-3a07982299bf63daceef53fcd690857b70b46670.tar.gz
gcc-3a07982299bf63daceef53fcd690857b70b46670.tar.bz2
* doc/standards.texi: Document required freestanding libc entry points.
From-SVN: r51768
Diffstat (limited to 'gcc/doc/standards.texi')
-rw-r--r--gcc/doc/standards.texi18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/doc/standards.texi b/gcc/doc/standards.texi
index 4e9720c..56f6151 100644
--- a/gcc/doc/standards.texi
+++ b/gcc/doc/standards.texi
@@ -132,10 +132,10 @@ the semantics defined in the standard. To make it act as a conforming
freestanding implementation for a freestanding environment, use the
option @option{-ffreestanding}; it will then define
@code{__STDC_HOSTED__} to @code{0} and not make assumptions about the
-meanings of function names from the standard library. To build an OS
-kernel, you may well still need to make your own arrangements for
-linking and startup. @xref{C Dialect Options,,Options Controlling C
-Dialect}.
+meanings of function names from the standard library, with exceptions
+noted below. To build an OS kernel, you may well still need to make
+your own arrangements for linking and startup.
+@xref{C Dialect Options,,Options Controlling C Dialect}.
GCC does not provide the library facilities required only of hosted
implementations, nor yet all the facilities required by C99 of
@@ -143,6 +143,16 @@ freestanding implementations; to use the facilities of a hosted
environment, you will need to find them elsewhere (for example, in the
GNU C library). @xref{Standard Libraries,,Standard Libraries}.
+Most of the compiler support routines used by GCC are present in
+@file{libgcc}, but there are a few exceptions. GCC requires the
+freestanding environment provide @code{memcpy}, @code{memmove},
+@code{memset} and @code{memcmp}. Some older ports of GCC are
+configured to use the BSD @code{bcopy}, @code{bzero} and @code{bcmp}
+functions instead, but this is deprecated for new ports.
+Finally, if @code{__builtin_trap} is used, and the target does
+not implement the @code{trap} pattern, then GCC will emit a call
+to @code{abort}.
+
For references to Technical Corrigenda, Rationale documents and
information concerning the history of C that is available online, see
@uref{http://gcc.gnu.org/readings.html}