<sect1 id="manual.intro.setup.prereq" xreflabel="Prerequisites">
<?dbhtml filename="prerequisites.html"?>
 
<sect1info>
  <keywordset>
    <keyword>
      ISO C++
    </keyword>
    <keyword>
      Prerequisites
    </keyword>
  </keywordset>
</sect1info>

<title>Prerequisites</title>

<para>
  Because libstdc++ is part of GCC, the primary source for
   installation instructions is
   <ulink url="http://gcc.gnu.org/install/">the GCC install page</ulink>.
   In particular, list of prerequisite software needed to build the library 
   <ulink url="http://gcc.gnu.org/install/prerequisites.html">
   starts with those requirements.</ulink> 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>. You can get snapshots
      (as well as releases) of binutils from
      <ulink url="ftp://sources.redhat.com/pub/binutils">
      ftp://sources.redhat.com/pub/binutils</ulink>.
      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>
   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 linux, an attempt
	  will be made to use "C" library functionality necessary for
	  C++ named locale support.  For gcc 3.2.1 and later, this
	  means that glibc 2.2.5 or later is required and the "C"
	  library de_DE locale information must be installed.
	</para>

	<para>
	  Note however that the sanity checks involving the de_DE
	  locale are skipped when an explicit --enable-clocale=gnu
	  configure option is used: only the basic checks are carried
	  out, defending against misconfigurations.
	</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_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
se_NO.UTF-8         UTF-8
ta_IN               UTF-8
zh_TW               BIG5
</programlisting>

      <para>Failure to have the underlying "C" library locale
      information installed will mean that C++ named locales for the
      above regions will not work: because of this, the libstdc++
      testsuite will skip the named locale tests. If this isn't an
      issue, don't worry about it. If named locales are needed, the
      underlying locale information must be installed. Note that
      rebuilding libstdc++ after the "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>
	  <itemizedlist>
	    <listitem>
	      <para>with RedHat Linux:
	      </para>
	      <para> <code> export LC_ALL=C </code> 
	      </para>
	      <para> <code> rpm -e glibc-common --nodeps </code> 
	      </para>
	      <para> 
		<code> rpm -i --define "_install_langs all"
		 glibc-common-2.2.5-34.i386.rpm 
		</code> 
	      </para>
	    </listitem>
             <listitem> 
	     <para>
	       Instructions for other operating systems solicited.
	     </para>
	     </listitem>
          </itemizedlist>
        </listitem>
        <listitem> 
	  <para>install just the necessary locales</para>
          <itemizedlist>
            <listitem>
	      <para>with Debian 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>

</sect1>
