Hi Guys,Here are the highlights of this month's changes in the GNU Toolchain:* The linker now acceptsandcommand line options. Theoption preserves the current state of the flags which govern the input file handling, such asand so on. (The full list is in the linker documentation). The idea is that components of a build system can safely insert options into the linker command line without having to be aware of what options may have previously been added. So for example a tool could add:at any point in the linker command line and be sure that it will work as expected, even if the rest of the command line was using* The x86/PE linker supports a new option:which marks the binary being generated as being compatible with 64-bit address space layout randomization (ASLR).* The compiler driver program (gcc or g++) will now pass:Directly on to the linker. This allows slightly easier access to these linker command line options.* The compiler now supports some new warning options:Which warns about boolean expressions that are compared with an integer value different from true/false. For example:This warns about features used in the program that are present in the ISO C99 standard but not present in ISO C90 standard.Similarly this warns about the use of ISO C11 features that are not present in ISO C99.This disables warnings about positional initialization of structs that requiring designated initializers. (See below).This warns about suspicious calls to memset where the third argument is a literal zero and the second is not. For example:where the second and third arguments are the wrong way around.This warns about types with virtual methods where code quality would be improved if the type was declared with C++11 final specifier, or, if possible, declared in anonymous namespace. This allows GCC to devritualize more aggressively the polymorphic calls. This warning is more effective with link time optimization, where the information about the class hierarchy graph is more complete.Similarly this warns about virtual methods where code quality would be improved if the method was declared with C++11 final specifier, or, if possible, its type was declared in the anonymous namespace or with final specifier.* The compiler now supports a new type attribute called:This attribute may only be applied to structure types. It indicates that any initialization of an object of this type must use designated initializers:Rather than positional initializers:The intent of this attribute is to allow the programmer to indicate that a structure's layout may change, and that therefore relying on positional initialization will result in future breakage.Attempts to use positional initialization on a structure annotated with this new attribute will generate a compile time warning unless the newcommand line option is used.* The compiler's sanitizer has two new features:Which enables AddressSanitizer for Linux kernel. Seefor more details.Which enables checking of alignment of pointers when they are dereferenced, or when a reference is bound to insufficiently aligned target, or when a method or constructor is invoked on insufficiently aligned object.* The C and C++ compilers have a new optimization which is enabled automatically at -O2 and above:This optimizes various standard C string functions (e.g. strlen, strchr or strcpy) into faster alternatives, where this is possible.CheersNick