Supported kernel, libc, toolchain versions
==========================================

1. Build testing with GitHub Actions
------------------------------------

We test master branch in https://github.com/linux-test-project/ltp/actions[GitHub Actions]
to ensure LTP builds on various distributions including old, current and bleeding edge.
We test both gcc and clang toolchains, various architectures with cross-compilation.
For list of tested distros see
https://github.com/linux-test-project/ltp/blob/master/.github/workflows/ci-docker-build.yml[.github/workflows/ci-docker-build.yml].


NOTE: GitHub Actions does only build testing, passing the CI means only that
      the test compiles fine on variety of different distributions and releases.
      GitHub Actions also uses the latest distribution image of a particular release.

1.1 Oldest tested distributions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[align="center",options="header"]
|=================================================================
| Distro                       | kernel  | glibc | gcc    | clang
| openSUSE Leap 42.2           | 4.4     | 2.22  | 4.8.5  | -
| Ubuntu 18.04 LTS bionic      | 4.15    | 2.27  | 7.3.0  | -
| Debian 11 (bullseye)         | 5.10    | 2.31  | 10.2.1 | 11.0.1
|=================================================================

Older distributions are not officially supported, which means that it
may or may not work. It all depends on your luck. It should be possible
to compile latest LTP even on slightly older distributions than we
support with a few manual tweaks, e.g. disabling manually tests for
newly added syscalls, etc. Trivial fixes/workarounds may be accepted,
but users are encouraged to move to a newer distro.

If latest LTP cannot be compiled even with some amount of workarounds,
you may result to older LTP releases, however these are _not_ supported
in any way. Also if you are trying to run LTP on more than 10 years old
distribution you may as well reconsider you life choices.

1.2 Tested architectures
~~~~~~~~~~~~~~~~~~~~~~~~

[align="center",options="header"]
|==================================
| arch          | build
| x86_64        | native
| x86 emulation | native
| aarch64       | cross compilation
| ppc64le       | cross compilation
| s390x         | cross compilation
|==================================

1.3 Minimal supported kernel version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Minimal supported kernel version is 4.4.

1.4 Supported libc
~~~~~~~~~~~~~~~~~~

[align="center",options="header"]
|==================================
| Libc      | Note
| https://www.gnu.org/software/libc/[GNU C Library (glibc)] | Targeted libc, tested both compilation and actual test results.
| https://uclibc-ng.org/[uClibc-ng] | Although not being tested it should work as well as it attempt to maintain a glibc compatible interface.
| https://www.uclibc.org/[uClibc]   | Older https://www.uclibc.org/[uClibc] might have problems.
| https://musl.libc.org/[musl] | Not yet fully supported (see
                                 https://github.com/linux-test-project/ltp/blob/master/ci/alpine.sh[CI script]
                                 for list of files which need to be deleted in order to compile under musl).
| binder (Android) | Please use https://android.googlesource.com/platform/external/ltp/[AOSP fork].
|==================================

1.5 Used C standard
~~~~~~~~~~~~~~~~~~~

LTP compiles with '-std=gnu99'.
