Skip to content

Commit a97057c

Browse files
Update README.md
1 parent 81621df commit a97057c

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

README.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
11
# Portable C++ Toolchain
22

3-
The Portable C++ Toolchain is a complete C/C++ toolchain based on LLVM 19.
3+
The Portable C++ Toolchain is a complete C/C++ toolchain based on LLVM.
44

55
This toolchain has the following goals:
6-
* Create binaries compatible with a broad variety of Linux distributions and macOS versions
6+
* Create binaries compatible with a broad variety of Linux distributions
77
* Support cross-compilation without necessitating specialty compilers
8-
* Provide a similar experience on Linux and macOS
8+
* Provide a similar experience on Linux, macOS, and Windows
99

1010
## Build system integration
1111
### Bazel
1212

1313
This toolchain provides a Bazel rules integration.
14-
For more information, see the [Bazel API documentation](bazel).
14+
Consult the [release notes](https://github.com/CACI-International/cpp-toolchain/releases) for a quick start guide.
15+
For more information, see the [Bazel API documentation](bazel/docs).
1516

16-
## Supported targets and versions
17+
Note that the Bazel integration currently does not target Windows. Cross-compiling from Windows hosts to Linux targets is supported.
1718

18-
### Linux
19+
### CMake
20+
21+
This toolchain provides a CMake integration.
22+
Consult the [release notes](https://github.com/CACI-International/cpp-toolchain/releases) for a quick start guide.
1923

20-
All targets are compiled against kernel 3.10.108, glibc 2.17, and libstdc++ 14.2.
24+
## Supported targets
25+
26+
### Linux
2127

2228
The following targets are supported:
2329
* `aarch64-unknown-linux-gnu`
@@ -26,7 +32,7 @@ The following targets are supported:
2632

2733
### macOS
2834

29-
To specify compatibility, compile with `-mmacosx-version-min=MAJOR.MINOR`. Supported targets and versions depend on the installed Xcode version.
35+
To specify compatibility, compile with `-mmacosx-version-min=MAJOR.MINOR` or similar. Supported targets and versions depend on the installed Xcode version.
3036

3137
`arm64` and `x86_64` targets are supported. These include (but not limited to):
3238
* `arm64-apple-macos`
@@ -35,6 +41,12 @@ To specify compatibility, compile with `-mmacosx-version-min=MAJOR.MINOR`. Suppo
3541

3642
macOS hosts can also cross-compile to Linux targets.
3743

44+
### Windows
45+
46+
`arm64` and `x86_64` targets using the MSVC ABI are supported. These include (but not limited to):
47+
* `x86_64-pc-windows-msvc`
48+
* `aarch64-pc-windows-msvc`
49+
3850
### NVPTX
3951

4052
Clang is built with NVPTX support.
@@ -44,9 +56,12 @@ Clang is built with NVPTX support.
4456
### Linux
4557
* glibc and libstdc++ are used rather than musl and libc++ to ensure compatibility when linking against system libraries on most distributions.
4658
* libstdc++ is statically linked into Linux binaries to maximize compatibility with older operating systems.
59+
* "Old" kernel headers are used to maximize compatibility with older operating systems.
4760

48-
### macOS
49-
* macOS does not always have the latest libc++ available. Header-only features are generally fine to use with this older libc++, but some features reference `libc++.dylib` and won't work on some macOS versions.
61+
For exact versions, consult the release notes.
62+
63+
### macOS and Windows
64+
Apple and Microsoft provide their own SDKs that are not redistributed with this toolchain. You must install Xcode or the Windows SDK/Visual Studio to target those operating systems.
5065

5166
## Comparison to other toolchains and methods
5267

0 commit comments

Comments
 (0)