glfs/general/prog/gcc.xml
Bruce Dubbs a9aa69fa98 Update to gcc-4.8.1 to bring in sync with LFS.
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@11471 af4574ff-66df-0310-9fd7-8a98e5e911e0
2013-07-22 21:26:43 +00:00

733 lines
28 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY gcc-download-http "http://ftp.gnu.org/gnu/gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.bz2">
<!ENTITY gcc-download-ftp "ftp://ftp.gnu.org/gnu/gcc/gcc-&gcc-version;/gcc-&gcc-version;.tar.bz2">
<!ENTITY gcc-md5sum "3b2386c114cd74185aa3754b58a79304">
<!ENTITY gcc-size "83 MB">
<!ENTITY gcc-buildsize "~6.2 GB (build, test and install all compilers)">
<!ENTITY gcc-time "98 SBU (build, test and install all compilers)">
<!ENTITY gnat-download-http "https://libre.adacore.com/download/">
<!-- We don't know what platform, so this is commented out
<!ENTITY gnat-md5sum "6425f2c7cabbdee4595b4b7c0d47237f">
<!ENTITY gnat-size "110 MB"> -->
]>
<sect1 id="gcc" xreflabel="GCC-&gcc-version;">
<?dbhtml filename="gcc.html" ?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>GCC-&gcc-version;</title>
<indexterm zone="gcc">
<primary sortas="a-gcc-4-0">GCC-&gcc-version;</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GCC</title>
<para>The <application>GCC</application> package contains GNU compilers.
This package is useful for compiling programs written in C, C++, Fortran,
Java, Objective C, Objective C++, Ada, and Go. You should ensure you
actually need one of these additional compilers (C and C++ are installed
in LFS) before you install them. Additionally, there are instructions in
the BLFS book to install <xref linkend="openjdk"/>, which can be used
instead of the Java provided by the <application>GCC</application> package.
Many consider the Iced Tea version to be a more robust Java environment
than the one provided by <application>GCC</application>.</para>
&lfs73_checked;
<caution>
<para>If you are upgrading <application>GCC</application> from any other
version prior to &gcc-version;, then you must be careful compiling 3rd
party kernel modules. You should ensure that the kernel and all its
native modules are also compiled using the same version of
<application>GCC</application> that you use to build the 3rd party module.
This issue does not affect native kernel (and kernel modules) updates,
as the instructions below are a complete reinstallation of
<application>GCC</application>. If you have existing 3rd party modules
installed, ensure they are recompiled using the updated version of
<application>GCC</application>. As always, never update the kernel
headers from the ones used when <application>Glibc</application> was
compiled during LFS.</para>
</caution>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&gcc-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&gcc-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &gcc-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &gcc-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &gcc-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &gcc-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">GCC Dependencies</bridgehead>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="dejagnu"/></para>
<bridgehead renderas="sect4">Required if building java</bridgehead>
<para role="required">
<xref linkend="zip"/>,
<xref linkend="unzip"/>, and
<xref linkend="which"/>
</para>
<note>
<para>If you plan to compile Ada, you will need to install
<application>GNAT</application> temporarily to satisfy the circular
dependency when you recompile <application>GCC</application>
to include Ada. At the AdaCore download page, choose your platform and
2013, then select the file to download. You probably want the x86-linux
or x86_64-linux file.</para>
</note>
<!-- Using 2011, because 2012 does not compile GCC-4.7.2
GCC-4.8.1 and gnat 2013 work OK -->
<bridgehead renderas="sect3">GNAT GPL 2013 Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&gnat-download-http;"/></para>
</listitem>
</itemizedlist>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/gcc"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of GNAT</title>
<para>Before unpacking and changing into the GCC source directory, first
unpack the <application>GNAT</application> tarball. You may have to drill
down several levels and unpack a second tarball. For example,
AdaCore-Download-2013-07-22_0530.tar expands to
<filename>x86_64-linux/2013/gnatgpl/gnat-gpl-2013-x86_64-pc-linux-gnu-bin.tar.gz</filename>.
Expand this second tarball and change into the newly created directory.
Install <application>GNAT</application> by running the following
command:</para>
<screen><userinput>make ins-all prefix=/opt/gnat</userinput></screen>
<para>The <application>GNAT</application> compiler can be invoked by
executing the <command>gcc</command> binary installed in <filename
class='directory'>/opt/gnat/bin</filename>.</para>
<para>You may now remove the <application>GNAT</application>
source directory if desired.</para>
<para>Prepare to compile <application>GCC</application> by placing the
<application>GNAT</application> version of <command>gcc</command> at the
beginning of the <envar>PATH</envar> variable by using the following
commands as the <systemitem class="username">root</systemitem> user:</para>
<screen><userinput>PATH_HOLD=$PATH &amp;&amp;
export PATH=/opt/gnat/bin:$PATH_HOLD</userinput></screen>
<para>Doing so has the drawback that the <application>GCC</application>
and <application>Binutils</application> executables are taken
from the just installed <application>GNAT</application> package, but the
versions of those executables are outdated compared to those installed in
LFS. This is not important for the <application>GCC</application> compilers,
since they recompile themselves during the bootstrap process. On the other
hand, the outdated <command>ld</command> and <command>as</command> tools
are used all along. In order to use the LFS tools, issue:</para>
<screen><userinput>find /opt/gnat -name ld -exec mv -v {} {}.old \;
find /opt/gnat -name as -exec mv -v {} {}.old \;</userinput></screen>
</sect2>
<sect2 role="installation">
<title>Installation of GCC</title>
<para>Install <application>GCC</application> by running the
following commands:</para>
<important>
<para>The installation process may overwrite your existing
<application>GCC</application> <command>gcc</command> and
<command>c++</command> compilers and libraries. Having the
<application>Tcl</application>, <application>Expect</application> and
<application>DejaGnu</application> packages installed before beginning
the build is highly recommended so you can run the full suite of
tests.</para>
<para>Do not continue with the <command>make install</command> command
until you are confident the build was successful. You can compare your
test results with those found at <ulink
url="http://gcc.gnu.org/ml/gcc-testresults/"/>. You may also want to
refer to the information found in the <application>GCC</application>
section of Chapter 6 in the LFS book (<ulink
url="&lfs-root;/chapter06/gcc.html"/>).</para>
</important>
<para>The instructions below let the build machinery perform a
<quote>bootstrap</quote> intentionally. This is necessary if you
install the <application>Ada</application> compiler anyway. Even
if you don't, a bootstrap is recommended for robustness.</para>
<screen><userinput>sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in &amp;&amp;
sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in &amp;&amp;
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &amp;&amp;
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in &amp;&amp;
case `uname -m` in
i?86) sed -i 's/^T_CFLAGS =$/&amp; -fomit-frame-pointer/' gcc/Makefile.in ;;
esac &amp;&amp;
mkdir ../gcc-build &amp;&amp;
cd ../gcc-build &amp;&amp;
../gcc-&gcc-version;/configure \
--prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--with-system-zlib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--disable-multilib \
--enable-clocale=gnu \
--enable-lto \
--enable-languages=c,c++,fortran,ada,go,java,objc,obj-c++ &amp;&amp;
make &amp;&amp;
ulimit -s 32768 &amp;&amp;
make -k check &amp;&amp;
../gcc-&gcc-version;/contrib/test_summary</userinput></screen>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make install &amp;&amp;
ln -v -sf ../usr/bin/cpp /lib &amp;&amp;
ln -v -sf gcc /usr/bin/cc &amp;&amp;
chown -v -R root:root \
/usr/lib/gcc/*linux-gnu/&gcc-version;/include{,-fixed} \
/usr/lib/gcc/*linux-gnu/&gcc-version;/ada{lib,include}</userinput></screen>
<!-- Not needed since we do not install libffi
<para>The <filename class='libraryfile'>libffi</filename> interface header
is installed in a location where other packages will not be able to find
it. If you included Java as one of the installed languages, create a
symbolic link in <filename class='directory'>/usr/include</filename> to
remedy this:</para>
<screen role="root"><userinput>ln -v -sf `find /usr/lib/gcc -name ffitarget.h` /usr/include</userinput></screen>-->
<para>You should now remove the <application>GNAT</application>
installation and perform other cleanups:</para>
<screen><userinput>rm -rf /opt/gnat &amp;&amp;
export PATH=$PATH_HOLD &amp;&amp;
unset PATH_HOLD</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>The first two <command>sed</command> commands prevent the
installation of the <application>libffi</application> library bundled
with <application>GCC</application>, since it is outdated compared to
<xref linkend="libffi"/>. The three other <command>sed</command> commands
are the same ones used during the build of LFS.</para>
<para><command>mkdir ../gcc-build; cd ../gcc-build</command>: The
<application>GCC</application> documentation recommends
building the package in a dedicated build directory.</para>
<para><parameter>--enable-shared --enable-threads=posix
--enable-__cxa_atexit</parameter>: These parameters are required to build
the <application>C++</application> libraries to published standards.</para>
<para><parameter>--disable-multilib</parameter>: This parameter ensures
that files are created for the specific architecture of your computer.</para>
<!-- Double dashes are forbidden in comments, so use "- -". Change it to
double dash if you ever remove this comment!
<para><parameter>- -enable-bootstrap</parameter>: This parameter is used
so that a bootstrap installation is performed.</para>
-->
<para><parameter>--enable-clocale=gnu</parameter>: This parameter is a
failsafe for incomplete locale data.</para>
<para><parameter>--enable-lto</parameter>: Setting this parameter allows
to build a compiler which is able to perform <quote>link time
optimization (lto)</quote>.</para>
<para>
<parameter>--enable-languages=c,c++,fortran,java,objc,obj-c++,ada,go</parameter>:
This command identifies which languages to build. You may modify
this command to remove undesired languages.</para>
<para><command>ulimit -s 32768</command>: This command prevents several
tests from running out of stack space.</para>
<para><command>make -k check</command>: This command runs the test suite
without stopping if any errors are encountered.</para>
<para><command>../gcc-&gcc-version;/contrib/test_summary</command>: This
command will produce a summary of the test suite results. You can append
<command>| grep -A7 Summ</command> 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.</para>
<para><command>ln -v -sf ../usr/bin/cpp /lib</command>: This command
creates a link to the C PreProcessor as some packages expect it to be
installed in the <filename class='directory'>/lib</filename>
directory.</para>
<para><command>ln -v -sf gcc /usr/bin/cc</command>: This link is created as
some packages refer to the C compiler using an alternate name.</para>
<para><command>chown -v -R root:root
/usr/lib/gcc/*linux-gnu/...</command>:
If the package is built by a user other than root, the ownership of the
installed <filename class='directory'>include</filename> and
<filename class='directory'>adalib</filename> directories (and their
contents) will be incorrect. These commands change the ownership to the
<systemitem class="username">root</systemitem> user and group . Omit the
command changing the Ada directories if you did not include Ada as one of
the installed languages.</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>aot-compile, gappletviewer, gc-analyze, gccgo, gcj, gcj-dbtool,
gcjh, gfortran, gij, gjar, gjarsigner, gjavah, gkeytool,
gnat, gnatbind, gnatchop, gnatclean, gnatfind, gnative2ascii, gnatkr,
gnatlink, gnatls, gnatmake, gnatname, gnatprep, gnatxref, gorbd,
grmic, grmid, grmiregistry, gserialver, gtnameserv, jcf-dump,
jv-convert, rebuild-gcj-db, and architecture specific names</seg>
<seg>libgcj_bc.so, libgcj.so, libgcj-tools.so, libgfortran.{so,a},
libgij.so, libgo.{so,a}, libgobegin.a, libobjc.{so,a} and numerous other
run-time libraries and executables in /usr/lib/gcc</seg>
<seg>/usr/include/c++/&gcc-version;/{gcj,gnu,java,javax,org,sun},
/usr/lib/gcc/&lt;arch-model&gt;-linux-gnu/&gcc-version;/ada{include,lib},
/usr/lib/gcj-&gcc-version;-13,
/usr/lib/go,
/usr/lib/security,
and /usr/share/java</seg>
</seglistitem>
</segmentedlist>
<para>Some program and library names and descriptions are not listed here,
but can be found at
<ulink url="&lfs-root;/chapter06/gcc.html#contents-gcc"/> as they were
initially installed during the building of LFS.</para>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="aot-compile">
<term><command>aot-compile</command></term>
<listitem>
<para>searches a directory for Java bytecode and uses
<command>gcj</command> to compile it to native code.</para>
<indexterm zone="gcc aot-compile">
<primary sortas="b-aot-compile">aot-compile</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gappletviewer">
<term><command>gappletviewer</command></term>
<listitem>
<para>loads and run a <application>Java</application> applet.</para>
<indexterm zone="gcc gappletviewer">
<primary sortas="b-gappletviewer">gappletviewer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gc-analyze">
<term><command>gc-analyze</command></term>
<listitem>
<para>analyzes garbage collector (GC) memory dumps from
<application>Java</application> code.</para>
<indexterm zone="gcc gc-analyze">
<primary sortas="b-gc-analyze">gc-analyze</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gccgo">
<term><command>gccgo</command></term>
<listitem>
<para>is a GCC-based compiler for the
<application>Go</application> language.</para>
<indexterm zone="gcc gccgo">
<primary sortas="b-gccgo">gccgo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gcj">
<term><command>gcj</command></term>
<listitem>
<para>is an ahead-of-time compiler for the
<application>Java</application> language.</para>
<indexterm zone="gcc gcj">
<primary sortas="b-gcj">gcj</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gcj-dbtool">
<term><command>gcj-dbtool</command></term>
<listitem>
<para>is a tool for creating and manipulating class file mapping
databases.</para>
<indexterm zone="gcc gcj-dbtool">
<primary sortas="b-gcj-dbtool">gcj-dbtool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gcjh">
<term><command>gcjh</command></term>
<listitem>
<para>generates header files from <application>Java</application>
class files.</para>
<indexterm zone="gcc gcjh">
<primary sortas="b-gcjh">gcjh</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gfortran">
<term><command>gfortran</command></term>
<listitem>
<para>is the <application>Fortran</application> compiler invoked by
<command>gcc</command>.</para>
<indexterm zone="gcc gfortran">
<primary sortas="b-gfortran">gfortran</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gij">
<term><command>gij</command></term>
<listitem>
<para>is the GNU interpreter for <application>Java</application>
bytecode.</para>
<indexterm zone="gcc gij">
<primary sortas="b-gij">gij</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gjar">
<term><command>gjar</command></term>
<listitem>
<para>is an (partial) implementation of the <command>jar</command>
utility that comes with Sun's JDK.</para>
<indexterm zone="gcc gjar">
<primary sortas="b-gjar">gjar</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gjarsigner">
<term><command>gjarsigner</command></term>
<listitem>
<para>is a Java ARchive (JAR) file signing and verification
tool.</para>
<indexterm zone="gcc gjarsigner">
<primary sortas="b-gjarsigner">gjarsigner</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gjavah">
<term><command>gjavah</command></term>
<listitem>
<para>generates header files from Java class files.</para>
<indexterm zone="gcc gjavah">
<primary sortas="b-gjavah">gjavah</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gkeytool">
<term><command>gkeytool</command></term>
<listitem>
<para>manages private keys and public certificates in a
<application>Java</application> environment.</para>
<indexterm zone="gcc gkeytool">
<primary sortas="b-gkeytool">gkeytool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnat">
<term><command>gnat</command></term>
<listitem>
<para>is the <application>Ada</application> compiler invoked by
<command>gcc</command>.</para>
<indexterm zone="gcc gnat">
<primary sortas="b-gnat">gnat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatbind">
<term><command>gnatbind</command></term>
<listitem>
<para>is used to bind compiled objects.</para>
<indexterm zone="gcc gnatbind">
<primary sortas="b-gnatbind">gnatbind</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatchop">
<term><command>gnatchop</command></term>
<listitem>
<para>is useful for renaming files to meet the standard
<application>Ada</application> default file naming conventions.</para>
<indexterm zone="gcc gnatchop">
<primary sortas="b-gnatchop">gnatchop</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatclean">
<term><command>gnatclean</command></term>
<listitem>
<para>is used to remove files associated with a
<application>GNAT</application> project.</para>
<indexterm zone="gcc gnatclean">
<primary sortas="b-gnatclean">gnatclean</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatfind">
<term><command>gnatfind</command></term>
<listitem>
<para> is the <application>GNAT</application> definition/use finder.</para>
<indexterm zone="gcc gnatfind">
<primary sortas="b-gnatfind">gnatfind</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnative2ascii">
<term><command>gnative2ascii</command></term>
<listitem>
<para>is an encoding converter for <application>Java</application>.</para>
<indexterm zone="gcc gnative2ascii">
<primary sortas="b-gnative2ascii">gnative2ascii</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatkr">
<term><command>gnatkr</command></term>
<listitem>
<para>is used to determine the crunched name for a given file, when
crunched to a specified maximum length.</para>
<indexterm zone="gcc gnatkr">
<primary sortas="b-gnatkr">gnatkr</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatlink">
<term><command>gnatlink</command></term>
<listitem>
<para>is used to link programs and build an executable file.</para>
<indexterm zone="gcc gnatlink">
<primary sortas="b-gnatlink">gnatlink</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatls">
<term><command>gnatls</command></term>
<listitem>
<para>is the compiled unit browser.</para>
<indexterm zone="gcc gnatls">
<primary sortas="b-gnatls">gnatls</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatmake">
<term><command>gnatmake</command></term>
<listitem>
<para>is an automatic <command>make</command> facility.</para>
<indexterm zone="gcc gnatmake">
<primary sortas="b-gnatmake">gnatmake</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatname">
<term><command>gnatname</command></term>
<listitem>
<para>will list the files associated with a
<application>GNAT</application> project.</para>
<indexterm zone="gcc gnatname">
<primary sortas="b-gnatname">gnatname</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatprep">
<term><command>gnatprep</command></term>
<listitem>
<para>is the <application>GNAT</application> external preprocessor.</para>
<indexterm zone="gcc gnatprep">
<primary sortas="b-gnatprep">gnatprep</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnatxref">
<term><command>gnatxref</command></term>
<listitem>
<para>is the <application>GNAT</application> cross-referencer.</para>
<indexterm zone="gcc gnatxref">
<primary sortas="b-gnatxref">gnatxref</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gorbd">
<term><command>gorbd</command></term>
<listitem>
<para>is an object request broker daemon.</para>
<indexterm zone="gcc gorbd">
<primary sortas="b-gorbd">gorbd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="grmic-gcc">
<term><command>grmic</command></term>
<listitem>
<para>generates stubs for Remote Method Invocation.</para>
<indexterm zone="gcc grmic-gcc">
<primary sortas="b-grmic">grmic</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="grmid-gcc">
<term><command>grmid</command></term>
<listitem>
<para>RMI activation system daemon.</para>
<indexterm zone="gcc grmid-gcc">
<primary sortas="b-grmid">grmid</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="grmiregistry-gcc">
<term><command>grmiregistry</command></term>
<listitem>
<para> starts a remote object registry on the current host.</para>
<indexterm zone="gcc grmiregistry-gcc">
<primary sortas="b-grmiregistry">grmiregistry</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gserialver">
<term><command>gserialver</command></term>
<listitem>
<para> prints the serialVersionUID of the specified class.</para>
<indexterm zone="gcc gserialver">
<primary sortas="b-gserialver">gserialver</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtnameserv">
<term><command>gtnameserv</command></term>
<listitem>
<para> starts a naming service.</para>
<indexterm zone="gcc gtnameserv">
<primary sortas="b-gtnameserv">gtnameserv</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jcf-dump">
<term><command>jcf-dump</command></term>
<listitem>
<para>prints information about <application>Java</application>
class files.</para>
<indexterm zone="gcc jcf-dump">
<primary sortas="b-jcf-dump">jcf-dump</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jv-convert">
<term><command>jv-convert</command></term>
<listitem>
<para>converts files from one encoding to another.</para>
<indexterm zone="gcc jv-convert">
<primary sortas="b-jv-convert">jv-convert</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rebuild-gcj-db">
<term><command>rebuild-gcj-db</command></term>
<listitem>
<para>Merge the per-solib databases made by
<application>aot-compile</application> into one system-wide
database.</para>
<indexterm zone="gcc rebuild-gcj-db">
<primary sortas="b-rebuild-gcj-db">rebuild-gcj-db</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>