m = re.match(r'(\w+)-(\w+)-(\w+)', triple)
if not m:
lit_config.fatal("Could not turn '%s' into MS ABI triple" % triple)
- isa = m.group(1)
- vendor = m.group(2)
- os = m.group(3)
- if os.lower() == 'win32':
+ isa = m.group(1).lower()
+ vendor = m.group(2).lower()
+ os = m.group(3).lower()
+ if os == 'win32':
# If the OS is win32, we're done.
return triple
- if "arm" in isa.lower():
- # FIXME: Fix failures with arm*-*-win32.
- isa = "i686"
- # Otherwise, replace the OS part with Win32.
- return isa + '-' + vendor + '-win32'
+ if isa.startswith('x86') or isa == 'amd64' or re.match(r'i\d86', isa):
+ # For x86 ISAs, adjust the OS.
+ return isa + '-' + vendor + '-win32'
+ # -win32 is not supported for non-x86 targets; use a default.
+ return 'i686-pc-win32'
config.substitutions.append( ('%clang_cc1', '%s -cc1 -internal-isystem %s'
% (config.clang,