VirtualBox

Ignore:
Timestamp:
Sep 27, 2023 1:34:02 PM (20 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
159276
Message:

EFI/FirmwareNew: Make edk2-stable202308 build on all supported platforms (using gcc at least, msvc not tested yet), bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/BaseTools/Source/C/Makefiles/header.makefile

    r99404 r101291  
    88# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
    99# SPDX-License-Identifier: BSD-2-Clause-Patent
     10
     11EDK2_PATH ?= $(MAKEROOT)/../../..
    1012
    1113ifndef HOST_ARCH
     
    4547LINUX:=$(findstring Linux, $(shell uname -s))
    4648DARWIN:=$(findstring Darwin, $(shell uname -s))
    47 ifeq ($(CXX), llvm)
    48 BUILD_CC ?= $(CLANG_BIN)clang
    49 BUILD_CXX ?= $(CLANG_BIN)clang++
    50 BUILD_AS ?= $(CLANG_BIN)clang
    51 BUILD_AR ?= $(CLANG_BIN)llvm-ar
    52 BUILD_LD ?= $(CLANG_BIN)llvm-ld
    53 else
    54 BUILD_CC ?= gcc
    55 BUILD_CXX ?= g++
    56 BUILD_AS ?= gcc
    57 BUILD_AR ?= ar
    58 BUILD_LD ?= ld
     49CLANG:=$(shell $(CC) --version | grep clang)
     50ifneq ($(CLANG),)
     51CC ?= $(CLANG_BIN)clang
     52CXX ?= $(CLANG_BIN)clang++
     53AS ?= $(CLANG_BIN)clang
     54AR ?= $(CLANG_BIN)llvm-ar
     55LD ?= $(CLANG_BIN)llvm-ld
     56else ifeq ($(origin CC),default)
     57CC = gcc
     58CXX = g++
     59AS = gcc
     60AR = ar
     61LD = ld
    5962endif
    60 LINKER ?= $(BUILD_CC)
     63LINKER ?= $(CC)
    6164ifeq ($(HOST_ARCH), IA32)
    62 ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/
     65ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Ia32/
    6366
    6467else ifeq ($(HOST_ARCH), X64)
    65 ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/
     68ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/X64/
    6669
    6770else ifeq ($(HOST_ARCH), ARM)
    68 ARCH_INCLUDE = -I $(MAKEROOT)/Include/Arm/
     71ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/Arm/
    6972
    7073else ifeq ($(HOST_ARCH), AARCH64)
    71 ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/
     74ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/AArch64/
    7275
    7376else ifeq ($(HOST_ARCH), RISCV64)
    74 ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/
     77ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/RiscV64/
    7578
    7679else ifeq ($(HOST_ARCH), LOONGARCH64)
    77 ARCH_INCLUDE = -I $(MAKEROOT)/Include/LoongArch64/
     80ARCH_INCLUDE = -I $(EDK2_PATH)/MdePkg/Include/LoongArch64/
    7881
    7982else
     
    8285
    8386INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
    84 BUILD_CPPFLAGS = $(INCLUDE)
     87INCLUDE += -I $(EDK2_PATH)/MdePkg/Include
     88CPPFLAGS = $(INCLUDE)
    8589
    8690# keep EXTRA_OPTFLAGS last
     
    8993ifeq ($(DARWIN),Darwin)
    9094# assume clang or clang compatible flags on OS X
    91 BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \
     95CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \
    9296-Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g
    9397else
    94 ifeq ($(CXX), llvm)
    95 BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \
     98ifneq ($(CLANG),)
     99CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \
    96100-fno-delete-null-pointer-checks -Wall -Werror \
    97101-Wno-deprecated-declarations -Wno-self-assign \
    98102-Wno-unused-result -nostdlib -g
    99103else
    100 BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \
     104CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \
    101105-fno-delete-null-pointer-checks -Wall -Werror \
    102106-Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \
     
    104108endif
    105109endif
    106 ifeq ($(CXX), llvm)
    107 BUILD_LFLAGS =
    108 BUILD_CXXFLAGS = -Wno-deprecated-register -Wno-unused-result
     110ifneq ($(CLANG),)
     111LDFLAGS =
     112CXXFLAGS = -Wno-deprecated-register -Wno-unused-result -std=c++14
    109113else
    110 BUILD_LFLAGS =
    111 BUILD_CXXFLAGS = -Wno-unused-result
     114LDFLAGS =
     115CXXFLAGS = -Wno-unused-result
    112116endif
    113117ifeq ($(HOST_ARCH), IA32)
     
    118122#
    119123ifeq ($(DARWIN),Darwin)
    120   BUILD_CFLAGS   += -arch i386
    121   BUILD_CPPFLAGS += -arch i386
    122   BUILD_LFLAGS   += -arch i386
     124  CFLAGS   += -arch i386
     125  CPPFLAGS += -arch i386
     126  LDFLAGS  += -arch i386
    123127endif
    124128endif
    125129
    126130# keep BUILD_OPTFLAGS last
    127 BUILD_CFLAGS   += $(BUILD_OPTFLAGS)
    128 BUILD_CXXFLAGS += $(BUILD_OPTFLAGS)
     131CFLAGS   += $(BUILD_OPTFLAGS)
     132CXXFLAGS += $(BUILD_OPTFLAGS)
    129133
    130134# keep EXTRA_LDFLAGS last
    131 BUILD_LFLAGS += $(EXTRA_LDFLAGS)
     135LDFLAGS += $(EXTRA_LDFLAGS)
    132136
    133137.PHONY: all
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette