1# 2# This file and its contents are supplied under the terms of the 3# Common Development and Distribution License ("CDDL"), version 1.0. 4# You may only use this file in accordance with the terms of version 5# 1.0 of the CDDL. 6# 7# A full copy of the text of the CDDL should have accompanied this 8# source. A copy of the CDDL is also available via the Internet at 9# http://www.illumos.org/license/CDDL. 10# 11 12# 13# Copyright 2017 Toomas Soome <tsoome@me.com> 14# Copyright 2019 Joyent, Inc. 15# Copyright 2019 OmniOS Community Edition (OmniOSce) Association. 16# 17 18# loader.help build needs better awk 19AWK= /usr/xpg4/bin/awk 20GLD= $(GNU_ROOT)/bin/gld 21OBJCOPY= $(GNU_ROOT)/bin/gobjcopy 22OBJDUMP= $(GNU_ROOT)/bin/gobjdump 23GSTRIP= $(GNU_ROOT)/bin/gstrip 24 25# Default Console font setup. 26# We want it to be the same as kernel. 27# We build compressed, stripped down version of the default font, so we have 28# bare minimum for case we can not load font from the OS root. 29 30FONT= 8x16 31FONT_SRC= ter-u16b.bdf 32FONT_DIR= $(SRC)/data/consfonts 33 34PNGLITE= $(SRC)/common/pnglite 35 36BOOTSRC= $(SRC)/boot 37SASRC= $(BOOTSRC)/libsa 38CRYPTOSRC= $(SASRC)/crypto 39ZFSSRC= $(SASRC)/zfs 40ZLIB= $(SRC)/contrib/zlib 41LZ4= $(SRC)/common/lz4 42 43# set standard values 44AS_CPPFLAGS= 45CPPFLAGS= -D_STANDALONE -_gcc=-nostdinc 46CFLAGS64= -_gcc=-mno-red-zone 47 48CFLAGS= -_gcc=-Os -_gcc=-ffreestanding -_gcc=-fno-builtin 49CFLAGS += -_gcc=-ffunction-sections -_gcc=-fdata-sections 50CFLAGS += -_gcc=-mno-mmx -_gcc=-mno-3dnow -_gcc=-mno-sse -_gcc=-mno-sse2 51CFLAGS += -_gcc=-mno-sse3 -_gcc=-msoft-float 52CFLAGS += -_gcc=-mno-avx -_gcc=-mno-aes 53CFLAGS += -_gcc=-Wall -_gcc=-Werror 54CFLAGS += $(CCNOAUTOINLINE) $(CCNOREORDER) $(CSTD_GNU99) 55CFLAGS += $(CSOURCEDEBUGFLAGS) 56CCASFLAGS= -Wa,--divide 57ASFLAGS= -Wa,--divide 58ASFLAGS64= -Wa,--divide 59 60SMATCH_ = 61SMATCH_on = 62SMATCH_off = -_smatch=off 63 64# SMATCH_ARGS will bring in set of -Wno-* options. 65SMATCH_ARGS = --timeout=0 66CFLAGS += $(SMATCH_ARGS:%=-_smatch=%) 67CFLAGS += $(SMOFF:%=-_smatch=--disable=%) 68CFLAGS += $(SMATCH_$(MACHINE)) 69CFLAGS += $(SMATCH_$(SMATCH)) 70 71COMPILE.S= $(CC) $(SMATCH_off) $(CCASFLAGS) $(CPPFLAGS) -c 72 73ROOT_BOOT= $(ROOT)/boot 74ROOTBOOTPROG=$(PROG:%=$(ROOT_BOOT)/%) 75 76$(ROOT_BOOT)/%: % 77 $(INS.file) 78 79#.if ${MACHINE_CPUARCH} == "arm" 80# Do not generate movt/movw, because the relocation fixup for them does not 81# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). 82# Also, the fpu is not available in a standalone environment. 83#CFLAGS.clang+= -mllvm -arm-use-movt=0 84#CFLAGS.clang+= -mfpu=none 85#.endif 86