Skip to content

Commit c509a52

Browse files
Add a page documenting platform support
1 parent 7b77894 commit c509a52

File tree

3 files changed

+87
-7
lines changed

3 files changed

+87
-7
lines changed

docs/ref/building.rst

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@ Configuring, Building, & Using
88
Building |amongoc| requires a C++20 compiler. The following tools are known to
99
work:
1010

11+
- :doc:`A supported operating system and toolchain <platform-support>`
1112
- CMake_ 3.25 or newer
12-
- GCC ≥12.0\ [#fn-redhat-issue]_ **or** Clang ≥17.0
1313
- Earthly_ 0.8 or newer (for :ref:`building with Earthly <building.earthly>`)
1414

15-
Building on Windows or with MSVC is not currently supported.
16-
17-
Builds are only currently tested with Debian 12 and Alpine 3.20. Support for
18-
other platforms may be considered in the future, but are not currently planned
19-
for this prototype.
15+
Support for other platforms and toolchains may be considered in the future, but
16+
are not currently planned for this prototype.
2017

2118
.. _CMake: https://cmake.org/
2219
.. _Earthly: https://earthly.dev/
@@ -88,7 +85,6 @@ them:
8885
- CMake built-in
8986

9087

91-
9288
Build Configuration
9389
###################
9490

docs/ref/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Reference
99

1010
meta-attrs
1111
api-patterns
12+
platform-support
1213
building
1314

1415
box

docs/ref/platform-support.rst

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
################
2+
Platform Support
3+
################
4+
5+
This page details information on the compiler/platform support of |amongoc|.
6+
7+
.. NOTE
8+
This page should be kept in sync with our CI tasks to ensure that it remains
9+
correct. The main CI tasks defined in `ci.yml` define our platform support.
10+
11+
12+
Operating Systems
13+
#################
14+
15+
Linux
16+
*****
17+
18+
Full Support with Default Toolchain
19+
===================================
20+
21+
|amongoc| is tested and supported on the following Linux distributions using the
22+
toolchains and libraries that are available in their default package
23+
repositories:
24+
25+
1. **Debian 12** and newer
26+
2. **Ubuntu 24.04** and newer
27+
3. **Fedora 40** and newer
28+
4. **Alpine 3.18** and newer
29+
30+
31+
Partially Supported
32+
===================
33+
34+
|amongoc| is tested and supported on the following Linux platorms with some
35+
caveats:
36+
37+
1. **Alpine 3.17** and **RHEL 10** (and derived) can build and run |amongoc|
38+
using the default platform toolchain, but it requires library dependencies
39+
that are not available in the default respositories. Building using ``vcpkg``
40+
is fully supported.
41+
2. **RHEL 8** (and derived) can build and run |amongoc|, but it requires
42+
dependencies that are not available in the default repositories, and requires
43+
using a newer ``gcc-toolset`` (≥12.0) package to build.
44+
45+
46+
Windows
47+
*******
48+
49+
|amongoc| is supported on Windows using the **Visual Studio 2022** toolchain and
50+
``vcpkg`` to obtain dependencies.
51+
52+
.. note::
53+
54+
Building using other toolchains on Windows is not tested.
55+
56+
57+
Compilers and Toolchains
58+
########################
59+
60+
Fully Supported
61+
***************
62+
63+
The following toolchains are fully supported:
64+
65+
- **GCC 12** and newer. See also: :ref:`gcc-linker-issue`
66+
- **LLVM/Clang 17** and newer
67+
- **Microsoft Visual Studio 2022** and newer
68+
69+
.. note::
70+
71+
Apple/Clang is not tested.
72+
73+
74+
.. _gcc-linker-issue:
75+
76+
GCC Linker Issues
77+
*****************
78+
79+
While **GCC 13** and **GCC 12** can build |amongoc|, a bug in GCC causes a
80+
linker error when all optimizations are enabled. The |amongoc| CMake build
81+
detects these GCC versions and disables the specific optimizations that cause
82+
the linker issue. If you see a linker issue that only appears when optimizations
83+
are enabled, please file a bug report.

0 commit comments

Comments
 (0)