{"id":2219850,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2219850/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/20260404234813.676699-2-sloosemore@baylibre.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.2/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260404234813.676699-2-sloosemore@baylibre.com>","list_archive_url":null,"date":"2026-04-04T23:48:12","name":"[PUSHED,2/3] doc: Move Picolibc option documentation","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"3ed285edcfd8d05ef5d7da8147caeff3233d9f88","submitter":{"id":87955,"url":"http://patchwork.ozlabs.org/api/1.2/people/87955/?format=json","name":"Sandra Loosemore","email":"sloosemore@baylibre.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20260404234813.676699-2-sloosemore@baylibre.com/mbox/","series":[{"id":498754,"url":"http://patchwork.ozlabs.org/api/1.2/series/498754/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=498754","date":"2026-04-04T23:48:11","name":"[PUSHED,1/3] doc: Rename \"Submodel Options\"","version":1,"mbox":"http://patchwork.ozlabs.org/series/498754/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219850/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219850/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=TG63Ei57;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=baylibre-com.20251104.gappssmtp.com\n header.i=@baylibre-com.20251104.gappssmtp.com header.a=rsa-sha256\n header.s=20251104 header.b=TG63Ei57","sourceware.org;\n dmarc=none (p=none dis=none) header.from=baylibre.com","sourceware.org; spf=pass smtp.mailfrom=baylibre.com","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.210.51"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fpC3p6JRwz1yFs\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 05 Apr 2026 09:49:10 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id C5BE14BA2E29\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  4 Apr 2026 23:49:08 +0000 (GMT)","from mail-ot1-f51.google.com (mail-ot1-f51.google.com\n [209.85.210.51])\n by sourceware.org (Postfix) with ESMTPS id 65E524BA2E29\n for <gcc-patches@gcc.gnu.org>; Sat,  4 Apr 2026 23:48:25 +0000 (GMT)","by mail-ot1-f51.google.com with SMTP id\n 46e09a7af769-7d556c1a79eso3801396a34.3\n for <gcc-patches@gcc.gnu.org>; Sat, 04 Apr 2026 16:48:25 -0700 (PDT)","from nenufar.hsd1.co.comcast.net ([2601:281:d901:97c0::9a27])\n by smtp.gmail.com with ESMTPSA id\n 006d021491bc7-680a63c7fd1sm6100242eaf.8.2026.04.04.16.48.22\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 04 Apr 2026 16:48:23 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org C5BE14BA2E29","OpenDKIM Filter v2.11.0 sourceware.org 65E524BA2E29"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 65E524BA2E29","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 65E524BA2E29","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775346505; cv=none;\n b=k1576qwa/OYIW4OWG1p7ty+1CVWLHqDG9J8rjCMx2zMJafEBaZ3Y0gS5GycvZrVU3U9InHGnVYxq8otBPzsso/qSHfguFZJ0/FiXaMGDwGrysnmEso2FNlrXQLBvm5F93jqry30R6tpuvRmuxR3BceiKNIq7Vw387RLj9duTLWI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775346505; c=relaxed/simple;\n bh=Tk7LtcaKrVt8yDOQVeOYF7SDwqA0UhsKSn4PUyBSq/Y=;\n h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version;\n b=cuL6xKJiP+YUx239gcs7q3A5d+IfFxjj/dUiw5jZVLrHg+SxY8gyAG7SJNInCuV2mym/2LSrzv3AawdJw+7RTSLuBNif9RiRJGFJlx9Uz27p8moF5ibLav6rB85JcKGDNCLCuF95rI46pYzijOkI+EcaEfBUh2HIBX5uP6eOm6I=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1775346504;\n x=1775951304;\n darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:from:to:cc:subject:date:message-id\n :reply-to; bh=jGEeLZTuPvfk5FW3o7x2NgUiqoA+ZVqrfZzElBn5z3A=;\n b=TG63Ei57xqgOl2Q84JyIyAjgpByDIpJ94h9gzcUFmPNRIwvPcrQz+YoXDaDSiK1Pto\n ecnyVPAw/nd7vE6AAIKuLLNdzJEfmFBCTs6093/XzQwRC0GeB13d4b/uuI6eotfWf1Nz\n cy4eiHlmbcDo7keHthSMNkW8dyyQ0mVmhXY30U3RfysnE3p7xIkgP4uQRtztImF18LM/\n JVSDim8br++2PpZSRexVZ93Irn+jXuP0q6QwTTUb9Bm8hxMFdVbEoXzWq2uJlcMR6wBI\n Trcz2EJogjdBSNBEwuSI3ukaIqYratZ1IPrH3WX6qrZODbm9slyEroUx1QXcvO4qAEi6\n O1qA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775346504; x=1775951304;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=jGEeLZTuPvfk5FW3o7x2NgUiqoA+ZVqrfZzElBn5z3A=;\n b=R/kQJ6KT6KUZdD9E1UrVoSrwFT/3q/Rxp257ID9yXt9/9xgo8UeBAjxcJYzadCoiev\n 4MjmOuYBKRHnx7vmSsYeRNC+84UHxchk0aO8strgY9pWOI7IcEgokxXwNfhFQm+jGwDF\n 9QeGlNrrmm6QqVBo1zd5cvZPMTvEDl0bFEKyGicj5XjuLwXzcyXgLpiv3feXvD4NgMBO\n 6EYwl61QTLBCD1CGJvhkvYfjfv0PQqSJ7DS3fWyveZTzRkUZ26B4B1PXUzx+HFg1MOlc\n 8vAd2Ote5MEoAw42FlYD6sVuAVVrY8bu291sujSUXXcn19OpYK5u7aUHEuBv+RATD7Hk\n zvnA==","X-Gm-Message-State":"AOJu0YxEoqC8ik+5Qm2zuKKuA6QuHLYdrMQ5FqMYoSHK+cPLTFRw02y+\n sVtOa/fdQNGt7gx2KtZMuPc+RAW2ty2vOqDEX/ZKU9XnwKQaxHXst7HqdDIarIfFnVBa2KcBNmc\n Z649t","X-Gm-Gg":"AeBDieuv3oXOVtIUjvXzb2hSzHrFU4S/T5IzsZUv5xdSs2aBoT7jqZgUonmDxvvNNdf\n eCmkWLHgmAgN/mguX79/nVIHwl4eyFSzFXLGKABgt/S2qPXjF/XyLMcpJ02NinXS1Sy3RpUnjR2\n RitJVZ3+72f+2pEAYMIc1fpiYCJsUgKfsy/uW8HQ8BZWjA4dT1DYMWUJmbsbMmdemt1JY8AVQKT\n bFusbiL87eOA10YsKMCAMIqh/S+Jx5QAjiT/RTQX66jb9Q0LggSy2T8RzT05HyziZr+I2J6FRAD\n A38A4OnJ61dXageZX5lkvckZu9edHX7fhC4ltfpVwPHQmQcwvu/CbcDZNCnaRpfcV58L0ukRt5y\n rSxDFGe0JaOq+NRZxhaVmvG9+JHbcQ3g77bpooS37jy4fVAUgCteaCGqlI+YnBIGCYFpX1VSgoX\n ArDy1g/XZUDzFnLcfqER+a1so2ytwYizH2","X-Received":"by 2002:a05:6820:180d:b0:67e:882:b04b with SMTP id\n 006d021491bc7-6821dd7801fmr4595659eaf.16.1775346504517;\n Sat, 04 Apr 2026 16:48:24 -0700 (PDT)","From":"Sandra Loosemore <sloosemore@baylibre.com>","To":"gcc-patches@gcc.gnu.org","Subject":"[PUSHED 2/3] doc: Move Picolibc option documentation","Date":"Sat,  4 Apr 2026 17:48:12 -0600","Message-Id":"<20260404234813.676699-2-sloosemore@baylibre.com>","X-Mailer":"git-send-email 2.34.1","In-Reply-To":"<20260404234813.676699-1-sloosemore@baylibre.com>","References":"<20260404234813.676699-1-sloosemore@baylibre.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"The documentation for Picolibc options was inserted at the top level\nwithin the GCC options section.  It really should be classified with\nthe target-specific options; that's where we document other options\nspecific to the runtime configuration, including MinGW, Darwin,\nGnu/Linux, etc.\n\ngcc/ChangeLog\n\t* doc/invoke.texi (GCC Command Options): Move Picolibc Options\n\tsection to Target-Specific Options.\n\t(Option Summary): Likewise.\n---\n gcc/doc/invoke.texi | 137 ++++++++++++++++++++++----------------------\n 1 file changed, 68 insertions(+), 69 deletions(-)","diff":"diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi\nindex aab93f49e7a..68f0b3b2270 100644\n--- a/gcc/doc/invoke.texi\n+++ b/gcc/doc/invoke.texi\n@@ -164,7 +164,6 @@ listing and explanation of the binary and decimal byte size prefixes.\n * Link Options::        Specifying libraries and so on.\n * Directory Options::   Where to find header files and libraries.\n                         Where to find the compiler executable files.\n-* Picolibc Options::    Select compile and link options when using picolibc.\n * Code Gen Options::    Specifying conventions for function calls, data layout\n                         and register usage.\n * Developer Options::   Printing GCC configuration info, statistics, and\n@@ -798,11 +797,6 @@ Objective-C and Objective-C++ Dialects}.\n --no-canonical-prefixes  --no-standard-includes\n --prefix=@var{prefix}  --sysroot=@var{dir}}\n \n-@item Picolibc Options\n-@xref{Picolibc Options,,Options for use with Picolibc}.\n-@gccoptlist{--oslib=@var{library} --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]}\n---printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}  --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}}\n-\n @item Code Generation Options\n @xref{Code Gen Options,,Options for Code Generation Conventions}.\n @gccoptlist{-fcall-saved-@var{reg}  -fcall-used-@var{reg}\n@@ -1319,6 +1313,10 @@ Objective-C and Objective-C++ Dialects}.\n -mint32  -mint16\n -msplit  -munix-asm  -mdec-asm  -mgnu-asm  -mlra}\n \n+@emph{Picolibc Options} (@ref{Picolibc Options})\n+@gccoptlist{--oslib=@var{library} --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]}\n+--printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}  --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}}\n+\n @emph{PowerPC Options}\n See RS/6000 and PowerPC Options.\n \n@@ -18928,69 +18926,6 @@ such a suffix.\n \n @end table\n \n-@node Picolibc Options\n-@section Options for use with Picolibc\n-@cindex picolibc options\n-@cindex options, picolibc\n-\n-These options control compilation and linking when using picolibc:\n-\n-@table @gcctabopt\n-@opindex oslib\n-@item --oslib=@var{library}\n-Search the library named @var{library} after the C library, permitting\n-symbols undefined by the C library to be defined by this library. The\n-C library, libgcc and this library are placed between\n-@option{--start-group} and @option{--end-group} flags so that each can\n-refer to symbols in the others. For many targets, picolibc provides a\n-@samp{semihost} variant (specified with @option{--oslib=semihost})\n-which provides enough basic OS functionality to support console and\n-file I/O when run in an emulator or when using an in-circuit debugger.\n-\n-@opindex crt0\n-@item --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]}\n-Replace the default @file{crt0.o} name with\n-@file{crt0-@var{variant}.o}. The @samp{none} variant provides no\n-startup code at all, allowing the user to supply their\n-own. @samp{minimal} performs basic memory setup but does not invoke\n-any constructors. When no @option{-crt0} option is provided, the\n-default initialization code adds calls to all\n-constructors. @samp{hosted} adds a call to @code{exit} when\n-@code{main} returns. @samp{semihost} accesses a command line parameter\n-supplied via the semihosting interface and splits that into arguments\n-at whitespace boundaries, passing the resulting array of strings to\n-main in @code{argc} and @code{argv}. On some targets, including\n-aarch64, arc, arm, loongarch, m68k, riscv, super-h and x86,\n-@samp{semihost} also traps hardware exceptions and prints information\n-to the console. Note that @option{--crt0=semihost} depends upon APIs\n-provided by @option{--oslib=semihost}.\n-\n-@opindex printf\n-@item --printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}\n-Select the printf variant. Picolibc provides five different printf\n-variants which offer decreasing levels of functionality along with\n-decreasing code size. @samp{d} is the default level, offering full C17\n-and POSIX.1-2024 conformance. @samp{f} provides the same feature set,\n-but supports @code{float} values instead of @code{double} which are\n-passed using the @code{printf_float} macro. @samp{l} elides all\n-floating point and POSIX positional parameter support. @samp{i} limits\n-integers to those no larger than @code{long}. @samp{m} removes support\n-for most formatting options including width and precision. The formats\n-and arguments are still parsed correctly, but output does not respect\n-those parameters.\n-\n-@opindex scanf\n-@item --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}\n-Select the scanf variant. Picolibc provides five different scanf\n-variants which offer decreasing levels of functionality along with\n-decreasing code size. @samp{d} is the default level, offering full C17\n-and POSIX.1-2024 conformance. @samp{f} removes support for\n-@code{double} values. @samp{l} elides all floating point\n-support. @samp{i} limits integers to those no larger than\n-@code{long}. @samp{m} removes support for @code{%[} conversion specifiers.\n-\n-@end table\n-\n @node Code Gen Options\n @section Options for Code Generation Conventions\n @cindex code generation conventions\n@@ -21258,6 +21193,7 @@ other compilers on the same platform.\n * Nvidia PTX Options::\n * OpenRISC Options::\n * PDP-11 Options::\n+* Picolibc Options::\n * PowerPC Options::\n * PRU Options::\n * RISC-V Options::\n@@ -30915,6 +30851,69 @@ Use the new LRA register allocator.  By default, the old ``reload''\n allocator is used.\n @end table\n \n+@node Picolibc Options\n+@subsection Picolibc Options\n+@cindex picolibc options\n+@cindex options, picolibc\n+\n+These options control compilation and linking when using picolibc:\n+\n+@table @gcctabopt\n+@opindex oslib\n+@item --oslib=@var{library}\n+Search the library named @var{library} after the C library, permitting\n+symbols undefined by the C library to be defined by this library. The\n+C library, libgcc and this library are placed between\n+@option{--start-group} and @option{--end-group} flags so that each can\n+refer to symbols in the others. For many targets, picolibc provides a\n+@samp{semihost} variant (specified with @option{--oslib=semihost})\n+which provides enough basic OS functionality to support console and\n+file I/O when run in an emulator or when using an in-circuit debugger.\n+\n+@opindex crt0\n+@item --crt0=@r{[}none@r{|}minimal@r{|}hosted@r{|}semihost@r{]}\n+Replace the default @file{crt0.o} name with\n+@file{crt0-@var{variant}.o}. The @samp{none} variant provides no\n+startup code at all, allowing the user to supply their\n+own. @samp{minimal} performs basic memory setup but does not invoke\n+any constructors. When no @option{-crt0} option is provided, the\n+default initialization code adds calls to all\n+constructors. @samp{hosted} adds a call to @code{exit} when\n+@code{main} returns. @samp{semihost} accesses a command line parameter\n+supplied via the semihosting interface and splits that into arguments\n+at whitespace boundaries, passing the resulting array of strings to\n+main in @code{argc} and @code{argv}. On some targets, including\n+aarch64, arc, arm, loongarch, m68k, riscv, super-h and x86,\n+@samp{semihost} also traps hardware exceptions and prints information\n+to the console. Note that @option{--crt0=semihost} depends upon APIs\n+provided by @option{--oslib=semihost}.\n+\n+@opindex printf\n+@item --printf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}\n+Select the printf variant. Picolibc provides five different printf\n+variants which offer decreasing levels of functionality along with\n+decreasing code size. @samp{d} is the default level, offering full C17\n+and POSIX.1-2024 conformance. @samp{f} provides the same feature set,\n+but supports @code{float} values instead of @code{double} which are\n+passed using the @code{printf_float} macro. @samp{l} elides all\n+floating point and POSIX positional parameter support. @samp{i} limits\n+integers to those no larger than @code{long}. @samp{m} removes support\n+for most formatting options including width and precision. The formats\n+and arguments are still parsed correctly, but output does not respect\n+those parameters.\n+\n+@opindex scanf\n+@item --scanf=@r{[}d@r{|}f@r{|}l@r{|}i@r{|}m@r{]}\n+Select the scanf variant. Picolibc provides five different scanf\n+variants which offer decreasing levels of functionality along with\n+decreasing code size. @samp{d} is the default level, offering full C17\n+and POSIX.1-2024 conformance. @samp{f} removes support for\n+@code{double} values. @samp{l} elides all floating point\n+support. @samp{i} limits integers to those no larger than\n+@code{long}. @samp{m} removes support for @code{%[} conversion specifiers.\n+\n+@end table\n+\n @node PowerPC Options\n @subsection PowerPC Options\n @cindex PowerPC options\n","prefixes":["PUSHED","2/3"]}