There are lots of developments to report on this month:
* NEWLIB has a new configure option: --enable-newlib-nano-malloc
This enables the use of a small footprint memory allocator which can be useful on targets with a restricted amount of RAM available.
* NEWLIB has a new configure option: --disable-newlib-unbuf-stream-opt
This disables the unbuffered stream optimizations in newlib, which makes functions like fprintf() smaller and use less stack, but it also means that functions like ungetc() are slower and more complicated.
* The BFD library in the BINUTILS now has support for debug sections placed into alternative files via the use of the DWZ compression program.
* The MIPS port of the GAS assembler supports a new command line option: --relax-branch
This enables the automatic replacement of out of range branch instructions with longer alternatives. This feature is not enabled by default because the expander will not always choose an optimal branch instruction. If the assembler source code has been created by GCC then there is no need for this feature as GCC will have already selected the correct size branch instructions to use.
* GCC and G++ support a new command line option: -fcilkplus
This enables the use of Cilk Plus language extension features for C and C++. This was created by Intel as a way of adding support for data and code parallelism to C and C++ programs. It does this by adding new keywords and functions to the language that are designed to allow the compiler to take advantage of any parallel processing features available in the target architecture.
Detailed information about Cilk Plus can be found at http://www.cilkplus.org. The present implementation follows ABI version 0.9.
* The ARM port of GCC supports a new command line option: -mrestrict-it
This restricts the generation of IT blocks to conform to the rules of ARMv8. IT blocks can only contain a single 16-bit instruction from a select set of instructions. This option is on by default for ARMv8 Thumb mode.
* The I386 port of GCC supports two new variants for the -march, -mcpu and -mtune options: core-avx2 and slm
* The MIPS port of GCC supports a new command line option: -meva
This enables the use of the MIPS Enhanced Virtual Addressing instructions.
* The PowerPC port of GCC supports a whole set of new command line options:
Enables the use of the built-in functions that allow direct access to the cryptographic instructions that were added in version 2.07 of the PowerPC ISA.
Generates code that uses the instructions to move data between the general purpose registers and the vector/scalar registers that were added in version 2.07 of the PowerPC ISA.
Generates code that keeps some integer operations adjacent so that the instructions can be fused together on power8 and later processors.
Generates code that uses the vector and scalar instructions that were added in version 2.07 of the PowerPC ISA. Also enables the use of built-in functions that allow more direct access to the vector instructions.
Generates code that uses the quad word memory instructions. This option requires use of 64-bit mode.
* The SPARC port of GCC supports a new command line option: -mfix-ut699
Enables the documented workarounds for the floating-point errata of the UT699 processor.