Description
There are actually two different generally expected encodings of the host tuple and they're subtly different than what some might expect.
For example, 'x86_64-sun-solaris' should probably be x86_64-pc-solaris. The reason for that is that the encoding schemes are actually:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
...
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
https://github.com/gcc-mirror/gcc/blob/master/config.sub
So while 'sparcv9-sun-solaris' is correct because Sun is the (historical) manufacturer of sparc CPUs, 'x86_64-sun-solaris' is not, because the MANUFACTURER here is the manufacturer of the CPU not the operating system. There are special cases for this, for example 'x86_64-apple-darwin', even though Apple doesn't make x86_64 CPUs, but following gcc/clang conventions leads us to x86_64-pc-solaris.
This issue has been assigned to @lzutao via this comment.