.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GCJ-DBTOOL 1"
.TH GCJ-DBTOOL 1 "2011-04-28" "gcc-4.5.3" "GNU"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gcj\-dbtool \- Manipulate class file mapping databases for libgcj
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gcj-dbtool \fB\s-1OPTION\s0\fR \fI\s-1DBFILE\s0\fR [\fB\s-1MORE\s0\fR] ...
.PP
gcj-dbtool [\fB\-0\fR] [\fB\-\fR] [\fB\-n\fR] [\fB\-a\fR] [\fB\-f\fR]
  [\fB\-t\fR] [\fB\-l\fR] [\fB\-p\fR [\fI\s-1LIBDIR\s0\fR]]
  [\fB\-v\fR] [\fB\-m\fR] [\fB\-\-version\fR] [\fB\-\-help\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\f(CW\*(C`gcj\-dbtool\*(C'\fR is a tool for creating and manipulating class file
mapping databases.  \f(CW\*(C`libgcj\*(C'\fR can use these databases to find a
shared library corresponding to the bytecode representation of a
class.  This functionality is useful for ahead-of-time compilation of
a program that has no knowledge of \f(CW\*(C`gcj\*(C'\fR.
.PP
\&\f(CW\*(C`gcj\-dbtool\*(C'\fR works best if all the jar files added to it are
compiled using \f(CW\*(C`\-findirect\-dispatch\*(C'\fR.
.PP
Note that \f(CW\*(C`gcj\-dbtool\*(C'\fR is currently available as \*(L"preview
technology\*(R".  We believe it is a reasonable way to allow
application-transparent ahead-of-time compilation, but this is an
unexplored area.  We welcome your comments.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-n\fR \fI\s-1DBFILE\s0\fR \fB[\fR\fI\s-1SIZE\s0\fR\fB]\fR" 4
.IX Item "-n DBFILE [SIZE]"
This creates a new database.  Currently, databases cannot be resized;
you can choose a larger initial size if desired.  The default size is
32,749.
.IP "\fB\-a\fR \fI\s-1DBFILE\s0\fR\fB \fR\fI\s-1JARFILE\s0\fR\fB \fR\fI\s-1LIB\s0\fR" 4
.IX Item "-a DBFILE JARFILE LIB"
.PD 0
.IP "\fB\-f\fR \fI\s-1DBFILE\s0\fR\fB \fR\fI\s-1JARFILE\s0\fR\fB \fR\fI\s-1LIB\s0\fR" 4
.IX Item "-f DBFILE JARFILE LIB"
.PD
This adds a jar file to the database.  For each class file in the jar,
a cryptographic signature of the bytecode representation of the class
is recorded in the database.  At runtime, a class is looked up by its
signature and the compiled form of the class is looked for in the
corresponding shared library.  The \fB\-a\fR option will verify
that \fI\s-1LIB\s0\fR exists before adding it to the database; \fB\-f\fR
skips this check.
.IP "\fB[\fR\fB\-\fR\fB][\fR\fB\-0\fR\fB] \-m\fR \fI\s-1DBFILE\s0\fR\fB \fR\fI\s-1DBFILE\s0\fR\fB,[\fR\fI\s-1DBFILE\s0\fR\fB]\fR" 4
.IX Item "[-][-0] -m DBFILE DBFILE,[DBFILE]"
Merge a number of databases.  The output database overwrites any
existing database.  To add databases into an existing database,
include the destination in the list of sources.
.Sp
If \fB\-\fR or \fB\-0\fR are used, the list of files to read is
taken from standard input instead of the command line.  For
\&\fB\-0\fR, Input filenames are terminated by a null character
instead of by whitespace.  Useful when arguments might contain white
space.  The \s-1GNU\s0 find \-print0 option produces input suitable for this
mode.
.IP "\fB\-t\fR \fI\s-1DBFILE\s0\fR" 4
.IX Item "-t DBFILE"
Test a database.
.IP "\fB\-l\fR \fI\s-1DBFILE\s0\fR" 4
.IX Item "-l DBFILE"
List the contents of a database.
.IP "\fB\-p\fR" 4
.IX Item "-p"
Print the name of the default database.  If there is no default
database, this prints a blank line.  If \fI\s-1LIBDIR\s0\fR is specified, use
it instead of the default library directory component of the database
name.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a help message, then exit.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD 0
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD
Print version information, then exit.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgcc\fR\|(1), \fIgcj\fR\|(1), \fIgcjh\fR\|(1), \fIjcf\-dump\fR\|(1), \fIgfdl\fR\|(7),
and the Info entries for \fIgcj\fR and \fIgcc\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, the Front-Cover Texts being (a) (see below), and
with the Back-Cover Texts being (b) (see below).
A copy of the license is included in the
man page \fIgfdl\fR\|(7).
.PP
(a) The \s-1FSF\s0's Front-Cover Text is:
.PP
.Vb 1
\&     A GNU Manual
.Ve
.PP
(b) The \s-1FSF\s0's Back-Cover Text is:
.PP
.Vb 3
\&     You have freedom to copy and modify this GNU Manual, like GNU
\&     software.  Copies published by the Free Software Foundation raise
\&     funds for GNU development.
.Ve
