1# Makefile for arch-dependent kernel code 2.include <bsd.own.mk> 3 4HERE=${.CURDIR}/arch/${MACHINE_ARCH} 5.PATH: ${HERE} 6 7# objects we want unpaged from -lc 8MINLIB_OBJS_UNPAGED= get_bp.o 9get_bp.o: ${NETBSDSRCDIR}/minix/lib/libc/arch/arm/get_bp.S 10 11# objects we want unpaged from -lsys 12SYS_OBJS_UNPAGED=assert.o stacktrace.o 13assert.o: ${NETBSDSRCDIR}/minix/lib/libsys/assert.c 14stacktrace.o: ${NETBSDSRCDIR}/minix/lib/libsys/stacktrace.c 15 16# objects we want unpaged from -lminc 17MINC_OBJS_UNPAGED= atoi.o \ 18 printf.o subr_prf.o \ 19 strcmp.o strcpy.o strlen.o strncmp.o \ 20 memcpy.o memmove.o memset.o 21MINC_OBJS_UNPAGED+= divmodsi4.o divsi3.o udivsi3.o umodsi3.o \ 22 umoddi3.o udivmoddi4.o aeabi_idivmod.o aeabi_uidivmod.o \ 23 udivmodsi4.o aeabi_uldivmod.o 24atoi.o: ${NETBSDSRCDIR}/minix/lib/libminc/atoi.c 25printf.o: ${NETBSDSRCDIR}/sys/lib/libsa/printf.c 26subr_prf.o: ${NETBSDSRCDIR}/sys/lib/libsa/subr_prf.c 27memcpy.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memcpy.S 28memmove.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memmove.S 29memset.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/memset.S 30strlen.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strlen.S 31strcpy.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strcpy.S 32strcmp.o: ${NETBSDSRCDIR}/common/lib/libc/arch/arm/string/strcmp.S 33 34divsi3.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/divsi3.c 35udivsi3.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/udivsi3.c 36umodsi3.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/umodsi3.c 37umoddi3.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/umoddi3.c 38udivmoddi4.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/udivmoddi4.c 39divmodsi4.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/divmodsi4.S 40udivmodsi4.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/udivmodsi4.S 41aeabi_idivmod.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/aeabi_idivmod.S 42aeabi_uidivmod.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/aeabi_uidivmod.S 43aeabi_uldivmod.o: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/aeabi_uldivmod.S 44 45# the following is required by pre_init.c 46strncmp.o: ${NETBSDSRCDIR}/common/lib/libc/string/strncmp.c 47 48# LSC: putchar and kputc have the same signature. A bit hackish. 49CPPFLAGS.subr_prf.c+= -Dputchar=kputc 50 51# Activate optional support, may be deactivated. 52CPPFLAGS.subr_prf.c+= -DLIBSA_PRINTF_LONGLONG_SUPPORT -DLIBSA_PRINTF_WIDTH_SUPPORT 53 54.include "bsp/ti/Makefile.inc" 55 56# some object files we give a symbol prefix (or namespace) of __k_unpaged_ 57# that must live in their own unique namespace. 58# 59.for unpaged_obj in head.o pre_init.o direct_tty_utils.o \ 60 pg_utils.o klib.o utility.o arch_reset.o \ 61 ${MINLIB_OBJS_UNPAGED} ${MINC_OBJS_UNPAGED} ${SYS_OBJS_UNPAGED} ${BSP_OBJS_UNPAGED} 62unpaged_${unpaged_obj}: ${unpaged_obj} 63 ${OBJCOPY} --prefix-symbols=__k_unpaged_ ${.OBJDIR}/${unpaged_obj} $@ 64UNPAGED_OBJS += unpaged_${unpaged_obj} 65ORIG_UNPAGED_OBJS += ${unpaged_obj} 66.endfor 67 68 69CLEANFILES+= ${ORIG_UNPAGED_OBJS} 70 71SRCS+= mpx.S arch_clock.c arch_do_vmctl.c arch_system.c do_padconf.c \ 72 exception.c hw_intr.c klib.S memory.c \ 73 protect.c direct_tty_utils.c arch_reset.c \ 74 pg_utils.c phys_copy.S phys_memset.S exc.S 75 76OBJS.kernel+= ${UNPAGED_OBJS} 77 78klib.o mpx.o head.o: procoffsets.h 79 80SRCS+= procoffsets.h 81 82PROCOFFSETSCF=procoffsets.cf 83 84.PATH: ${NETBSDSRCDIR}/minix/include/arch/${MACHINE_ARCH}/include 85 86procoffsets.h: ${PROCOFFSETSCF} kernel.h proc.h stackframe.h archtypes.h 87 ${_MKTARGET_CREATE} 88 ${TOOL_CAT} ${HERE}/${PROCOFFSETSCF} | \ 89 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} >$@.tmp && \ 90 mv -f $@.tmp $@ 91 92sconst.h: procoffsets.h 93apic_asm.o head.o klib.o mpx.o: sconst.h 94 95