xref: /illumos-gate/usr/src/test/os-tests/tests/xsave/Makefile (revision bb9475a199514dcace79d04d02c1eff05d65b94f)
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