Back out default debug kernel. The flags revert to historical behaviour.
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.
This commit is contained in:
parent
4e697da8b3
commit
4357ca882d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=45579
@ -1,7 +1,7 @@
|
||||
# Makefile.alpha -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.alpha 7.1 5/10/91
|
||||
# $Id: Makefile.alpha,v 1.18 1999/02/14 13:56:15 des Exp $
|
||||
# $Id: Makefile.alpha,v 1.19 1999/04/07 09:27:59 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -260,13 +260,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.alpha -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.alpha 7.1 5/10/91
|
||||
# $Id: Makefile.alpha,v 1.18 1999/02/14 13:56:15 des Exp $
|
||||
# $Id: Makefile.alpha,v 1.19 1999/04/07 09:27:59 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -260,13 +260,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.i386 -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.i386 7.1 5/10/91
|
||||
# $Id: Makefile.i386,v 1.141 1999/03/11 18:28:41 dg Exp $
|
||||
# $Id: Makefile.i386,v 1.142 1999/04/07 09:28:01 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -229,13 +229,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Makefile.i386 -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.i386 7.1 5/10/91
|
||||
# $Id: Makefile.pc98,v 1.57 1999/03/13 13:18:00 kato Exp $
|
||||
# $Id: Makefile.pc98,v 1.58 1999/04/07 09:28:03 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -233,13 +233,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.i386 -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.i386 7.1 5/10/91
|
||||
# $Id: Makefile.i386,v 1.141 1999/03/11 18:28:41 dg Exp $
|
||||
# $Id: Makefile.i386,v 1.142 1999/04/07 09:28:01 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -229,13 +229,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile.i386 -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.i386 7.1 5/10/91
|
||||
# $Id: Makefile.i386,v 1.141 1999/03/11 18:28:41 dg Exp $
|
||||
# $Id: Makefile.i386,v 1.142 1999/04/07 09:28:01 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -229,13 +229,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Makefile.i386 -- with config changes.
|
||||
# Copyright 1990 W. Jolitz
|
||||
# from: @(#)Makefile.i386 7.1 5/10/91
|
||||
# $Id: Makefile.pc98,v 1.57 1999/03/13 13:18:00 kato Exp $
|
||||
# $Id: Makefile.pc98,v 1.58 1999/04/07 09:28:03 grog Exp $
|
||||
#
|
||||
# Makefile for FreeBSD
|
||||
#
|
||||
@ -233,13 +233,10 @@ install: ${KERNEL}
|
||||
fi
|
||||
install -c -m 555 -o root -g wheel -fschg ${KERNEL} ${DESTDIR}/
|
||||
|
||||
${KERNEL}: ${KERNEL}.debug
|
||||
objcopy --strip-debug ${KERNEL}.debug ${KERNEL}
|
||||
|
||||
.endif
|
||||
|
||||
${INSTALL}:
|
||||
@if [ ! -f ${FULLKERNEL} ] ; then \
|
||||
@if [ ! -f ${KERNEL} ] ; then \
|
||||
echo "You must first build your kernel before trying to install." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
@ -39,7 +39,7 @@
|
||||
.Nd build system configuration files
|
||||
.Sh SYNOPSIS
|
||||
.Nm config
|
||||
.Op Fl gprs
|
||||
.Op Fl gpr
|
||||
.Ar SYSTEM_NAME
|
||||
.Sh DESCRIPTION
|
||||
This is the old version of the
|
||||
@ -73,8 +73,7 @@ Available options and operands:
|
||||
.Pp
|
||||
.Bl -tag -width SYSTEM_NAME
|
||||
.It Fl g
|
||||
Configure a system for debugging. This is the default, so this flag has no
|
||||
meaning, and causes a warning message to be printed.
|
||||
Configure a system for debugging.
|
||||
.It Fl p
|
||||
Configure a system for profiling; for example,
|
||||
.Xr kgmon 8
|
||||
@ -87,10 +86,6 @@ options are supplied,
|
||||
configures a system for high resolution profiling.
|
||||
.It Fl r
|
||||
Remove the old compile directory (see below).
|
||||
.It Fl s
|
||||
Configure a system without debugging symbols. This saves both time and space,
|
||||
but if problems occur with the kernel, it will be almost impossible to find out
|
||||
their causes.
|
||||
.It Ar SYSTEM_NAME
|
||||
Specifies the name of the system configuration file
|
||||
containing device specifications, configuration options
|
||||
@ -101,9 +96,12 @@ and other system parameters for one system configuration.
|
||||
should be run from the
|
||||
.Pa conf
|
||||
subdirectory of the system source (usually
|
||||
.Pa /sys/ARCH/conf ) .
|
||||
.Pa /sys/ARCH/conf ) ,
|
||||
where
|
||||
.Pa ARCH
|
||||
represents one of the architectures supported by FreeBSD.
|
||||
.Nm Config
|
||||
will create the directory
|
||||
creates the directory
|
||||
.Pa ../../compile/SYSTEM_NAME
|
||||
as necessary and place all output files there.
|
||||
If the directory already exists and the
|
||||
@ -152,30 +150,43 @@ are likely to fail.
|
||||
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.
|
||||
.Pp
|
||||
Strings | grep ___ will print just the configure information.
|
||||
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 were compiled without symbols due to the heavy load on
|
||||
the system when compiling a
|
||||
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; this is no longer the case with
|
||||
.Xr gdb 8 ,
|
||||
and a debug kernel is needed for any meaningful analysis.
|
||||
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
|
||||
Building a debug kernel is the default with FreeBSD, and the
|
||||
.Fl s
|
||||
option is required to revert to historical behaviour. 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. Since kernel
|
||||
storage is non-pageable, the additional space required by a debug kernel is lost
|
||||
to the system when not debugging.
|
||||
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
|
||||
@ -184,11 +195,15 @@ are therefore two options for installing a debug kernel:
|
||||
.It
|
||||
.Nm make
|
||||
.Ar install
|
||||
makes a stripped copy of the kernel and installs it in the root file system.
|
||||
installs
|
||||
.Nm kernel
|
||||
in the root file system.
|
||||
.It
|
||||
.Nm make
|
||||
.Ar install.debug
|
||||
installs the complete debug kernel in the root file system.
|
||||
installs
|
||||
.Nm kernel.debug
|
||||
in the root file system.
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width /sys/i386/conf/Makefile.i386 -compact
|
||||
@ -208,6 +223,9 @@ name to major device mapping file for the
|
||||
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.
|
||||
|
@ -42,7 +42,7 @@ static const char copyright[] =
|
||||
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 6/6/93";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: main.c,v 1.27 1999/04/07 09:27:56 grog Exp $";
|
||||
"$Id: main.c,v 1.28 1999/04/10 14:03:38 ache Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -86,13 +86,10 @@ main(argc, argv)
|
||||
int ch;
|
||||
char *p;
|
||||
|
||||
debugging = 1; /* on by default */
|
||||
while ((ch = getopt(argc, argv, "gprns")) != -1)
|
||||
while ((ch = getopt(argc, argv, "gprn")) != -1)
|
||||
switch (ch) {
|
||||
case 'g':
|
||||
fprintf(stderr,
|
||||
"Debugging is enabled by default, there is "
|
||||
"no need to specify the -g option\n" );
|
||||
debugging++;
|
||||
break;
|
||||
case 'p':
|
||||
profiling++;
|
||||
@ -105,9 +102,6 @@ main(argc, argv)
|
||||
case 'r':
|
||||
no_config_clobber = FALSE;
|
||||
break;
|
||||
case 's':
|
||||
debugging = 0;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
@ -118,14 +112,6 @@ main(argc, argv)
|
||||
if (argc != 1)
|
||||
usage();
|
||||
|
||||
if (debugging)
|
||||
printf("Building kernel with full debugging symbols. Do\n"
|
||||
"\"config -s %s\" "
|
||||
"for historic partial symbolic support.\n"
|
||||
"To install the debugging kernel, do "
|
||||
"make install.debug\n",
|
||||
argv [0] );
|
||||
|
||||
if (freopen(PREFIX = *argv, "r", stdin) == NULL)
|
||||
err(2, "%s", PREFIX);
|
||||
|
||||
@ -224,7 +210,7 @@ main(argc, argv)
|
||||
static void
|
||||
usage()
|
||||
{
|
||||
fprintf(stderr, "usage: config [-gprs] sysname\n");
|
||||
fprintf(stderr, "usage: config [-gpr] sysname\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
static char sccsid[] = "@(#)mkmakefile.c 8.1 (Berkeley) 6/6/93";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mkmakefile.c,v 1.34 1998/09/15 21:07:54 gibbs Exp $";
|
||||
"$Id: mkmakefile.c,v 1.35 1999/04/07 09:27:56 grog Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@ -790,10 +790,7 @@ do_load(f)
|
||||
fputs("all:", f);
|
||||
for (fl = conf_list; fl; fl = fl->f_next)
|
||||
if (fl->f_type == SYSTEMSPEC)
|
||||
if (debugging)
|
||||
fprintf(f, " %s.debug", fl->f_needs);
|
||||
else
|
||||
fprintf(f, " %s", fl->f_needs);
|
||||
fprintf(f, " %s", fl->f_needs);
|
||||
putc('\n', f);
|
||||
}
|
||||
|
||||
@ -831,7 +828,14 @@ do_systemspec(f, fl, first)
|
||||
fprintf(f,
|
||||
"KERNEL=\t\t%s\n"
|
||||
"FULLKERNEL=\t%s.debug\n"
|
||||
"INSTALL=\tinstall.debug\n\n",
|
||||
"INSTALL=\tinstall.debug\n\n"
|
||||
"%s: %s.debug\n",
|
||||
fl->f_needs,
|
||||
fl->f_needs,
|
||||
fl->f_needs,
|
||||
fl->f_needs );
|
||||
fprintf (f,
|
||||
"\tobjcopy --strip-debug %s.debug %s\n\n",
|
||||
fl->f_needs,
|
||||
fl->f_needs );
|
||||
fprintf(f, "%s.debug: ${SYSTEM_DEP} swap%s.o", fl->f_needs, fl->f_fn);
|
||||
|
Loading…
Reference in New Issue
Block a user