Use genassym.cf and a shell script to build assym.h. This helps
authorgene <gene@openbsd.org>
Fri, 18 Apr 1997 17:29:50 +0000 (17:29 +0000)
committergene <gene@openbsd.org>
Fri, 18 Apr 1997 17:29:50 +0000 (17:29 +0000)
cross-compiling a lot.  Queue taken from Scott Reynolds.

sys/arch/mac68k/conf/Makefile.mac68k
sys/arch/mac68k/mac68k/genassym.c [deleted file]
sys/arch/mac68k/mac68k/genassym.cf [new file with mode: 0644]

index c24ef36..54c158b 100644 (file)
@@ -1,5 +1,5 @@
-#      $OpenBSD: Makefile.mac68k,v 1.12 1997/01/24 01:35:25 briggs Exp $
-#      $NetBSD: Makefile.mac68k,v 1.47 1997/01/13 07:06:51 scottr Exp $
+#      $OpenBSD: Makefile.mac68k,v 1.13 1997/04/18 17:29:50 gene Exp $
+#      $NetBSD: Makefile.mac68k,v 1.53 1997/04/15 06:11:38 scottr Exp $
 
 # Makefile for NetBSD
 #
@@ -106,14 +106,10 @@ LINKFLAGS+=       -S
 
 %LOAD
 
-assym.h: genassym
-       ./genassym >assym.h
-
-genassym: genassym.o
-       ${CC} -o $@ genassym.o
-
-genassym.o: ${MAC68K}/mac68k/genassym.c
-       ${HOSTED_C_C}
+assym.h: $S/kern/genassym.sh ${MAC68K}/mac68k/genassym.cf
+       sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
+           < ${MAC68K}/mac68k/genassym.cf > assym.h.tmp && \
+       mv -f assym.h.tmp assym.h
 
 param.c: $S/conf/param.c
        rm -f param.c
@@ -132,7 +128,7 @@ newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
 
 clean::
        rm -f eddep *bsd bsd.gdb tags *.[io] [a-z]*.s \
-           [Ee]rrs linterrs makelinks genassym genassym.o assym.h
+           [Ee]rrs linterrs makelinks assym.h.tmp assym.h
 
 lint:
        @lint -hbxncez -DGENERIC -Dvolatile= ${CPPFLAGS} ${PARAM} -UKGDB \
@@ -158,7 +154,10 @@ depend:: .depend
        ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${MAC68K}/mac68k/locore.s
        ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES}
        ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES}
-       ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} ${PARAM} ${MAC68K}/mac68k/genassym.c
+       -if test -n "${SFILES}"; then \
+               ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES}; \
+       fi
+
 
 
 # depend on root or device configuration
diff --git a/sys/arch/mac68k/mac68k/genassym.c b/sys/arch/mac68k/mac68k/genassym.c
deleted file mode 100644 (file)
index 2ed8eee..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*     $OpenBSD: genassym.c,v 1.5 1997/01/24 01:35:46 briggs Exp $     */
-/*     $NetBSD: genassym.c,v 1.22 1997/01/09 07:14:17 scottr Exp $     */
-
-/*
- * Copyright (c) 1990 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.
- *
- *     @(#)genassym.c  7.8 (Berkeley) 5/7/91
- */
-
-#include <sys/param.h>
-#include <sys/buf.h>
-#include <sys/proc.h>
-#include <sys/mbuf.h>
-#include <sys/msgbuf.h>
-#include <sys/syscall.h>
-#include <sys/systm.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-#include <vm/vm.h>
-
-#include <machine/cpu.h>
-#include <machine/trap.h>
-#include <machine/psl.h>
-#include <machine/reg.h>
-#include <machine/pte.h>
-
-#include "clockreg.h"
-
-int
-main(void)
-{
-       register struct proc *p = (struct proc *)0;
-       register struct mdproc *mdproc = (struct mdproc *)0;
-       register struct vmmeter *vm = (struct vmmeter *)0;
-       register struct user *up = (struct user *)0;
-       register struct rusage *rup = (struct rusage *)0;
-       register struct frame *frame = (struct frame *)0;
-       struct vmspace *vms = (struct vmspace *)0;
-       pmap_t pmap = (pmap_t)0;
-       struct pcb *pcb = (struct pcb *)0;
-
-       printf("#define\tP_FORW %p\n", &p->p_forw);
-       printf("#define\tP_BACK %p\n", &p->p_back);
-       printf("#define\tP_VMSPACE %p\n", &p->p_vmspace);
-       printf("#define\tP_ADDR %p\n", &p->p_addr);
-       printf("#define\tP_MD %p\n", &p->p_md);
-       printf("#define\tP_PID %p\n", &p->p_pid);
-       printf("#define\tP_PRIORITY %p\n", &p->p_priority);
-       printf("#define\tP_STAT %p\n", &p->p_stat);
-       printf("#define\tP_WCHAN %p\n", &p->p_wchan);
-       printf("#define\tP_FLAG %p\n", &p->p_flag);
-       printf("#define\tP_MD_REGS %p\n", &p->p_md.md_regs);
-       printf("#define\tP_MD_FLAGS %p\n", &p->p_md.md_flags);
-       printf("#define\tSSLEEP %d\n", SSLEEP);
-       printf("#define\tSRUN %d\n", SRUN);
-
-       printf("#define\tMD_REGS %p\n", &mdproc->md_regs);
-
-       printf("#define\tPM_STCHG %p\n", &pmap->pm_stchanged);
-
-       printf("#define\tVM_PMAP %p\n", &vms->vm_pmap);
-       printf("#define\tV_SWTCH %p\n", &vm->v_swtch);
-       printf("#define\tV_TRAP %p\n", &vm->v_trap);
-       printf("#define\tV_SYSCALL %p\n", &vm->v_syscall);
-       printf("#define\tV_INTR %p\n", &vm->v_intr);
-       printf("#define\tV_SOFT %p\n", &vm->v_soft);
-
-       printf("#define\tUPAGES %d\n", UPAGES);
-       printf("#define\tUSPACE %d\n", USPACE);
-       printf("#define\tP1PAGES %d\n", P1PAGES);
-       printf("#define\tCLSIZE %d\n", CLSIZE);
-       printf("#define\tNBPG %d\n", NBPG);
-       printf("#define\tNPTEPG %d\n", NPTEPG);
-       printf("#define\tPGSHIFT %d\n", PGSHIFT);
-       printf("#define\tSYSPTSIZE %d\n", SYSPTSIZE);
-       printf("#define\tUSRPTSIZE %d\n", USRPTSIZE);
-       printf("#define\tUSRIOSIZE %d\n", USRIOSIZE);
-       printf("#define\tUSRSTACK %d\n", USRSTACK);
-
-       printf("#define\tMSGBUFPTECNT %d\n", btoc(sizeof (struct msgbuf)));
-       printf("#define\tNMBCLUSTERS %d\n", NMBCLUSTERS);
-       printf("#define\tMCLBYTES %d\n", MCLBYTES);
-       printf("#define\tNKMEMCLUSTERS %d\n", NKMEMCLUSTERS);
-
-#ifdef SYSVSHM
-       printf("#define\tSHMMAXPGS %d\n", SHMMAXPGS);
-#endif
-       printf("#define\tU_PROF %p\n", &up->u_stats.p_prof);
-       printf("#define\tU_PROFSCALE %p\n", &up->u_stats.p_prof.pr_scale);
-       printf("#define\tRU_MINFLT %p\n", &rup->ru_minflt);
-
-       printf("#define\tT_BUSERR %d\n", T_BUSERR);
-       printf("#define\tT_ADDRERR %d\n", T_ADDRERR);
-       printf("#define\tT_ILLINST %d\n", T_ILLINST);
-       printf("#define\tT_ZERODIV %d\n", T_ZERODIV);
-       printf("#define\tT_CHKINST %d\n", T_CHKINST);
-       printf("#define\tT_TRAPVINST %d\n", T_TRAPVINST);
-       printf("#define\tT_PRIVINST %d\n", T_PRIVINST);
-       printf("#define\tT_TRACE %d\n", T_TRACE);
-       printf("#define\tT_MMUFLT %d\n", T_MMUFLT);
-       printf("#define\tT_SSIR %d\n", T_SSIR);
-       printf("#define\tT_FMTERR %d\n", T_FMTERR);
-       printf("#define\tT_COPERR %d\n", T_COPERR);
-       printf("#define\tT_FPERR %d\n", T_FPERR);
-       printf("#define\tT_ASTFLT %d\n", T_ASTFLT);
-       printf("#define\tT_TRAP15 %d\n", T_TRAP15);
-       printf("#define\tT_FPEMULI %d\n", T_FPEMULI);
-       printf("#define\tT_FPEMULD %d\n", T_FPEMULD);
-
-       printf("#define\tPSL_S %d\n", PSL_S);
-       printf("#define\tPSL_IPL7 %d\n", PSL_IPL7);
-       printf("#define\tPSL_LOWIPL %d\n", PSL_LOWIPL);
-       printf("#define\tPSL_HIGHIPL %d\n", PSL_HIGHIPL);
-       printf("#define\tPSL_USER %d\n", PSL_USER);
-       printf("#define\tSPL1 %d\n", PSL_S | PSL_IPL1);
-       printf("#define\tSPL2 %d\n", PSL_S | PSL_IPL2);
-       printf("#define\tSPL3 %d\n", PSL_S | PSL_IPL3);
-       printf("#define\tSPL4 %d\n", PSL_S | PSL_IPL4);
-       printf("#define\tSPL5 %d\n", PSL_S | PSL_IPL5);
-       printf("#define\tSPL6 %d\n", PSL_S | PSL_IPL6);
-
-       printf("#define\tFC_USERD %d\n", FC_USERD);
-       printf("#define\tFC_SUPERD %d\n", FC_SUPERD);
-
-       printf("#define\tCACHE_ON %d\n", CACHE_ON);
-       printf("#define\tCACHE_OFF %d\n", CACHE_OFF);
-       printf("#define\tCACHE_CLR %d\n", CACHE_CLR);
-       printf("#define\tCACHE40_ON %d\n", CACHE40_ON);
-       printf("#define\tCACHE40_OFF %d\n", CACHE40_OFF);
-       printf("#define\tIC_CLEAR %d\n", IC_CLEAR);
-       printf("#define\tDC_CLEAR %d\n", DC_CLEAR);
-
-       printf("#define\tPG_FRAME %d\n", PG_FRAME);
-
-       printf("#define\tSIZEOF_PCB %d\n", sizeof(struct pcb));
-       printf("#define\tPCB_FLAGS %p\n", &pcb->pcb_flags);
-       printf("#define\tPCB_PS %p\n", &pcb->pcb_ps);
-       printf("#define\tPCB_USTP %p\n", &pcb->pcb_ustp);
-       printf("#define\tPCB_USP %p\n", &pcb->pcb_usp);
-       printf("#define\tPCB_REGS %p\n", pcb->pcb_regs);
-       printf("#define\tPCB_ONFAULT %p\n", &pcb->pcb_onfault);
-       printf("#define\tPCB_FPCTX %p\n", &pcb->pcb_fpregs);
-       printf("#define\tPCB_TRCB %d\n", 5);
-
-       printf("#define\tFR_SP %p\n", &frame->f_regs[15]);
-       printf("#define\tFR_HW %p\n", &frame->f_sr);
-       printf("#define\tFR_ADJ %p\n", &frame->f_stackadj);
-
-       printf("#define\tB_READ %d\n", B_READ);
-
-       printf("#define\tENOENT %d\n", ENOENT);
-       printf("#define\tEFAULT %d\n", EFAULT);
-       printf("#define\tENAMETOOLONG %d\n", ENAMETOOLONG);
-
-       printf("#define\tSYS_exit %d\n", SYS_exit);
-       printf("#define\tSYS_execve %d\n", SYS_execve);
-       printf("#define\tSYS_sigreturn %d\n", SYS_sigreturn);
-
-       printf("#define\tCPU_68020 %d\n", CPU_68020);
-       printf("#define\tCPU_68030 %d\n", CPU_68030);
-       printf("#define\tCPU_68040 %d\n", CPU_68040);
-
-       printf("#define\tMMU_68851 %d\n", MMU_68851);
-       printf("#define\tMMU_68030 %d\n", MMU_68030);
-       printf("#define\tMMU_68040 %d\n", MMU_68040);
-
-       printf("#define\tFPU_68881 %d\n", FPU_68881);
-       printf("#define\tFPU_68882 %d\n", FPU_68882);
-       printf("#define\tFPU_68040 %d\n", FPU_68040);
-
-       exit(0);
-}
diff --git a/sys/arch/mac68k/mac68k/genassym.cf b/sys/arch/mac68k/mac68k/genassym.cf
new file mode 100644 (file)
index 0000000..ceca7f0
--- /dev/null
@@ -0,0 +1,185 @@
+#      $OpenBSD: genassym.cf,v 1.1 1997/04/18 17:29:51 gene Exp $
+#      $NetBSD: genassym.cf,v 1.1 1997/04/15 06:11:40 scottr Exp $
+
+#
+# Copyright (c) 1990 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.
+#
+#      @(#)genassym.c  7.8 (Berkeley) 5/7/91
+#
+
+include        <sys/param.h>
+include        <sys/buf.h>
+include        <sys/proc.h>
+include        <sys/mbuf.h>
+include        <sys/msgbuf.h>
+include        <sys/syscall.h>
+include        <sys/systm.h>
+include        <sys/types.h>
+include        <sys/user.h>
+
+include        <vm/vm.h>
+
+include        <machine/cpu.h>
+include        <machine/trap.h>
+include        <machine/psl.h>
+include        <machine/reg.h>
+include        <machine/pte.h>
+
+define P_FORW                  offsetof(struct proc, p_forw)
+define P_BACK                  offsetof(struct proc, p_back)
+define P_VMSPACE               offsetof(struct proc, p_vmspace)
+define P_ADDR                  offsetof(struct proc, p_addr)
+define P_MD                    offsetof(struct proc, p_md)
+define P_PID                   offsetof(struct proc, p_pid)
+define P_PRIORITY              offsetof(struct proc, p_priority)
+define P_STAT                  offsetof(struct proc, p_stat)
+define P_WCHAN                 offsetof(struct proc, p_wchan)
+define P_FLAG                  offsetof(struct proc, p_flag)
+define P_MD_REGS               offsetof(struct proc, p_md.md_regs)
+define P_MD_FLAGS              offsetof(struct proc, p_md.md_flags)
+define SSLEEP                  SSLEEP
+define SRUN                    SRUN
+
+define MD_REGS                 offsetof(struct mdproc, md_regs)
+
+define PM_STCHG                offsetof(struct pmap, pm_stchanged)
+
+define VM_PMAP                 offsetof(struct vmspace, vm_pmap)
+define V_SWTCH                 offsetof(struct vmmeter, v_swtch)
+define V_TRAP                  offsetof(struct vmmeter, v_trap)
+define V_SYSCALL               offsetof(struct vmmeter, v_syscall)
+define V_INTR                  offsetof(struct vmmeter, v_intr)
+define V_SOFT                  offsetof(struct vmmeter, v_soft)
+
+define UPAGES                  UPAGES
+define USPACE                  USPACE
+define P1PAGES                 P1PAGES
+define CLSIZE                  CLSIZE
+define NBPG                    NBPG
+define NPTEPG                  NPTEPG
+define PGSHIFT                 PGSHIFT
+define SYSPTSIZE               SYSPTSIZE
+define USRPTSIZE               USRPTSIZE
+define USRIOSIZE               USRIOSIZE
+define USRSTACK                USRSTACK
+
+define MSGBUFPTECNT            btoc(sizeof (struct msgbuf))
+define NMBCLUSTERS             NMBCLUSTERS
+define MCLBYTES                MCLBYTES
+define NKMEMCLUSTERS           NKMEMCLUSTERS
+
+quote  #ifdef SYSVSHM
+define SHMMAXPGS               SHMMAXPGS
+quote  #endif
+
+define U_PROF                  offsetof(struct user, u_stats.p_prof)
+define U_PROFSCALE             offsetof(struct user, u_stats.p_prof.pr_scale)
+define RU_MINFLT               offsetof(struct rusage, ru_minflt)
+
+define T_BUSERR                T_BUSERR
+define T_ADDRERR               T_ADDRERR
+define T_ILLINST               T_ILLINST
+define T_ZERODIV               T_ZERODIV
+define T_CHKINST               T_CHKINST
+define T_TRAPVINST             T_TRAPVINST
+define T_PRIVINST              T_PRIVINST
+define T_TRACE                 T_TRACE
+define T_MMUFLT                T_MMUFLT
+define T_SSIR                  T_SSIR
+define T_FMTERR                T_FMTERR
+define T_COPERR                T_COPERR
+define T_FPERR                 T_FPERR
+define T_ASTFLT                T_ASTFLT
+define T_TRAP15                T_TRAP15
+define T_FPEMULI               T_FPEMULI
+define T_FPEMULD               T_FPEMULD
+
+define PSL_S                   PSL_S
+define PSL_IPL7                PSL_IPL7
+define PSL_LOWIPL              PSL_LOWIPL
+define PSL_HIGHIPL             PSL_HIGHIPL
+define PSL_USER                PSL_USER
+define SPL1                    (PSL_S | PSL_IPL1)
+define SPL2                    (PSL_S | PSL_IPL2)
+define SPL3                    (PSL_S | PSL_IPL3)
+define SPL4                    (PSL_S | PSL_IPL4)
+define SPL5                    (PSL_S | PSL_IPL5)
+define SPL6                    (PSL_S | PSL_IPL6)
+
+define FC_USERD                FC_USERD
+define FC_SUPERD               FC_SUPERD
+
+define CACHE_ON                CACHE_ON
+define CACHE_OFF               CACHE_OFF
+define CACHE_CLR               CACHE_CLR
+define CACHE40_ON              CACHE40_ON
+define CACHE40_OFF             CACHE40_OFF
+define IC_CLEAR                IC_CLEAR
+define DC_CLEAR                DC_CLEAR
+
+define PG_FRAME                PG_FRAME
+
+define SIZEOF_PCB              sizeof(struct pcb)
+define PCB_FLAGS               offsetof(struct pcb, pcb_flags)
+define PCB_PS                  offsetof(struct pcb, pcb_ps)
+define PCB_USTP                offsetof(struct pcb, pcb_ustp)
+define PCB_USP                 offsetof(struct pcb, pcb_usp)
+define PCB_REGS                offsetof(struct pcb, pcb_regs)
+define PCB_ONFAULT             offsetof(struct pcb, pcb_onfault)
+define PCB_FPCTX               offsetof(struct pcb, pcb_fpregs)
+define PCB_TRCB                5
+
+define FR_SP                   offsetof(struct frame, f_regs[15])
+define FR_HW                   offsetof(struct frame, f_sr)
+define FR_ADJ                  offsetof(struct frame, f_stackadj)
+
+define B_READ                  B_READ
+
+define ENOENT                  ENOENT
+define EFAULT                  EFAULT
+define ENAMETOOLONG            ENAMETOOLONG
+
+define SYS_exit                SYS_exit
+define SYS_execve              SYS_execve
+define SYS_sigreturn           SYS_sigreturn
+
+define CPU_68020               CPU_68020
+define CPU_68030               CPU_68030
+define CPU_68040               CPU_68040
+
+define MMU_68851               MMU_68851
+define MMU_68030               MMU_68030
+define MMU_68040               MMU_68040
+
+define FPU_68881               FPU_68881
+define FPU_68882               FPU_68882
+define FPU_68040               FPU_68040