GCC 11 compiler recruitment release

After the year of development of Published Release free set of compilers gcc 11.1 , the first significant release in the new GCC 11.x branch. In accordance with New scheme Numbering issues, version 11.0 was used in the development process, and shortly before the release of GCC 11.1 was already branched GCC 12.0, on the basis of which the following significant release of GCC 12.1 will be formed.

GCC 11.1 is notable for the transition to use the default DWARF 5 debug file format, the default C ++ 17 standard (“-std = GNU ++ 17”), a significant improvement in C ++ 20 standard support, experimental support C + +23, Improvements associated with the future SI language standard (C2X), new performance optimizations.

Basic Changes :

  • Default mode for C ++ language is switched to using the C ++ 17 standard (-std = GNU ++ 17) instead of the previously proposed C ++ 14. It is possible to selectively disable the new C ++ 17 behavior when processing templates in which other templates are used as a parameter (-fno-new-ttp-matching).
  • Added support for hardware acceleration of the AddressSanitizer tool, which allows you to determine the facts of accessing the released memory areas, go beyond the limits of the allocated buffer and some other types of errors when working with memory. The hardware acceleration is still available for the AARCH64 architecture only and is still focused on using the Linux kernel compilation. To turn on the hardware acceleration AddressSanitizer, when assembling the user space components, the flag “-fsanitize = hwaddress” has been added, and for the kernel – “-fsanitize = kernel-hwaddress”.
  • When generating debug information by default, DWARF 5 format is involved, compared with the past versions allowing you to generate more compact debugging data by 25%. For full support for DWARF 5, Binutils requires at least 2.35.2. In debugging tools, DWARF 5 format is maintained from GDB 8.0, Valgrind 3.17.0, Elfutils 0.172 and DWZ 0.14. To generate debug files using other DWARF versions, you can use the options “-GDWARF-2”, “-GDWARF-3” and “-GDWARF-4”.
  • increased compilers that can be used to build GCC. The compiler should now support the C ++ 11 standard (previously required C ++ 98), i.e. If the GCC 3.4 is enough to build GCC 10, for the GCC 11 assembly is now required at least GCC 4.8.
  • changed Name and placement of files for saving dumps, temporary files and additional Information required for LTO optimization. Such files are now always saved in the current directory if the path is clearly not changed through the parameters “-DumpBase”, “-Dumpdir” and “-save-temps = *”.
/Media reports.