| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | <sect2><title> </title><para> </para></sect2><sect2><title>Glibc installation</title><para>Before starting to install Glibc, you must <userinput>cd</userinput>into the <filename>glibc-&glibc-version;</filename> directory and unpackGlibc-linuxthreads in that directory, not in <filename>/usr/src</filename> asyou would normally do.</para><note><para>We are going to run the test suite for Glibc in this chapter.However, it's worth noting that the Glibc test suite we run in this chapter isconsidered not as critical as the one we run in Chapter 6.</para></note><para>This package is known to behave badly when you have changed itsdefault optimization flags (including the -march and -mcpu options).Therefore, if you have defined any environment variables that overridedefault optimizations, such as CFLAGS and CXXFLAGS, we recommend unsettingthem when building Glibc.</para><para>Basically, compiling Glibc in any other way than the book suggestsis putting the stability of your system at risk.</para><para>Though it is a harmless message, the install stage of Glibc willcomplain about the absence of <filename>/tools/etc/ld.so.conf</filename>.Fix this annoying little error with:</para><para><screen><userinput>mkdir /tools/etctouch /tools/etc/ld.so.conf</userinput></screen></para><para>Also, Glibc has a subtle problem when compiled with GCC 3.3.1.Apply the following patch to fix this:</para><para><screen><userinput>patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch</userinput></screen></para><para>The Glibc documentation recommends building Glibc outside of the sourcedirectory in a dedicated build directory:</para><para><screen><userinput>mkdir ../glibc-buildcd ../glibc-build</userinput></screen></para><para>Next, prepare Glibc to be compiled:</para><para><screen><userinput>../glibc-&glibc-version;/configure --prefix=/tools \    --disable-profile --enable-add-ons \    --with-headers=/tools/include \    --with-binutils=/tools/bin \    --without-gd</userinput></screen></para><para>The meaning of the new configure options:</para><itemizedlist><listitem><para><userinput>--disable-profile</userinput>: This disables thebuilding of the libraries with profiling information. Omit this option if youplan to do profiling.</para></listitem><listitem><para><userinput>--enable-add-ons</userinput>: This enables anyadd-ons that were installed with Glibc, in our case Linuxthreads.</para></listitem><listitem><para><userinput>--with-binutils=/tools/bin</userinput> and<userinput>--with-headers=/tools/include</userinput>: Strictly speakingthese switches are not required. But they ensure nothing can go wrong withregard to what kernel headers and Binutils programs get used during theGlibc build.</para></listitem><listitem><para><userinput> --without-gd</userinput>: This switch ensuresthat we don't build the <userinput>memusagestat</userinput> program, whichstrangely enough insists on linking against the host's libraries (libgd,libpng, libz, and so forth).</para></listitem></itemizedlist><para>During this stage you will see the following warning:</para><blockquote><screen>configure: WARNING:*** These auxiliary programs are missing or incompatible versions: autoconf*** some features will be disabled.*** Check the INSTALL file for required versions.</screen></blockquote><para>The missing or incompatible <filename>autoconf</filename> program isharmless and doesn't cause any problems.</para><para>Continue with compiling the package:</para><para><screen><userinput>makemake checkmake install</userinput></screen></para><para>The glibc make check process is highly dependent on certain functionsof your host operating system.  The most common is a host that fails to mounta tmpfs filesystem at /dev/shm, which may cause glibc tests to fail.</para><para>The locales (used by Glibc to make your Linux system respond in adifferent language) weren't installed when you ran the previous command,so we have to do that ourselves now:</para><para><screen><userinput>make localedata/install-locales</userinput></screen></para><para>An alternative to running the previous command is to install onlythose locales which you need or want. This can be achieved by using the<userinput>localedef</userinput> command. Information on this can befound in the <filename>INSTALL</filename> file in the<filename>glibc-&glibc-version;</filename> tree. However, there are anumber of locales that are essential for the tests of future packagesto pass correctly, in particular, the libstdc++ tests from GCC.  The following instructions, in place of the install-locales command above, will install the minimum set of locales necessary for the tests to run successfully:</para><para><screen><userinput>mkdir -p /tools/lib/localelocaledef -i de_DE -f ISO-8859-1 de_DElocaledef -i de_DE@euro -f ISO-8859-15 de_DE@eurolocaledef -i en_HK -f ISO-8859-1 en_HKlocaledef -i en_PH -f ISO-8859-1 en_PHlocaledef -i en_US -f ISO-8859-1 en_USlocaledef -i es_MX -f ISO-8859-1 es_MXlocaledef -i fr_FR -f ISO-8859-1 fr_FRlocaledef -i fr_FR@euro -f ISO-8859-15 fr_FR@eurolocaledef -i it_IT -f ISO-8859-1 it_ITlocaledef -i ja_JP -f EUC-JP ja_JP</userinput></screen></para></sect2>
 |