Use GCC6 for all POWER8 platforms
(everything but Witherspoon)
We bring in P8 Hostboot patches from
https://github.com/open-power/hostboot/pull/62
as we wait for Hostboot development team to merge them.
Fixes: https://github.com/open-power/hostboot/issues/69
Fixes: https://github.com/open-power/hostboot/issues/61
Fixes: https://github.com/open-power/op-build/issues/355
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
diff --git a/openpower/package/hostboot/p8Patches/hostboot-0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch b/openpower/package/hostboot/p8Patches/hostboot-0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch
new file mode 100644
index 0000000..73adecc
--- /dev/null
+++ b/openpower/package/hostboot/p8Patches/hostboot-0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch
@@ -0,0 +1,90 @@
+From b315c53f2803b84e35fe646aa82702b82e8ecd98 Mon Sep 17 00:00:00 2001
+From: Stewart Smith <stewart@linux.vnet.ibm.com>
+Date: Thu, 25 Aug 2016 20:07:58 +1000
+Subject: [PATCH 08/10] Fix compiler can assume address will never be NULL
+ error with GCC6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+So, it turns out that relying on the address of something passed by
+reference being able to be NULL isn't exactly a good idea, or remotely
+obvious code. So, instead, do the sane thing and pass a pointer and
+check it.
+
+../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:
+In constructor ‘PRDF::AttnTypeRegister::AttnTypeRegister(PRDF::SCAN_COMM_REGISTE
+R_CLASS&, PRDF::SCAN_COMM_REGISTER_CLASS&, PRDF::SCAN_COMM_REGISTER_CLASS&, PRDF
+::SCAN_COMM_REGISTER_CLASS&)’:
+../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
+42:21: error: the compiler can assume that the address of ‘i_check’ will never b
+e NULL [-Werror=address]
+ iv_check( NULL == &i_check ? &cv_null : &i_check),
+ ~~^~~~~~~~~~~
+../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
+43:21: error: the compiler can assume that the address of ‘i_recov’ will never b
+e NULL [-Werror=address]
+ iv_recov( NULL == &i_recov ? &cv_null : &i_recov),
+ ~~^~~~~~~~~~~
+../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
+44:22: error: the compiler can assume that the address of ‘i_special’ will never
+ be NULL [-Werror=address]
+ iv_special(NULL == &i_special ? &cv_null : &i_special),
+ ~~^~~~~~~~~~~~~
+../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
+45:22: error: the compiler can assume that the address of ‘i_proccs’ will never
+be NULL [-Werror=address]
+ iv_proccs( NULL == &i_proccs ? &cv_null : &i_proccs),
+ ~~^~~~~~~~~~~~
+
+Change-Id: Iecd8636da67aac24f64f73fd82b1f7ccbfced900
+Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
+---
+ .../common/framework/register/prdfOperatorRegister.H | 16 ++++++++--------
+ .../prdf/common/framework/register/prdfScanFacility.C | 2 +-
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
+index b0513e4..a26a76e 100755
+--- a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
++++ b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
+@@ -434,15 +434,15 @@ class AttnTypeRegister : public SCAN_COMM_REGISTER_CLASS
+ iv_bs = &iv_iBS;
+ }
+
+- AttnTypeRegister( SCAN_COMM_REGISTER_CLASS & i_check,
+- SCAN_COMM_REGISTER_CLASS & i_recov,
+- SCAN_COMM_REGISTER_CLASS & i_special,
+- SCAN_COMM_REGISTER_CLASS & i_proccs ) :
++ AttnTypeRegister( SCAN_COMM_REGISTER_CLASS *i_check,
++ SCAN_COMM_REGISTER_CLASS *i_recov,
++ SCAN_COMM_REGISTER_CLASS *i_special,
++ SCAN_COMM_REGISTER_CLASS *i_proccs ) :
+ SCAN_COMM_REGISTER_CLASS( ),
+- iv_check( NULL == &i_check ? &cv_null : &i_check),
+- iv_recov( NULL == &i_recov ? &cv_null : &i_recov),
+- iv_special(NULL == &i_special ? &cv_null : &i_special),
+- iv_proccs( NULL == &i_proccs ? &cv_null : &i_proccs),
++ iv_check( NULL == i_check ? &cv_null : i_check),
++ iv_recov( NULL == i_recov ? &cv_null : i_recov),
++ iv_special(NULL == i_special ? &cv_null : i_special),
++ iv_proccs( NULL == i_proccs ? &cv_null : i_proccs),
+ iv_iBS(0) // will fully initialize this inside ctor.
+ {
+ uint32_t l_length = 1024;
+diff --git a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
+index 0d379cf..cad5ce8 100755
+--- a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
++++ b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
+@@ -166,7 +166,7 @@ SCAN_COMM_REGISTER_CLASS & ScanFacility::GetAttnTypeRegister(
+ SCAN_COMM_REGISTER_CLASS * i_special,
+ SCAN_COMM_REGISTER_CLASS * i_proccs )
+ {
+- AttnTypeRegister r(*i_check, *i_recov, *i_special, *i_proccs);
++ AttnTypeRegister r(i_check, i_recov, i_special, i_proccs);
+ return iv_attnRegFw.get(r);
+ }
+
+--
+2.7.4
+