diff options
author | rnordier <rnordier@FreeBSD.org> | 1999-07-19 18:00:18 +0000 |
---|---|---|
committer | rnordier <rnordier@FreeBSD.org> | 1999-07-19 18:00:18 +0000 |
commit | 21ebb70093dc2c888f61ca588acf88ce12a5d8b8 (patch) | |
tree | 00a0a773b4838f3b515473df337c519d5d45d199 /usr.sbin/kgzip/kgzip.8 | |
parent | 32c4cd5138555cb650bf7a6374a5a1fe5e7a0118 (diff) | |
download | FreeBSD-src-21ebb70093dc2c888f61ca588acf88ce12a5d8b8.zip FreeBSD-src-21ebb70093dc2c888f61ca588acf88ce12a5d8b8.tar.gz |
kgzip is a kzip(8) replacement able to compress and link bootable
32-bit binaries in both ELF and a.out format.
Development sponsored by Global Technology Associates, Inc.
Reviewed/tested by: abial
Diffstat (limited to 'usr.sbin/kgzip/kgzip.8')
-rw-r--r-- | usr.sbin/kgzip/kgzip.8 | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/usr.sbin/kgzip/kgzip.8 b/usr.sbin/kgzip/kgzip.8 new file mode 100644 index 0000000..5af0bad --- /dev/null +++ b/usr.sbin/kgzip/kgzip.8 @@ -0,0 +1,130 @@ +.\" Copyright (c) 1999 Global Technology Associates, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +.\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $Id:$ +.\" +.Dd July 19, 1999 +.Dt KGZIP 8 +.Os FreeBSD +.Sh NAME +.Nm kgzip +.Nd compress a kernel +.Sh SYNOPSIS +.Nm kgzip +.Op Fl cv +.Op Fl l Ar loader +.Op Fl o Ar output +.Ar file +.Sh DESCRIPTION +The +.Nm +utility compresses a kernel or some other bootable binary. Operation +is in two phases as follows: +.Bl -enum +.It +A load image of the executable file is built which omits all but +the +.Sq text +and +.Sq data +segments. This image is compressed using +.Xr gzip 1 +and output as data in relocatable object format. +.It +The object file is linked with a special self-hosting loader, producing +an executable suitable for booting with either the second- or +third-level bootstraps. +.El +.Pp +Supported input formats are ELF and a.out ZMAGIC; the output format +is always ELF. Only 32-bit objects are supported. +.Pp +If the +.Ar file +operand has a +.Sq .o +suffix, input is assumed to be for the link phase, and the first phase +is omitted. +.Pp +The options are: +.Bl -tag -width Fl +.It Fl c +Omit the link phase. +.It Fl v +Display object file information. +.It Fl l Ar loader +Link +.Ar loader +as the loader. +.It Fl o Ar output +Name the output file +.Ar output . +The default is to use the input name with the suffix +.Sq .o +(for relocatables) or +.Sq .kgz +(for executables). +.El +.Sh NOTES +Global variables equivalent to the following are defined in the output: +.Bd -literal +struct kgz_hdr { + char ident[4]; /* identification: "KGZ" */ + uint32_t dload; /* decoded image load address */ + uint32_t dsize; /* decoded image size */ + uint32_t isize; /* image size in memory */ + uint32_t entry; /* entry point */ + uint32_t nsize; /* encoded image size */ +} kgz; + +uint8_t kgz_ndata[]; /* encoded data */ +.Ed +.Pp +The encoded data is simply +.Xr gzip 1 +output: a header (with no optional fields); compressed data; and 32-bit +CRC and size values. +.Sh FILES +.Bl -tag -width /usr/lib/kgzldr.o -compact +.It Pa /usr/lib/kgzldr.o +The default loader +.El +.Sh SEE ALSO +.Xr gzip 1 , +.Xr ld 1 , +.Xr a.out 5 , +.Xr boot 8 , +.Xr loader 8 +.Sh DIAGNOSTICS +Exit status is 0 on success and >0 on error. +.Sh AUTHORS +.An Robert Nordier Aq rnordier@FreeBSD.org . +.Sh BUGS +As symbols are lost, the usefulness of this utility for compressing +kernels is limited to situations where +.Xr loader 8 +cannot be used; otherwise the preferred method of compressing a kernel +is simply to +.Xr gzip 1 +it. |