https://gcc.gnu.org/g:9b3f0a352866a56b0c31060da2843a4a79404628
commit r16-8469-g9b3f0a352866a56b0c31060da2843a4a79404628 Author: Sandra Loosemore <[email protected]> Date: Sat Apr 4 17:28:01 2026 +0000 doc: Move Picolibc option documentation The documentation for Picolibc options was inserted at the top level within the GCC options section. It really should be classified with the target-specific options; that's where we document other options specific to the runtime configuration, including MinGW, Darwin, Gnu/Linux, etc. gcc/ChangeLog * doc/invoke.texi (GCC Command Options): Move Picolibc Options section to Target-Specific Options. (Option Summary): Likewise. Diff: --- gcc/doc/invoke.texi | 137 ++++++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 69 deletions(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index aab93f49e7a9..68f0b3b2270d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -164,7 +164,6 @@ listing and explanation of the binary and decimal byte size prefixes. * Link Options:: Specifying libraries and so on. * Directory Options:: Where to find header files and libraries. Where to find the compiler executable files. -* Picolibc Options:: Select compile and link options when using picolibc. * Code Gen Options:: Specifying conventions for function calls, data layout and register usage. * Developer Options:: Printing GCC configuration info, statistics, and @@ -798,11 +797,6 @@ Objective-C and Objective-C++ Dialects}. --no-canonical-prefixes --no-standard-includes --prefix=@var{prefix} --sysroot=@var{dir}} -@item Picolibc Options -@xref{Picolibc Options,,Options for use with Picolibc}. -@gccoptlist{--oslib=@var{library} --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]} ---printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}} - @item Code Generation Options @xref{Code Gen Options,,Options for Code Generation Conventions}. @gccoptlist{-fcall-saved-@var{reg} -fcall-used-@var{reg} @@ -1319,6 +1313,10 @@ Objective-C and Objective-C++ Dialects}. -mint32 -mint16 -msplit -munix-asm -mdec-asm -mgnu-asm -mlra} +@emph{Picolibc Options} (@ref{Picolibc Options}) +@gccoptlist{--oslib=@var{library} --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]} +--printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}} + @emph{PowerPC Options} See RS/6000 and PowerPC Options. @@ -18928,69 +18926,6 @@ such a suffix. @end table -@node Picolibc Options -@section Options for use with Picolibc -@cindex picolibc options -@cindex options, picolibc - -These options control compilation and linking when using picolibc: - -@table @gcctabopt -@opindex oslib -@item --oslib=@var{library} -Search the library named @var{library} after the C library, permitting -symbols undefined by the C library to be defined by this library. The -C library, libgcc and this library are placed between -@option{--start-group} and @option{--end-group} flags so that each can -refer to symbols in the others. For many targets, picolibc provides a -@samp{semihost} variant (specified with @option{--oslib=semihost}) -which provides enough basic OS functionality to support console and -file I/O when run in an emulator or when using an in-circuit debugger. - -@opindex crt0 -@item --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]} -Replace the default @file{crt0.o} name with -@file{crt0-@var{variant}.o}. The @samp{none} variant provides no -startup code at all, allowing the user to supply their -own. @samp{minimal} performs basic memory setup but does not invoke -any constructors. When no @option{-crt0} option is provided, the -default initialization code adds calls to all -constructors. @samp{hosted} adds a call to @code{exit} when -@code{main} returns. @samp{semihost} accesses a command line parameter -supplied via the semihosting interface and splits that into arguments -at whitespace boundaries, passing the resulting array of strings to -main in @code{argc} and @code{argv}. On some targets, including -aarch64, arc, arm, loongarch, m68k, riscv, super-h and x86, -@samp{semihost} also traps hardware exceptions and prints information -to the console. Note that @option{--crt0=semihost} depends upon APIs -provided by @option{--oslib=semihost}. - -@opindex printf -@item --printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} -Select the printf variant. Picolibc provides five different printf -variants which offer decreasing levels of functionality along with -decreasing code size. @samp{d} is the default level, offering full C17 -and POSIX.1-2024 conformance. @samp{f} provides the same feature set, -but supports @code{float} values instead of @code{double} which are -passed using the @code{printf_float} macro. @samp{l} elides all -floating point and POSIX positional parameter support. @samp{i} limits -integers to those no larger than @code{long}. @samp{m} removes support -for most formatting options including width and precision. The formats -and arguments are still parsed correctly, but output does not respect -those parameters. - -@opindex scanf -@item --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} -Select the scanf variant. Picolibc provides five different scanf -variants which offer decreasing levels of functionality along with -decreasing code size. @samp{d} is the default level, offering full C17 -and POSIX.1-2024 conformance. @samp{f} removes support for -@code{double} values. @samp{l} elides all floating point -support. @samp{i} limits integers to those no larger than -@code{long}. @samp{m} removes support for @code{%[} conversion specifiers. - -@end table - @node Code Gen Options @section Options for Code Generation Conventions @cindex code generation conventions @@ -21258,6 +21193,7 @@ other compilers on the same platform. * Nvidia PTX Options:: * OpenRISC Options:: * PDP-11 Options:: +* Picolibc Options:: * PowerPC Options:: * PRU Options:: * RISC-V Options:: @@ -30915,6 +30851,69 @@ Use the new LRA register allocator. By default, the old ``reload'' allocator is used. @end table +@node Picolibc Options +@subsection Picolibc Options +@cindex picolibc options +@cindex options, picolibc + +These options control compilation and linking when using picolibc: + +@table @gcctabopt +@opindex oslib +@item --oslib=@var{library} +Search the library named @var{library} after the C library, permitting +symbols undefined by the C library to be defined by this library. The +C library, libgcc and this library are placed between +@option{--start-group} and @option{--end-group} flags so that each can +refer to symbols in the others. For many targets, picolibc provides a +@samp{semihost} variant (specified with @option{--oslib=semihost}) +which provides enough basic OS functionality to support console and +file I/O when run in an emulator or when using an in-circuit debugger. + +@opindex crt0 +@item --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]} +Replace the default @file{crt0.o} name with +@file{crt0-@var{variant}.o}. The @samp{none} variant provides no +startup code at all, allowing the user to supply their +own. @samp{minimal} performs basic memory setup but does not invoke +any constructors. When no @option{-crt0} option is provided, the +default initialization code adds calls to all +constructors. @samp{hosted} adds a call to @code{exit} when +@code{main} returns. @samp{semihost} accesses a command line parameter +supplied via the semihosting interface and splits that into arguments +at whitespace boundaries, passing the resulting array of strings to +main in @code{argc} and @code{argv}. On some targets, including +aarch64, arc, arm, loongarch, m68k, riscv, super-h and x86, +@samp{semihost} also traps hardware exceptions and prints information +to the console. Note that @option{--crt0=semihost} depends upon APIs +provided by @option{--oslib=semihost}. + +@opindex printf +@item --printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} +Select the printf variant. Picolibc provides five different printf +variants which offer decreasing levels of functionality along with +decreasing code size. @samp{d} is the default level, offering full C17 +and POSIX.1-2024 conformance. @samp{f} provides the same feature set, +but supports @code{float} values instead of @code{double} which are +passed using the @code{printf_float} macro. @samp{l} elides all +floating point and POSIX positional parameter support. @samp{i} limits +integers to those no larger than @code{long}. @samp{m} removes support +for most formatting options including width and precision. The formats +and arguments are still parsed correctly, but output does not respect +those parameters. + +@opindex scanf +@item --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]} +Select the scanf variant. Picolibc provides five different scanf +variants which offer decreasing levels of functionality along with +decreasing code size. @samp{d} is the default level, offering full C17 +and POSIX.1-2024 conformance. @samp{f} removes support for +@code{double} values. @samp{l} elides all floating point +support. @samp{i} limits integers to those no larger than +@code{long}. @samp{m} removes support for @code{%[} conversion specifiers. + +@end table + @node PowerPC Options @subsection PowerPC Options @cindex PowerPC options
