Platforms are classified as "primary", "secondary", "community" - and "unadopted". Support for a new platform should only be - added if it is being adopted as a primary, secondary or - community platform.
--
-
- Primary -
-
- Definition: A platform that is regularly tested
- through project CI on a project owned and managed system
-
- - New Pull Requests (PRs) should not be merged unless the - primary platforms are showing as "green" in CI. If the CI - breaks for a branch (such as for a stable version or master) - then it should be fixed as a priority.
-
- - Secondary -
-
- Definition: A platform that is regularly tested
- through project CI on a system that is not owned or managed by
- the project. At least one project committer must have access
- to the system and be able and willing to support it.
- - New Pull Requests (PRs) should avoid introducing new breaks to - CI in secondary platforms where possible but may still be - merged where a resolution is not easily achievable without - access to the platform. If the CI for a branch (such as for a - stable version or master) on a secondary platform breaks, then - a resolution should be sought as soon as is practically - possible and before a release is made from the branch.
-
- - Community -
-
- Definition: Platforms that one or more members of the
- OpenSSL community have volunteered to support. May or may not
- be in project CI. Members of the community providing support
- do not have to be committers.
- - Where a community platform is in project CI then new Pull - Requests (PRs) should avoid introducing new breaks to CI on - such platforms where possible but may still be merged where a - resolution is not easily achievable without access to the - platform. If the CI for a branch (such as for a - stable version or master) on a community platform breaks, then - an attempt should be made to contact the community maintainer - to request a fix. In the event that a community platform is - broken in CI for a protracted period then it may be dropped - from CI.
- - If defects are raised that are specific to a community - platform then the community maintainer may be contacted to - help find a resolution. If a community maintainer is - unresponsive, or unable to provide fixes then the platform may - be moved to "unadopted".
-
- - Unadopted -
-
- Definition: Platforms that no one has volunteered to
- support.
- Support may still be provided for such platforms where - possible without access to the platform itself. Platform - specific issues may be left unresolved where it is not - feasible to find a suitable fix. Support for such platforms - may be removed entirely from the OpenSSL code base in future - releases. -
-
- The current primary platforms are: - -
Target | -- | O/S | -- | Architecture | -- | Toolchain | -
---|---|---|---|---|---|---|
linux-x86_64 | -- | Ubuntu Server 20.04.3 | -- | x86_64 | -- | gcc 9.3.0 | -
linux-generic64 | -- | Ubuntu Server 20.04.3 | -- | x86_64 | -- | gcc 9.3.0 | -
linux-x86 | -- | Debian 11.2 | -- | x86 | -- | gcc 11.2.0 | -
linux-generic32 | -- | Debian 11.2 | -- | x86 | -- | gcc 11.2.0 | -
BSD-x86_64 | -- | FreeBSD 13.0 | -- | x86_64 | -- | Clang 11 | -
VC-WIN64A | -- | Windows 10 | -- | x86_64 | -- | Visual Studio 2019 Community Edition | -
mingw64 | -- | Windows 10 | -- | x86_64 | -- | MinGW (64 bit) and MSYS2 | -
darwin64-x86_64 | -- | Mac OS Big Sur (11) | -- | x86_64 | -- | clang 12.? | -
darwin64-arm64 | -- | Mac OS Big Sur (11) | -- | AArch64 (M1) | -- | clang 12.? | -
- The current secondary platforms are: - -
Target | -- | O/S | -- | Architecture | -- | Toolchain | -- | Nominated Committer(s) | -
---|---|---|---|---|---|---|---|---|
?? | -- | ?? | -- | ?? | -- | ?? | -- | ?? | -
- The current community platforms are: - -
Target | -- | O/S | -- | Architecture | -- | Toolchain | -- | Nominated Community Member(s) | -
---|---|---|---|---|---|---|---|---|
vms-alpha | -- | OpenVMS 8.4 | -- | alpha | -- | VSI C 7.4 | -- | @levitte | -
vms-alpha-p32 | -- | OpenVMS 8.4 | -- | alpha | -- | VSI C 7.4 - (32 bit pointer build) |
- - | @levitte | -
vms-alpha-p64 | -- | OpenVMS 8.4 | -- | alpha | -- | VSI C 7.4 - (64 bit pointer build) |
- - | @levitte | -
vms-ia64 | -- | OpenVMS 8.4 8.4 | -- | ia64 | -- | VSI C 7.4 | -- | @levitte | -
vms-ia64-p32 | -- | OpenVMS 8.4 | -- | ia64 | -- | VSI C 7.4 - (32 bit pointer build) |
- - | @levitte | -
vms-ia64-p64 | -- | OpenVMS 8.4 | -- | ia64 | -- | VSI C 7.4 - (64 bit pointer build) |
- - | @levitte | -
vms-x86_64 | -- | OpenVMS 8.4 | -- | x86_64 | -- | VSI C X7.4 - (cross compile on ia64, - currently build only) |
- - | @levitte | -
nonstop-nsx | -- | NonStop OSS L21.06 | -- | x86_64 ilp32 | -- | c99 | -- | @rsbeckerca | -
nonstop-nsx_put | -- | NonStop OSS L21.06 | -- | x86_64 ilp32 | -- | c99 | -- | @rsbeckerca | -
nonstop-nsx_64 | -- | NonStop OSS L21.06 | -- | x86_64 lp64 | -- | c99 | -- | @rsbeckerca | -
nonstop-nsx_64_put | -- | NonStop OSS L21.06 | -- | x86_64 lp64 PUT | -- | c99 | -- | @rsbeckerca | -
nonstop-nsx_spt | -- | NonStop OSS L21.06 | -- | x86_64 ilp32 SPT | -- | c99 | -- | @rsbeckerca | -
nonstop-nsx_spt_floss | -- | NonStop OSS L21.06 | -- | x86_64 ilp32 SPT FLOSS | -- | c99 | -- | @rsbeckerca | -
nonstop-nsv | -- | NonStop OSS L21.06 | -- | x86_64 ilp32 | -- | c99 | -- | @rsbeckerca | -
nonstop-nse | -- | NonStop OSS J06.22 | -- | ia64 ilp32 | -- | c99 | -- | @rsbeckerca | -
nonstop-nse_put | -- | NonStop OSS J06.22 | -- | ia64 ilp32 PUT | -- | c99 | -- | @rsbeckerca | -
nonstop-nse_64 | -- | NonStop OSS J06.22 | -- | ia64 lp64 | -- | c99 | -- | @rsbeckerca | -
nonstop-nse_64_put | -- | NonStop OSS J06.22 | -- | ia64 lp64 PUT | -- | c99 | -- | @rsbeckerca | -
nonstop-nse_spt | -- | NonStop OSS J06.22 | -- | ia64 ipl32 SPT | -- | c99 | -- | @rsbeckerca | -
nonstop-nse_spt_floss | -- | NonStop OSS J06.22 | -- | ia64 ipl32 SPT FLOSS | -- | c99 | -- | @rsbeckerca | -
linux64-loongarch64 | -- | Linux | -- | loongarch64 | -- | gcc | -- | @shipujin | -
BSD-ppc | -- | FreeBSD | -- | ppc | -- | LLVM | -- | @pkubaj | -
BSD-ppc64 | -- | FreeBSD | -- | ppc64 | -- | LLVM | -- | @pkubaj | -
BSD-ppc64le | -- | FreeBSD | -- | ppc64le | -- | LLVM | -- | @pkubaj | -
BSD-riscv64 | -- | FreeBSD | -- | riscv64 | -- | LLVM | -- | @pkubaj | -
solaris64-x86_64-gcc | -- | Solaris | -- | x86_64 | -- | gcc | -- | @orcl-jlana @cernoseka | -
solaris64-x86_64-cc | -- | Solaris | -- | x86_64 | -- | Sun C | -- | @orcl-jlana @cernoseka | -
solaris64-sparcv9-gcc | -- | Solaris | -- | Sparc V9 64 bit | -- | gcc | -- | @orcl-jlana @cernoseka | -
solaris64-sparcv9-cc | -- | Solaris | -- | Sparc V9 64 bit | -- | Sun C | -- | @orcl-jlana @cernoseka | -
linux64-s390x | -- | Linux | -- | s390x | -- | gcc | -- | @juergenchrist @ifranzki | -
linux-aarch64 | -- | Linux | -- | aarch64 | -- | gcc | -- | @zorrorffm @daniel-hu-arm @xkqian @tom-cosgrove-arm | -
- The current unadopted platforms are: - -
Target | -- | O/S | -- | Architecture | -- | Toolchain | -
---|---|---|---|---|---|---|
vos-gcc | -- | VOS | -- | ?? | -- | gcc | -
solaris-x86-gcc | -- | Solaris | -- | x86 | -- | gcc | -
solaris-sparcv7-gcc | -- | Solaris | -- | Sparc V7 | -- | gcc | -
solaris-sparcv8-gcc | -- | Solaris | -- | Sparc V8 | -- | gcc | -
solaris-sparcv9-gcc | -- | Solaris | -- | Sparc V9 32 bit | -- | gcc | -
solaris-sparcv7-cc | -- | Solaris | -- | Sparc V7 | -- | Sun C | -
solaris-sparcv8-cc | -- | Solaris | -- | Sparc V8 | -- | Sun C | -
solaris-sparcv9-cc | -- | Solaris | -- | Sparc V9 32 bit | -- | Sun C | -
irix-mips3-gcc | -- | Irix 6.x | -- | mips64 n32 | -- | gcc | -
irix-mips3-cc | -- | Irix 6.x | -- | mips64 n32 | -- | ?? | -
irix64-mips4-gcc | -- | Irix 6.x | -- | mips64 n64 | -- | gcc | -
irix64-mips4-cc | -- | Irix 6.x | -- | mips64 n64 | -- | ?? | -
hpux-parisc-gcc | -- | HP-UX | -- | parisc | -- | gcc | -
hpux-parisc1_1-gcc | -- | HP-UX | -- | parisc 1.1 32 bit | -- | gcc | -
hpux64-parisc2-gcc | -- | HP-UX | -- | parisc 2.0 64 bit | -- | gcc | -
hpux-parisc-cc | -- | HP-UX | -- | parisc | -- | ?? | -
hpux-parisc1_1-cc | -- | HP-UX | -- | parisc 1.0 32 bit | -- | ?? | -
hpux64-parisc2-cc | -- | HP-UX | -- | parisc 2.0 64 bit | -- | ?? | -
hpux-ia64-cc | -- | HP-UX | -- | IA64 32 bit | -- | ?? | -
hpux64-ia64-cc | -- | HP-UX | -- | IA64 64 bit | -- | ?? | -
hpux-ia64-gcc | -- | HP-UX | -- | IA64 32 bit | -- | gcc | -
hpux64-ia64-gcc | -- | HP-UX | -- | IA64 64 bit | -- | gcc | -
MPE/iX-gcc | -- | MPE/iX | -- | parisc? | -- | gcc | -
tru64-alpha-gcc | -- | Tru64 | -- | alpha | -- | gcc | -
tru64-alpha-cc | -- | Tru64 | -- | alpha | -- | ?? | -
linux-ppc | -- | Linux | -- | ppc32 | -- | gcc | -
linux-ppc64 | -- | Linux | -- | ppc64 big endian | -- | gcc | -
linux-ppc64le | -- | Linux | -- | ppc64 little endian | -- | gcc | -
linux-armv4 | -- | Linux | -- | armv4 | -- | gcc | -
linux-arm64ilp32 | -- | Linux | -- | aarch64-ilp32 | -- | gcc | -
linux-mips32 | -- | Linux | -- | mips32 o32 | -- | gcc | -
linux-mips64 | -- | Linux | -- | mips64 n32 | -- | gcc | -
linux64-mips64 | -- | Linux | -- | mips64 64 bit | -- | gcc | -
linux64-riscv64 | -- | Linux | -- | riscv64 | -- | gcc | -
linux-x86-clang | -- | Linux | -- | x86 | -- | clang | -
linux-x86_64-clang | -- | Linux | -- | x86_64 | -- | clang | -
linux-x32 | -- | Linux | -- | x86_64 x32 | -- | gcc | -
linux-ia64 | -- | Linux | -- | ia64 | -- | gcc | -
linux32-s390x | -- | Linux | -- | s390x 31 bit | -- | gcc | -
linux-sparcv8 | -- | Linux | -- | sparc v8 | -- | gcc | -
linux-sparcv9 | -- | Linux | -- | sparc v9 32 bit | -- | gcc | -
linux64-sparcv9 | -- | Linux | -- | sparc v9 64 bit | -- | gcc | -
linux-alpha-gcc | -- | Linux | -- | alpha | -- | gcc | -
linux-c64xplus | -- | Linux | -- | c64xplus | -- | gcc | -
linux-c64xplus | -- | Linux | -- | c64xplus | -- | gcc | -
BSD-x86 | -- | FreeBSD / OpenBSD / NetBSD / ? | -- | x86 a.out | -- | ?? | -
BSD-x86-elf | -- | FreeBSD / OpenBSD / NetBSD / ? | -- | x86 elf | -- | ?? | -
BSD-sparcv8 | -- | ? | -- | Sparc v8 | -- | ?? | -
BSD-sparcv9 | -- | ? | -- | Sparc v9 32 bit | -- | ?? | -
BSD-ia64 | -- | ? | -- | IA64 | -- | ?? | -
BSD-x86_64 | -- | OpenBSD / NetBSD / ? | -- | x86_64 | -- | ?? | -
bsdi-elf-gcc | -- | BSDi | -- | ?? | -- | ?? | -
unixware-2.0 | -- | unixware 2.0 | -- | ?? | -- | ?? | -
unixware-2.1 | -- | unixware 2.1 | -- | ?? | -- | ?? | -
unixware-7 | -- | unixware 7 | -- | x86 | -- | ?? | -
unixware-7-gcc | -- | unixware 7 | -- | x86 | -- | gcc | -
sco5-cc | -- | Open Server 5? | -- | x86 | -- | ?? | -
sco5-gcc | -- | Open Server 5? | -- | x86 | -- | gcc | -
aix-gcc | -- | AIX | -- | ppc32 | -- | gcc | -
aix64-gcc | -- | AIX | -- | ppc64 | -- | gcc | -
aix64-gcc-as | -- | AIX | -- | ppc64 | -- | gcc with as? | -
aix-cc | -- | AIX | -- | ppc32 | -- | ?? | -
aix64-cc | -- | AIX | -- | ppc64 | -- | ?? | -
BS2000-OSD | -- | BS2000/OSD | -- | ?? | -- | ?? | -
VC-WIN64I | -- | Windows XP / Windows Server 2008? | -- | ia64 | -- | Visual C | -
VC-WIN32 | -- | Windows 10 | -- | x86 | -- | Visual C | -
VC-CE | -- | Windows CE | -- | x86 / armv4? | -- | Visual C | -
VC-WIN64A-masm | -- | Windows 10 | -- | x86 | -- | Visual C with masm | -
mingw | -- | Windows 10? | -- | x86 | -- | gcc | -
UEFI-x86 | -- | UEFI | -- | x86 | -- | ?? | -
UEFI-x86_64 | -- | UEFI | -- | x86_64 | -- | ?? | -
UWIN | -- | UWIN | -- | x86 | -- | ? | -
Cygwin-x86 | -- | Windows 10 | -- | x86 | -- | gcc | -
Cygwin-x86_64 | -- | Windows 10 | -- | x86_64 | -- | gcc | -
darwin-ppc | -- | MacOS? | -- | ppc32 | -- | ? | -
darwin64-ppc | -- | MacOS? | -- | ppc64 | -- | ? | -
darwin-i386 | -- | MacOS? | -- | x86 | -- | ? | -
darwin-i386 | -- | MacOS? | -- | x86 | -- | ? | -
hurd-x86 | -- | Hurd | -- | x86 | -- | gcc | -
vxworks-ppc60x | -- | vxworks | -- | ppc32 | -- | ? | -
vxworks-ppcgen | -- | vxworks | -- | ppc32 | -- | ? | -
vxworks-ppc405 | -- | vxworks | -- | ppc32 405 | -- | ? | -
vxworks-ppc750 | -- | vxworks | -- | ppc32 750 | -- | ? | -
vxworks-ppc860 | -- | vxworks | -- | ppc32 860 | -- | ? | -
vxworks-simlinux | -- | vxworks | -- | x86? | -- | ? | -
vxworks-mips | -- | vxworks | -- | mips32 o32 | -- | ? | -
uClinux-dist | -- | uClinux | -- | ? | -- | gcc | -
uClinux-dist64 | -- | uClinux | -- | ? | -- | gcc | -
android-arm | -- | android | -- | armv4 | -- | ? | -
android-arm64 | -- | android | -- | aarch64 | -- | ? | -
android-mips | -- | android | -- | mips32 o32 | -- | ? | -
android-mips64 | -- | android | -- | mips64 | -- | ? | -
android-x86 | -- | android | -- | x86 | -- | ? | -
android-x86_64 | -- | android | -- | x86_64 | -- | ? | -
ios-xcrun | -- | iOS | -- | armv7 | -- | ? | -
ios64-xcrun | -- | iOS | -- | aarch64 | -- | ? | -
iossimulator-xcrun | -- | iOS | -- | ? | -- | ? | -
iphoneos-cross | -- | iphoneos? | -- | ? | -- | ? | -
ios-cross | -- | iOS | -- | armv7 | -- | ? | -
ios64-cross | -- | iOS | -- | aarch64 | -- | ? | -
BC-32 | -- | Windows 10? | -- | x86 | -- | Borland C, C++ Builder? | -
DJGPP | -- | DOS? | -- | x86? | -- | djgpp | -
haiku-x86 | -- | Haiku | -- | x86 | -- | gcc? | -
haiku-x86_64 | -- | Haiku | -- | x86_64 | -- | gcc? | -
nonstop-nsx_g | -- | NonStop Guardian | -- | x86_64 ilp32 | -- | ? | -
nonstop-nsx_g_tandem | -- | NonStop Guardian | -- | x86_64 ilp32 | -- | ? | -
nonstop-nse_g | -- | NonStop Guardian | -- | ia64 ipl32 | -- | ? | -
nonstop-nse_g_tandem | -- | NonStop Guardian | -- | ia64 ipl32 | -- | ? | -
OS390-Unix | -- | zOS | -- | s390 | -- | ? | -
VC-WIN32-ONECORE | -- | Windows OneCore | -- | x86 | -- | Visual C | -
VC-WIN64A-ONECORE | -- | Windows OneCore | -- | x86_64 | -- | Visual C | -
VC-WIN32-ARM | -- | Windows OneCore | -- | arm | -- | Visual C | -
VC-WIN64-ARM | -- | Windows OneCore | -- | aarch64 | -- | Visual C | -
VC-WIN32-UWP | -- | Windows UWP | -- | x86 | -- | Visual C | -
VC-WIN64A-UWP | -- | Windows UWP | -- | x86_64 | -- | Visual C | -
VC-ARM-UWP | -- | Windows UWP | -- | arm | -- | Visual C | -
VC-ARM64-UWP | -- | Windows UWP | -- | aarch64 | -- | Visual C | -