This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

June 2015 GNU Toolchain Update


Hi Guys,

  In this month's news we have:

  * GCC now supports a "noplt" function attribute.  This specifies
    that the annotated function should not be called via the PLT
    mechanism.

  * GCC now supports a "target (<option>)" function attribute to
    enable target specific options on individual functions.  The ARM
    port now uses this mechanism to allow programmers to individually
    specify whether a function should use ARM or THUMB instructions.
    For example:

      int foo __attribute__((target("thumb")));

    Any functions inlined into the attributed function will inherit
    that function's attributes.

  * GCC now supports attributes on enums values, although only one
    such attribute is currently available:

      enum E {
        oldval __attribute__((deprecated)),
        newval
      };

    The deprecated attribute results in a warning if the enumerator
    value is used anywhere in the source file.  This is useful when
    identifying enumerators that are expected to be removed in a
    future version of a program.


  * GCC now supports a new warning option: -Wlto-type-mismatch

    During the link-time optimization the compiler will issue warnings
    about type mismatches between duplicate global declarations found
    in different compilation units.  This option is enabled by default
    when LTO optimization is being performed.


  * The ARM port of GCC now recognises the ARMv8,1 architecture
    extensions including the Large System Extension instructions,
    Privileged Access Never, Limited Ordering Regions and Advanced
    SIMD instructions.
    

  * In GDB support for process record-replay and reverse debugging on
    AArch64 targets has been added.

  * Also in GDB support for Sun's version of the "stabs" debug file
    format has been removed. 


  * The linker has a new command line option: -print-memory-usage

    This makes the linker print out the used size and total size of
    each memory region specified by the link script and used by the
    executable, which can be helpful to programmers trying to squeeze
    every last byte out of a particularly small region.  The output
    has a fixed format which is human readable and machine parsable.
    For example:
    
      Memory region   Used Size  Region Size  %age Used
             ROM:        256 KB         1 MB     25.00%
             RAM:          32 B         2 GB      0.00%


  * The assembler and linker now support the compact exception handler
    sections as used by MIPS toolchains.  The new gas pseudo ops:
    
      .cfi_personality_id  <id>
      .cfi_fde_data        [<opcode1> ,...]
      .cfi_inline_lsda     [<align>]

    Are provided to help specify the contents of this new type of
    section.


  * The assembler has a new option to enable section name substitution:

       --sectname-subst  

    If enabled then section names may include the "%S" sequence which
    will be substituted for the name of the current section.  For
    example:
   
      .macro gen_exceptions     
      .section %S.exception
      [...]
      .previous
      .endm

      .text
      [...]
      gen_exceptions
      [...]
      .section .init
      [...]
      gen_exceptions
      [...]

    This will create four sections: .text, .text.exception, .init and
    .init.exception.  In the future other substitution sequences in
    addition to %S may be provided.


  * Support for the ARMv8.1 architecture has been added to the AArch64
    and ARM ports.  This includes support for the Adv.SIMD, LOR and
    PAN architecture extensions.

Cheers
  Nick


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]