diff options
Diffstat (limited to 'chapter05/gcc-pass2-inst.xml')
-rw-r--r-- | chapter05/gcc-pass2-inst.xml | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/chapter05/gcc-pass2-inst.xml b/chapter05/gcc-pass2-inst.xml index 74ef57c8c..bd2ba4428 100644 --- a/chapter05/gcc-pass2-inst.xml +++ b/chapter05/gcc-pass2-inst.xml @@ -27,9 +27,9 @@ get PTYs working.</para> <note><para>It's worth pointing out that the GCC test suite we run in this section is considered not as important as the one we run in Chapter 6.</para></note> -<para>Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the same working directory. -They will all unfold into a single <filename>gcc-&gcc-version;/</filename> -subdir.</para> +<para>Unpack all three GCC tarballs (-core, -g++, and -testsuite) in one and the +same working directory. They will all unfold into a single +<filename>gcc-&gcc-version;/</filename> subdirectory.</para> <para>First correct one problem and make an essential adjustment:</para> @@ -74,6 +74,31 @@ variables that override the default optimization flags.</para> --enable-threads=posix --enable-__cxa_atexit \ --enable-languages=c,c++</userinput></screen></para> +<para>The meaning of the new configure options:</para> + +<itemizedlist> +<listitem><para><userinput>--enable-threads=posix</userinput>: This enables +C++ exception handling for multi-threaded code.</para></listitem> + +<listitem><para><userinput>--enable-__cxa_atexit</userinput>: This option +allows use of __cxa_atexit, rather than atexit, to register C++ destructors for +local statics and global objects and is essential for fully standards-compliant +handling of destructors. It also affects the C++ ABI and therefore results in +C++ shared libraries and C++ programs that are interoperable with other Linux +distributions.</para></listitem> + +<listitem><para><userinput>--enable-clocale=gnu</userinput>: This option ensures +the correct locale model is selected for the C++ libraries under all +circumstances. If the configure script finds the <emphasis>de_DE</emphasis> +locale installed, it will select the correct model of <emphasis>gnu</emphasis>. +However, people who don't install the <emphasis>de_DE</emphasis> locale, run the +risk of building ABI incompatible C++ libraries due to the wrong locale model of +<emphasis>generic</emphasis> being selected.</para></listitem> + +<listitem><para><userinput>--enable-languages=c,c++</userinput>: This option is +needed to ensure that both C and C++ compilers are built.</para></listitem> +</itemizedlist> + <para>Compile the package:</para> <para><screen><userinput>make</userinput></screen></para> |