1993-06-12 14:58:17 +00:00
|
|
|
# Copyright 1990 W. Jolitz
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
# from: @(#)Makefile.i386 7.1 5/10/91
|
1993-12-19 00:55:01 +00:00
|
|
|
# $Id: Makefile.i386,v 1.17 1993/12/12 12:22:28 davidg Exp $
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
#
|
|
|
|
# Makefile for FreeBSD
|
1993-06-12 14:58:17 +00:00
|
|
|
#
|
|
|
|
# This makefile is constructed from a machine description:
|
|
|
|
# config machineid
|
|
|
|
# Most changes should be made in the machine description
|
|
|
|
# /sys/i386/conf/``machineid''
|
|
|
|
# after which you should do
|
|
|
|
# config machineid
|
|
|
|
# Generic makefile changes should be made in
|
|
|
|
# /sys/i386/conf/Makefile.i386
|
|
|
|
# after which config should be rerun for all machines.
|
|
|
|
#
|
|
|
|
# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE INVISIBLE TO MAKEFILE
|
|
|
|
# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING
|
|
|
|
#
|
|
|
|
# -DTRACE compile in kernel tracing hooks
|
|
|
|
# -DQUOTA compile in file system quotas
|
|
|
|
#
|
|
|
|
TOUCH= touch -f -c
|
|
|
|
LD= /usr/bin/ld
|
|
|
|
CC= cc
|
|
|
|
CPP= cpp
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
STRIP= strip
|
|
|
|
DBSYM= /usr/sbin/dbsym
|
1993-06-12 14:58:17 +00:00
|
|
|
|
|
|
|
S= ../..
|
|
|
|
I386= ../../i386
|
|
|
|
|
1993-11-25 01:38:01 +00:00
|
|
|
CWARNFLAGS=-W -Wreturn-type -Wcomment
|
|
|
|
#
|
|
|
|
# The following flags are next up for working on:
|
1993-12-19 00:55:01 +00:00
|
|
|
# -Wredundant-decls -Wnested-externs
|
1993-11-25 01:38:01 +00:00
|
|
|
#
|
|
|
|
# When working on removing warnings from code, the `-Werror' flag should be
|
|
|
|
# of material assistance.
|
|
|
|
#
|
1993-11-07 04:41:11 +00:00
|
|
|
COPTFLAGS=-O
|
1993-06-12 14:58:17 +00:00
|
|
|
INCLUDES= -I. -I$S -I$S/sys
|
|
|
|
COPTS= ${INCLUDES} ${IDENT} -DKERNEL -Di386 -DNPX
|
|
|
|
ASFLAGS=
|
1993-11-07 04:41:11 +00:00
|
|
|
CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS}
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
LOAD_ADDRESS?= FE000000
|
1993-06-12 14:58:17 +00:00
|
|
|
|
|
|
|
NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} $<
|
|
|
|
NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
|
|
|
|
NORMAL_S= ${CPP} -I. -DLOCORE ${COPTS} $< | ${AS} ${ASFLAGS} -o $*.o
|
|
|
|
DRIVER_C= ${CC} -c ${CFLAGS} ${PROF} $<
|
|
|
|
DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
|
First steps in rewriting locore.s, and making info useful
when the machine panics.
i386/i386/locore.s:
1) got rid of most .set directives that were being used like
#define's, and replaced them with appropriate #define's in
the appropriate header files (accessed via genassym).
2) added comments to header inclusions and global definitions,
and global variables
3) replaced some hardcoded constants with cpp defines (such as
PDESIZE and others)
4) aligned all comments to the same column to make them easier to
read
5) moved macro definitions for ENTRY, ALIGN, NOP, etc. to
/sys/i386/include/asmacros.h
6) added #ifdef BDE_DEBUGGER around all of Bruce's debugger code
7) added new global '_KERNend' to store last location+1 of kernel
8) cleaned up zeroing of bss so that only bss is zeroed
9) fix zeroing of page tables so that it really does zero them all
- not just if they follow the bss.
10) rewrote page table initialization code so that 1) works correctly
and 2) write protects the kernel text by default
11) properly initialize the kernel page directory, upages, p0stack PT,
and page tables. The previous scheme was more than a bit
screwy.
12) change allocation of virtual area of IO hole so that it is
fixed at KERNBASE + 0xa0000. The previous scheme put it
right after the kernel page tables and then later expected
it to be at KERNBASE +0xa0000
13) change multiple bogus settings of user read/write of various
areas of kernel VM - including the IO hole; we should never
be accessing the IO hole in user mode through the kernel
page tables
14) split kernel support routines such as bcopy, bzero, copyin,
copyout, etc. into a seperate file 'support.s'
15) split swtch and related routines into a seperate 'swtch.s'
16) split routines related to traps, syscalls, and interrupts
into a seperate file 'exception.s'
17) remove some unused global variables from locore that got
inserted by Garrett when he pulled them out of some .h
files.
i386/isa/icu.s:
1) clean up global variable declarations
2) move in declaration of astpending and netisr
i386/i386/pmap.c:
1) fix calculation of virtual_avail. It previously was calculated
to be right in the middle of the kernel page tables - not
a good place to start allocating kernel VM.
2) properly allocate kernel page dir/tables etc out of kernel map
- previously only took out 2 pages.
i386/i386/machdep.c:
1) modify boot() to print a warning that the system will reboot in
PANIC_REBOOT_WAIT_TIME amount of seconds, and let the user
abort with a key on the console. The machine will wait for
ever if a key is typed before the reboot. The default is
15 seconds, but can be set to 0 to mean don't wait at all,
-1 to mean wait forever, or any positive value to wait for
that many seconds.
2) print "Rebooting..." just before doing it.
kern/subr_prf.c:
1) remove PANICWAIT as it is deprecated by the change to machdep.c
i386/i386/trap.c:
1) add table of trap type strings and use it to print a real trap/
panic message rather than just a number. Lot's of work to
be done here, but this is the first step. Symbolic traceback
is in the TODO.
i386/i386/Makefile.i386:
1) add support in to build support.s, exception.s and swtch.s
...and various changes to various header files to make all of the
above happen.
1993-11-13 02:25:21 +00:00
|
|
|
SYSTEM_OBJS=locore.o exception.o swtch.o support.o ${OBJS} param.o \
|
|
|
|
ioconf.o conf.o machdep.o
|
1993-06-12 14:58:17 +00:00
|
|
|
SYSTEM_DEP=Makefile symbols.sort ${SYSTEM_OBJS}
|
|
|
|
SYSTEM_LD_HEAD= @echo loading $@; rm -f $@
|
1993-12-12 12:22:57 +00:00
|
|
|
SYSTEM_LD= @${LD} -Bstatic -z -T ${LOAD_ADDRESS} -o $@ -X vers.o ${SYSTEM_OBJS}
|
1993-06-12 14:58:17 +00:00
|
|
|
SYSTEM_LD_TAIL= @echo rearranging symbols; symorder symbols.sort $@; \
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
${DBSYM} -fT ${LOAD_ADDRESS} $@; ${STRIP} -x $@; size $@; chmod 755 $@
|
1993-06-12 14:58:17 +00:00
|
|
|
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
# (XXX) ok, this is weird. but we've got a working ed, and a broken ex, and
|
|
|
|
# the script is identical for either... -- cgd
|
|
|
|
#
|
1993-06-12 14:58:17 +00:00
|
|
|
GPROF.EX= /usr/src/lib/csu.i386/gprof.ex
|
|
|
|
PROFILE_C= ${CC} -S -c ${CFLAGS} $< ; \
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
ed - $*.s < ${GPROF.EX} ; \
|
1993-06-12 14:58:17 +00:00
|
|
|
${AS} -o $@ $*.s ; \
|
|
|
|
rm -f $*.s
|
|
|
|
|
|
|
|
%OBJS
|
|
|
|
|
|
|
|
%CFILES
|
|
|
|
|
|
|
|
%LOAD
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f eddep *386bsd tags *.o locore.i [a-uw-z]*.s \
|
1993-11-07 16:46:33 +00:00
|
|
|
errs linterrs makelinks genassym ,assym.s stamp-assym
|
1993-06-12 14:58:17 +00:00
|
|
|
|
1993-11-07 16:46:33 +00:00
|
|
|
#lint: /tmp param.c
|
|
|
|
# @lint -hbxn -I. -DGENERIC -Dvolatile= ${COPTS} ${PARAM} \
|
|
|
|
# ${I386}/i386/Locore.c ${CFILES} ioconf.c param.c | \
|
|
|
|
# grep -v 'struct/union .* never defined' | \
|
|
|
|
# grep -v 'possible pointer alignment problem'
|
1993-06-12 14:58:17 +00:00
|
|
|
|
|
|
|
symbols.sort: ${I386}/i386/symbols.raw
|
|
|
|
grep -v '^#' ${I386}/i386/symbols.raw \
|
|
|
|
| sed 's/^ //' | sort -u > symbols.sort
|
|
|
|
|
|
|
|
locore.o: assym.s ${I386}/i386/locore.s machine/trap.h machine/psl.h \
|
|
|
|
machine/pte.h ${I386}/isa/vector.s ${I386}/isa/icu.s \
|
|
|
|
$S/sys/errno.h machine/specialreg.h ${I386}/isa/debug.h \
|
First steps in rewriting locore.s, and making info useful
when the machine panics.
i386/i386/locore.s:
1) got rid of most .set directives that were being used like
#define's, and replaced them with appropriate #define's in
the appropriate header files (accessed via genassym).
2) added comments to header inclusions and global definitions,
and global variables
3) replaced some hardcoded constants with cpp defines (such as
PDESIZE and others)
4) aligned all comments to the same column to make them easier to
read
5) moved macro definitions for ENTRY, ALIGN, NOP, etc. to
/sys/i386/include/asmacros.h
6) added #ifdef BDE_DEBUGGER around all of Bruce's debugger code
7) added new global '_KERNend' to store last location+1 of kernel
8) cleaned up zeroing of bss so that only bss is zeroed
9) fix zeroing of page tables so that it really does zero them all
- not just if they follow the bss.
10) rewrote page table initialization code so that 1) works correctly
and 2) write protects the kernel text by default
11) properly initialize the kernel page directory, upages, p0stack PT,
and page tables. The previous scheme was more than a bit
screwy.
12) change allocation of virtual area of IO hole so that it is
fixed at KERNBASE + 0xa0000. The previous scheme put it
right after the kernel page tables and then later expected
it to be at KERNBASE +0xa0000
13) change multiple bogus settings of user read/write of various
areas of kernel VM - including the IO hole; we should never
be accessing the IO hole in user mode through the kernel
page tables
14) split kernel support routines such as bcopy, bzero, copyin,
copyout, etc. into a seperate file 'support.s'
15) split swtch and related routines into a seperate 'swtch.s'
16) split routines related to traps, syscalls, and interrupts
into a seperate file 'exception.s'
17) remove some unused global variables from locore that got
inserted by Garrett when he pulled them out of some .h
files.
i386/isa/icu.s:
1) clean up global variable declarations
2) move in declaration of astpending and netisr
i386/i386/pmap.c:
1) fix calculation of virtual_avail. It previously was calculated
to be right in the middle of the kernel page tables - not
a good place to start allocating kernel VM.
2) properly allocate kernel page dir/tables etc out of kernel map
- previously only took out 2 pages.
i386/i386/machdep.c:
1) modify boot() to print a warning that the system will reboot in
PANIC_REBOOT_WAIT_TIME amount of seconds, and let the user
abort with a key on the console. The machine will wait for
ever if a key is typed before the reboot. The default is
15 seconds, but can be set to 0 to mean don't wait at all,
-1 to mean wait forever, or any positive value to wait for
that many seconds.
2) print "Rebooting..." just before doing it.
kern/subr_prf.c:
1) remove PANICWAIT as it is deprecated by the change to machdep.c
i386/i386/trap.c:
1) add table of trap type strings and use it to print a real trap/
panic message rather than just a number. Lot's of work to
be done here, but this is the first step. Symbolic traceback
is in the TODO.
i386/i386/Makefile.i386:
1) add support in to build support.s, exception.s and swtch.s
...and various changes to various header files to make all of the
above happen.
1993-11-13 02:25:21 +00:00
|
|
|
${I386}/isa/icu.h ${I386}/isa/isa.h vector.h $S/net/netisr.h \
|
|
|
|
machine/asmacros.h
|
1993-06-12 14:58:17 +00:00
|
|
|
${CPP} -I. -DLOCORE ${COPTS} ${I386}/i386/locore.s | \
|
|
|
|
${AS} ${ASFLAGS} -o locore.o
|
|
|
|
|
First steps in rewriting locore.s, and making info useful
when the machine panics.
i386/i386/locore.s:
1) got rid of most .set directives that were being used like
#define's, and replaced them with appropriate #define's in
the appropriate header files (accessed via genassym).
2) added comments to header inclusions and global definitions,
and global variables
3) replaced some hardcoded constants with cpp defines (such as
PDESIZE and others)
4) aligned all comments to the same column to make them easier to
read
5) moved macro definitions for ENTRY, ALIGN, NOP, etc. to
/sys/i386/include/asmacros.h
6) added #ifdef BDE_DEBUGGER around all of Bruce's debugger code
7) added new global '_KERNend' to store last location+1 of kernel
8) cleaned up zeroing of bss so that only bss is zeroed
9) fix zeroing of page tables so that it really does zero them all
- not just if they follow the bss.
10) rewrote page table initialization code so that 1) works correctly
and 2) write protects the kernel text by default
11) properly initialize the kernel page directory, upages, p0stack PT,
and page tables. The previous scheme was more than a bit
screwy.
12) change allocation of virtual area of IO hole so that it is
fixed at KERNBASE + 0xa0000. The previous scheme put it
right after the kernel page tables and then later expected
it to be at KERNBASE +0xa0000
13) change multiple bogus settings of user read/write of various
areas of kernel VM - including the IO hole; we should never
be accessing the IO hole in user mode through the kernel
page tables
14) split kernel support routines such as bcopy, bzero, copyin,
copyout, etc. into a seperate file 'support.s'
15) split swtch and related routines into a seperate 'swtch.s'
16) split routines related to traps, syscalls, and interrupts
into a seperate file 'exception.s'
17) remove some unused global variables from locore that got
inserted by Garrett when he pulled them out of some .h
files.
i386/isa/icu.s:
1) clean up global variable declarations
2) move in declaration of astpending and netisr
i386/i386/pmap.c:
1) fix calculation of virtual_avail. It previously was calculated
to be right in the middle of the kernel page tables - not
a good place to start allocating kernel VM.
2) properly allocate kernel page dir/tables etc out of kernel map
- previously only took out 2 pages.
i386/i386/machdep.c:
1) modify boot() to print a warning that the system will reboot in
PANIC_REBOOT_WAIT_TIME amount of seconds, and let the user
abort with a key on the console. The machine will wait for
ever if a key is typed before the reboot. The default is
15 seconds, but can be set to 0 to mean don't wait at all,
-1 to mean wait forever, or any positive value to wait for
that many seconds.
2) print "Rebooting..." just before doing it.
kern/subr_prf.c:
1) remove PANICWAIT as it is deprecated by the change to machdep.c
i386/i386/trap.c:
1) add table of trap type strings and use it to print a real trap/
panic message rather than just a number. Lot's of work to
be done here, but this is the first step. Symbolic traceback
is in the TODO.
i386/i386/Makefile.i386:
1) add support in to build support.s, exception.s and swtch.s
...and various changes to various header files to make all of the
above happen.
1993-11-13 02:25:21 +00:00
|
|
|
exception.o: assym.s ${I386}/i386/exception.s machine/trap.h \
|
|
|
|
${I386}/isa/vector.s ${I386}/isa/icu.s \
|
|
|
|
$S/sys/errno.h ${I386}/isa/icu.h ${I386}/isa/isa.h vector.h \
|
|
|
|
$S/net/netisr.h machine/asmacros.h
|
|
|
|
${CPP} -I. -DLOCORE ${COPTS} ${I386}/i386/exception.s | \
|
|
|
|
${AS} ${ASFLAGS} -o exception.o
|
|
|
|
|
|
|
|
swtch.o: assym.s ${I386}/i386/swtch.s \
|
|
|
|
$S/sys/errno.h ${I386}/isa/debug.h machine/asmacros.h
|
|
|
|
${CPP} -I. ${COPTS} ${I386}/i386/swtch.s | \
|
|
|
|
${AS} ${ASFLAGS} -o swtch.o
|
|
|
|
|
|
|
|
support.o: assym.s ${I386}/i386/support.s \
|
|
|
|
$S/sys/errno.h machine/asmacros.h
|
|
|
|
${CPP} -I. ${COPTS} ${I386}/i386/support.s | \
|
|
|
|
${AS} ${ASFLAGS} -o support.o
|
|
|
|
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
machdep.o: ${I386}/i386/machdep.c Makefile
|
|
|
|
${CC} -c ${CFLAGS} -DLOAD_ADDRESS=0x${LOAD_ADDRESS} ${PROF} $<
|
|
|
|
|
1993-06-12 14:58:17 +00:00
|
|
|
# the following is necessary because autoconf.o depends on #if GENERIC
|
|
|
|
autoconf.o: Makefile
|
|
|
|
|
|
|
|
# depend on network configuration
|
|
|
|
af.o uipc_proto.o locore.o: Makefile
|
|
|
|
|
|
|
|
# depends on KDB (cons.o also depends on GENERIC)
|
|
|
|
trap.o cons.o: Makefile
|
|
|
|
|
1993-10-23 08:28:17 +00:00
|
|
|
assym.s: genassym
|
1993-11-07 16:46:33 +00:00
|
|
|
./genassym >,assym.s
|
|
|
|
if cmp -s assym.s ,assym.s; then \
|
|
|
|
rm -f ,assym.s; \
|
|
|
|
else \
|
|
|
|
rm -f assym.s; \
|
|
|
|
mv ,assym.s assym.s; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Some of the defines that genassym outputs may well depend on the
|
|
|
|
# value of kernel options.
|
|
|
|
genassym: Makefile
|
1993-06-12 14:58:17 +00:00
|
|
|
${CC} ${INCLUDES} -DKERNEL ${IDENT} ${PARAM} \
|
1993-10-23 06:46:24 +00:00
|
|
|
${I386}/i386/genassym.c -o genassym
|
1993-06-12 14:58:17 +00:00
|
|
|
|
|
|
|
depend: assym.s param.c
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
sh /usr/bin/mkdep -DLOAD_ADDRESS=0x${LOAD_ADDRESS} ${COPTS} ${CFILES} ioconf.c param.c ${I386}/i386/conf.c
|
1993-06-12 14:58:17 +00:00
|
|
|
sh /usr/bin/mkdep -a -p ${INCLUDES} ${IDENT} ${PARAM} ${I386}/i386/genassym.c
|
|
|
|
|
|
|
|
links:
|
|
|
|
egrep '#if' ${CFILES} | sed -f $S/conf/defines | \
|
|
|
|
sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink
|
|
|
|
echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \
|
|
|
|
sort -u | comm -23 - dontlink | \
|
|
|
|
sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
|
|
|
|
sh makelinks && rm -f dontlink
|
|
|
|
|
|
|
|
tags:
|
|
|
|
@echo "see $S/kern/Makefile for tags"
|
|
|
|
|
|
|
|
ioconf.o: ioconf.c $S/sys/param.h machine/pte.h $S/sys/buf.h \
|
|
|
|
${I386}/isa/isa_device.h ${I386}/isa/isa.h ${I386}/isa/icu.h
|
|
|
|
${CC} -c ${CFLAGS} ioconf.c
|
|
|
|
|
1993-11-25 01:38:01 +00:00
|
|
|
conf.o: ${I386}/i386/conf.c $S/sys/conf.h
|
|
|
|
${CC} -c ${CFLAGS} ${I386}/i386/conf.c
|
1993-06-12 14:58:17 +00:00
|
|
|
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
param.c: $S/conf/param.c
|
1993-06-12 14:58:17 +00:00
|
|
|
-rm -f param.c
|
|
|
|
cp $S/conf/param.c .
|
|
|
|
|
|
|
|
param.o: param.c Makefile
|
|
|
|
${CC} -c ${CFLAGS} ${PARAM} param.c
|
|
|
|
|
This Makefile is for FreeBSD, not 4.3 BSD-Reno. Moved $Id$.
Added STRIP=, DBSYM=, and LOAD_ADDRESS?=
Now use LOAD_ADDRESS for linking kernel and for dbsym, added strip -x to
cut kernel size.
Added machde.o: dependency, this will be needed in the future, and for
now it does not hurt anyone.
Cleaned out conf.o: dependency, mkdep does the right things. Same for
param.c:
This is really a Merge in of NetBSD's Makefile.i386, here is the relevant
rlog info:
----------------------------
revision 1.27
date: 1993/08/27 23:58:20; author: brezak; state: Exp; lines: +2 -2
Need LOAD_ADDRESS for depend pass.
----------------------------
revision 1.25
date: 1993/07/19 16:52:16; author: mycroft; state: Exp; lines: +3 -3
Add ${DEBUG} to CFLAGS and -f to dbsym.
----------------------------
revision 1.22
date: 1993/07/18 10:08:22; author: mycroft; state: Exp; lines: +5 -6
Change to work with new config stuff for specifying load address.
----------------------------
revision 1.20
date: 1993/07/18 09:47:40; author: mycroft; state: Exp; lines: +6 -5
Use new -T option to dbsym.
----------------------------
revision 1.17
date: 1993/07/11 08:42:22; author: cgd; state: Exp; lines: +2 -2
don't ignore errors from dbsym... it might say that, e.g. there's
not enough symbol space!
----------------------------
revision 1.14
date: 1993/06/06 23:29:03; author: cgd; state: Exp; lines: +2 -2
make conf.o actually depend on conf.c...
----------------------------
revision 1.8
date: 1993/04/29 03:27:39; author: cgd; state: Exp; lines: +5 -10
use ed instead of ex. the script to use is identical, and we might
want to switch back to using ex when our ex supports -.
----------------------------
revision 1.5
date: 1993/03/24 18:48:57; author: cgd; state: Exp; lines: +1 -1
now use absolute path for dbsym
----------------------------
1993-09-26 19:44:33 +00:00
|
|
|
vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
|
1993-06-12 14:58:17 +00:00
|
|
|
sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
|
|
|
|
${CC} ${CFLAGS} -c vers.c
|
|
|
|
|
|
|
|
%RULES
|
|
|
|
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend uses it
|
|
|
|
|