diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 06e7d65..5c5b80d 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -3276,6 +3276,53 @@ DEFINE GCC47_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) *_UNIXGCC_IPF_SYMRENAME_FLAGS = DEF(GCC_IPF_SYMRENAME_FLAGS) *_UNIXGCC_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS) +#################################################################################### +# +# FreeBSD GCC And Intel ACPICA ACPI Compiler +# +#################################################################################### +# FBSDGCC - FreeBSD GCC +# ASL - Intel ACPICA ACPI Source Language Compiler (iasl) +*_FBSDGCC_*_*_FAMILY = GCC + +*_FBSDGCC_*_MAKE_PATH = gmake +*_FBSDGCC_*_ASL_PATH = /usr/sbin/iasl + +*_FBSDGCC_*_PP_FLAGS = DEF(GCC_PP_FLAGS) +*_FBSDGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) +*_FBSDGCC_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_FBSDGCC_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) +*_FBSDGCC_*_APP_FLAGS = +*_FBSDGCC_*_ASL_FLAGS = DEF(IASL_FLAGS) +*_FBSDGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) + +################## +# No FreeBSD IA32 definitions +################## + +################## +# FBSDGCC X64 definitions +################## +*_FBSDGCC_X64_OBJCOPY_PATH = ENV(OBJCOPY) +*_FBSDGCC_X64_CC_PATH = ENV(CC) +*_FBSDGCC_X64_SLINK_PATH = ENV(AR) +*_FBSDGCC_X64_DLINK_PATH = ENV(LD) +*_FBSDGCC_X64_ASLDLINK_PATH = ENV(LD) +*_FBSDGCC_X64_ASM_PATH = ENV(CC) +*_FBSDGCC_X64_PP_PATH = ENV(CC) +*_FBSDGCC_X64_VFRPP_PATH = ENV(CC) +*_FBSDGCC_X64_ASLCC_PATH = ENV(CC) +*_FBSDGCC_X64_ASLPP_PATH = ENV(CC) +*_FBSDGCC_X64_RC_PATH = ENV(OBJCOPY) + +*_FBSDGCC_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 +*_FBSDGCC_X64_ASLDLINK_FLAGS = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64 +*_FBSDGCC_X64_ASM_FLAGS = DEF(GCC47_ASM_FLAGS) -m64 +*_FBSDGCC_X64_CC_FLAGS = DEF(GCC47_X64_CC_FLAGS) +*_FBSDGCC_X64_DLINK_FLAGS = DEF(GCC47_X64_DLINK_FLAGS) +*_FBSDGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +*_FBSDGCC_X64_OBJCOPY_FLAGS = + #################################################################################### # diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile index ae07509..0090991 100644 --- a/BaseTools/Source/C/GNUmakefile +++ b/BaseTools/Source/C/GNUmakefile @@ -22,6 +22,9 @@ ifndef ARCH ifeq ($(uname_m),x86_64) ARCH=X64 endif + ifeq ($(uname_m),amd64) + ARCH=X64 + endif ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) ARCH=IA32 endif diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c index d0df4ac..76f3e56 100644 --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c @@ -24,7 +24,11 @@ Abstract: // Include files // #ifdef __GNUC__ +#if defined(__FreeBSD__) +#include +#else #include +#endif #include #endif #include diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile index 6895f98..d330cc8 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile @@ -21,11 +21,11 @@ CYGWIN:=$(findstring CYGWIN, $(shell uname -s)) LINUX:=$(findstring Linux, $(shell uname -s)) DARWIN:=$(findstring Darwin, $(shell uname -s)) -CC = gcc -CXX = g++ -AS = gcc -AR = ar -LD = ld +CC ?= gcc +CXX ?= g++ +AS ?= gcc +AR ?= ar +LD ?= ld LINKER ?= $(CC) ifeq ($(ARCH), IA32) ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ diff --git a/BaseTools/Source/C/VfrCompile/GNUmakefile b/BaseTools/Source/C/VfrCompile/GNUmakefile index 82005e1..e446d14 100644 --- a/BaseTools/Source/C/VfrCompile/GNUmakefile +++ b/BaseTools/Source/C/VfrCompile/GNUmakefile @@ -53,10 +53,10 @@ VfrLexer.cpp VfrLexer.h: Pccts/dlg/dlg VfrParser.dlg Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg Pccts/antlr/antlr: - BIN_DIR='.' make -C Pccts/antlr + BIN_DIR='.' $(MAKE) -C Pccts/antlr Pccts/dlg/dlg: - BIN_DIR='.' make -C Pccts/dlg + BIN_DIR='.' $(MAKE) -C Pccts/dlg ATokenBuffer.o: Pccts/h/ATokenBuffer.cpp $(CXX) -c $(VFR_CPPFLAGS) $(INC) $? -o $@ @@ -73,7 +73,7 @@ VfrSyntax.o: VfrSyntax.cpp clean: localClean localClean: - BIN_DIR='.' make -C Pccts/antlr clean - BIN_DIR='.' make -C Pccts/dlg clean + BIN_DIR='.' $(MAKE) -C Pccts/antlr clean + BIN_DIR='.' $(MAKE) -C Pccts/dlg clean rm -f $(EXTRA_CLEAN_OBJECTS) diff --git a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile b/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile index 478a3a1..c49cfd8 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile +++ b/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile @@ -164,7 +164,7 @@ PCCTS_H=../h # # UNIX (default) # -CC=gcc +CC?=gcc COPT=-O ANTLR=${BIN_DIR}/antlr DLG=${BIN_DIR}/dlg diff --git a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile b/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile index 406725d..dfcf3ee 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile +++ b/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile @@ -114,7 +114,7 @@ PCCTS_H=../h # # UNIX # -CC=cc +CC?=cc COPT=-O ANTLR=${BIN_DIR}/antlr DLG=${BIN_DIR}/dlg diff --git a/OvmfPkg/BhyveAcpiTables/Dsdt.asl b/OvmfPkg/BhyveAcpiTables/Dsdt.asl index 9df5814..864d826 100644 --- a/OvmfPkg/BhyveAcpiTables/Dsdt.asl +++ b/OvmfPkg/BhyveAcpiTables/Dsdt.asl @@ -41,7 +41,7 @@ DefinitionBlock ("bhyve_dsdt.aml", "DSDT", 2,"BHYV", "BVDSDT", 0x00000001) ,, , TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, 0x00000000, // Granularity - 0x00000000, // Range Minimum + 0xC0000000, // Range Minimum 0xDFFFFFFF, // Range Maximum 0x00000000, // Translation Offset 0x20000000, // Range Length diff --git a/OvmfPkg/Csm/BhyveCsm16/GNUmakefile b/OvmfPkg/Csm/BhyveCsm16/GNUmakefile index ca049db..c301eba 100644 --- a/OvmfPkg/Csm/BhyveCsm16/GNUmakefile +++ b/OvmfPkg/Csm/BhyveCsm16/GNUmakefile @@ -1,4 +1,6 @@ -CC = gcc +CC ?= gcc +LD ?= ld +OBJCOPY ?= objcopy ASFLAGS = -m64 -nostdinc -nostdlib -ffreestanding CFLAGS = -m64 -nostdinc -nostdlib -ffreestanding \ -fno-common -fshort-wchar -mno-red-zone \ @@ -30,8 +32,8 @@ Bin/%.o: %.S $(CC) $(ASFLAGS) $(CPPFLAGS) -c -o $@ $< Bin/BhyveCsm16.bin: linker.lds $(OBJECTS) - ld -Tlinker.lds -m elf_x86_64 -o Bin/BhyveCsm16.raw.o -Map Bin/BhyveCsm16.bin.map $(OBJECTS) - objcopy --only-section .raw --output-target binary --pad-to 0x100000 Bin/BhyveCsm16.raw.o Bin/BhyveCsm16.bin + $(LD) -Tlinker.lds -m elf_x86_64 -o Bin/BhyveCsm16.raw.o -Map Bin/BhyveCsm16.bin.map $(OBJECTS) + $(OBJCOPY) --only-section .raw --output-target binary --pad-to 0x100000 Bin/BhyveCsm16.raw.o Bin/BhyveCsm16.bin clean: $(RM) $(OBJECTS) Bin/BhyveCsm16.raw.o Bin/BhyveCsm16.bin.map