You are viewing nickclifton

Previous Entry | Next Entry

November 2013 GNU Toolchain Update

Deep Thought
Hi Guys,

  There is lots to report this month:

  * A port to the Andes NDS32 architecture has been accepted into GCC.  Unfortunately the accompanying binutils port has yet to be accepted.

  * GCC now has a pointer checking system to detect out of bounds pointer references.  Enabled via the new -fcheck-pointer-bounds command line option it adds extra code to compiled functions when a special set of built-in functions are used.  Here is a small  example:
  
    void *
      __wrap_malloc (size_t n)
      {
         void * p = (void *) __real_malloc (n);
         return __builtin___bnd_set_ptr_bounds (p, n);
      }


    This tells GCC that the returned pointer refers to memory between p and p + n - 1.  (If pointer checking is not enable, the built-in function still works, it just returns its first argument).

    There is a whole set of these built-in functions to cover various different situations.  This has the advantage that the boundary checking code is only added when a pointer affected by one of these built-ins is used.

    In related news support for the old mudflap pointer boundary checker has now been removed from GCC.

  * GCC has a new warning option  -Wdate-time This generates warning when the macros __TIME__, __DATE__ or __TIMESTAMP__ are encountered in the source code as they might prevent bit-wise-identical reproducible compilations.

  * A new GCC command line optimization option -flive-range-shrinkage attempts to improve register usage by reducing the range over which a particular value or variable has to be held in a register.  This is usually helpful on fast processors with small or moderate size register sets.

  * Another new GCC command line option -fisolate-erroneous-paths detects pieces of code which trigger erroneous or undefined behaviour.  The optimization then isolates these regions from the main control flow and replaces them with a trap.

  * The RS6000/PowerPC port's -mabi= command line option can accept two new parameters:

    -mabi=elfv1
      -mabi=elfv2


    These control the selection of the old ELFv1 ABI and the new ELFv2 ABI.  The v1 ABI is the default for big-endian PowerPC targets and the v2 ABI is the default for little-endian PowerPC targets.

Cheers
  Nick

Profile

Deep Thought
nickclifton
nickclifton

Latest Month

July 2014
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
Powered by LiveJournal.com
Designed by chasethestars