The third field of the triplet is for the operating system identifier [1] which can be expressed as two fields in the form of `<sys>-<abi>` [2] as well as just `<sys>`, when applicable. The LLVM docs also refer to the second part of the operating system identifier as the "environment type" [3].
Examples of allowed operating system identifiers could be `freebsd`, `linux-gnu` or `linux-android`. So, while it seems like four components, the last two seem to get combined to refer to a single "operating system identifier".
I'm no expert here, so corrections welcome, I was just curious from your comment and thought I'd share what I had found.
Examples of allowed operating system identifiers could be `freebsd`, `linux-gnu` or `linux-android`. So, while it seems like four components, the last two seem to get combined to refer to a single "operating system identifier".
I'm no expert here, so corrections welcome, I was just curious from your comment and thought I'd share what I had found.
[1] https://wiki.osdev.org/Target_Triplet
[2] https://clang.llvm.org/docs/CrossCompilation.html#target-tri...
[3] https://llvm.org/doxygen/classllvm_1_1Triple.html