| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | <sect2><title> </title><para> </para></sect2><sect2><title>Installation of GCC</title><para>This package is known to behave badly when you have changed itsdefault optimization flags (including the -march and -mcpu options). GCC isbest left alone. Therefore, if you have defined any environment variablesthat override default optimizations, such as CFLAGS and CXXFLAGS, werecommend unsetting or modifying them when building GCC. You havebeen warned.</para><para>We will be building the C and C++ compilers at this time, so you'llneed to unpack both the gcc-core and gcc-g++ tarballs. Other compilers areavailable in the full gcc package; instructions for building them may befound at <ulink url="&blfs-root;view/cvs/general/gcc.html"/>.</para><para>It is recommended by the GCC installation documentation to build GCCin a dedicated directory outside of the source tree. Create the builddirectory:</para><para><screen><userinput>mkdir ../gcc-build &&cd ../gcc-build</userinput></screen></para><para>Prepare GCC to be compiled:</para><para><screen><userinput>../gcc-&gcc-version;/configure --prefix=/usr --enable-shared \    --enable-threads=posix --with-slibdir=/lib \    --enable-__cxa_atexit --enable-clocale=gnu</userinput></screen></para><para>The meanings of the configure options are:</para><itemizedlist><listitem><para><userinput>--enable-threads=posix:</userinput> This enablesC++ exception handling for multi-threaded code.</para></listitem><listitem><para><userinput>--enable-__cxa_atexit:</userinput> This optionwill result in C++ shared libraries and C++ programs that are interoperablewith other Linux distributions.</para></listitem><listitem><para><userinput>--enable-clocale=gnu:</userinput> There is a riskthat some people will build ABI incompatible C++ libraries if they didn'tinstall all of the glibc localedata. Using --enable-clocale=gnu ensures thatthe "right thing" is done in all cases. If you don't wish to use this option,then at least build the <emphasis>de_DE</emphasis> locale. When GCC findsthis specific locale, then the correct locale mode (<emphasis>gnu</emphasis>)is implemented.</para></listitem></itemizedlist><para>Continue with compiling the package:</para><para><screen><userinput>make bootstrap</userinput></screen></para><para>The <emphasis>bootstrap</emphasis> target doesn't just compile GCC, butit compiles GCC a multiple times. It uses the first compiled programs tocompile itself a second and third time to make sure the compiler was compiledproperly.</para><para>Finish installing the package:</para><para><screen><userinput>make install</userinput></screen></para><para>Some packages require that the C++ compiler be installed in the<filename>/lib</filename> and <filename>/usr/lib</filename> directories.To honor those packages, create two symlinks:</para><para><screen><userinput>ln -s ../usr/bin/cpp /lib &&ln -s ../bin/cpp /usr/lib</userinput></screen></para><para>Many packages compile using <emphasis>cc</emphasis> as the name forthe C compiler. To satisfy those packages, create a <emphasis>cc</emphasis>symlink:</para><para><screen><userinput>ln -s gcc /usr/bin/cc</userinput></screen></para></sect2>
 |