15103e761SPatrick Mooney# 25103e761SPatrick Mooney# This file and its contents are supplied under the terms of the 35103e761SPatrick Mooney# Common Development and Distribution License ("CDDL"), version 1.0. 45103e761SPatrick Mooney# You may only use this file in accordance with the terms of version 55103e761SPatrick Mooney# 1.0 of the CDDL. 65103e761SPatrick Mooney# 75103e761SPatrick Mooney# A full copy of the text of the CDDL should have accompanied this 85103e761SPatrick Mooney# source. A copy of the CDDL is also available via the Internet at 95103e761SPatrick Mooney# http://www.illumos.org/license/CDDL. 105103e761SPatrick Mooney# 115103e761SPatrick Mooney 125103e761SPatrick Mooney# Copyright 2022 Oxide Computer Company 135103e761SPatrick Mooney 145103e761SPatrick MooneyPAYLOAD_CLEANFILES = payload_start.o \ 155103e761SPatrick Mooney $(PAYLOADS:%=payload_%) \ 165103e761SPatrick Mooney $(PAYLOADS:%=payload_%.o) \ 175103e761SPatrick Mooney $(PAYLOADS:%=pobj_%.o) \ 185103e761SPatrick Mooney $(PAYLOADS:%=pobj_%.s) 195103e761SPatrick Mooney 205103e761SPatrick Mooney$(PAYLOADS:%=payload_%.o) := AS_CPPFLAGS += -I../common 21578d9a56SPatrick Mooney# Without a real runtime in the payload, the stack protector must be disabled 22578d9a56SPatrick Mooney$(PAYLOADS:%=payload_%.o) := STACKPROTECT = none 23578d9a56SPatrick Mooney# Like our own kernel, prevent the compiler from using the FPU via SIMD 24578d9a56SPatrick Mooney$(PAYLOADS:%=payload_%.o) := CFLAGS64 += $(STAND_FLAGS_64) 255103e761SPatrick Mooney 265103e761SPatrick Mooneypayload_%: payload_start.o payload_%.o 275103e761SPatrick Mooney $(LD) -dn -e _start -M ../common/Mapfile.payload -o $@ $^ 285103e761SPatrick Mooney 295103e761SPatrick Mooneypobj_%.s: payload_% 305103e761SPatrick Mooney @echo " .data" > $@ 315103e761SPatrick Mooney @echo " .globl payload_data" >> $@ 325103e761SPatrick Mooney @echo "payload_data:" >> $@ 335103e761SPatrick Mooney $(ELFEXTRACT) $^ >> $@ 345103e761SPatrick Mooney @echo " .size payload_data, [.-payload_data]" >> $@ 355103e761SPatrick Mooney @echo " .align 4" >> $@ 365103e761SPatrick Mooney @echo " .globl payload_size" >> $@ 375103e761SPatrick Mooney @echo " .size payload_size, 4" >> $@ 385103e761SPatrick Mooney @echo "payload_size:" >> $@ 395103e761SPatrick Mooney @echo " .data" >> $@ 405103e761SPatrick Mooney @echo " .long [.-payload_data]" >> $@ 415103e761SPatrick Mooney 425103e761SPatrick Mooneypobj_%.o: pobj_%.s 435103e761SPatrick Mooney $(COMPILE.s) -o $@ $^ 445103e761SPatrick Mooney $(POST_PROCESS) 455103e761SPatrick Mooney 46*5d9d9091SRichard Lowe%.o: ../common/%.S 475103e761SPatrick Mooney $(COMPILE.s) -o $@ $^ 485103e761SPatrick Mooney $(POST_PROCESS) 495103e761SPatrick Mooney 505103e761SPatrick Mooney%.o: ../common/%.c 515103e761SPatrick Mooney $(COMPILE.c) -o $@ $^ 525103e761SPatrick Mooney $(POST_PROCESS) 53