Hi,

Support for Power8 features and the new powerpc64le-linux-gnu target,
including the ELFv2 ABI, has been developed up till now on the
ibm/gcc-4_8-branch.  It was appropriate to use this separate branch
while the support was unstable, but this branch will not represent a
particularly good support mechanism for distributions going forward.
Most distros are set up to pull from the major release branches, and
having a separate branch for one target is quite inconvenient.  Also,
the ibm/gcc-4_8-branch's original purpose is to serve as the code base
for IBM's Advance Toolchain 7.0.  Over time the two purposes that the
branch currently serves will diverge and make things even more
complicated.

The code is now tested and stable enough that we are ready to backport
this support to the FSF 4.8 branch.  This patch series constitutes that
backport.

Almost all of the changes are specific to PowerPC portions of the code,
and for those patches I am only CCing David.  However, some of the
patches require changes to common code, and for these I will CC Richard
and Jakub.  Three of these are slightly unrelated but necessary patches,
one to enable decimal float ABS builtins, and two others to fix PR54537
and PR56843.  In addition there are patches that update configuration
files throughout for the new target, and some small changes in common
call support (call.c, expr.h, function.c) to support how the new ABI
handles calls.

I realize it is unusual to backport such a large amount of code, but we
have been asked by distribution partners to do this, and we feel it
makes good sense for long-term support.

I have tested the patch series by applying it to a clean FSF 4.8 branch
and comparing the test results against those from the IBM 4.8 branch on
three systems:
 * Power8, little endian (--mcpu=power8)
 * Power8, big endian (--mcpu=power8)
 * Power7, big endian (--mcpu=power7)

I also checked a recursive diff against the two source directories to
ensure that no patches were missed.

Thanks,
Bill

[ 1/26] diff-p8
[ 2/26] diff-p8-htm
[ 3/26] diff-le-config
[ 4/26] diff-le-libtool
[ 5/26] diff-le-tests
[ 6/26] diff-le-dfp
[ 7/26] diff-le-vector
[ 8/26] diff-abi-compat
[ 9/26] diff-abi-calls
[10/26] diff-abi-elfv2
[11/26] diff-abi-gotest
[12/26] diff-le-align
[13/26] diff-abi-libffi
[14/26] diff-dfp-abs
[15/26] diff-pr54537
[16/26] diff-pr56843
[17/26] diff-direct-move
[18/26] diff-le-config-2
[19/26] diff-quad-memory
[20/26] diff-lra
[21/26] diff-le-vector-api
[22/26] diff-mcall
[23/26] diff-pr60137-pr60203
[24/26] diff-reload
[25/26] diff-v1ti
[26/26] diff-trunk-missing






Reply via email to