[ANNOUNCE] Linaro Binary Toolchain Release-Candidate GCC 6.4-2018.04-rc1

2018-03-28 Thread Mark Murray
The Linaro Binary Toolchain


The Linaro GCC 6.4-2018.04-rc1 Release-Candidate is now available.

The GCC 6 Release series has significant changes from the GCC 5
release series.  For an explanation of the changes please see the
following website:

https://gcc.gnu.org/gcc-6/changes.html

For help in porting to GCC 6 please see the following explanation:

https://gcc.gnu.org/gcc-6/porting_to.html

Download release-candidate packages from:

(sources) 
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04-rc1/
(binaries) 
http://snapshots.linaro.org/components/toolchain/binaries/6.4-2018.04-rc1/

Previous snapshots and release-candidates are at:

http://snapshots.linaro.org/components/toolchain/binaries/

Previous releases are at:

http://releases.linaro.org/components/toolchain/binaries/

A description of the arm and AArch64 target triples can be found at:


https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Triples

Host Requirements
==

Linaro officially supports the current and previous Ubuntu LTS
releases (as of the time of this release).  This does not mean that
the toolchain will not work on other/older Linux distributions.  See
the following for the life-time of Ubuntu LTS releases.

https://wiki.ubuntu.com/Releases

The host system upon which the cross-compiler will run requires a
minimum of glibc 2.14, because of API changes to glibc's memcpy API.

https://bugs.linaro.org/show_bug.cgi?id=1869

Package Versions
=
Linaro GCC 6.4-2018.04-rc1


http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04-rc1/

Linaro glibc 2.23 (linaro/2.23/master)

https://lists.gnu.org/archive/html/info-gnu/2016-02/msg9.html

Linaro newlib 2.4-2016.03 (linaro_2.4-branch)

https://sourceware.org/ml/newlib/2016/msg00370.html

Linaro binutils 2.27 (users/linaro/binutils-2_27-branch)


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_27

Linaro GDB 8.1 (gdb-8.1-branch)

https://lists.gnu.org/archive/html/info-gnu/2018-01/msg00016.html

Linaro toolchain package git branches are hosted at:

http://git.linaro.org/toolchain

NEWS for GCC 6 (as of Linaro GCC 6.4-2018.04-rc1)
==

* Previous MinGW hosted version of Linaro GCC C preprocessor failed to
  convert character set used for string, character constants, etc.  This
  is fixed in this release.

  Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.

  https://bugs.linaro.org/show_bug.cgi?id=3040

* The Linaro GCC 6.3-2017.05 snapshot added support for -mpure-code
  option to ARMv7-M and ARMv8-M targets.  This option ensures functions
  are put into sections that contain only code and no data.

* The GDB version was upgraded from GDB 8.0.

* Previous versions of the Linaro GCC 6 toolchain, when -static
  -E/—dynamic-list are passed to the linker, might create executables
  with dynamic sections which aren’t supported by run-time. This was
  exhibited in Perf Tools build system and has been fixed upstream and
  backported into Linaro Binutils 2.27 branch.

  Linaro bugzilla #2926 : Perf tools compiled statically for AArch64
  with Linaro release 6.1 and later ones was not statically linked.

  https://bugs.linaro.org/show_bug.cgi?id=2926

* The Linaro GCC 6.3-2017.03 snapshot fixed some ILP32 issues (TLS,
  exception handling, …) and these have been incorporated into this
  release.

* Previous versions of the Linaro GCC 6 toolchain were incorrectly
  generating floating-point code for soft-float Linux targets
  (arm-linux-gnueabi, and armeb-linux-gnueabi).  This escaped detection
  until recently because the soft-float targeted toolchains were
  configured to use general-purpose registers for passing floating-point
  values (which is what you would expect for soft-float toolchains) and
  the intra-routine floating-code was not noticed.

  The issue would only show up on targets that were run on hardware that
  truly didn't have floating-point hardware where the kernel did not
  trap and emulate floating-point routines.  This has been solved in
  Linaro GCC 6.3-2017.02-rc2 by configuring the toolchain (using
  --with-float=soft) to generate code without any floating-point
  instructions at all (-mfloat-abi=soft).

  https://review.linaro.org/#/c/16968/2

  This change should not break compatibility between existing binaries
  compiled with these toolchains since the float-point parameter passing
  ABI is still the same.

* A bug/regression in the compiler has been identified whereby the
  target function that is invoked when calling a "weak" function
  directly is the "strong" override, whereas when calling the function
  via a pointer the "weak" implementation is used.  This would be
  noticed as inconsistent function i

[ANNOUNCE] Linaro Binary Toolchain Release-Candidate GCC 7.3-2018.04-rc1

2018-03-28 Thread Mark Murray
[ANNOUNCE] Linaro Binary Toolchain Release-Candidate GCC 7.3-2018.04-rc1

The Linaro Binary Toolchain


The Linaro GCC 7.3-2018.04-rc1 Release-Candidate is now available.

*Notice*: GCC 7.1 ABI change for arm*-*-* targets, and note for
aarch64*-*-* targets

From GCC 7.1 release notes:

On ARM targets (arm*-*-*), a bug introduced in GCC 5 that affects
conformance to the procedure call standard (AAPCS) has been fixed. The
bug affects some C++ code where class objects are passed by value to
functions and could result in incorrect or inconsistent code being
generated. This is an ABI change. If the option -Wpsabi is enabled (on
by default) the compiler will emit a diagnostic note for code that
might be affected.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
GCC 5 and GCC 6 releases will continue to be affected by the ABI bug,
since changing ABI in these releases is not practical.  A warning
enabled by -Wpsabi option was added to GCC 5 and GCC 6 toolchains to
diagnose codebases that might be affected by the ABI bug.

Additionally, this same bug was present in AArch64 backend in
development versions of GCC 7.  There was no releases of GCC with this
bug present in AArch64 backend, therefore the release notes does not
mention this.  However, be advised that any code bases built with
development versions of GCC 7 need to be recompiled with released
version of GCC 7 to conform to ABI.

For an explanation of GCC 7 series changes please see the following
website:

https://gcc.gnu.org/gcc-7/changes.html
For help in porting to GCC 7 please see the following explanation:

https://gcc.gnu.org/gcc-7/porting_to.html

Download release-candidate packages from:

(sources) 
http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.3-2018.04-rc1/
(binaries) 
http://snapshots.linaro.org/components/toolchain/binaries/7.3-2018.04-rc1/

Previous snapshots and release-candidates are at:

http://snapshots.linaro.org/components/toolchain/binaries/

Previous releases are at:

http://releases.linaro.org/components/toolchain/binaries/

A description of the arm and AArch64 target triples can be found at:


https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Triples

Host Requirements
==

Linaro officially supports the current and previous Ubuntu LTS
releases (as of the time of this release).  This does not mean that
the toolchain will not work on other/older Linux distributions.  See
the following for the life-time of Ubuntu LTS releases.

https://wiki.ubuntu.com/Releases

The host system upon which the cross-compiler will run requires a
minimum of glibc 2.14, because of API changes to glibc's memcpy API.

https://bugs.linaro.org/show_bug.cgi?id=1869

Package Versions
=
Linaro GCC 7.3-2018.04-rc1


http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.3-2018.04-rc1/

FSF glibc 2.25 (release/2.25)

https://lists.gnu.org/archive/html/info-gnu/2017-02/msg2.html

Newlib 2.5 (newlib-2_5_0 tag)

https://sourceware.org/ml/newlib/2016/msg01191.html

GNU Binutils 2.28 (users/linaro/binutils-2_28-branch)


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_28

FSF GDB 8.0 (gdb-8.0-branch)

https://sourceware.org/ml/gdb-announce/2017/msg3.html

Linaro toolchain package git branches are hosted at:

http://git.linaro.org/toolchain

NEWS for GCC 7 (as of Linaro GCC 7.3-2018.04-rc1)
==

* The Linaro GCC 7.2-2017.09 snapshot added float and integer moves
  improvement for AArch64 targets.

* The Linaro GCC 7.1-2017.07 snapshot added prefetching configuration
  improvement for AArch64 targets and laid groundwork to enabling
  prefetching in more cases.

* Previous MinGW hosted version of Linaro GCC C preprocessor failed to
  convert character set used for string, character constants, etc.  This
  is fixed in this release.

  Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.

  https://bugs.linaro.org/show_bug.cgi?id=3040

* Performance related backports from the following snapshots have been
  included: Linaro GCC 7.1-2017.05, Linaro GCC 7.1-2017.06, Linaro GCC
  7.1-2017.07, Linaro GCC 7.2-2017.08, Linaro GCC 7.2-2017.09, and
  Linaro GCC 7.2-2017.10, Linaro GCC 7.2-2018.01 and Linaro GCC
  7.2-2018.03.

  See the following Linaro GCC snapshots:

  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.1-2017.05/
  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.1-2017.06/
  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.1-2017.07/
  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.2-2017.08/
  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.2-2017.09/
  http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.2-2017.