|
| 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