--- Config.kmk.orig 2013-01-21 13:27:33.000000000 -0500 +++ Config.kmk 2013-01-21 13:27:33.000000000 -0500 @@ -1916,10 +1916,8 @@ $(error VBox: 64-bit darwin builds require Xcode 3.2 or later, you have $(VBOX_XCODE_VERSION)) endif endif - if $(VBOX_XCODE_VERSION_MAJOR) == 4 && $(VBOX_XCODE_VERSION_MINOR) >= 2 - TOOL_GXX4MACHO_PREFIX ?= llvm- - endif - TOOL_GXX4MACHO_SUFFIX ?= -4.2 + TOOL_GXX4MACHO_PREFIX ?= + TOOL_GXX4MACHO_SUFFIX ?= -apple-4.2 VBOX_DARWIN_NO_COMPACT_LINKEDIT ?= TOOL_GCC4MACHO_SUFFIX ?= $(TOOL_GXX4MACHO_SUFFIX)$(HOSTSUFF_EXE) --- kBuild/tools/LLVMGCC42MACHO.kmk.orig 2013-01-21 13:27:33.000000000 -0500 +++ kBuild/tools/LLVMGCC42MACHO.kmk 2013-01-21 13:27:33.000000000 -0500 @@ -1,6 +1,6 @@ # $Id: LLVMGCC42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $ ## @file -# kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O. +# kBuild Tool Config - Apple GCC v4.2.x targeting Darwin (Mac OS X) Mach-O. # # @@ -31,17 +31,22 @@ # # -TOOL_LLVMGCC42MACHO := LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O. +TOOL_LLVMGCC42MACHO := Apple GCC v4.2.x targeting Darwin (Mac OS X) Mach-O. # Tool Specific Properties -TOOL_LLVMGCC42MACHO_PREFIX ?= llvm- -TOOL_LLVMGCC42MACHO_SUFFIX ?= -4.2$(HOSTSUFF_EXE) +TOOL_LLVMGCC42MACHO_PREFIX ?= +TOOL_LLVMGCC42MACHO_SUFFIX ?= -apple-4.2$(HOSTSUFF_EXE) TOOL_LLVMGCC42MACHO_CC ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) TOOL_LLVMGCC42MACHO_CXX ?= $(TOOL_LLVMGCC42MACHO_PREFIX)g++$(TOOL_LLVMGCC42MACHO_SUFFIX) TOOL_LLVMGCC42MACHO_OBJC ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) TOOL_LLVMGCC42MACHO_OBJCXX ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) TOOL_LLVMGCC42MACHO_AS ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) -TOOL_LLVMGCC42MACHO_LD ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) +# +# note: this LLVMGCC42MACHO_LD differs from LLVMGCCMACHO, this is because apple-gcc-42 +# require __personality_* symbol which might require by cpp sources processing by this +# tool set (e.g. filesplitter), this link issue resolve by involving g++ stack. +# +TOOL_LLVMGCC42MACHO_LD ?= $(TOOL_LLVMGCC42MACHO_PREFIX)g++$(TOOL_LLVMGCC42MACHO_SUFFIX) TOOL_LLVMGCC42MACHO_LD_SYSMOD ?= $(TOOL_LLVMGCC42MACHO_PREFIX)gcc$(TOOL_LLVMGCC42MACHO_SUFFIX) ifndef TOOL_LLVMGCC42MACHO_LDFLAGS.$(KBUILD_TARGET) TOOL_LLVMGCC42MACHO_LDFLAGS.dll ?= -dynamiclib --- kBuild/tools/LLVMGXX42MACHO.kmk.orig 2013-01-21 13:27:33.000000000 -0500 +++ kBuild/tools/LLVMGXX42MACHO.kmk 2013-01-21 13:27:33.000000000 -0500 @@ -1,6 +1,6 @@ # $Id: LLVMGXX42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $ ## @file -# kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code. +# kBuild Tool Config - Apple GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code. # # @@ -31,11 +31,11 @@ # # -TOOL_LLVMGXX42MACHO := LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code. +TOOL_LLVMGXX42MACHO := Apple GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code. # Tool Specific Properties -TOOL_LLVMGXX42MACHO_PREFIX ?= llvm- -TOOL_LLVMGXX42MACHO_SUFFIX ?= -4.2$(HOSTSUFF_EXE) +TOOL_LLVMGXX42MACHO_PREFIX ?= +TOOL_LLVMGXX42MACHO_SUFFIX ?= -apple-4.2$(HOSTSUFF_EXE) TOOL_LLVMGXX42MACHO_CC ?= $(TOOL_LLVMGXX42MACHO_PREFIX)gcc$(TOOL_LLVMGXX42MACHO_SUFFIX) TOOL_LLVMGXX42MACHO_CXX ?= $(TOOL_LLVMGXX42MACHO_PREFIX)g++$(TOOL_LLVMGXX42MACHO_SUFFIX) TOOL_LLVMGXX42MACHO_OBJC ?= $(TOOL_LLVMGXX42MACHO_PREFIX)gcc$(TOOL_LLVMGXX42MACHO_SUFFIX) --- src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c.orig 2013-01-21 13:27:34.000000000 -0500 +++ src/libs/kStuff/kStuff/kLdr/kLdrModMachO.c 2013-01-21 13:27:34.000000000 -0500 @@ -967,6 +967,8 @@ } case LC_DYSYMTAB: + case LC_FUNCTION_STARTS: + case LC_DATA_IN_CODE: /** @todo deal with this! */ break; --- src/libs/kStuff/kStuff/include/k/kLdrFmts/mach-o.h.orig 2013-01-21 13:27:34.000000000 -0500 +++ src/libs/kStuff/kStuff/include/k/kLdrFmts/mach-o.h 2013-01-21 13:27:34.000000000 -0500 @@ -380,7 +380,8 @@ #define LC_VERSION_MIN_MACOSX KU32_C(0x24) /**< The image requires the given Mac OS X version. See version_min_command. */ #define LC_VERSION_MIN_IPHONEOS KU32_C(0x25) /**< The image requires the given iOS version. See version_min_command. */ #define LC_FUNCTION_STARTS KU32_C(0x26) /**< Where to find the compress function start addresses. See linkedit_data_command. */ -#define LC_DYLD_ENVIRONMENT KU32_C(0x26) /**< Environment variable for the dynamic linker. See dylinker_command. */ +#define LC_DYLD_ENVIRONMENT KU32_C(0x27) /**< Environment variable for the dynamic linker. See dylinker_command. */ +#define LC_DATA_IN_CODE KU32_C(0x29) /** ???? */ /** @} */