VirtualBox

Changeset 85046 in vbox for trunk


Ignore:
Timestamp:
Jul 3, 2020 8:56:51 AM (4 years ago)
Author:
vboxsync
Message:

/Config.kmk: Reduce references to VBOX_WITH_NEW_XCODE and use the VBOX_GCC_TOOL value instead. bugref:9790

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r85010 r85046  
    22952295#
    22962296ifeq ($(KBUILD_TARGET),darwin)
    2297  ifdef VBOX_WITH_NEW_XCODE
    2298   VBOX_DEF_MACOSX_VERSION_MIN ?= 10.9
    2299  else
    2300   VBOX_DEF_MACOSX_VERSION_MIN ?= 10.6
    2301  endif
    2302 
    2303  ifdef VBOX_WITH_NEW_XCODE
    2304   # Use the tool path of the compiler (it's clang, not gcc in this instance).
    2305   include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC_TOOL).kmk
    2306   VBOX_PATH_MACOSX_DEVEL_ROOT := $(PATH_TOOL_$(VBOX_GCC_TOOL))
    2307  else
     2297 # The minimum macOS version we're targetting.
     2298 ifndef VBOX_DEF_MACOSX_VERSION_MIN
     2299  if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO) # For GAs.
     2300   VBOX_DEF_MACOSX_VERSION_MIN := 10.6
     2301  else
     2302   VBOX_DEF_MACOSX_VERSION_MIN := 10.9
     2303  endif
     2304 endif
     2305
     2306 if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO) # For GAs.
    23082307  # Check for the Xcode 4.1 bits in tools/darwin.x86.
    23092308  if   !defined(VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL) \
     
    23132312   VBOX_PATH_MACOSX_DEVEL_ROOT := $(KBUILD_DEVTOOLS)/darwin.x86/xcode/v4.1
    23142313   VBOX_XCODE_VERSION := 4.1
    2315   endif
    2316  endif
    2317 
    2318  # Fallback - system / LocalConfig.kmk.
    2319  ifdef VBOX_WITH_NEW_XCODE
     2314  else
     2315  # Fallback - system / LocalConfig.kmk.
     2316   VBOX_PATH_MACOSX_DEVEL_ROOT     ?= /Developer
     2317   VBOX_PATH_MACOSX_SDK_ROOT       ?= $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs
     2318   VBOX_PATH_MACOSX_TOOLCHAIN_ROOT ?= $(VBOX_PATH_MACOSX_DEVEL_ROOT)
     2319  endif
     2320 else ifeq ($(VBOX_GCC_TOOL),VBoxXcode62)
     2321  # Use the tool path of the compiler (it's clang, not gcc in this instance).
     2322  include $(KBUILD_TOOL_PATHS)/$(VBOX_GCC_TOOL).kmk
     2323  VBOX_PATH_MACOSX_DEVEL_ROOT := $(PATH_TOOL_$(VBOX_GCC_TOOL))
     2324  # Fallback - system / LocalConfig.kmk.
    23202325  ifndef VBOX_PATH_MACOSX_DEVEL_ROOT
    2321    VBOX_PATH_MACOSX_DEVEL_ROOT := $(firstword $(wildcard /Applications/Xcode.app/Contents/Developer /Developer))
     2326   VBOX_PATH_MACOSX_DEVEL_ROOT := $(firstword $(wildcard /Applications/Xcode.app/Contents/Developer /Developer /Library/Developer))
    23222327  endif
    23232328  ifndef VBOX_PATH_MACOSX_SDK_ROOT
     
    23262331                $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs/. \
    23272332                /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/. \
    2328                 /Developer/SDKs/. ))
     2333                /Developer/SDKs/. \
     2334                /Library/Developer/CommandLineTools/SDKs/. ))
    23292335  endif
    23302336  ifndef VBOX_PATH_MACOSX_TOOLCHAIN_ROOT
     
    23382344  endif
    23392345 else
    2340   VBOX_PATH_MACOSX_DEVEL_ROOT     ?= /Developer
    2341   VBOX_PATH_MACOSX_SDK_ROOT       ?= $(VBOX_PATH_MACOSX_DEVEL_ROOT)/SDKs
    2342   VBOX_PATH_MACOSX_TOOLCHAIN_ROOT ?= $(VBOX_PATH_MACOSX_DEVEL_ROOT)
     2346  ## @todo
    23432347 endif
    23442348
     
    23752379 ifeq ($(KBUILD_HOST),darwin)
    23762380  ifndef VBOX_XCODE_VERSION
    2377    ifdef VBOX_WITH_NEW_XCODE
     2381   if1of ($(VBOX_GCC_TOOL), VBoxXcode62)
    23782382    VBOX_XCODE_VERSION := $(shell exec $(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/xcodebuild -version 2>&1)
    23792383    ifneq ($(pos Symbol not found,$(VBOX_XCODE_VERSION)),0) # Try detect unresolved symbol running Xcode 6.2 on Catalina.
     
    23822386     VBOX_XCODE_VERSION := $(word 2, $(VBOX_XCODE_VERSION))
    23832387    endif
    2384    else ifdef VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL
     2388   else if defined(VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL) || exists "$(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/xcodebuild"
    23852389    VBOX_XCODE_VERSION := $(word 2, $(shell $(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/xcodebuild -version))
    23862390   else
     
    23882392   endif
    23892393   ifeq ($(strip $(VBOX_XCODE_VERSION)),)
    2390     ifdef VBOX_WITH_NEW_XCODE
     2394    if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO)
     2395     VBOX_XCODE_VERSION := 4.1
     2396    else if1of ($(VBOX_GCC_TOOL), VBoxXcode62)
    23912397     VBOX_XCODE_VERSION := 6.2
    23922398    else
    2393      VBOX_XCODE_VERSION := 4.1
     2399     ## @todo
    23942400    endif
    23952401   endif
    23962402  endif
    2397   ifdef VBOX_WITH_NEW_XCODE
     2403  if1of ($(VBOX_GCC_TOOL), VBoxXcode62)
    23982404   ifdef KBUILD_USE_KOBJCACHE
    23992405    $(warning KBUILD_USE_KOBJCACHE does _not_ currently work with this version of Xcode)
    2400    endif
    2401   else
    2402    ifeq ($(VBOX_XCODE_VERSION),4.2)
    2403     $(warning Xcode 4.2 is not able to correctly build the recompiler!)
    2404     $(warning Please downgrade to Xcode 4.1 if you want a working VMM!)
    24052406   endif
    24062407  endif
     
    24262427  endif
    24272428 endif
    2428  ifdef VBOX_WITH_NEW_XCODE
    2429   if $(KBUILD_HOST_VERSION_MAJOR) >= 18 # HACK ALERT! dtrace doesn't work on Mojave if we specify our Xcode 6.2 environment.
    2430    override TOOL_StandardDTrace_DTRACE := dtrace "-xcpppath=$(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/gcc"
    2431   else
    2432    override TOOL_StandardDTrace_DTRACE := $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) dtrace "-xcpppath=$(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/gcc"
    2433   endif
    2434   export PATH:=$(VBOX_PATH_MACOSX_SDK)/usr/bin:$(PATH)
    2435  else
     2429 if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO)
    24362430  if  $(VBOX_XCODE_VERSION_MAJOR) > 4 || ($(VBOX_XCODE_VERSION_MAJOR) == 4 && $(VBOX_XCODE_VERSION_MINOR) >= 2)
    24372431   TOOL_GXX4MACHO_PREFIX ?= llvm-
     
    24682462   TOOL_GXX4MACHO_OBJCXX = $(TOOL_GCC4MACHO_PREFIX)gcc$(TOOL_GCC4MACHO_SUFFIX) $(if-expr $(KBUILD_TARGET_ARCH) == "x86",-m32,-m64) -fvisibility=hidden -fvisibility-inlines-hidden
    24692463  endif
     2464 else
     2465  if $(KBUILD_HOST_VERSION_MAJOR) >= 18 # HACK ALERT! dtrace doesn't work on Mojave if we specify our Xcode 6.2 environment.
     2466   override TOOL_StandardDTrace_DTRACE := dtrace "-xcpppath=$(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/gcc"
     2467  else
     2468   override TOOL_StandardDTrace_DTRACE := $(TOOL_$(VBOX_GCC_TOOL)_ENV_SETUP) dtrace "-xcpppath=$(VBOX_PATH_MACOSX_DEVEL_ROOT)/usr/bin/gcc"
     2469  endif
     2470  export PATH:=$(VBOX_PATH_MACOSX_SDK)/usr/bin:$(PATH)
    24702471 endif
    24712472
     
    30523053endif
    30533054if   $(KBUILD_TARGET) == "linux" \
    3054   || ($(KBUILD_TARGET) == "darwin" && defined(VBOX_WITH_NEW_XCODE)) \
     3055  || ($(KBUILD_TARGET) == "darwin" && "$(VBOX_GCC_TOOL)" != "GXX4MACHO" && "$(VBOX_GCC_TOOL)" != "GXX42MACHO") \
    30553056  || defined(VBOX_WITH_MASOCHISTIC_WARNINGS)
    30563057 VBOX_GCC_WARN_PEDANTIC += $(VBOX_GCC_WARN_MASOCHISTIC)
     
    30733074VBOX_GCC_NON_PEDANTIC_C   ?= -Wno-sign-compare -Werror-implicit-function-declaration
    30743075
    3075 ifdef VBOX_WITH_NEW_XCODE
     3076if "$(KBUILD_TARGET)" == "darwin" && "$(VBOX_GCC_TOOL)" != "GXX4MACHO" && "$(VBOX_GCC_TOOL)" != "GXX42MACHO"
    30763077 VBOX_GCC_PEDANTIC_CXX     += -Wno-c99-extensions
    30773078 VBOX_GCC_NON_PEDANTIC_CXX += -Wno-c99-extensions
     
    30983099        -DVBOX_WITH_GCC_SANITIZER \
    30993100        -fsanitize=object-size \
    3100         -fsanitize-undefined-trap-on-error
     3101        -fsanitize-undefined-trap-on-error
    31013102else
    31023103 VBOX_GCC_SANITIZER_FLAGS =
     
    32913292 if defined(VBOX_WITH_MASOCHISTIC_WARNINGS) # gcc 4.6.x+
    32923293  VBOX_WITH_NO_GCC_WARNING_POLICY = 1
    3293  else if $(KBUILD_TARGET) == "darwin" && defined(VBOX_WITH_NEW_XCODE)
     3294 else if "$(KBUILD_TARGET)" == "darwin"
     3295  ifn1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO)
    32943296   VBOX_WITH_NO_GCC_WARNING_POLICY = 1
     3297  endif
    32953298 else if1of ($(KBUILD_TARGET), linux)
    32963299  if $(VBOX_GCC_VERSION_CXX) >= 40600 # gcc 4.6.x+
     
    48274830TEMPLATE_VBOXR0DRV_TOOL                = $(VBOX_GCC_TOOL)
    48284831TEMPLATE_VBOXR0DRV_DEFS               += $(VBOX_DARWIN_DEF_SDK_DEFS) KERNEL KERNEL_PRIVATE DRIVER_PRIVATE APPLE NeXT
    4829  ifdef VBOX_WITH_NEW_XCODE # Note xcode uses -fstrict-aliasing, we currently don't dare... We also add -mno-red-zone.
     4832 if1of ($(VBOX_GCC_TOOL), GXX4MACHO GXX42MACHO)
     4833TEMPLATE_VBOXR0DRV_INCS               += \
     4834        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
     4835        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
     4836## @todo try use VBOX_GCC_PEDANTIC_CXX
     4837TEMPLATE_VBOXR0DRV_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) \
     4838        -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
     4839        -fno-common -nostdinc -fno-builtin -finline $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
     4840        -fno-keep-inline-functions -fno-exceptions -msoft-float \
     4841        -fapple-kext -fno-rtti -fcheck-new -force_cpusubtype_ALL \
     4842        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
     4843TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64      = -m64 -mkernel -mno-red-zone -gdwarf-2
     4844TEMPLATE_VBOXR0DRV_CXXFLAGS.x86        = -m32 -static
     4845TEMPLATE_VBOXR0DRV_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS) \
     4846        -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long -fno-common -nostdinc -fno-builtin -finline \
     4847        -fno-keep-inline-functions -fno-exceptions $(VBOX_GCC_fvisibility-hidden) -msoft-float \
     4848        -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations \
     4849        -Werror-implicit-function-declaration -force_cpusubtype_ALL \
     4850        $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
     4851TEMPLATE_VBOXR0DRV_CFLAGS.amd64        = -m64 -mkernel -mno-red-zone -gdwarf-2
     4852TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 -static
     4853TEMPLATE_VBOXR0DRV_LDFLAGS             =  $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
     4854        -nostdlib -Wl,-kext,-new_linker -Wl,-Y,1455 -keep_private_extern
     4855TEMPLATE_VBOXR0DRV_LDFLAGS.amd64       = -m64
     4856TEMPLATE_VBOXR0DRV_LDFLAGS.x86         = -m32
     4857TEMPLATE_VBOXR0DRV_LIBS                = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
     4858 else
     4859  # Note xcode uses -fstrict-aliasing, we currently don't dare... We also add -mno-red-zone.
    48304860TEMPLATE_VBOXR0DRV_INCS               += \
    48314861        $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
     
    48724902TEMPLATE_VBOXR0DRV_LDFLAGS.x86         = -m32
    48734903TEMPLATE_VBOXR0DRV_LIBS                = kmodc++ kmod cc_kext
    4874  else
    4875 TEMPLATE_VBOXR0DRV_INCS               += \
    4876         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \
    4877         $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/Kernel.framework/Headers
    4878 ## @todo try use VBOX_GCC_PEDANTIC_CXX
    4879 TEMPLATE_VBOXR0DRV_CXXFLAGS            = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) \
    4880         -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long $(VBOX_GCC_fdiagnostics-show-option) \
    4881         -fno-common -nostdinc -fno-builtin -finline $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
    4882         -fno-keep-inline-functions -fno-exceptions -msoft-float \
    4883         -fapple-kext -fno-rtti -fcheck-new -force_cpusubtype_ALL \
    4884         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
    4885 TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64      = -m64 -mkernel -mno-red-zone -gdwarf-2
    4886 TEMPLATE_VBOXR0DRV_CXXFLAGS.x86        = -m32 -static
    4887 TEMPLATE_VBOXR0DRV_CFLAGS              = $(VBOX_DARWIN_DEF_SDK_CFLAGS) \
    4888         -g $(VBOX_GCC_pipe) $(VBOX_GCC_WARN) -Wno-long-long -fno-common -nostdinc -fno-builtin -finline \
    4889         -fno-keep-inline-functions -fno-exceptions $(VBOX_GCC_fvisibility-hidden) -msoft-float \
    4890         -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations \
    4891         -Werror-implicit-function-declaration -force_cpusubtype_ALL \
    4892         $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fasm-blocks
    4893 TEMPLATE_VBOXR0DRV_CFLAGS.amd64        = -m64 -mkernel -mno-red-zone -gdwarf-2
    4894 TEMPLATE_VBOXR0DRV_CFLAGS.x86          = -m32 -static
    4895 TEMPLATE_VBOXR0DRV_LDFLAGS             =  $(filter-out $(VBOX_DARWIN_NO_COMPACT_LINKEDIT),$(VBOX_DARWIN_DEF_SDK_LDFLAGS)) \
    4896         -nostdlib -Wl,-kext,-new_linker -Wl,-Y,1455 -keep_private_extern
    4897 TEMPLATE_VBOXR0DRV_LDFLAGS.amd64       = -m64
    4898 TEMPLATE_VBOXR0DRV_LDFLAGS.x86         = -m32
    4899 TEMPLATE_VBOXR0DRV_LIBS                = kmodc++ kmod cc_kext cpp_kext $(VBOX_GCC_LIBGCC)
    49004904 endif
    49014905endif
Note: See TracChangeset for help on using the changeset viewer.

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