Changelog:
ARM
Support for the ARMv5 and ARMv5E architectures has been deprecated (which have no known implementations) and will be removed in a future GCC release. Note that ARMv5T, ARMv5TE and ARMv5TEJ architectures remain supported. The values armv5 and armv5e of -march are thus deprecated.
The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point Extensions are now supported. They can be used by specifying the -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit Floating-Point Extensions introduce new half-precision data processing floating-point instructions.
The ARMv8-M architecture is now supported in its two architecture profiles: ARMv8-M Baseline and ARMv8-M Mainline with its DSP and Floating-Point Extensions. They can be used by specifying the -march=armv8-m.base, armv8-m.main or armv8-m.main+dsp options.
Support has been added for the following processors (GCC identifiers in parentheses): ARM Cortex-A73 (cortex-a73), ARM Cortex-M23 (cortex-m23) and ARM Cortex-M33 (cortex-m33). The GCC identifiers can be used as arguments to the -mcpu or -mtune options, for example: -mcpu=cortex-a73 or -mtune=cortex-m33.
A new command-line option -mpure-code has been added. It does not allow constant data to be placed in code sections. This option is only available when generating non-PIC code for ARMv7-M targets.
Support for the ACLE Coprocessor Intrinsics has been added. This enables the generation of coprocessor instructions through the use of intrinsics such as cdp, ldc, and others.
The configure option --with-multilib-list now accepts the value rmprofile to build multilib libraries for a range of embedded targets. See our installation instructions for details.
Changelog:
GAS:
Changes in 2.28:
* Add support for the RISC-V architecture.
* Add support for the ARM Cortex-M23 and Cortex-M33 processors.
LD:
Changes in 2.28:
* The EXCLUDE_FILE linker script construct can now be applied outside of the
section list in order for the exclusions to apply over all input sections in
the list.
* Add support for the RISC-V architecture.
* The command line option --no-eh-frame-hdr can now be used in ELF based
linkers to disable the automatic generation of .eh_frame_hdr sections.
* Add --in-implib=<infile> to the ARM linker to enable specifying a set of
Secure Gateway veneers that must exist in the output import library specified
by --out-implib=<outfile> and the address they must have. As such,
--in-implib is only supported in combination with --cmse-implib.
* Extended the --out-implib=<file> option, previously restricted to x86 PE
targets, to any ELF based target. This allows the generation of an import
library for an ELF executable, which can then be used by another application
to link against the executable.
BINUTILS:
Changes in 2.28:
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
----------------------------------
(From binutils/NEWS)
----------------------------------
Changes in 2.27:
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
Changes in 2.26:
* Add option to objcopy to insert new symbols into a file:
--add-symbol <name>=[<section>:]<value>[,<flags>]
* Add support for the ARC EM/HS, and ARC600/700 architectures.
* Extend objcopy --compress-debug-sections option to support
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
targets.
* Add --update-section option to objcopy.
* Add --output-separator option to strings.
Changes in 2.25:
* Add --data option to strings to only print strings in loadable, initialized
data sections. Change the default behaviour to be --all, but add a new
configure time option of --disable-default-strings-all to restore the old
default behaviour.
* Add --include-all-whitespace to strings.
* Add --dump-section option to objcopy.
* Add support for the Andes NDS32.
-------------------------------
*** Changes in avr-libc-2.0.0:
* General:
This is the first official release supporting AVR-GCC 5 (and above).
* Bugs fixed:
[#33698] Explicit use of RJMP/RCALL can cause "relocation truncated to fit:
R_AVR_13_PCREL" linker error
[#34719] Check for right build compiler
[#43011] Bug in struct definition of __reg_UCSR1C and __reg_UCSR0C in iom128rfa1.h
[#43044] memory sections require __attribute__ ((used))
[#43828] wdt.h: Wrong inline assembler arguments
[#44140] wdt_disable() macro clobbers prescaller bits
[#44279] incorrect USB_TRNCOMPL_vect_num in iox64a1u.h, iox128a1u.h
[#44515] Wrong build option '-mtiny-stack' instead of '-msp8'
[#44574] Place device-specific libraries in their multilib directory
[#44869] trunk doesn't work with gcc 5.1.0-RC-20150412
[#44977] Incorrect PORT_t and CRC_t definitions for ATxmega64A1U and 128A1U
[#45539] iom32u4.h defines reserved IO address (TIMSK2 (0x70), TIMSK5 (0x73) etc)
[#45551] Power-save mode not supported for ATtiny167
[#36303] Wrong hour for EU Summertime
[#44514] Wrong build option '-mtiny-stack' instead of '-msp8'
[no-id] TC_EVACT_FRQ_gc was misspelled as TC_EVACT_FRW_gc in some Xmega
header files
[no-id] LOCKBITS renamed to LOCK_BITS in Xmega header files as LOCKBITS
clashes with definition in lock.h. Added missed defines to ADC_CH_MUXPOS_enum.
Corrected pinmux values in ADC_CH_MUXNEG_enum.
[no-id] Fix typos and incorrect definitions in header files.
* New devices supported:
- ATA6616C, ATtiny441, ATtiny841, ATA6612C, ATA6617C, ATA664251, ATmega48PB,
ATmega88PB, ATA5702M322, ATA5782, ATA5790N, ATA5831, ATA6613C, ATA6614Q,
ATmega64HVE2, ATxmega8E5, ATxmega32C3, ATxmega32D3, ATxmega32E5
* Contributed Patches:
[no-id] save & restore rampd register in xmega wdt_enable and wdt_disable
[#8543] Fix multiple issues with device header files
[#8557] Proposing to remove device specific xmega macros from sleep.h
[#8563] Generalize power reduction macros in power.h by removing hard coded device names
[#8564] Add dwarf debug info alternative, build printf with debug info
[#8565] Compute and include device header file name from
__AVR_DEV_LIB_NAME__ as fallback in io.h.
[#8587] Move device specific functions to libdev.a
[#8590] WDT enable/disable for devices with CCP
[#8610] Remove eeprom function name mangling
[#8716] Enable setjmp/longjmp functions for AVR_TINY architecture
[#8718] Enable EEPROM memory map only for devices with EEPROM Data Memory
Mapping Enable bit (EEMAPEN)
[#8731] Header file for atmega644a
[#8728] Use __extension__ with long long
[#8556] Fix atexit.c
[#8810] Fix LFUSE_DEFAULT for tiny24a/44a
[#8902] Xmega's PROTECTED_WRITE is incorrect for IO registers whose address
is more than one byte
* Other changes:
Overhaul of doxygen documentation.
(pkgsrc-changes)
- Add comment lines to patch, picked from (old) cvs log
----------------------------
Version 6.3:
* Major changes compared to the previous version:
- Backout of
patch #8380: adds 500k 1M 2M baud to ser_posix.c
It broke the functionality in too many situations
(bug #46610/46483)
* New devices supported:
- ATmega48PB, ATmega88PB, ATmega168PB
- ATtiny28 (HVPP-only device)
* New programmers supported:
- Atmel mEDBG: xplainedmini, xplainedmini_dw
* Bugfixes
- bug #46610: Floating point exception (core dumped) arch linux rpi2
- bug #46483: version 6.2. ser_open(): can't set attributes for device
- patch #8435: Implementing mEDBG CMSIS-DAP protocol
- patch #8735: ATtiny28 support in avrdude.conf
- patch #8896: Silence cppcheck warnings in 6.2 code
- patch #8895: Spelling in 6.2 code
Version 6.2:
* Major changes compared to the previous version:
- The stk500v2 implementation now uses its own higher-level
command implementation for byte-wide access, rather than the
historic SPI_MULTI command where all the low-level ISP
implementation had to be assembled manually inside AVRDUDE. In
addition to the traditional STK500, this implementation is also
used by all the more modern Atmel tools (AVRISPmkII, JTAGICEmkII
in ISP mode, STK600 in ISP mode).
- The -B option can be suffixed with "Hz", "kHz", or "MHz", in
order to specify a bitclock frequency rather than period.
- Print part id after signature (patch #8440 )
- buspirate: Also support "cpufreq" extended parameter
in binary mode (patch #8504 )
- The "-P net:" syntax (forwarding of serial data over TCP) is now
also implemented for Win32 systems.
- Allow for arbitrary serial baudrates under Linux (OSX and *BSD
could already handle it).
* New devices supported:
- AT90PWM216 (bug #42310: New part description for AT90PWM216)
- ATmega32M1 (patch #7694 Add support for the atmega32m1)
* New programmers supported:
- ftdi_syncbb
+ uncompatino, ttl232r (FTDI TTL232R-5V with ICSP adapter)
(patch #8529 2 more ftdi_syncbb devices)
* Bugfixes
- bug #45727: Wrong atmega8u2 flash parameters
- bug #46020: Add TIAO TUMPA to the conf file.
- bug #46021: Please add read in the memory lock section of ATtiny85
- bug #42337 avrdude.conf updates for UM232H/CM232H
- bug #42056: double free or corruption triggered at exit
- bug #42158: Linux GPIO - Source Typo
- bug #42516 spelling-error-in-binary
- patch #8419 fix ftdi_syncbb hang with libftdi 1
- bug #43002 usbasp debug output typo
- patch #8511 Fix reset on FT245R
- bug #40142 Floating point exception on Ubuntu 10.04
- bug #22248: Read efuse error (partial fix)
- bug #42267: jtag3isp fails to read lock and fuse bytes directly
after changing lock byte
- bug #41561: AVRDUDE 6.0.1/USBasp doesn't write first bytes of
flash page
- bug #43078: AVRDUDE crashes after sucessfully reading/writing eeprom
- bug #43137: Writing and reading incorrect pages when using jtagicemkI
- bug #40870: config nitpick: ATtiny25/45/85 have 1 calibration byte not 2
- bug #42908: no external reset at JTAGICE3
- patch #8437: [PATCH] Serial-over-ethernet for Win32
- bug #44717: avrdude creates empty flash dump
* Internals:
- Removing exit calls from config parser
- bug #42662 clang warnings under FreeBSD 10.x
Changelog:
* The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98.
# ARM
Support for revisions of the ARM architecture prior to ARMv4t has been
deprecated and will be removed in a future GCC release. The -mcpu and
-mtune values that are deprecated are: arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, arm7d, arm7di, arm70, arm700,
arm700i, arm710, arm720, arm710c, arm7100, arm7500, arm7500fe, arm7m,
arm7dm, arm7dmi, arm8, arm810, strongarm, strongarm110, strongarm1100,
strongarm1110, fa526, fa626. The value arm7tdmi is still
supported. The values of -march that are deprecated are:
armv2,armv2a,armv3,armv3m,armv4.
The ARM port now supports target attributes and pragmas. Please refer
to the documentation for details of available attributes and pragmas
as well as usage instructions.
Support has been added for the following processors (GCC identifiers
in parentheses): ARM Cortex-A32 (cortex-a32), ARM Cortex-A35
(cortex-a35) and ARM Cortex-R8 (cortex-r8). The GCC identifiers can be
used as arguments to the -mcpu or -mtune options, for example:
-mcpu=cortex-a32 or -mtune=cortex-a35.
Significantly reduces build time and dependencies. doc option is
enabled by default so there's no change without explicit
configuration.
From i3enedek on Freenode.
Splitting this into a separate doc package is left as an exercise for
the reader.