https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104500

            Bug ID: 104500
           Summary: Document directory layout for installed C++ headers
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Keywords: documentation
          Severity: minor
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

https://gcc.gnu.org/onlinedocs/libstdc++/manual/source_organization.html
describes the directory layout in the source tree, but we have nothing
describing the post-install tree.

Draft:

Libstdc++ headers are always split across three directories:

    $prefix/include/c++/$version: Most headers are here, and are
target-independent.
    $prefix/include/c++/$version/$triplet: target-specific headers such as
bits/c++config.h, CPU-specific atomics (predating __atomic built-ins and
libatomic), and headers that depend on the build-time GCC config options like
the choice of thread model, locale backend, allocator backend, etc.
    $prefix/include/c++/$version/backward: <strstream> and legacy headers like
<hash_map>.

The second one will be modified by the multilib options, so on x86_64 -m32 will
use $prefix/include/c++/$version/$triplet/32 instead.

In all cases, $version might be X.Y.Z or just X if GCC was configured with
--with-gcc-major-version-only

Reply via email to