1ed093b41SRobert Mustacchi# 2ed093b41SRobert Mustacchi# This file and its contents are supplied under the terms of the 3ed093b41SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0. 4ed093b41SRobert Mustacchi# You may only use this file in accordance with the terms of version 5ed093b41SRobert Mustacchi# 1.0 of the CDDL. 6ed093b41SRobert Mustacchi# 7ed093b41SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this 8ed093b41SRobert Mustacchi# source. A copy of the CDDL is also available via the Internet at 9ed093b41SRobert Mustacchi# http://www.illumos.org/license/CDDL. 10ed093b41SRobert Mustacchi# 11ed093b41SRobert Mustacchi 12ed093b41SRobert Mustacchi# 13*bb9475a1SRobert Mustacchi# Copyright 2025 Oxide Computer Company 14ed093b41SRobert Mustacchi# 15ed093b41SRobert Mustacchi 16ed093b41SRobert MustacchiPROGS = \ 17ed093b41SRobert Mustacchi bad_xregs \ 18ed093b41SRobert Mustacchi fpregs \ 19ed093b41SRobert Mustacchi fpregs_xbv \ 20ed093b41SRobert Mustacchi proc_xregs_set \ 21ed093b41SRobert Mustacchi setcontext_replace \ 22ed093b41SRobert Mustacchi setcontext_restore \ 23ed093b41SRobert Mustacchi swapcontext_extd \ 24ed093b41SRobert Mustacchi signal_restore \ 25ed093b41SRobert Mustacchi xregs_dump \ 26ed093b41SRobert Mustacchi xregs_roundtrip \ 27ed093b41SRobert Mustacchi xregs_set \ 28ed093b41SRobert Mustacchi xsave_baducontext \ 29ed093b41SRobert Mustacchi xsu_hwtype 30ed093b41SRobert Mustacchi 31ed093b41SRobert MustacchiSCRIPTS = mdb_xregs proc_writes xsave_baducontext 32ed093b41SRobert Mustacchi 33ed093b41SRobert MustacchiDATAFILES = \ 34ed093b41SRobert Mustacchi mdb_xregs.ymm.32 \ 35ed093b41SRobert Mustacchi mdb_xregs.ymm.64 \ 36ed093b41SRobert Mustacchi mdb_xregs.zmm.32 \ 37ed093b41SRobert Mustacchi mdb_xregs.zmm.64 \ 38ed093b41SRobert Mustacchi proc_writes.fpregs.ymm.32 \ 39ed093b41SRobert Mustacchi proc_writes.fpregs.ymm.64 \ 40ed093b41SRobert Mustacchi proc_writes.fpregs.zmm.32 \ 41ed093b41SRobert Mustacchi proc_writes.fpregs.zmm.64 \ 42ed093b41SRobert Mustacchi proc_writes.xregs.ymm.32 \ 43ed093b41SRobert Mustacchi proc_writes.xregs.ymm.64 \ 44ed093b41SRobert Mustacchi proc_writes.xregs.zmm.32 \ 45ed093b41SRobert Mustacchi proc_writes.xregs.zmm.64 46ed093b41SRobert Mustacchi 47ed093b41SRobert MustacchiPROGS32 = $(PROGS:%=%.32) 48ed093b41SRobert MustacchiPROGS64 = $(PROGS:%=%.64) 49ed093b41SRobert Mustacchi 50ed093b41SRobert MustacchiROOTOPTDIR = $(ROOT)/opt/os-tests/tests 51ed093b41SRobert MustacchiROOTOPTXSAVE = $(ROOTOPTDIR)/xsave 52ed093b41SRobert MustacchiROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTXSAVE)/%) \ 53ed093b41SRobert Mustacchi $(PROGS64:%=$(ROOTOPTXSAVE)/%) \ 54ed093b41SRobert Mustacchi $(SCRIPTS:%=$(ROOTOPTXSAVE)/%) 55ed093b41SRobert MustacchiROOTOPTDATADIR = $(ROOTOPTXSAVE)/data 56ed093b41SRobert MustacchiROOTOPTDATA = $(DATAFILES:%=$(ROOTOPTDATADIR)/%) 57ed093b41SRobert Mustacchi 58ed093b41SRobert MustacchiCOMMOBJS32 = xsave_util.32.o xsave_asm32.32.o 59ed093b41SRobert MustacchiCOMMOBJS64 = xsave_util.64.o xsave_asm64.64.o 60ed093b41SRobert Mustacchi 61ed093b41SRobert MustacchiOBJS32 = $(COMMOBJS32) $(PROGS:%=%.32.o) 62ed093b41SRobert MustacchiOBJS64 = $(COMMOBJS64) $(PROGS:%=%.64.o) 63ed093b41SRobert Mustacchi 64ed093b41SRobert Mustacchi# 65ed093b41SRobert Mustacchi# To simplify things we always link in the support files to programs 66ed093b41SRobert Mustacchi# even though in some case (e.g. xsave_baducontext) they aren't needed. 67ed093b41SRobert Mustacchi# This also drives a requirement that everything links against libproc 68ed093b41SRobert Mustacchi# (seen below). 69ed093b41SRobert Mustacchi# 70ed093b41SRobert MustacchiEXTRA_OBJS32 = $(COMMOBJS32) 71ed093b41SRobert MustacchiEXTRA_OBJS64 = $(COMMOBJS64) 72ed093b41SRobert Mustacchi 73ed093b41SRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 74ed093b41SRobert Mustacchi 75ed093b41SRobert Mustacchi# 76ed093b41SRobert Mustacchi# These are required to get COMPILE.s to work as Makefile.master puts 77ed093b41SRobert Mustacchi# some things in AS_CPPFLAGS, but not what we need to make it work. 78ed093b41SRobert Mustacchi# 79ed093b41SRobert MustacchiAS_CPPFLAGS += -D_ASM 80ed093b41SRobert Mustacchi 81ed093b41SRobert Mustacchi$(ROOTOPTDATA) := FILEMODE = 0444 82ed093b41SRobert Mustacchi 83ed093b41SRobert MustacchiLDLIBS += -lproc 84ed093b41SRobert MustacchiLDLIBS64 += -lproc 85ed093b41SRobert Mustacchi 86*bb9475a1SRobert MustacchiCSTD = $(CSTD_GNU17) 87ed093b41SRobert Mustacchi 88ed093b41SRobert Mustacchi.KEEP_STATE: 89ed093b41SRobert Mustacchi 90ed093b41SRobert Mustacchiall: $(PROGS32) $(PROGS64) 91ed093b41SRobert Mustacchi 92ed093b41SRobert Mustacchiinstall: $(ROOTOPTPROGS) $(ROOTOPTDATA) 93ed093b41SRobert Mustacchi 94ed093b41SRobert Mustacchiclean: 95ed093b41SRobert Mustacchi $(RM) $(OBJS32) $(OBJS64) 96ed093b41SRobert Mustacchi 97ed093b41SRobert Mustacchi$(PROGS32): $(OBJS32) 98ed093b41SRobert Mustacchi$(PROGS64): $(OBJS64) 99ed093b41SRobert Mustacchi 100ed093b41SRobert Mustacchi$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTXSAVE) 101ed093b41SRobert Mustacchi$(ROOTOPTDATA): $(ROOTOPTDATADIR) 102ed093b41SRobert Mustacchi 103ed093b41SRobert Mustacchi$(ROOTOPTDIR): 104ed093b41SRobert Mustacchi $(INS.dir) 105ed093b41SRobert Mustacchi 106ed093b41SRobert Mustacchi$(ROOTOPTXSAVE): $(ROOTOPTDIR) 107ed093b41SRobert Mustacchi $(INS.dir) 108ed093b41SRobert Mustacchi 109ed093b41SRobert Mustacchi$(ROOTOPTDATADIR): $(ROOTOPTXSAVE) 110ed093b41SRobert Mustacchi $(INS.dir) 111ed093b41SRobert Mustacchi 112ed093b41SRobert Mustacchi$(ROOTOPTXSAVE)/%: % 113ed093b41SRobert Mustacchi $(INS.file) 114ed093b41SRobert Mustacchi 115ed093b41SRobert Mustacchi$(ROOTOPTXSAVE)/%: %.ksh 116ed093b41SRobert Mustacchi $(INS.rename) 117ed093b41SRobert Mustacchi 118ed093b41SRobert Mustacchi%.32.o: %.c 119ed093b41SRobert Mustacchi $(COMPILE.c) -o $@ $< 120ed093b41SRobert Mustacchi $(POST_PROCESS_O) 121ed093b41SRobert Mustacchi 122ed093b41SRobert Mustacchi%.64.o: %.c 123ed093b41SRobert Mustacchi $(COMPILE64.c) -o $@ $< 124ed093b41SRobert Mustacchi $(POST_PROCESS_O) 125ed093b41SRobert Mustacchi 126ed093b41SRobert Mustacchi%.32.o: %.S 127ed093b41SRobert Mustacchi $(COMPILE.s) -o $@ $< 128ed093b41SRobert Mustacchi $(POST_PROCESS_S_0) 129ed093b41SRobert Mustacchi 130ed093b41SRobert Mustacchi%.64.o: %.S 131ed093b41SRobert Mustacchi $(COMPILE64.s) -o $@ $< 132ed093b41SRobert Mustacchi $(POST_PROCESS_S_0) 133ed093b41SRobert Mustacchi 134ed093b41SRobert Mustacchi%.64: %.64.o 135ed093b41SRobert Mustacchi $(LINK64.c) -o $@ $< $(LDLIBS64) $(EXTRA_OBJS64) 136ed093b41SRobert Mustacchi $(POST_PROCESS) 137ed093b41SRobert Mustacchi 138ed093b41SRobert Mustacchi%.32: %.32.o 139ed093b41SRobert Mustacchi $(LINK.c) -o $@ $< $(LDLIBS) $(EXTRA_OBJS32) 140ed093b41SRobert Mustacchi $(POST_PROCESS) 141ed093b41SRobert Mustacchi 142ed093b41SRobert Mustacchiclobber: clean 143ed093b41SRobert Mustacchi $(RM) $(PROGS32) $(PROGS64) 144ed093b41SRobert Mustacchi 145ed093b41SRobert MustacchiFRC: 146