# -*- Python -*-
import os
# FIXME: The MachO back-end currently does not respect endianness when
# accessing binary data structures, and therefore only works correctly
# on little-endian host systems. Skip all tests on big-endian hosts.
if sys.byteorder == "big":
config.unsupported = True
# We specify the most commonly-used archs and platform versions in our tests
# here. Tests which need different settings can just append to this, as only
# the last value will be used.
#
# Note however that this does not apply to `-syslibroot`: each instance of that
# flag will append to the set of library roots. As such, we define a separate
# alias for each platform.
lld_watchos = (
"ld64.lld -lSystem -arch arm64_32 -platform_version watchos 7.0 8.0 -syslibroot "
+ os.path.join(config.test_source_root, "MachO", "Inputs", "WatchOS.sdk")
)
config.substitutions.append(("%lld-watchos", lld_watchos + " -fatal_warnings"))
config.substitutions.append(("%no-fatal-warnings-lld-watchos", lld_watchos))
config.substitutions.append(("%no-arg-lld", "ld64.lld"))
# Since most of our tests are written around x86_64, we give this platform the
# shortest substitution of "%lld".
lld = (
"ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot "
+ os.path.join(config.test_source_root, "MachO", "Inputs", "MacOSX.sdk")
)
config.substitutions.append(("%lld", lld + " -lSystem -fatal_warnings"))
config.substitutions.append(("%no-lsystem-lld", lld + " -fatal_warnings"))
config.substitutions.append(("%no-fatal-warnings-lld", lld + " -lSystem"))