Merge pull request #81968 from bruvzg/xc15_ld_bug

[macOS] Workaround Xcode 15 linker bug.
This commit is contained in:
Rémi Verschelde 2023-09-20 18:55:25 +02:00
commit 58750df3a3
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -1,6 +1,6 @@
import os
import sys
from methods import detect_darwin_sdk_path
from methods import detect_darwin_sdk_path, get_compiler_version, is_vanilla_clang
from platform_methods import detect_arch
from typing import TYPE_CHECKING
@ -119,6 +119,22 @@ def configure(env: "Environment"):
env.Append(CCFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.13"])
env.Append(LINKFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.13"])
cc_version = get_compiler_version(env) or {
"major": None,
"minor": None,
"patch": None,
"metadata1": None,
"metadata2": None,
"date": None,
}
cc_version_major = int(cc_version["major"] or -1)
cc_version_minor = int(cc_version["minor"] or -1)
vanilla = is_vanilla_clang(env)
# Workaround for Xcode 15 linker bug.
if not vanilla and cc_version_major == 15 and cc_version_minor == 0:
env.Prepend(LINKFLAGS=["-ld_classic"])
env.Append(CCFLAGS=["-fobjc-arc"])
if not "osxcross" in env: # regular native build