diff options
-rw-r--r-- | sys/conf/Makefile.pc98 | 32 | ||||
-rw-r--r-- | sys/pc98/conf/Makefile.pc98 | 32 | ||||
-rw-r--r-- | sys/pc98/i386/machdep.c | 8 | ||||
-rw-r--r-- | sys/pc98/pc98/machdep.c | 8 | ||||
-rw-r--r-- | sys/pc98/pc98/npx.c | 14 |
5 files changed, 69 insertions, 25 deletions
diff --git a/sys/conf/Makefile.pc98 b/sys/conf/Makefile.pc98 index ecdb567..5643b7b 100644 --- a/sys/conf/Makefile.pc98 +++ b/sys/conf/Makefile.pc98 @@ -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.11 1997/02/22 09:43:21 peter Exp $ +# $Id: Makefile.pc98,v 1.12 1997/03/22 18:54:10 kato Exp $ # # Makefile for FreeBSD # @@ -17,9 +17,9 @@ # /sys/i386/conf/Makefile.i386 # after which config should be rerun for all machines. # -CC?= cc -CPP?= cpp -LD?= /usr/bin/ld + +BINFORMAT?= aout +#BINFORMAT?= elf .if exists(./@/.) S= ./@ @@ -57,18 +57,26 @@ DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< DRIVER_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< PROFILE_C= ${CC} -c ${CFLAGS} ${PARAM} $< -SYSTEM_CFILES= ioconf.c param.c vnode_if.c config.c +SYSTEM_CFILES= ${I386}/i386/setdef0.c ioconf.c param.c vnode_if.c config.c \ + ${I386}/i386/setdef1.c SYSTEM_SFILES= ${I386}/i386/locore.s -SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} ioconf.o param.o config.o +SYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o param.o config.o \ + setdef1.o SYSTEM_DEP= Makefile symbols.exclude symbols.sort ${SYSTEM_OBJS} -SYSTEM_LD_HEAD= @echo loading $@; rm -f $@ -SYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o .if ${CFLAGS:M-g} == "" SYMORDER_EXCLUDE=-x symbols.exclude .endif +SYSTEM_LD_HEAD= @echo loading $@; rm -f $@ +.if ${BINFORMAT} == aout +SYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL= @echo rearranging symbols; \ symorder -m ${SYMORDER_EXCLUDE} symbols.sort $@; \ size $@; chmod 755 $@ +.endif +.if ${BINFORMAT} == elf +SYSTEM_LD= @${LD} -Bstatic -Ttext ${LOAD_ADDRESS} -e btext -o $@ -X ${SYSTEM_OBJS} vers.o +SYSTEM_LD_TAIL= @size $@; chmod 755 $@ +.endif %BEFORE_DEPEND @@ -104,6 +112,12 @@ symbols.sort: ${I386}/i386/symbols.raw locore.o: ${I386}/i386/locore.s assym.s ${NORMAL_S} +setdef0.o: ${I386}/i386/setdef0.c + ${NORMAL_C} + +setdef1.o: ${I386}/i386/setdef1.c + ${NORMAL_C} + # everything potentially depends on the Makefile since everything potentially # depends on the options. Some things are more dependent on the Makefile for # historical reasons. @@ -138,7 +152,7 @@ depend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} rm -f .newdep mkdep -a -f .newdep ${COPTS} ${CFILES} ${SYSTEM_CFILES} mkdep -a -f .newdep ${COPTS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c - MKDEP_CPP="${CPP}" ; export MKDEP_CPP ; \ + MKDEP_CPP="${CC} -E -x assembler-with-cpp" ; export MKDEP_CPP ; \ mkdep -a -f .newdep -DLOCORE ${COPTS} ${SFILES} ${SYSTEM_SFILES} rm -f .depend mv -f .newdep .depend diff --git a/sys/pc98/conf/Makefile.pc98 b/sys/pc98/conf/Makefile.pc98 index ecdb567..5643b7b 100644 --- a/sys/pc98/conf/Makefile.pc98 +++ b/sys/pc98/conf/Makefile.pc98 @@ -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.11 1997/02/22 09:43:21 peter Exp $ +# $Id: Makefile.pc98,v 1.12 1997/03/22 18:54:10 kato Exp $ # # Makefile for FreeBSD # @@ -17,9 +17,9 @@ # /sys/i386/conf/Makefile.i386 # after which config should be rerun for all machines. # -CC?= cc -CPP?= cpp -LD?= /usr/bin/ld + +BINFORMAT?= aout +#BINFORMAT?= elf .if exists(./@/.) S= ./@ @@ -57,18 +57,26 @@ DRIVER_C_C= ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $< DRIVER_S= ${CC} -c -x assembler-with-cpp -DLOCORE ${COPTS} $< PROFILE_C= ${CC} -c ${CFLAGS} ${PARAM} $< -SYSTEM_CFILES= ioconf.c param.c vnode_if.c config.c +SYSTEM_CFILES= ${I386}/i386/setdef0.c ioconf.c param.c vnode_if.c config.c \ + ${I386}/i386/setdef1.c SYSTEM_SFILES= ${I386}/i386/locore.s -SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} ioconf.o param.o config.o +SYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o param.o config.o \ + setdef1.o SYSTEM_DEP= Makefile symbols.exclude symbols.sort ${SYSTEM_OBJS} -SYSTEM_LD_HEAD= @echo loading $@; rm -f $@ -SYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o .if ${CFLAGS:M-g} == "" SYMORDER_EXCLUDE=-x symbols.exclude .endif +SYSTEM_LD_HEAD= @echo loading $@; rm -f $@ +.if ${BINFORMAT} == aout +SYSTEM_LD= @${LD} -Bstatic -Z -T ${LOAD_ADDRESS} -o $@ -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL= @echo rearranging symbols; \ symorder -m ${SYMORDER_EXCLUDE} symbols.sort $@; \ size $@; chmod 755 $@ +.endif +.if ${BINFORMAT} == elf +SYSTEM_LD= @${LD} -Bstatic -Ttext ${LOAD_ADDRESS} -e btext -o $@ -X ${SYSTEM_OBJS} vers.o +SYSTEM_LD_TAIL= @size $@; chmod 755 $@ +.endif %BEFORE_DEPEND @@ -104,6 +112,12 @@ symbols.sort: ${I386}/i386/symbols.raw locore.o: ${I386}/i386/locore.s assym.s ${NORMAL_S} +setdef0.o: ${I386}/i386/setdef0.c + ${NORMAL_C} + +setdef1.o: ${I386}/i386/setdef1.c + ${NORMAL_C} + # everything potentially depends on the Makefile since everything potentially # depends on the options. Some things are more dependent on the Makefile for # historical reasons. @@ -138,7 +152,7 @@ depend: assym.s param.c vnode_if.h ${BEFORE_DEPEND} rm -f .newdep mkdep -a -f .newdep ${COPTS} ${CFILES} ${SYSTEM_CFILES} mkdep -a -f .newdep ${COPTS} ${PARAM} -UKERNEL ${I386}/i386/genassym.c - MKDEP_CPP="${CPP}" ; export MKDEP_CPP ; \ + MKDEP_CPP="${CC} -E -x assembler-with-cpp" ; export MKDEP_CPP ; \ mkdep -a -f .newdep -DLOCORE ${COPTS} ${SFILES} ${SYSTEM_SFILES} rm -f .depend mv -f .newdep .depend diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c index ed46bc2..f762f1d 100644 --- a/sys/pc98/i386/machdep.c +++ b/sys/pc98/i386/machdep.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 - * $Id: machdep.c,v 1.35 1997/04/07 11:00:45 kato Exp $ + * $Id: machdep.c,v 1.36 1997/04/13 06:02:52 kato Exp $ */ #include "npx.h" @@ -130,6 +130,7 @@ extern void earlysetcpuclass(void); /* same header file */ extern void finishidentcpu(void); extern void panicifcpuunsupported(void); extern void initializecpu(void); +extern void init_sets(void); static void cpu_startup __P((void *)); SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL) @@ -989,6 +990,11 @@ init386(first) atdevbase = ISA_HOLE_START + KERNBASE; /* + * Fill in the length fields of all linker sets (necessary for ELF). + */ + init_sets(); + + /* * Initialize the console before we print anything out. */ cninit(); diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c index ed46bc2..f762f1d 100644 --- a/sys/pc98/pc98/machdep.c +++ b/sys/pc98/pc98/machdep.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 - * $Id: machdep.c,v 1.35 1997/04/07 11:00:45 kato Exp $ + * $Id: machdep.c,v 1.36 1997/04/13 06:02:52 kato Exp $ */ #include "npx.h" @@ -130,6 +130,7 @@ extern void earlysetcpuclass(void); /* same header file */ extern void finishidentcpu(void); extern void panicifcpuunsupported(void); extern void initializecpu(void); +extern void init_sets(void); static void cpu_startup __P((void *)); SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL) @@ -989,6 +990,11 @@ init386(first) atdevbase = ISA_HOLE_START + KERNBASE; /* + * Fill in the length fields of all linker sets (necessary for ELF). + */ + init_sets(); + + /* * Initialize the console before we print anything out. */ cninit(); diff --git a/sys/pc98/pc98/npx.c b/sys/pc98/pc98/npx.c index e7ac7f68..4249fe0 100644 --- a/sys/pc98/pc98/npx.c +++ b/sys/pc98/pc98/npx.c @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * from: @(#)npx.c 7.2 (Berkeley) 5/12/91 - * $Id: npx.c,v 1.14 1997/02/22 09:43:41 peter Exp $ + * $Id: npx.c,v 1.15 1997/03/24 12:29:39 bde Exp $ */ #include "npx.h" @@ -53,6 +53,7 @@ #endif #include <sys/signalvar.h> +#include <machine/asmacros.h> #include <machine/cpu.h> #include <machine/pcb.h> #include <machine/md_var.h> @@ -152,13 +153,15 @@ static volatile u_int npx_traps_while_probing; * interrupts. We'll still need a special exception 16 handler. The busy * latch stuff in probeintr() can be moved to npxprobe(). */ + inthand_t probeintr; asm (" .text -_probeintr: + .p2align 2,0x90 +" __XSTRING(CNAME(probeintr)) ": ss - incl _npx_intrs_while_probing + incl " __XSTRING(CNAME(npx_intrs_while_probing)) " pushl %eax movb $0x20,%al # EOI (asm in strings loses cpp features) #ifdef PC98 @@ -182,9 +185,10 @@ inthand_t probetrap; asm (" .text -_probetrap: + .p2align 2,0x90 +" __XSTRING(CNAME(probetrap)) ": ss - incl _npx_traps_while_probing + incl " __XSTRING(CNAME(npx_traps_while_probing)) " fnclex iret "); |