Log in

Previous Entry | Next Entry

January 2015 GNU Toolchain Update

Hi Guys,

  There have been three toolchain component releases this month:

  * GDB 7.8.2 has been released.

    This is mainly a bug-fix release.  A branch for GDB 7.9 has been created, so a new major release can be expected soon.

  * BINUTILS 2.25 has been released.

    Important changes in this release include:

    * The strings program now defaults to displaying text from any part of the executable, not just its data sections.  This means that, by default, strings does not need to use the BFD library to scan the binary, and so it is not exposed to bug that might be present in that library.  The old behaviour - of only showing strings from inside non-code sections, can be enabled via the --data command line option.

      The strings program also now has a --include-all-whitespace command line option, so that newlines carriage returns are also considered to be part of a string.

    * The objcopy program gains a --dump-section <name>=<file> command line option to place a raw copy of the contents of the specified section into the specified file.

    * Support has been added for the Andes NDS32 and AVR Tiny microcontrollers.  In addition the openrisc and or32 targets have been replaced by the or1k target.

     * The ARM port to gas can now accept the assembler output from the CodeComposer Studio tool.

     * PE binaries now once again contain real timestamps by default, although this can be disabled via the --no-insert-timestamps.  Timestamps are needed because some other (non-GNU) tools cannot handle PE binaries without them.

     * COFF based targets now have support for the --build-id command line option to add a unique signature to a binary.

  * NEWLIB 2.2.0 has been released.

    Changes in this version include:
    * Multiple functional/performance enhancements for arm/aarch64.

    * New nano formatted I/O support for small memory targets.

    * Adds a reentrant safe sorting routine: qsort_r.

    * Additional long double math routines.

    * Adds the itoa/utoa/ltoa integer to string conversion routines.
    * Restructuring of gmtime/localtime so tz functions are only linked by localtime.

    * Unlocked I/O functions.

  In the development versions of the tools there has also been a lot  of changes too:

  * The --compress-debug-sections is now turned on for Linux/x86 by default in the binutils.

  * GCC has a new command line option: -fopenacc

    This enables handling of the OpenACC #pragma acc.  This makes the compiler generate accelerated code according to the OpenACC Application Programming Interface v2.0 (http://www.openacc.org/).  This is an experimental feature, incomplete, and subject to change in future versions of GCC. See https://gcc.gnu.org/wiki/OpenACC for more information.

  * The GCC command line option -Warray-bounds can now take a numeric argument, as in -Warray-bounds=[1,2].  The default value is 1, which matches the old behaviour.  If a value of 2 is used then warnings will also be generated for out of bounds access for arrays at the end of a struct and for arrays accessed through pointers.  This warning level may give a larger number of false positives which is why it is not enabled by default.
  * The GCC stack protection feature (-fstack-protector) can now be enabled only for specifically attributed functions via the use of the -fstack-protector-explicit command line option and the stack_protect function attribute.

  * G++ has a new command line option: -fsized-deallocation

    This is part of the C++14 specification.  It enables the built-in declaration of the global functions:

     void operator delete (void *, std::size_t) noexcept;
      void operator delete[] (void *, std::size_t) noexcept;

    which provides for faster deallocation of fixed size objects.  The new command line option: -Wsized-deallocation can be enabled to warn about places that might want to make use of this feature.

  * G++ also has a new warning option: -Wc++14-compat

    This warns about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014.  This warning is enabled by -Wall.

  * The ARM port now supports the XGene 1 core.



Deep Thought

Latest Month

November 2015
Powered by LiveJournal.com
Designed by chasethestars