From patchwork Tue Mar 19 15:34:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Wakely X-Patchwork-Id: 1913630 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=f2FvLdop; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TzbRY0SVvz1yWn for ; Wed, 20 Mar 2024 02:36:25 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 010F93858436 for ; Tue, 19 Mar 2024 15:36:23 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 9847A3858C78 for ; Tue, 19 Mar 2024 15:35:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9847A3858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9847A3858C78 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710862555; cv=none; b=Xh2s7M3Y5Eb/O+cyCbsvHG4RBhbBfEorOhWKJBR4ayIy2+dxtZe1kzF3YcHXQSdZf82MJLmul2tvZJN/puV3O7cXAQ72XBBZKavoYnbd3wTRbvi3iyY6LKg6YRvOTvUhYhmTs620/1X9BmMUJ6TDvf2MavXstXUWOzsC2t+/mQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710862555; c=relaxed/simple; bh=sIipt5Fe8bhnI0OjwObm+h0ooFKY+Q72dMXbAxNwOFg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=dX+E98wSeqaUqSNS/y23tk9QToOHW93ycuPU+PDYDSixTeevTkDihtAx2d/X059pfDPQ9uytyw7P5PrRvsqxkY4O+alDnnvTQsTtXWKAwglvcJHt175hT0eteo6bDeV3HHVc8zdVN22gd9Farla15QSq8+1IcAS/DSRDhBDhbP8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710862552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JKB9+73Cyr/EZZSbPKL6QV9b9jbEg8ctJ2pdPed3YNU=; b=f2FvLdopNfcLFvb6qgeDSWuqziWN5QzEye4bYLJwTStJeu7nw7J550MPttGeIm7N90DPff VFdbHRVvxW3lLv6g6wjTLh3ufB7TZrxh01ROGBArp4khRA9UVdI2VBUf7NSwQMCGTlLiGk PTz+GnIYMBmLVfIKy6kZm/xAq+s4S+Q= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-119-jXcVddVGM_2PLyM3FjmlCA-1; Tue, 19 Mar 2024 11:35:51 -0400 X-MC-Unique: jXcVddVGM_2PLyM3FjmlCA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C0DDE800266; Tue, 19 Mar 2024 15:35:50 +0000 (UTC) Received: from localhost (unknown [10.42.28.8]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8D7053C21; Tue, 19 Mar 2024 15:35:50 +0000 (UTC) From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [committed] libstdc++: Update docs on build process and generated files Date: Tue, 19 Mar 2024 15:34:34 +0000 Message-ID: <20240319153530.3385635-1-jwakely@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Pushed to trunk. -- >8 -- There are several more sub-directories below 'src' now, with lots more conveience libraries. Document them all as of GCC 14. Also document how to regenerate the generated headers under include/bits and how to update the tzdata.zi file. libstdc++-v3/ChangeLog: * doc/xml/manual/build_hacking.xml: Document generated files. Update list of convenience libraries and sub-directories under the src directory. * doc/html/*: Regenerate. --- libstdc++-v3/doc/html/index.html | 2 +- libstdc++-v3/doc/html/manual/appendix.html | 2 +- .../doc/html/manual/appendix_porting.html | 119 +++++++++++-- libstdc++-v3/doc/html/manual/index.html | 2 +- libstdc++-v3/doc/xml/manual/build_hacking.xml | 164 ++++++++++++++++-- 5 files changed, 262 insertions(+), 27 deletions(-) diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml index 36f659cea4b..077c0632a79 100644 --- a/libstdc++-v3/doc/xml/manual/build_hacking.xml +++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml @@ -554,9 +554,9 @@ baseline file. make src - Generates two convenience libraries, one for C++98 and one for - C++11, various compatibility files for shared and static - libraries, and then collects all the generated bits and creates + Generates several convenience libraries, + various compatibility files for shared and static libraries, + and then collects all the generated bits and creates the final libstdc++ libraries. @@ -566,8 +566,8 @@ baseline file. Generates a libtool convenience library, - libc++98convenience with language-support - routines. Uses the dialect. + libc++98convenience with the library components + defined by C++98. Uses the dialect. @@ -576,8 +576,84 @@ baseline file. Generates a libtool convenience library, - libc++11convenience with language-support - routines. Uses the dialect. + libc++11convenience with the library components + that were added or changed in C++11. + Uses the dialect. + + + + + make src/c++17 + + + Generates a libtool convenience library, + libc++17convenience with the library components + that were added or changed in C++17. + Uses the dialect. + + + + + make src/c++20 + + + Generates a libtool convenience library, + libc++20convenience with the library components + that were added or changed in C++20. + Uses the dialect. + + + + + make src/c++23 + + + Generates a libtool convenience library, + libc++23convenience with the library components + that were added or changed in C++23. + At the time of writing (GCC 14) this convenience library is included + in libstdc++exp.a and not in the final + libstdc++ libraries. + Uses the dialect. + + + + + make src/filesystem + + + Generates a libtool convenience library, + libstdc++fsconvenience, + and a standalone static library, + libstdc++fs.a. + These contain definitions of the Filesystem TS extensions. + Uses the dialect. + + + + + make src/libbacktrace + + + Generates a libtool convenience library, + libstdc++_libbacktrace, + containing the libbacktrace definitions used by the C++23 + std::stacktrace feature. + + + + + make src/experimental + + + Generates a standalone static library, + libstdc++exp.a, containing the symbol definitions + for experimental features and extensions. This collects the convenience + libraries libstdc++fsconvenience, + libstdc++_libbacktrace, and + (at the time of writing) libc++23convenience + and combines them into one. + Uses the dialect. @@ -591,10 +667,11 @@ baseline file. - Then, collects all the generated convenience libraries, adds in - any required compatibility objects, and creates the final shared - and static libraries: libstdc++.so and - libstdc++.a. + Then, collects all the generated convenience libraries that weren't + added to libstdc++exp.a, + adds in any required compatibility objects, + and creates the final shared and static libraries: + libstdc++.so and libstdc++.a. @@ -604,4 +681,69 @@ baseline file. +
Generated files + + + Some files in the libstdc++ source tree are auto-generated from other files. + In general, these are not regenerated automatically, so it must be done + manually when the files they depend on are updated. + + + + + + The header file + include/bits/version.h + is generated from version.def and + version.tpl in the same directory. + After editing those files, either run autogen version.def + in the include directory of the + source tree, or run make update-version in the + include directory of the build tree. + + + + + The header file + include/bits/unicode-data.h + is generated by the Python script + ../contrib/unicode/gen_libstdcxx_unicode_data.py + using data files in the same directory. The script contains information + on which data files it uses and how to update them. + + + + + The header file + include/bits/text_encoding-data.h + is generated by the Python script + scripts/gen_text_encoding_data.py + using the CSV file + from the IANA Character Sets + registry. + + + + + The data file src/c++20/tzdata.zi is copied verbatim + from the + IANA Time Zone Database + (the latest version can be downloaded from + ). + Libstdc++ uses this data file to populate a + std::chrono::tzdb object in case the system does not + provide a copy of the file. + See for the + --with-libstdcxx-zoneinfo option that determines whether + this file is used. + + + + +
+