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 20LD= $(GNU_ROOT)/bin/gld 21OBJCOPY= $(GNU_ROOT)/bin/gobjcopy 22OBJDUMP= $(GNU_ROOT)/bin/gobjdump 23GSTRIP= $(GNU_ROOT)/bin/gstrip 24 25GLDTARGET= -melf_i386_sol2 26LDFLAGS += $(GLDTARGET) 27 28# Default Console font setup. 29# We want it to be the same as kernel. 30# We build compressed, stripped down version of the default font, so we have 31# bare minimum for case we can not load font from the OS root. 32 33FONT= 8x16 34FONT_SRC= ter-u16b.bdf 35FONT_DIR= $(SRC)/data/consfonts 36 37PNGLITE= $(SRC)/common/pnglite 38 39BOOTSRC= $(SRC)/boot 40SASRC= $(BOOTSRC)/libsa 41CRYPTOSRC= $(SASRC)/crypto 42ZFSSRC= $(SASRC)/zfs 43ZLIB= $(SRC)/contrib/zlib 44LZ4= $(SRC)/common/lz4 45 46# set standard values 47AS_CPPFLAGS= 48CPPFLAGS= -D_STANDALONE -_gcc=-nostdinc 49CFLAGS64= -_gcc=-mno-red-zone 50 51CFLAGS= -_gcc=-Os -_gcc=-ffreestanding -_gcc=-fno-builtin 52CFLAGS += -_gcc=-ffunction-sections -_gcc=-fdata-sections 53CFLAGS += -_gcc=-mno-mmx -_gcc=-mno-3dnow -_gcc=-mno-sse -_gcc=-mno-sse2 54CFLAGS += -_gcc=-mno-sse3 -_gcc=-msoft-float 55CFLAGS += -_gcc=-mno-avx -_gcc=-mno-aes 56CFLAGS += -_gcc=-Wall 57CFLAGS += $(CCNOAUTOINLINE) $(CCNOREORDER) $(CSTD_GNU99) 58CCASFLAGS= -Wa,--divide 59ASFLAGS= --divide 60 61SMATCH_ = 62SMATCH_on = 63SMATCH_off = -_smatch=off 64 65# SMATCH_ARGS will bring in set of -Wno-* options. 66SMATCH_ARGS = --timeout=0 67CFLAGS += $(SMATCH_ARGS:%=-_smatch=%) 68CFLAGS += $(SMOFF:%=-_smatch=--disable=%) 69CFLAGS += $(SMATCH_$(MACHINE)) 70CFLAGS += $(SMATCH_$(SMATCH)) 71 72COMPILE.S= $(CC) $(SMATCH_off) $(CCASFLAGS) $(CPPFLAGS) -c 73 74ROOT_BOOT= $(ROOT)/boot 75ROOTBOOTPROG=$(PROG:%=$(ROOT_BOOT)/%) 76 77$(ROOT_BOOT)/%: % 78 $(INS.file) 79 80#.if ${MACHINE_CPUARCH} == "arm" 81# Do not generate movt/movw, because the relocation fixup for them does not 82# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). 83# Also, the fpu is not available in a standalone environment. 84#CFLAGS.clang+= -mllvm -arm-use-movt=0 85#CFLAGS.clang+= -mfpu=none 86#.endif 87