%general-entities; ]> $LastChangedBy$ $Date$ GCC-&gcc-version; Introduction to <application><acronym>GCC</acronym></application> The GCC package contains GNU compilers. This is useful for compiling programs written in C, C++, Fortran, Java and Objective C. The GCC package also contains an Ada compiler, however, the installation documentation is flawed and all the Ada tools cannot be built using conventional methods. Package Information Download (HTTP): Download (FTP): Download size: &gcc-size; Estimated Disk space required: &gcc-buildsize; Estimated build time: &gcc-time; Additional Downloads Required Patch: Required Patch: Test Suite: <application><acronym>GCC</acronym></application> Dependencies Recommended Installation of <application><acronym>GCC</acronym></application> The installation process may overwrite your existing GCC compiler and libraries. It is highly recommended that you have the Tcl, Expect and DejaGnu packages installed, as well as unpacking the GCC testsuite tarball before beginning the build. Do not continue with the make install command until you're confident the build was successful. You can compare your test results with those found at . There's also an i686 platform test result produced by an LFS (SVN-testing-040712) system at . You may also want to refer to the information found in the GCC-Pass 2 section of Chapter 5 in the LFS book. Some of the Java programs installed by the GCC package conflict (have the same names) with programs from the package. If you're installing the Java language from the GCC package but you wish to use the programs from the JDK as the defaults, ensure [JDKpath]/bin is listed before /usr/bin in your PATH variable. Install GCC by running the following commands: patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch && patch -Np1 -i ../gcc-&gcc-version;-linkonce-1.patch && sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in && mkdir ../gcc-build && cd ../gcc-build && ../gcc-&gcc-version;/configure --prefix=/usr --libexecdir=/usr/lib \ --enable-shared --enable-languages=c,c++,objc,f77,java \ --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu && make bootstrap && make -k check && ../gcc-3.4.1/contrib/test_summary && make install && ln -sf ../usr/bin/cpp /lib && ln -sf gcc /usr/bin/cc && ln -sf g77 /usr/bin/f77 && chown -R root:root /usr/lib/gcc/i686-pc-linux-gnu/&gcc-version;/include Command explanations sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in: This command suppresses the installation of libiberty.a as the version provided by Binutils is used instead. mkdir ../gcc-build; cd ../gcc-build: The GCC documentation recommends building the package in a dedicated build directory. --enable-languages=c,c++,objc,f77,ada,java: This command identifies which languages to build. You may modify this command to remove unwanted languages. --enable-shared --enable-threads=posix --enable-__cxa_atexit: These commands are required to build the C++ libraries to published standards. --enable-clocale=gnu: This command is a failsafe for incomplete locale data. make -k check: This command runs the test suite without stopping should any errors be encountered. ../gcc-3.4.1/contrib/test_summary: This command will produce a summary of the test suite results. You can append | grep -A7 Summ to the command to produce an even more condensed version of the summary. You may also wish to redirect the output to a file for review and comparison later on. ln -sf ../usr/bin/cpp /lib: This command creates a link to the C PreProcessor as some packages expect it to be installed in the /lib directory. ln -sf gcc /usr/bin/cc; ln -sf g77 /usr/bin/f77: These links are created as some packages refer to the C and Fortran compilers using an alternate name. chown -R root:root /usr/lib/gcc/i686-pc-linux-gnu/&gcc-version;/include: If the package is built by a user other than root, the ownership of the installed include directory (and its contents) will be incorrect. This command changes the ownership to root:root. Contents The GCC package contains addr2name.awk, c++, cpp, g++, g77, gcc, gccbug, gcj, gcjh, gcov, gij, grepjar, jar, jcf-dump, jv-convert, jv-scan, rmic, rmiregistry and GCC libraries. Description The programs and libraries whose descriptions are missing here have been described in the LFS GCC-&gcc-version; page. addr2name.awk addr2name.awk emulates a little of the functionality of addr2line. g77 g77 is the Fortran compiler invoked by gcc. gcj gcj is an ahead-of-time compiler for the Java language. gcjh gcjh generates header files from Java class files. gij gij is the GNU interpreter for Java bytecode. grepjar grepjar searches jar files for a pattern. jar jar is an archive tool for Java archives. jcf-dump jcf-dump prints information about Java class files. jv-convert jv-convert converts files from one encoding to another. jv-scan jv-scan prints information about Java source files. rmic rmic generates stubs for Remote Method Invocation. rmiregistry rmiregistry starts a remote object registry on the current host.