Compare commits

...

2 Commits

Author SHA1 Message Date
Eoin O'Neill 13b4ab2a57
Merge e878b705b9 into 36847f6af0 2024-02-01 20:25:06 -08:00
Eoin O'Neill e878b705b9 Adjust clang version checking to account for other non-vanilla clangs
We can no longer make the assumption that all non-vanilla clang versions
are Apple's clang or that all other non vanilla clangs will work with
the given arguments. There are times where additional tools might use non vanilla clang
and the presumed arguments here will break compilation on those
platforms.

We might want to consider adding tooling-specific optimazation functions
long term to fetch desired optimizations on a platform basis.
2024-02-01 20:14:53 -08:00
1 changed files with 4 additions and 4 deletions

View File

@ -24,7 +24,7 @@ def using_clang(env):
return "clang" in os.path.basename(env["CC"]) return "clang" in os.path.basename(env["CC"])
def is_vanilla_clang(env): def is_clang_type(env, family_string):
if not using_clang(env): if not using_clang(env):
return False return False
try: try:
@ -32,7 +32,7 @@ def is_vanilla_clang(env):
except (subprocess.CalledProcessError, OSError): except (subprocess.CalledProcessError, OSError):
print("Couldn't parse CXX environment variable to infer compiler version.") print("Couldn't parse CXX environment variable to infer compiler version.")
return False return False
return not version.startswith("Apple") return version.startswith(family_string)
# Main tool definition # Main tool definition
@ -125,10 +125,10 @@ def generate(env):
else: else:
env.Append(CCFLAGS=["-g2"]) env.Append(CCFLAGS=["-g2"])
else: else:
if using_clang(env) and not is_vanilla_clang(env): if using_clang(env) and is_clang_type(env, "Apple"):
# Apple Clang, its linker doesn't like -s. # Apple Clang, its linker doesn't like -s.
env.Append(LINKFLAGS=["-Wl,-S", "-Wl,-x", "-Wl,-dead_strip"]) env.Append(LINKFLAGS=["-Wl,-S", "-Wl,-x", "-Wl,-dead_strip"])
else: elif is_clang_type(env, "clang"):
env.Append(LINKFLAGS=["-s"]) env.Append(LINKFLAGS=["-s"])
if env["optimize"] == "speed": if env["optimize"] == "speed":