diff options
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/gm2.texi | 3 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 7 | ||||
-rw-r--r-- | gcc/doc/riscv-ext.texi | 12 | ||||
-rw-r--r-- | gcc/doc/sourcebuild.texi | 18 | ||||
-rw-r--r-- | gcc/doc/standards.texi | 38 | ||||
-rw-r--r-- | gcc/doc/trouble.texi | 8 |
6 files changed, 61 insertions, 25 deletions
diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi index 8293da4..9bd0f0d 100644 --- a/gcc/doc/gm2.texi +++ b/gcc/doc/gm2.texi @@ -540,6 +540,9 @@ lines compiled. @item -fm2-strict-type experimental flag to turn on the new strict type checker. +@item -fm2-strict-type-reason +provides more detail why the types are incompatible. + @item -fm2-whole-program compile all implementation modules and program module at once. Notice that you need to take care if you are compiling different dialect diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 0150ad0..8de0085 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -30911,12 +30911,13 @@ to store the immediate to a register first. @opindex mcmodel= @opindex mcmodel=small @item -mcmodel=small -Generate OpenRISC code for the small model: The GOT is limited to 64k. This is -the default model. +Generate OpenRISC code for the small model: The GOT is limited to 64k and +function call jumps are limited to 64M offsets. This is the default model. @opindex mcmodel=large @item -mcmodel=large -Generate OpenRISC code for the large model: The GOT may grow up to 4G in size. +Generate OpenRISC code for the large model: The GOT may grow up to 4G in size +and function call jumps can target the full 4G address space. @end table diff --git a/gcc/doc/riscv-ext.texi b/gcc/doc/riscv-ext.texi index bd3d29c..e64c0d6 100644 --- a/gcc/doc/riscv-ext.texi +++ b/gcc/doc/riscv-ext.texi @@ -494,6 +494,10 @@ @tab 1.0 @tab Advanced interrupt architecture extension +@item smcntrpmf +@tab 1.0 +@tab Cycle and instret privilege mode filtering + @item smepmp @tab 1.0 @tab PMP Enhancements for memory access and execution prevention on Machine mode @@ -510,6 +514,10 @@ @tab 1.0 @tab State enable extension +@item smdbltrp +@tab 1.0 +@tab Double Trap Extensions + @item ssaia @tab 1.0 @tab Advanced interrupt architecture extension for supervisor-mode @@ -538,6 +546,10 @@ @tab 1.0 @tab ssstrict extension +@item ssdbltrp +@tab 1.0 +@tab Double Trap Extensions + @item supm @tab 1.0 @tab supm extension diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 91fadc6..6c5586e 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -215,10 +215,10 @@ man pages and support for converting the installation manual to HTML@. @xref{Documentation}. @item ginclude -System headers installed by GCC, mainly those required by the C -standard of freestanding implementations. @xref{Headers, , Headers -Installed by GCC}, for details of when these and other headers are -installed. +System headers installed by GCC, mainly those defined by the C +standard that do not declare functions with external linkage. +@xref{Headers, , Headers Installed by GCC}, for details of when these +and other headers are installed. @item po Message catalogs with translations of messages produced by GCC into @@ -326,7 +326,8 @@ Headers Installed by GCC}, for more information about the In general, GCC expects the system C library to provide most of the headers to be used with it. However, GCC will fix those headers if necessary to make them work with GCC, and will install some headers -required of freestanding implementations. These headers are installed +of its own, mainly headers that do not declare functions with external +linkage. These headers are installed in @file{@var{libsubdir}/include}. Headers for non-C runtime libraries are also installed by GCC; these are not documented here. (FIXME: document them somewhere.) @@ -351,8 +352,8 @@ representation of floating point numbers. GCC also installs its own version of @code{<limits.h>}; this is generated from @file{glimits.h}, together with @file{limitx.h} and @file{limity.h} if the system also has its own version of -@code{<limits.h>}. (GCC provides its own header because it is -required of ISO C freestanding implementations, but needs to include +@code{<limits.h>}. (GCC provides its own header because it does not +declare functions with external linkage, but needs to include the system header from its own header as well because other standards such as POSIX specify additional values to be defined in @code{<limits.h>}.) The system's @code{<limits.h>} header is used via @@ -1975,6 +1976,9 @@ at plain @option{-O2}. @item tls Target supports thread-local storage. +@item tls_link +Target supports linking TLS executables. + @item tls_native Target supports native (rather than emulated) thread-local storage. diff --git a/gcc/doc/standards.texi b/gcc/doc/standards.texi index bbae350..011f7e2 100644 --- a/gcc/doc/standards.texi +++ b/gcc/doc/standards.texi @@ -152,7 +152,9 @@ library facilities: those in @code{<float.h>}, @code{<limits.h>}, @code{<iso646.h>}; since C99, also those in @code{<stdbool.h>} and @code{<stdint.h>}; and since C11, also those in @code{<stdalign.h>} and @code{<stdnoreturn.h>}. In addition, complex types, added in C99, are not -required for freestanding implementations. +required for freestanding implementations. Since C23, freestanding +implementations are required to support a larger range of library +facilities, including some functions from other headers. The standard also defines two environments for programs, a @dfn{freestanding environment}, required of all implementations and @@ -167,13 +169,13 @@ a program using the facilities of an operating system is an example of a program running in a hosted environment. @opindex ffreestanding -GCC aims towards being usable as a conforming freestanding -implementation, or as the compiler for a conforming hosted -implementation. By default, it acts as the compiler for a hosted +GCC aims towards being usable as the compiler for a conforming +freestanding or hosted implementation. +By default, it acts as the compiler for a hosted implementation, defining @code{__STDC_HOSTED__} as @code{1} and presuming that when the names of ISO C functions are used, they have -the semantics defined in the standard. To make it act as a conforming -freestanding implementation for a freestanding environment, use the +the semantics defined in the standard. To make it act as the compiler +for a freestanding environment, use the option @option{-ffreestanding}; it then defines @code{__STDC_HOSTED__} to @code{0} and does not make assumptions about the meanings of function names from the standard library, with exceptions @@ -181,12 +183,24 @@ 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 -freestanding implementations on all platforms. -To use the facilities of a hosted -environment, you need to find them elsewhere (for example, in the -GNU C library). @xref{Standard Libraries,,Standard Libraries}. +GCC generally provides library facilities in headers that do not +declare functions with external linkage (which includes the headers +required by C11 and before to be provided by freestanding +implementations), but not those included in other headers. +Additionally, GCC provides @code{<stdatomic.h>}, even though it +declares some functions with external linkage (which are provided in +@code{libatomic}). On a few platforms, some of the headers not +declaring functions with external linkage are instead obtained from +the OS's C library, which may mean that they lack support for features +from more recent versions of the C standard that are supported in +GCC's own versions of those headers. On some platforms, GCC provides +@code{<tgmath.h>} (but this implementation does not support interfaces +added in C23). + +To use the facilities of a hosted environment, and some of the +facilities required in a freestanding environment by C23, you 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 diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi index 15ced5f..a2e6de4 100644 --- a/gcc/doc/trouble.texi +++ b/gcc/doc/trouble.texi @@ -494,10 +494,12 @@ as to use the proper set, but you'll have to do this by hand. @section Standard Libraries @opindex Wall -GCC by itself attempts to be a conforming freestanding implementation. +GCC by itself attempts to provide the compiler part of a conforming +implementation, but only a limited subset of the library part of such +an implementation. @xref{Standards,,Language Standards Supported by GCC}, for details of -what this means. Beyond the library facilities required of such an -implementation, the rest of the C library is supplied by the vendor of +what this means. Beyond the limited library facilities described +there, the rest of the C library is supplied by the vendor of the operating system. If that C library doesn't conform to the C standards, then your programs might get warnings (especially when using @option{-Wall}) that you don't expect. |