<section xmlns="http://docbook.org/ns/docbook" version="5.0"
	 xml:id="manual.intro.setup.prereq" xreflabel="Prerequisites">
<?dbhtml filename="prerequisites.html"?>

<info><title>Prerequisites</title>
  <keywordset>
    <keyword>ISO C++</keyword>
    <keyword>Prerequisites</keyword>
  </keywordset>
</info>



<para>
  Because libstdc++ is part of GCC, the primary source for
   installation instructions is
   <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/install/">the GCC install page</link>.
   In particular, list of prerequisite software needed to build the library
   <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/install/prerequisites.html">
   starts with those requirements.</link> The same pages also list
   the tools you will need if you wish to modify the source.
</para>

  <para>
   Additional data is given here only where it applies to libstdc++.
  </para>

   <para>As of GCC 4.0.1 the minimum version of binutils required to build
      libstdc++ is <code>2.15.90.0.1.1</code>.
      Older releases of libstdc++ do not require such a recent version,
      but to take full advantage of useful space-saving features and
      bug-fixes you should use a recent binutils whenever possible.
      The configure process will automatically detect and use these
      features if the underlying support is present.
   </para>

   <para>
     To generate the API documentation from the sources you will need
     Doxygen, see <link linkend="appendix.porting.doc">Documentation
     Hacking</link> in the appendix for full details.
   </para>

   <para>
   Finally, a few system-specific requirements:
   </para>

   <variablelist>
      <varlistentry>
	<term>linux</term>

	<listitem>
	<para>
	  If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
	  will be made to use "C" library functionality necessary for
	  C++ named locale support.  For GCC 4.6.0 and later, this
	  means that glibc 2.3 or later is required.
	</para>

	<para>
	  If the 'gnu' locale model is being used, the following
	  locales are used and tested in the libstdc++ testsuites.
	  The first column is the name of the locale, the second is
	  the character set it is expected to use.
	</para>
<programlisting>
de_DE               ISO-8859-1
de_DE@euro          ISO-8859-15
en_GB               ISO-8859-1
en_HK               ISO-8859-1
en_PH               ISO-8859-1
en_US               ISO-8859-1
en_US.ISO-8859-1    ISO-8859-1
en_US.ISO-8859-15   ISO-8859-15
en_US.UTF-8         UTF-8
es_ES               ISO-8859-1
es_MX               ISO-8859-1
fr_FR               ISO-8859-1
fr_FR@euro          ISO-8859-15
is_IS               UTF-8
it_IT               ISO-8859-1
ja_JP.eucjp         EUC-JP
ru_RU.ISO-8859-5    ISO-8859-5
ru_RU.UTF-8         UTF-8
se_NO.UTF-8         UTF-8
ta_IN               UTF-8
zh_TW               BIG5
</programlisting>

      <para>Failure to have installed the underlying "C" library
      locale information for any of the above regions means that
      the corresponding C++ named locale will not work:  because of
      this, the libstdc++ testsuite will skip named locale tests
      which need missing information.  If this isn't an issue, don't
      worry about it.  If a named locale is needed, the underlying
      locale information must be installed.  Note that rebuilding
      libstdc++ after "C" locales are installed is not necessary.
      </para>

      <para>
	To install support for locales, do only one of the following:
      </para>

      <itemizedlist>
	<listitem>
	  <para>install all locales</para>
	</listitem>
	<listitem>
	  <para>install just the necessary locales</para>
	  <itemizedlist>
	    <listitem>
	      <para>with Debian GNU/Linux:</para>
	      <para> Add the above list, as shown, to the file
	      <code>/etc/locale.gen</code> </para>
	      <para> run <code>/usr/sbin/locale-gen</code> </para>
	    </listitem>
	    <listitem>
	      <para>on most Unix-like operating systems:</para>
	      <para><code> localedef -i de_DE -f ISO-8859-1 de_DE </code></para>
	      <para>(repeat for each entry in the above list) </para>
	    </listitem>
	    <listitem>
	    <para>
	       Instructions for other operating systems solicited.
	    </para>
	    </listitem>
	  </itemizedlist>
	</listitem>
      </itemizedlist>
      </listitem>
      </varlistentry>
   </variablelist>

</section>
