История изменений
Исправление fsb4000, (текущая версия) :
https://blogs.msdn.microsoft.com/vcblog/2018/01/15/spectre-mitigations-in-msvc/
https://www.phoronix.com/scan.php?page=news_item&px=LLVM-Retpoline-Added
https://www.phoronix.com/scan.php?page=news_item&px=GCC-7.3-Released
Кстати сейчас решил проверить, и что-то пока у меня ничего не получилось:
clang60 hello.c -mretpoline
clang-6.0: error: unknown argument: '-mretpoline'
сlang60 -v
clang version 6.0.0 (tags/RELEASE_600/rc1)
Target: x86_64-portbld-freebsd11.1
Thread model: posix
InstalledDir: /usr/local/llvm60/bin
На Windows всё скомпилировалось
gcc version 7.3.0 (Rev1, Built by MSYS2 project)
На Linux Mint(Ubuntu 16.04)
gcc hello.c -mindirect-branch=thunk
gcc: error: unrecognized command line option ‘-mindirect-branch=thunk’
gcc -v
gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~16.04)
gcc-7 hello.c -mindirect-branch=thunk
gcc-7: error: unrecognized command line option ‘-mindirect-branch=thunk’; did you mean ‘-findirect-inlining’?
gcc-7 -v
gcc version 7.2.0 (Ubuntu 7.2.0-1ubuntu1~16.04)
Так что в gcc 7.3 работает. В остальных может заработает...
Исходная версия fsb4000, :