mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-30 12:04:07 +00:00
4357ca882d
Requested-by: ache bde dg Modify targets for debug kernels: when -g was specified, make will now build a debug kernel called kernel.debug, and create a stripped version called kernel at the same time. The two targets install and install.debug are otherwise unchanged. Requested-by: dillon Update man page accordingly.
242 lines
7.1 KiB
Groff
242 lines
7.1 KiB
Groff
.\" Copyright (c) 1980, 1991, 1993
|
|
.\" The Regents of the University of California. 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.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
.\"
|
|
.\" @(#)config.8 8.2 (Berkeley) 4/19/94
|
|
.\"
|
|
.Dd April 19, 1994
|
|
.Dt CONFIG 8
|
|
.Os BSD 4
|
|
.Sh NAME
|
|
.Nm config
|
|
.Nd build system configuration files
|
|
.Sh SYNOPSIS
|
|
.Nm config
|
|
.Op Fl gpr
|
|
.Ar SYSTEM_NAME
|
|
.Sh DESCRIPTION
|
|
This is the old version of the
|
|
.Nm
|
|
program.
|
|
It understands the old autoconfiguration scheme
|
|
used on the HP300, i386, DECstation, and derivative platforms.
|
|
The new version of config is used with the
|
|
SPARC platform.
|
|
Only the version of
|
|
.Nm
|
|
applicable to the architecture that you are running
|
|
will be installed on your machine.
|
|
.Pp
|
|
.Nm Config
|
|
builds a set of system configuration files from the file
|
|
.Ar SYSTEM_NAME
|
|
which describes
|
|
the system to configure.
|
|
A second file
|
|
tells
|
|
.Nm
|
|
what files are needed to generate a system and
|
|
can be augmented by configuration specific set of files
|
|
that give alternate files for a specific machine
|
|
(see the
|
|
.Sx FILES
|
|
section below).
|
|
.Pp
|
|
Available options and operands:
|
|
.Pp
|
|
.Bl -tag -width SYSTEM_NAME
|
|
.It Fl g
|
|
Configure a system for debugging.
|
|
.It Fl p
|
|
Configure a system for profiling; for example,
|
|
.Xr kgmon 8
|
|
and
|
|
.Xr gprof 1 .
|
|
If two or more
|
|
.Fl p
|
|
options are supplied,
|
|
.Nm
|
|
configures a system for high resolution profiling.
|
|
.It Fl r
|
|
Remove the old compile directory (see below).
|
|
.It Ar SYSTEM_NAME
|
|
Specifies the name of the system configuration file
|
|
containing device specifications, configuration options
|
|
and other system parameters for one system configuration.
|
|
.El
|
|
.Pp
|
|
.Nm Config
|
|
should be run from the
|
|
.Pa conf
|
|
subdirectory of the system source (usually
|
|
.Pa /sys/ARCH/conf ) ,
|
|
where
|
|
.Pa ARCH
|
|
represents one of the architectures supported by FreeBSD.
|
|
.Nm Config
|
|
creates the directory
|
|
.Pa ../../compile/SYSTEM_NAME
|
|
as necessary and place all output files there.
|
|
If the directory already exists and the
|
|
.Fl r
|
|
flag was specified, it will be removed first.
|
|
The output of
|
|
.Nm
|
|
consists of a number of files; for the
|
|
.Tn i386 ,
|
|
they are:
|
|
.Pa ioconf.c ,
|
|
a description
|
|
of what I/O devices are attached to the system;
|
|
.Pa vector.h ,
|
|
definitions of
|
|
macros related to counting interrupts;
|
|
.Pa Makefile ,
|
|
used by
|
|
.Xr make 1
|
|
in building the system;
|
|
header files,
|
|
definitions of
|
|
the number of various devices that will be compiled into the system;
|
|
so-called swap configuration files,
|
|
definitions for
|
|
the disk areas to be used for the root file system
|
|
and system dumps.
|
|
.Pp
|
|
After running
|
|
.Nm config ,
|
|
it is necessary to run
|
|
.Dq Li make depend
|
|
in the directory where the new makefile
|
|
was created.
|
|
.Nm Config
|
|
prints a reminder of this when it completes.
|
|
.Pp
|
|
If any other error messages are produced by
|
|
.Nm config ,
|
|
the problems in the configuration file should be corrected and
|
|
.Nm
|
|
should be run again.
|
|
Attempts to compile a system that had configuration errors
|
|
are likely to fail.
|
|
.Pp
|
|
If the option "INCLUDE_CONFIG_FILE" is used in the configuration file the
|
|
entire input file is embedded in the new kernel. This means that
|
|
.Xr strings 1
|
|
can be used to extract it from a kernel:
|
|
to extract the configuration information, use the command
|
|
.Bd -literal
|
|
strings kernel | grep ___
|
|
.Ed
|
|
.Sh DEBUG KERNELS
|
|
Traditional BSD kernels compiled without symbols due to the heavy load on the
|
|
system when compiling a
|
|
.if n "debug"
|
|
.if t ``debug''
|
|
kernel. A debug kernel contains complete symbols for all the source files, and
|
|
enables an experienced kernel programmer to analyse the cause of a problem. The
|
|
debuggers available prior to 4.4BSD-Lite were able to find some information
|
|
from a normal kernel;
|
|
.Xr gdb 8
|
|
provides very little support for normal kernels, and a debug kernel is needed
|
|
for any meaningful analysis.
|
|
.Pp
|
|
For reasons of history, time and space, building a debug kernel is not the
|
|
default with FreeBSD: a debug kernel takes up to 30% longer to build and
|
|
requires about 30 MB of disk storage in the build directory, compared to about 6
|
|
MB for a non-debug kernel. A debug kernel is about 11 MB in size, compared to
|
|
about 2 MB for a non-debug kernel. This space is used both in the root file
|
|
system and at run time in memory. Use the
|
|
.Fl g
|
|
option to build a debug kernel. With this option,
|
|
.Nm
|
|
causes two kernel files to be built in the kernel build directory:
|
|
.Bl -bullet
|
|
.It
|
|
.Nm kernel.debug
|
|
is the complete debug kernel.
|
|
.It
|
|
.Nm kernel
|
|
is a copy of the kernel with the debug symbols stripped off. This is equivalent
|
|
to the normal non-debug kernel.
|
|
.El
|
|
.Pp
|
|
There is currently little sense in installing and booting from a debug kernel,
|
|
since the only tools available which use the symbols do not run on-line. There
|
|
are therefore two options for installing a debug kernel:
|
|
.Bl -bullet
|
|
.It
|
|
.Nm make
|
|
.Ar install
|
|
installs
|
|
.Nm kernel
|
|
in the root file system.
|
|
.It
|
|
.Nm make
|
|
.Ar install.debug
|
|
installs
|
|
.Nm kernel.debug
|
|
in the root file system.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /sys/i386/conf/Makefile.i386 -compact
|
|
.It Pa /sys/conf/files
|
|
list of common files system is built from
|
|
.It Pa /sys/i386/conf/Makefile.i386
|
|
generic makefile for the
|
|
.Tn i386
|
|
.It Pa /sys/i386/conf/files.i386
|
|
list of
|
|
.Tn i386
|
|
specific files
|
|
.It Pa /sys/i386/conf/devices.i386
|
|
name to major device mapping file for the
|
|
.Tn i386
|
|
.It Pa /sys/i386/conf/files. Ns Em ERNIE
|
|
list of files specific to
|
|
.Em ERNIE
|
|
system
|
|
.It Pa /sys/compile/SYSTEM_NAME
|
|
kernel build directory for system
|
|
.Pa SYSTEM_NAME .
|
|
.El
|
|
.Sh SEE ALSO
|
|
The SYNOPSIS portion of each device in section 4.
|
|
.Rs
|
|
.%T "Building 4.3 BSD UNIX System with Config"
|
|
.Re
|
|
.Sh BUGS
|
|
The line numbers reported in error messages are usually off by one.
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
command appeared in
|
|
.Bx 4.1 .
|