The one moved are supported since a long time/older compiler versions
and from both Clang and GCC, so they can be safely moved.
Also, not having to check them, CMake configuration is a bit faster.
This linker flag, if supported, removes unused sections from the
executable. Unused sections are those that do not contain public
symbols (therefore `-fvisibility=hidden`) and are not referenced by
other sections.
This shrinks the code size by 4%:
text data bss dec hex filename
4069421 285904 1427713 5783038 583dfe Debug/bin-native64/SphereSvrX64_release
3918858 284456 1427713 5631027 55ec33 Debug/bin-native64/SphereSvrX64_release