OS X, clang/Xcode. clang kexts i386. , Xcode 32- kexts 4.6.3. ( Apple). , 32- kexts, 2 kext , OS X <= 10,7 >= 10,9. kext Xcode 4.6.3 Xcode 6.x.
/ OS X SDK. , , I/O kexts OS X SDK 10.y OS X 10.z, z < . , 10.8, SDK 10.8 ( ). , SDK, kext ( , 10.7 ) kext, , kext, kext , . , Xcode, - SDK.
OS X:
- Kext 1: <= 10,7 ( , ), kext 2 >= 10,8 (, 64-)
- Kext 1: <= 10.8 ( , ), kext 2 >= 10.9 (, 64-)
, 2 kext, .
, C, ++ .
2018 , , > 3 :
32- kexts . - OS X Xcode 4.6.3. , kexts , , , . , CI, , --.
, , macOS. Xcode 4 , 32- kexts.
bash :
VERBOSE=1
export XCODE463APP=`mdfind 'kMDItemCFBundleIdentifier = "com.apple.dt.Xcode" && kMDItemVersion = "4.6.3"' | head -n 1`
DARWIN_MAJOR=`uname -r | sed -E 's/^([0-9]+)\..*$/\1/'`
if [ -e "./build-tools/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" ] && [ -e "./build-tools/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2" ] ; then
if (( $VERBOSE )); then
echo 32-bit kext compiler appears to be in place
fi
else
echo "Setting up 32-bit kext compiler toolchain"
mkdir -p "./build-tools/Developer/Toolchains"
mkdir -p "./build-tools/Developer/usr/"
cp -r "$XCODE463APP/Contents/Developer/Toolchains/XcodeDefault.xctoolchain" "./build-tools/Developer/Toolchains/"
cp -r "$XCODE463APP/Contents/Developer/usr/llvm-gcc-4.2" "./build-tools/Developer/usr/"
fi
if [ -h "./build-tools/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin${DARWIN_MAJOR}" ] || [ -e "./build-tools/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin${DARWIN_MAJOR}" ] ; then
if (( $VERBOSE )); then
echo "32-bit kext compiler Darwin-version-specific stuff appears to be set up"
fi
else
echo "Setting up 32-bit kext compiler Darwin version specific symlink"
ln -s "i686-apple-darwin11" "./build-tools/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin${DARWIN_MAJOR}"
fi
32- Xcode 4.6.3 , macOS (Darwin) , , , . Xcode 4.6.3 10.9 10.10, , , , . , 32- kext 10.6 SDK 10.11 10.12.
, , llvm-gcc , , , .