diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 5fc8051ac5395924a002a44b2045d10503af2b74..5c4de1b67f79585e300d76ee0d9e69ddd0901349 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,13 @@
+2001-09-27  Phil Edwards  <pme@gcc.gnu.org>
+
+	* include/std/*:  Add Doxygen hooks.
+	* docs/doxygen/Intro.3:  New file, general intro to the man pages.
+	* docs/doxygen/mainpage.doxy:  Formatting tweaks.  List our own links
+	rather than using a generated index.
+	* docs/doxygen/user.cfg.in:  Disable the index, enable man pages.
+	* docs/doxygen/run_doxygen:  Massage the generated man pages, using...
+	* docs/doxygen/stdheader.cc:  ...this new file.
+
 2001-09-26  Stan Shebs  <shebs@apple.com>
 
 	* include/Makefile.am: Remove RCS Id strings.
diff --git a/libstdc++-v3/docs/doxygen/Intro.3 b/libstdc++-v3/docs/doxygen/Intro.3
new file mode 100644
index 0000000000000000000000000000000000000000..5df718b118bcb17d770be4f0d26dfa203529f84e
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/Intro.3
@@ -0,0 +1,24 @@
+.\" This man page is released under the FDL as part of libstdc++-v3.
+.TH Intro 3 "27 September 2001" "GNU libstdc++-v3" "Standard C++ Library"
+.SH NAME
+Intro \- Introduction to the GNU libstdc++-v3 man pages
+.SH DESCRIPTION
+
+This should mention the man pages generated for modules.
+
+.SH FILES
+
+Lots.  Wish I knew enough *roff syntax to list them nicely.
+
+.SH CONFORMING TO
+Almost conforming to
+.BI "International Standard ISO/IEC 14882:1998(E), " "Programming Languages --- C++"
+(aka the C++ standard), in addition to corrections proposed by the Library
+Working Group,
+.SM JTC1/SC22/WG21.
+.SH SEE ALSO
+.UR
+http://gcc.gnu.org/libstdc++/
+.UE
+for the Frequently Asked Questions, online documentation, and more.
+
diff --git a/libstdc++-v3/docs/doxygen/mainpage.doxy b/libstdc++-v3/docs/doxygen/mainpage.doxy
index a05692b8f78fac993786e753a41a7f6f5d48e50d..f1fa54d10373f04a47e62bd30f6fd85fed0fe068 100644
--- a/libstdc++-v3/docs/doxygen/mainpage.doxy
+++ b/libstdc++-v3/docs/doxygen/mainpage.doxy
@@ -1,62 +1,75 @@
 /*! \mainpage
 
-<h2> documentation overview </h2>
+<h2> Documentation Overview </h2>
 
-<p>
-There are two types of documentation for libstdc++-v3. One is the distribution documentation, which can be read
-<a href="http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html">here</a>.
+<p>There are two types of documentation for libstdc++-v3.  One is the
+   distribution documentation, which can be read online at
+   <a href="http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html">http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html</a>
+   or offline from docs/html/documentation.html in the library source
+   directory.
 </p>
 
-<p>
-The other is the source documentation, of which this is the first page.
+<p>The other type is the source documentation, of which this is the first page.
+   Here are quick links to the pages which we seem to use the most; a full
+   index is at the bottom:
+   <!-- Keep this in sync with below. -->
+   <ul>
+    <li><a href="annotated.html">Compound List</a>
+    <li><a href="classes.html">Alphabetical List</a>
+    <li><a href="files.html">File List</a>
+    <!-- Will be useful, but not yet. <li><a href="modules.html">Modules</a> -->
+   </ul>
 </p>
 
-<h2> generating this file </h2>
-<p>
-This page is automatically generated. The Makefile rule <tt>make
-doxygen</tt> in the libstdc++-v3 build directory generates these pages
-using a tool called, appropriately enough, doxygen. To learn more
-about doxygen, take a look at <a href="http://www.doxygen.org"> the
-doxygen webpage </a>.
+<h2> Generating this file </h2>
+<p>This page is automatically generated.  The Makefile rule <code> make
+   doxygen </code> in the libstdc++-v3 build directory generates these pages
+   using a tool called, appropriately enough, Doxygen.  To learn more about
+   Doxygen, take a look at <a href="http://www.doxygen.org">the Doxygen
+   webpage</a>.
 </p>
 
-<p>
-The libstdc++-v3 configuration files needed to generate doxygen output
-are located:
-<p> <tt> docs/doxygen/user.cfg.in</tt> </p>
-<p> <tt> docs/doxygen/maint.cfg.in</tt> </p>
+<p>The libstdc++-v3 configuration files needed to generate doxygen output
+   are located:
+   <ul><li><code>docs/doxygen/user.cfg.in</code>
+       <li><code>docs/doxygen/maint.cfg.in</code>
+   </ul>
 </p>
 
 <h2> libstdc++-v3 doxygen style guide </h2>
-<p>
-In general, libstdc++-v3 files should be formatted according to the
-GNU C++ Coding Standard rules found in the file <a
+<p>In general, libstdc++-v3 files should be formatted according to the
+   GNU C++ Coding Standard rules found in the file <a
 href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/C++STYLE">C++STYLE</a>.
-Before any doxygen-specific formatting tweaks are made, please try to
-make sure that the initial formatting is sound.
+   Before any doxygen-specific formatting tweaks are made, please try to
+   make sure that the initial formatting is sound.
 </p>
 
-<p>
-The formatting guidelines for using libstdc++-v3 with doxygen are
-still incomplete. There seems to be a marginal preference for the use
-of Java-Doc style formatting, with the idea that the single-line style
-(triple-slash) is the least intrusive mechanism for getting
-libstdc++-v3 documented and cross-referenced while at the same time
-minimizing disruption to the current formatting.
+<p>The formatting guidelines for using libstdc++-v3 with doxygen are still
+   incomplete.  There seems to be a marginal preference for the use of
+   Java-Doc style formatting, with the idea that the single-line style
+   (triple-slash) is the least intrusive mechanism for getting libstdc++-v3
+   documented and cross-referenced while at the same time minimizing
+   disruption to the current formatting.  Full documentation of functions
+   (parameter types, return values, etc) will require the slash-splat-splat
+   &quot;extended C&quot; commenting style.
 </p>
 
-<p>
-For the time being, please see <tt>include/bits/char_traits.h</tt>
-which is the test bed for a finished doxygen style guide.
+<h2> Full page index </h2>
+<p>Here are entry points to all the pages generated by Doxygen:
+   <ul>
+    <li><a href="index.html">Main Page</a>
+    <li><a href="modules.html">Modules</a>
+    <li><a href="namespaces.html">Namespace List</a>
+    <li><a href="hierarchy.html">Class Hierarchy</a>
+    <li><a href="classes.html">Alphabetical List</a>
+    <li><a href="annotated.html">Compound List</a>
+    <li><a href="files.html">File List</a>
+    <li><a href="namespacemembers.html">Namespace Members</a>
+    <li><a href="functions.html">Compound Members</a>
+    <li><a href="globals.html">File Members</a>
+   </ul>
 </p>
 
 */
 
 
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/docs/doxygen/run_doxygen b/libstdc++-v3/docs/doxygen/run_doxygen
index 6bd83f024b3cd5597aa37cc17e13c94185b80185..d515dfde99a3f36ba7682bcdd9bd98f2d3b9e44c 100644
--- a/libstdc++-v3/docs/doxygen/run_doxygen
+++ b/libstdc++-v3/docs/doxygen/run_doxygen
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Runs doxygen.  Possibly will massage the output files.
+# Runs doxygen and massages the output files.
 #
 # Synopsis:  run_doxygen --mode=[user|maint]  v3srcdir  v3builddir
 #
@@ -69,14 +69,6 @@ parse_options() {
         mode=$arg ;;
       --mode | --help | -h)
         print_usage ;;
-      --version | -v)
-        # Aw, that's so cuuuute... don't ask, I needed it.
-        blank=
-        Id=is
-        echo You expect this dinky script to track a version?  Okay, here
-        echo it $Id: run_doxygen,v 1.6 2001/07/11 19:35:47 pme Exp $blank
-        exit 0
-        ;;
       *)
         # this turned out to be a mess, maybe change to --srcdir=, etc
         if test $srcdir = unset; then
@@ -129,12 +121,56 @@ chmod u+w $outdir
   echo :: Finished, exit code was $?
 )
 
-# mess with output files here?
+# Mess with the man pages.  We don't need documentation of the internal
+# headers, since the man pages for those contain nothing useful anyhow.  The
+# man pages for doxygen modules need to be renamed (or deleted).  And the
+# generated #include lines need to be changed from the internal names to the
+# standard ones (e.g., "#include <stl_tempbuf.h>" -> "#include <memory>").
+#
+# File names with embedded spaces (EVIL!) need to be....?  renamed or removed?
+cd $outdir/man/man3 && {
+echo :: Fixing up the man pages...
+
+# requires GNU tools
+find . -name "* *" -print0 | xargs -0 rm
+rm *.h.3
+
+# can leave SGIextensions.3 alone, it's an okay name
+mv s20_3_1_base.3           Intro_functors.3
+mv s20_3_2_arithmetic.3     Arithmetic_functors.3
+mv s20_3_3_comparisons.3    Comparison_functors.3
+mv s20_3_4_logical.3        Logical_functors.3
+mv s20_3_5_negators.3       Negation_functors.3
+mv s20_3_6_binder.3         Binder_functors.3
+mv s20_3_7_adaptors.3       Func_ptr_functors.3
+mv s20_3_8_memadaptors.3    Member_ptr_functors.3
+
+# Standardize the displayed header names.  If anyone who knows perl cares
+# enough to rewrite all this, feel free.  This only gets run once a century,
+# and I'm off getting coffee then anyhow, so I didn't care enough to make
+# this super-fast.
+g++ ${srcdir}/docs/doxygen/stdheader.cc -o ./stdheader
+problematic=`egrep -l '#include <.*_.*>' [a-z]*.3`
+for f in $problematic; do
+    # this is also slow, but safe and easy to debug
+    oldh=`sed -n '/#include </s/.*<\(.*\)>.*/\1/p' $f`
+    newh=`echo $oldh | ./stdheader`
+    sed "s=${oldh}=${newh}=" $f > TEMP
+    mv TEMP $f
+done
+rm stdheader
+
+cp ${srcdir}/docs/doxygen/Intro.3 .
 
+}
+
+# all done
 echo ::
 echo :: Doxygen output begins with
 echo :: ${outdir}/html_${mode}/index.html
 echo ::
+echo :: Man pages in ${outdir}/man
+echo ::
 
 exit 0
 
diff --git a/libstdc++-v3/docs/doxygen/stdheader.cc b/libstdc++-v3/docs/doxygen/stdheader.cc
new file mode 100644
index 0000000000000000000000000000000000000000..d705d0169c83f154d12868c31e24b0d55dff0da0
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/stdheader.cc
@@ -0,0 +1,146 @@
+// This is a slow larval-stage kludge to help massage the generated man
+// pages.  It's used like this:
+const char* const usage = 
+"\nTakes on stdin, whitespace-separated words of the form\n"
+"\n"
+"    [bits/]stl_foo.h\n"
+"    [bits/]std_foo.h\n"
+"\n"
+"and writes on stdout the nearest matching standard header name.\n"
+"\n"
+"Takes no command-line arguments.\n"
+"\n";
+
+#include <string>
+#include <map>
+#include <iostream>
+
+typedef std::map<std::string, std::string>   Map;
+
+Map  headers;
+
+void init_map()
+{
+    // Enter the glamourous world of data entry!!  Maintain these!
+    headers["algo.h"]                   = "algorithm";
+    headers["algobase.h"]               = "algorithm";
+    headers["algorithm.h"]              = "algorithm";
+    headers["alloc.h"]                  = "memory";
+    headers["basic_ios.h"]              = "ios";
+    headers["basic_ios.tcc"]            = "ios";
+    headers["basic_string.h"]           = "string";
+    headers["basic_string.tcc"]         = "string";
+    headers["bitset.h"]                 = "bitset";
+    headers["bvector.h"]                = "vector";
+    //headers["char_traits.h"]            uhhhhhh
+    headers["complex.h"]                = "complex";
+    //headers["construct.h"]              stl_construct.h entirely internal
+    headers["deque.h"]                  = "deque";
+    headers["fstream.h"]                = "fstream";
+    headers["fstream.tcc"]              = "fstream";
+    headers["function.h"]               = "functional";
+    headers["functional.h"]             = "functional";
+    headers["heap.h"]                   = "algorithm";
+    headers["iomanip.h"]                = "iomanip";
+    headers["ios.h"]                    = "ios";
+    headers["iosfwd.h"]                 = "iosfwd";
+    headers["iostream.h"]               = "iostream";
+    headers["istream.h"]                = "istream";
+    headers["istream.tcc"]              = "istream";
+    headers["iterator.h"]               = "iterator";
+    headers["iterator_base_funcs.h"]    = "iterator";
+    headers["iterator_base_types.h"]    = "iterator";
+    headers["limits.h"]                 = "limits";
+    headers["list.h"]                   = "list";
+    headers["locale.h"]                 = "locale";
+    headers["locale_facets.h"]          = "locale";
+    headers["locale_facets.tcc"]        = "locale";
+    headers["map.h"]                    = "map";
+    headers["memory.h"]                 = "memory";
+    headers["multimap.h"]               = "map";
+    headers["multiset.h"]               = "set";
+    headers["numeric.h"]                = "numeric";
+    headers["ostream.h"]                = "ostream";
+    headers["ostream.tcc"]              = "ostream";
+    headers["pair.h"]                   = "utility";
+    //headers["pthread_alloc.h"]          who knows
+    headers["queue.h"]                  = "queue";
+    headers["raw_storage_iter.h"]       = "memory";
+    headers["relops.h"]                 = "utility";
+    headers["set.h"]                    = "set";
+    headers["sstream.h"]                = "sstream";
+    headers["sstream.tcc"]              = "sstream";
+    headers["stack.h"]                  = "stack";
+    headers["stdexcept.h"]              = "stdexcept";
+    headers["streambuf.h"]              = "streambuf";
+    headers["streambuf.tcc"]            = "streambuf";
+    headers["string.h"]                 = "string";
+    headers["tempbuf.h"]                = "memory";
+    //headers["threads.h"]                who knows
+    headers["tree.h"]                   = "backward/tree.h";
+    headers["uninitialized.h"]          = "memory";
+    headers["utility.h"]                = "utility";
+    headers["valarray.h"]               = "valarray";
+    headers["valarray_array.h"]         = "valarray";
+    headers["valarray_array.tcc"]       = "valarray";
+    headers["valarray_meta.h"]          = "valarray";
+    headers["vector.h"]                 = "vector";
+
+    // C wrappers -- probably was an easier way to do these, but oh well
+    headers["cassert.h"]                = "cassert";
+    headers["cctype.h"]                 = "cctype";
+    headers["cerrno.h"]                 = "cerrno";
+    headers["cfloat.h"]                 = "cfloat";
+    headers["climits.h"]                = "climits";
+    headers["clocale.h"]                = "clocale";
+    headers["cmath.h"]                  = "cmath";
+    headers["csetjmp.h"]                = "csetjmp";
+    headers["csignal.h"]                = "csignal";
+    headers["cstdarg.h"]                = "cstdarg";
+    headers["cstddef.h"]                = "cstddef";
+    headers["cstdio.h"]                 = "cstdio";
+    headers["cstdlib.h"]                = "cstdlib";
+    headers["cstring.h"]                = "cstring";
+    headers["ctime.h"]                  = "ctime";
+    headers["cwchar.h"]                 = "cwchar";
+    headers["cwctype.h"]                = "cwctype";
+}
+
+
+void do_word (std::string const& longheader)
+{
+    std::string::size_type start = 0;
+
+    if (longheader.substr(start,5) == "bits/")  start += 5;
+    if ((longheader.substr(start,4) == "stl_") ||
+        (longheader.substr(start,4) == "std_"))
+    {
+        start += 4;
+    }
+
+    // come on, gdb, find `p' already...
+    const char* p = longheader.substr(start).c_str();
+    Map::iterator word = headers.find(p);
+    if (word != headers.end())
+        std::cout << word->second << '\n';
+    else std::cout << "MAYBE_AN_ERROR_MESSAGE_HERE\n";
+}
+
+
+int main (int argc, char**)
+{
+    if (argc > 1)
+    {
+        std::cerr << usage;
+        exit(0);
+    }
+
+    init_map();
+
+    std::string w;
+    while (std::cin >> w)
+        do_word (w);
+}
+
+// vim:ts=4:et:
+
diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in
index 97c0ca4fcc03714615118f9b38d3ad1ccc3ed2b1..a78cd5c32f16bc0b3b95f9d21b65063e57d46d1b 100644
--- a/libstdc++-v3/docs/doxygen/user.cfg.in
+++ b/libstdc++-v3/docs/doxygen/user.cfg.in
@@ -344,13 +344,14 @@ RECURSIVE              = YES
 # subdirectory from a directory tree whose root is specified with the INPUT tag. 
 
 EXCLUDE                = include/c \
-                         include/c_shadow
+                         include/c_shadow \
+                         docs/doxygen/stdheader.cc
 
 # If the value of the INPUT tag contains directories, you can use the 
 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
 # certain files from those directories. 
 
-EXCLUDE_PATTERNS       = 
+EXCLUDE_PATTERNS       = CVS
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or 
 # directories that contain example code fragments that are included (see 
@@ -477,7 +478,7 @@ TOC_EXPAND             = NO
 # top of each HTML page. The value NO (the default) enables the index and 
 # the value YES disables it. 
 
-DISABLE_INDEX          = NO
+DISABLE_INDEX          = YES
 
 # This tag can be used to set the number of enum values (range [1..20]) 
 # that doxygen will group on one line in the generated HTML documentation. 
@@ -601,7 +602,7 @@ RTF_STYLESHEET_FILE    =
 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 # generate man pages 
 
-GENERATE_MAN           = NO
+GENERATE_MAN           = YES
 
 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm
index 06a553fdddb8f0737d38eeb3f88f83f2693b3a46..33ed8724b3c361cb99707361d25f2287865ce903 100644
--- a/libstdc++-v3/include/std/algorithm
+++ b/libstdc++-v3/include/std/algorithm
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file algorithm
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_ALGORITHM
 #include <bits/std_algorithm.h>
 #endif
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index 9ce6c7962da419c03ef82c92c38ea33cd6b9dfb9..830ee7c7b0d2b1f538a64424268abcca7fbcb40c 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file bitset
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_BITSET
 #include <bits/std_bitset.h>
 #endif
diff --git a/libstdc++-v3/include/std/cassert b/libstdc++-v3/include/std/cassert
index fe0b8b5b645c35cf4eeaa8302f778e3bb3911798..5cb1e01eed15626dc395e8fd8a883b43e45bcbf6 100644
--- a/libstdc++-v3/include/std/cassert
+++ b/libstdc++-v3/include/std/cassert
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cassert
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c assert.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 // This one should not have include guards.
 #include <bits/std_cassert.h>
 
diff --git a/libstdc++-v3/include/std/cctype b/libstdc++-v3/include/std/cctype
index 868e4be335ca13b9f1ef28e6b8230d4e4abf82fa..b5bf92824554c63c9ea4136f252c8b047967da89 100644
--- a/libstdc++-v3/include/std/cctype
+++ b/libstdc++-v3/include/std/cctype
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cctype
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c ctype.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CCTYPE
 #include <bits/std_cctype.h>
 #endif
diff --git a/libstdc++-v3/include/std/cerrno b/libstdc++-v3/include/std/cerrno
index b7bfe3a393d9432cdf242e31d59052e3254cef19..0c1774984ee8906418d409dbffb288466a93cb1b 100644
--- a/libstdc++-v3/include/std/cerrno
+++ b/libstdc++-v3/include/std/cerrno
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cerrno
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c errno.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CERRNO
 #include <bits/std_cerrno.h>
 #endif
diff --git a/libstdc++-v3/include/std/cfloat b/libstdc++-v3/include/std/cfloat
index d91824d38ae9b7303f46d26a81bdb252ca98cf93..fa5756daada7ffac291b39abc5ba16db253964fa 100644
--- a/libstdc++-v3/include/std/cfloat
+++ b/libstdc++-v3/include/std/cfloat
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cfloat
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c float.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CFLOAT
 #include <bits/std_cfloat.h>
 #endif
diff --git a/libstdc++-v3/include/std/ciso646 b/libstdc++-v3/include/std/ciso646
index f5dd444bd17d8767d1fb6434cca500c1ce1c9b7b..c9f49fb6fc391355cc65ec18cf74e3a21e96f3f7 100644
--- a/libstdc++-v3/include/std/ciso646
+++ b/libstdc++-v3/include/std/ciso646
@@ -26,3 +26,13 @@
 // the GNU General Public License.  This exception does not however
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
+
+/** @file ciso646
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c iso646.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
diff --git a/libstdc++-v3/include/std/climits b/libstdc++-v3/include/std/climits
index afadc6403d528d0f7694a98eaa389543ee658fd4..345ad6140d738552f75a8c172b7c9f1913f0bab6 100644
--- a/libstdc++-v3/include/std/climits
+++ b/libstdc++-v3/include/std/climits
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file climits
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c limits.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CLIMITS
 #include <bits/std_climits.h>
 #endif
diff --git a/libstdc++-v3/include/std/clocale b/libstdc++-v3/include/std/clocale
index 8a62dfa886d1ca25bb3632dc3786e5594c6ad3b6..3775010986a57da65949a28e49dc9ba776dff262 100644
--- a/libstdc++-v3/include/std/clocale
+++ b/libstdc++-v3/include/std/clocale
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file clocale
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c locale.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CLOCALE
 #include <bits/std_clocale.h>
 #endif
diff --git a/libstdc++-v3/include/std/cmath b/libstdc++-v3/include/std/cmath
index 95da649724abcec349534fdb969ee8f31a500ada..d565307c534eb3d32831761ebb5a5f2156920e0b 100644
--- a/libstdc++-v3/include/std/cmath
+++ b/libstdc++-v3/include/std/cmath
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cmath
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c math.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CMATH
 #include <bits/std_cmath.h>
 #endif
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index dfc144ffdc396e26172bde0cabbe6bce0eb3f2af..6b7abcfa77e3c6d5c1f2837c2f697d2c4247e283 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file complex
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_COMPLEX
 #include <bits/std_complex.h>
 #endif
diff --git a/libstdc++-v3/include/std/csetjmp b/libstdc++-v3/include/std/csetjmp
index ce6fb32c957b460a5743c811a39da2082e322b8a..daf11b354a806ca8fa776d8fd3e73aff5b5a8fd2 100644
--- a/libstdc++-v3/include/std/csetjmp
+++ b/libstdc++-v3/include/std/csetjmp
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file csetjmp
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c setjmp.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSETJMP
 #include <bits/std_csetjmp.h>
 #endif
diff --git a/libstdc++-v3/include/std/csignal b/libstdc++-v3/include/std/csignal
index b3da42a9a739dbeb68dbb6487bc18926f05f2ec8..3790ff51882d1defa57dc29d0ce82ddba0a34ff0 100644
--- a/libstdc++-v3/include/std/csignal
+++ b/libstdc++-v3/include/std/csignal
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file csignal
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c signal.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSIGNAL
 #include <bits/std_csignal.h>
 #endif
diff --git a/libstdc++-v3/include/std/cstdarg b/libstdc++-v3/include/std/cstdarg
index 36032b22c234aa0db8beff70cd680c88eaf3aeab..8dfe625bcaec1179b1b60a018b58f5fdc2c5d440 100644
--- a/libstdc++-v3/include/std/cstdarg
+++ b/libstdc++-v3/include/std/cstdarg
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cstdarg
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdarg.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDARG
 #include <bits/std_cstdarg.h>
 #endif
diff --git a/libstdc++-v3/include/std/cstddef b/libstdc++-v3/include/std/cstddef
index 086bb726b2bfa27556464460aa068cb6a6f96fb1..4b3d1f5be78706b15b438ca7c10bcf29613adfaa 100644
--- a/libstdc++-v3/include/std/cstddef
+++ b/libstdc++-v3/include/std/cstddef
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cstddef
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stddef.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDDEF
 #include <bits/std_cstddef.h>
 #endif
diff --git a/libstdc++-v3/include/std/cstdio b/libstdc++-v3/include/std/cstdio
index 4d8aced1f8c4e793efac2a333efc3bdba275d83c..b546585091d0df88c5c5a02c347c673c0d32efd4 100644
--- a/libstdc++-v3/include/std/cstdio
+++ b/libstdc++-v3/include/std/cstdio
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cstdio
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdio.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDIO
 #include <bits/std_cstdio.h>
 #endif
diff --git a/libstdc++-v3/include/std/cstdlib b/libstdc++-v3/include/std/cstdlib
index 7796c6b3254360a375d5eb0fe42bcfa7003102bb..2feeb533b658eb495a78d421b1cf8f6d86d8b65f 100644
--- a/libstdc++-v3/include/std/cstdlib
+++ b/libstdc++-v3/include/std/cstdlib
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cstdlib
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdlib.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDLIB
 #include <bits/std_cstdlib.h>
 #endif
diff --git a/libstdc++-v3/include/std/cstring b/libstdc++-v3/include/std/cstring
index 8d30ba8a9cb4e8db238aca3bc725952cda137945..5652803abd8782aa94832cd71cc4d9ffd6a23619 100644
--- a/libstdc++-v3/include/std/cstring
+++ b/libstdc++-v3/include/std/cstring
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cstring
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c string.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTRING
 #include <bits/std_cstring.h>
 #endif
diff --git a/libstdc++-v3/include/std/ctime b/libstdc++-v3/include/std/ctime
index b19136e87a690bba948f6e32d1cd1467d619e6c0..e1d6bc9d065e50c0bb61ad3b501d95af143dac39 100644
--- a/libstdc++-v3/include/std/ctime
+++ b/libstdc++-v3/include/std/ctime
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file ctime
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c time.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CTIME
 #include <bits/std_ctime.h>
 #endif
diff --git a/libstdc++-v3/include/std/cwchar b/libstdc++-v3/include/std/cwchar
index 311b2e9e31fdb8505e2d3181ca8172853aa5cec3..aa928d72870d3b10b51d5ef45455078da38bd517 100644
--- a/libstdc++-v3/include/std/cwchar
+++ b/libstdc++-v3/include/std/cwchar
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cwchar
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c wchar.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CWCHAR
 #include <bits/std_cwchar.h>
 #endif
diff --git a/libstdc++-v3/include/std/cwctype b/libstdc++-v3/include/std/cwctype
index 4cf2e7dfe774bd173cd123bbde54db3d9a082b91..b0de79eeb9d9a0bcf000097d41084de9e8eb1bed 100644
--- a/libstdc++-v3/include/std/cwctype
+++ b/libstdc++-v3/include/std/cwctype
@@ -27,6 +27,15 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file cwctype
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c wctype.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CWCTYPE
 #include <bits/std_cwctype.h>
 #endif
diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque
index c8ee81e9e6b2238fa60f977625210306a0d3ac50..222d7cacb71d3305177fc0855ae90f54296a60cd 100644
--- a/libstdc++-v3/include/std/deque
+++ b/libstdc++-v3/include/std/deque
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file deque
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_DEQUE
 #include <bits/std_deque.h>
 #endif
diff --git a/libstdc++-v3/include/std/fstream b/libstdc++-v3/include/std/fstream
index 1a68f5ab19f844ccbc31b6e840aa7f814b21bc8a..9d6fcfc73e49706834c1fc8a485e4e9fa2ba20cc 100644
--- a/libstdc++-v3/include/std/fstream
+++ b/libstdc++-v3/include/std/fstream
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file fstream
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_FSTREAM
 #include <bits/std_fstream.h>
 #endif
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index ea48352643e03c4ddfeaf7d995c0ea1c1ab54c50..10c55256134e8e8b3d74f86940525f5d7729cf05 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file functional
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_FUNCTIONAL
 #include <bits/std_functional.h>
 #endif
diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip
index 2aa00fa9de9b852167bcb1cc885867f6a2d411c2..56599183631d3a887e1d2873e49e9a8de5d34fab 100644
--- a/libstdc++-v3/include/std/iomanip
+++ b/libstdc++-v3/include/std/iomanip
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file iomanip
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_IOMANIP
 #include <bits/std_iomanip.h>
 #endif
diff --git a/libstdc++-v3/include/std/ios b/libstdc++-v3/include/std/ios
index ff398de06817af882e928cdf8f4c9ecd28be7f8b..a017dd894bebd71992b4034de5dfc5504e9fe27c 100644
--- a/libstdc++-v3/include/std/ios
+++ b/libstdc++-v3/include/std/ios
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file ios
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_IOS
 #include <bits/std_ios.h>
 #endif
diff --git a/libstdc++-v3/include/std/iosfwd b/libstdc++-v3/include/std/iosfwd
index 3756982abe1a747a7ae222d2e30433eef9c83c11..e48516a180ea89f9e3db1672133860a603c03f60 100644
--- a/libstdc++-v3/include/std/iosfwd
+++ b/libstdc++-v3/include/std/iosfwd
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file iosfwd
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_IOSFWD
 #include <bits/std_iosfwd.h>
 #endif
diff --git a/libstdc++-v3/include/std/iostream b/libstdc++-v3/include/std/iostream
index a85fd08ca5a2f05f0d062f0f2fe7b3cd6c38b5f4..a8098c6b312e200f9901133f4a1531be26cc4d14 100644
--- a/libstdc++-v3/include/std/iostream
+++ b/libstdc++-v3/include/std/iostream
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file iostream
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_IOSTREAM
 #include <bits/std_iostream.h>
 #endif
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index 9c6bc55eb3c250a98c4b7f21b524d9ec16395c21..c3835065a34475391d20931f10c5d719d1d7b842 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file istream
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_ISTREAM
 #include <bits/std_istream.h>
 #endif
diff --git a/libstdc++-v3/include/std/iterator b/libstdc++-v3/include/std/iterator
index 2560439638ab3244fd7c21e3687e81b60083d167..6e42f5634f7b81e4f123050519f1b9a0c63e99ef 100644
--- a/libstdc++-v3/include/std/iterator
+++ b/libstdc++-v3/include/std/iterator
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file iterator
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_ITERATOR
 #include <bits/std_iterator.h>
 #endif
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits
index 8a52c9cfb8186b93f89f124abbbfec93f8ddd64e..ea55c7fc18e6114873605b2b01e6d51ed98261dc 100644
--- a/libstdc++-v3/include/std/limits
+++ b/libstdc++-v3/include/std/limits
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file limits
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_LIMITS
 #include <bits/std_limits.h>
 #endif
diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list
index a32e18d127d892f89985d4d56b3e743496cff142..51490ee342e0469093fd0bcae420092b80f2dfc7 100644
--- a/libstdc++-v3/include/std/list
+++ b/libstdc++-v3/include/std/list
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file list
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_LIST
 #include <bits/std_list.h>
 #endif
diff --git a/libstdc++-v3/include/std/locale b/libstdc++-v3/include/std/locale
index 56c416d8c5db9b4f5a6ae96e49b0c0a7eb2e9fb5..5a1d62241e7b891344f263ccad779a7f763704cd 100644
--- a/libstdc++-v3/include/std/locale
+++ b/libstdc++-v3/include/std/locale
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file locale
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_LOCALE
 #include <bits/std_locale.h>
 #endif
diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map
index 06c638d5444c5237eefc5d38f31a54981bc213d9..3d10673b41aae53c20f827d374cd1121779a8c8e 100644
--- a/libstdc++-v3/include/std/map
+++ b/libstdc++-v3/include/std/map
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file map
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_MAP
 #include <bits/std_map.h>
 #endif
diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory
index ca98df6dadd49cd2b6f5283def573aafb5d241fa..a52f4921d929259a7a83625191c1138726539d87 100644
--- a/libstdc++-v3/include/std/memory
+++ b/libstdc++-v3/include/std/memory
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file memory
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_MEMORY
 #include <bits/std_memory.h>
 #endif
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index 32ba67d1a05706a5d5d7527221725c1517300d51..0d2aea0e24e941225085529e74c64cbbadf329f7 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file numeric
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_NUMERIC
 #include <bits/std_numeric.h>
 #endif
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 4564be746abc445948e033ae2b24be8d31f7e8c4..eb4fd68fca0dfa3b05236578f5153b7df02e4d75 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file ostream
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_OSTREAM
 #include <bits/std_ostream.h>
 #endif
diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue
index c4464bf9b8fc7da896463951695019d2909e30f6..b3d9cdb34291cc4379d3665b710262dabf3203b0 100644
--- a/libstdc++-v3/include/std/queue
+++ b/libstdc++-v3/include/std/queue
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file queue
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_QUEUE
 #include <bits/std_queue.h>
 #endif
diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set
index 62d671853396e0970801c3200577647c18a69562..414b04c741219877f1604d761487a0bd095a6540 100644
--- a/libstdc++-v3/include/std/set
+++ b/libstdc++-v3/include/std/set
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file set
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_SET
 #include <bits/std_set.h>
 #endif
diff --git a/libstdc++-v3/include/std/sstream b/libstdc++-v3/include/std/sstream
index 1a393ed67eec3ae4619ec6aab6e342d1f941fde0..2a53e3633c9b74d0b2839cecb7d8101eb5c4ca41 100644
--- a/libstdc++-v3/include/std/sstream
+++ b/libstdc++-v3/include/std/sstream
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file sstream
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_SSTREAM
 #include <bits/std_sstream.h>
 #endif
diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack
index 793a003237c2a3c4c53c0ab9d737b3fdd2ba5b12..e901f84a1dc201a09bec3cd85a78da7653b2bd1d 100644
--- a/libstdc++-v3/include/std/stack
+++ b/libstdc++-v3/include/std/stack
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file stack
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_STACK
 #include <bits/std_stack.h>
 #endif
diff --git a/libstdc++-v3/include/std/stdexcept b/libstdc++-v3/include/std/stdexcept
index d9e93f2ef9a75966e34cf0e3df301e4066b852f1..03e89e82b6c041b85f01294e4144af4bf25809e6 100644
--- a/libstdc++-v3/include/std/stdexcept
+++ b/libstdc++-v3/include/std/stdexcept
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file stdexcept
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_STDEXCEPT
 #include <bits/std_stdexcept.h>
 #endif
diff --git a/libstdc++-v3/include/std/streambuf b/libstdc++-v3/include/std/streambuf
index ec6c7b57e18b379dec43989b9466dddc5a49fdb6..c0f4dd71a2843976d355488046337526cbe1f4ab 100644
--- a/libstdc++-v3/include/std/streambuf
+++ b/libstdc++-v3/include/std/streambuf
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file streambuf
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_STREAMBUF
 #include <bits/std_streambuf.h>
 #endif
diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string
index a766cddc81e3687429a0a58f191a51b96e7a4c89..0229afdb5e2c51107ec1ba6eab925477955178a3 100644
--- a/libstdc++-v3/include/std/string
+++ b/libstdc++-v3/include/std/string
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file string
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_STRING
 #include <bits/std_string.h>
 #endif
diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility
index 787e7997340a8eccd5a0ea05ec8d6a18ab61c52c..28822fa5a6ef6d6df30d602aee6c11d54b1ffb9c 100644
--- a/libstdc++-v3/include/std/utility
+++ b/libstdc++-v3/include/std/utility
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file utility
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_UTILITY
 #include <bits/std_utility.h>
 #endif
diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray
index cb13d82f6921dc8da929d05ae1c989d99faf7a7d..e20b7b8fd563dd9fb7397f2d8e71a19c34ebafb1 100644
--- a/libstdc++-v3/include/std/valarray
+++ b/libstdc++-v3/include/std/valarray
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file valarray
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_VALARRAY
 #include <bits/std_valarray.h>
 #endif
diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector
index ce2f51e7b22ddb666afcf4c83c20f879944422cb..8fa361d5eacb535c4bc3d132a065babc188674ff 100644
--- a/libstdc++-v3/include/std/vector
+++ b/libstdc++-v3/include/std/vector
@@ -27,6 +27,11 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+/** @file vector
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ */
+
 #ifndef _CPP_VECTOR
 #include <bits/std_vector.h>
 #endif