Difference between revisions of "Compiling ScummVM/C++11 Readiness"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Add PS3 and fix entry for AmigaOS)
(→‎Results: ScummVM 2.9.0 now uses GCC 7.5.0 on OSXPPC. Not the best place to document this, but…)
 
(14 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== How to test ==
== How to test ==


Run <code>./configure --enable-c++11 --enable-test-c++11</code>.
Run <code>./configure --enable-test-c++11</code>.
 
This option enables the inclusion of file <code>base/test_new_standards.cpp</code> where we have tests for the desired important C++11 standard features (thanks to ZvikaZ).


== Results ==
== Results ==
{| width=75% class="wikitable sortable" style="font-size: smaller;"
{| width=75% class="wikitable sortable" style="font-size: smaller;"
|-
|-
!Platform!!Class Enum!!Final Class!!Final Function!!Variadic!!Type Aliases!!Init Lists1!!Init Lists 2!!Ranged loops!!Lambdas!!Space in nested templates!!Alt functions syntax!!Static Init!!Explicit Conversion!!Move Semantics!!Deleted Functions
!Platform!!Class Enum!!Final Class!!Final Function!!Variadic!!Type Aliases!!Init Lists1!!Init Lists 2!!Auto type!!Ranged loops!!Lambdas!!Variadic Templates!!Space in nested templates!!Type aliases!!Alt functions syntax!!Non Static Init!!Explicit Conversion!!Move Semantics!!Deleted Functions!!Unicode string literal
|-
|3DS gcc 10.1.0 (arm) <ref name=dockerized-bb>tested using latest toolchain and using [https://github.com/lephilousophe/dockerized-bb/ dockerized-bb]. Buildbot still uses an old toolchain, which was not tested.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|AmigaOS gcc 8.3.0 <ref>--enable-c++11 breaks compilation in base/commandLine.cpp</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|Android NDK 21.0.6113669 (clang 9.0.8) all platforms||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|Debian Buster gcc 8.3.0||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|Dreamcast gcc 4.6.3||{{yes}}||{{no}}||{{no}}||{{yes}}||{{no}}||{{yes}}||{{yes}}||{{yes}}||{{no}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{no}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|Dreamcast gcc 4.9.4||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|DS gcc 10.1.0 (arm) <ref name=dockerized-bb />||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|iOS3 clang 3.7.1||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}<ref name=InitListReplacement>It only works with the std::initializer_list replacement.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|iOS7 clang 9.0 (iOS 8.0)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|macOS gcc 4.0.1 (PPC, 10.4)||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}|| -
|-
|macOS gcc 4.8.5 (MacPorts gcc48 4.8.5_6) (PPC, 10.4)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}
|-
|-
|3DS gcc 9.1.0 (arm) <ref name=dockerized-bb>tested using latest toolchain and using [https://github.com/lephilousophe/dockerized-bb/ dockerized-bb]. Buildbot still uses an old toolchain, which was not tested.</ref><ref>--enable-c++11 breaks compilation in backends/midi/timidity.cpp with 'usleep' was not declared in this scope.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|macOS gcc 7.5.0 (MacPorts gcc7 7.5.0_2) (PPC, 10.4, used for ScummVM 2.9.0+ builds)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}
|-
|-
|AmigaOS gcc 8.3.0 <ref>--enable-c++11 breaks compilation in base/commandLine.cpp</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|macOS clang 6.0 (i386, 10.6)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}<ref name=InitListReplacement></ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}
|-
|-
|Android NDK 21.0.6113669 (clang 9.0.8) all platforms||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|macOS clang 9.0 (x86_64, 10.7)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}
|-
|-
|Debian Buster gcc 8.3.0||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|macOS clang 11.0||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}
|-
|-
|iOS3 clang 3.7.1||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}<ref name=InitListReplacement>It only works with the std::initializer_list replacement.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Mingw-w64/MXE (x86_64) release toolchain||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|iOS7 clang 9.0 (iOS 8.0)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Mingw-w64/MXE (i686) release toolchain||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|macOS gcc 4.0.1 (PPC, 10.4)||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}
|Mingw-w64 gcc 10.1.0 (x86_64)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|macOS clang 6.0 (i386, 10.6)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}<ref name=InitListReplacement></ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Mingw-w64 clang 10.0.0 (x86_64)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|macOS clang 9.0 (x86_64, 10.7)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Mingw Classic (i586) gcc 9.2.0||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|-
|-
|macOS clang 11.0||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|PS2 gcc 3.2.3||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}|| -
|-
|-
|Mingw-w64 gcc 10.1.0 (x86_64)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|PS3 gcc 7.2.0 <ref name=dockerized-bb />||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Mingw-w64 clang 10.0.0 (x86_64)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|PSP gcc 9.3.0 (mips) <ref name=dockerized-bb />||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|PS3 gcc 7.2.0 <ref name=dockerized-bb /><ref>--enable-c++11 breaks compilation in base/commandLine.cpp and PS3 SDK</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|RISC OS gcc 4.7.4||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|-
|-
|PSP gcc 4.9.3 (mips) <ref>--enable-c++11 breaks compilation in backends/platform/psp/default_display_client.cpp with error 'bzero' was not declared in this scope. C++11 support is not enabled by default. Compiler fails in default_display_client.cpp before reaching the c++11 test file.</ref>||?||?||?||?||?||?||?||?||?||?||?||?||?||?||?
|Switch gcc 10.1.0 (arm_64) <ref>10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Switch gcc 10.1.0 (arm_64) <ref>10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.</ref><ref>--enable-c++11 breaks compilation in backends/midi/timidity.cpp with multiple errors: 'u_char' was not declared in this scope, 'seqbuf' was not declared in this scope, 'usleep' was not declared in this scope.  C++11 support is enabled by default, though, so the flag is not needed.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Vita (psp2) gcc 9.1.0 (arm_32)||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Vita (psp2) gcc 9.1.0 (arm_32) <ref>--enable-c++11 breaks compilation in backends/fs/posix/posix-iostream.cpp with error 'fileno' was not declared in this scope. C++11 support is enabled by default, though, so the flag is not needed.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Visual Studio 2015 v140||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Visual Studio 2015 v140||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Visual Studio 2017 v141||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Visual Studio 2017 v141||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Visual Studio 2019 v142||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Visual Studio 2019 v142||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Wii/GameCube gcc 8.3.0 (PPC) <ref name=dockerized-bb />||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|-
|-
|Wii/GameCube gcc 8.3.0 (PPC) <ref name=dockerized-bb /><ref>--enable-c++11 breaks compilation in multiple places with 'usleep' was not declared in this scope.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}
|Wii/GameCube gcc 10.1.0 (PPC) <ref name=dockerized-bb /><ref>10.1.0 is currently broken due to __dso_handle being not available. Bug is being processed</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| -
|}
|}


==Notes==
==Notes==
<references />
<references />

Latest revision as of 20:54, 10 December 2024

How to test

Run ./configure --enable-test-c++11.

This option enables the inclusion of file base/test_new_standards.cpp where we have tests for the desired important C++11 standard features (thanks to ZvikaZ).

Results

Platform Class Enum Final Class Final Function Variadic Type Aliases Init Lists1 Init Lists 2 Auto type Ranged loops Lambdas Variadic Templates Space in nested templates Type aliases Alt functions syntax Non Static Init Explicit Conversion Move Semantics Deleted Functions Unicode string literal
3DS gcc 10.1.0 (arm) [1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
AmigaOS gcc 8.3.0 [2] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Android NDK 21.0.6113669 (clang 9.0.8) all platforms Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Debian Buster gcc 8.3.0 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Dreamcast gcc 4.6.3 Yes No No Yes No Yes Yes Yes No Yes Yes Yes Yes Yes No Yes Yes Yes -
Dreamcast gcc 4.9.4 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
DS gcc 10.1.0 (arm) [1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
iOS3 clang 3.7.1 Yes Yes Yes Yes Yes Yes[3] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
iOS7 clang 9.0 (iOS 8.0) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
macOS gcc 4.0.1 (PPC, 10.4) No No No No No No No No No No No No No No No No No No -
macOS gcc 4.8.5 (MacPorts gcc48 4.8.5_6) (PPC, 10.4) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
macOS gcc 7.5.0 (MacPorts gcc7 7.5.0_2) (PPC, 10.4, used for ScummVM 2.9.0+ builds) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
macOS clang 6.0 (i386, 10.6) Yes Yes Yes Yes Yes Yes[3] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
macOS clang 9.0 (x86_64, 10.7) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
macOS clang 11.0 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Mingw-w64/MXE (x86_64) release toolchain Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Mingw-w64/MXE (i686) release toolchain Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Mingw-w64 gcc 10.1.0 (x86_64) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Mingw-w64 clang 10.0.0 (x86_64) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Mingw Classic (i586) gcc 9.2.0 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
PS2 gcc 3.2.3 No No No No No No No No No No No No No No No No No No -
PS3 gcc 7.2.0 [1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
PSP gcc 9.3.0 (mips) [1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
RISC OS gcc 4.7.4 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Switch gcc 10.1.0 (arm_64) [4] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Vita (psp2) gcc 9.1.0 (arm_32) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Visual Studio 2015 v140 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Visual Studio 2017 v141 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Visual Studio 2019 v142 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Wii/GameCube gcc 8.3.0 (PPC) [1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -
Wii/GameCube gcc 10.1.0 (PPC) [1][5] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes -

Notes

  1. 1.0 1.1 1.2 1.3 1.4 1.5 tested using latest toolchain and using dockerized-bb. Buildbot still uses an old toolchain, which was not tested.
  2. --enable-c++11 breaks compilation in base/commandLine.cpp
  3. 3.0 3.1 It only works with the std::initializer_list replacement.
  4. 10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.
  5. 10.1.0 is currently broken due to __dso_handle being not available. Bug is being processed