# Cross GCC-&gcc-version; - Final

## Installation of GCC Cross Compiler

    AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" \
      ../gcc-&gcc-version;/configure --prefix=/cross-tools \
      --build=${CLFS_HOST} --target=${CLFS_TARGET} --host=${CLFS_HOST} \
      --with-sysroot=${CLFS} --with-local-prefix=/tools \
      --with-native-system-header-dir=/tools/include --disable-nls \
      --enable-shared --disable-static --enable-languages=c,c++ \
      --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-threads=posix \
      --disable-multilib --with-mpc=/cross-tools --with-mpfr=/cross-tools \
      --with-gmp=/cross-tools --with-cloog=/cross-tools \
      --enable-cloog-backend=isl --with-isl=/cross-tools \
      --disable-isl-version-check --with-system-zlib --enable-checking=release \
      --enable-libstdcxx-time

## The meaning of the new configure options:

`--enable-languages=c,c++`

- This option ensures that only the C and C++ compilers are built.

`--enable-__cxa_atexit`

- 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.

`--enable-c99`

- Enable C99 support for C programs.

`--enable-long-long`

- Enables long long support in the compiler.

`--enable-threads=posix`

- This enables C++ exception handling for multi-threaded code.

Continue with compiling the package:

    make AS_FOR_TARGET="${CLFS_TARGET}-as" \
        LD_FOR_TARGET="${CLFS_TARGET}-ld"

Install the package:

    make install

Details on this package are located in contents-gcc