bluegeneq-xlc: disable broken 64-bit __int128 until further notice
authorPhil Miller <mille121@illinois.edu>
Tue, 16 Oct 2012 22:49:33 +0000 (17:49 -0500)
committerPhil Miller <mille121@illinois.edu>
Tue, 16 Oct 2012 22:49:33 +0000 (17:49 -0500)
Per Jeff Hammond's message to the Vesta/Mira early users' discussion list
(below), the XL compilers don't properly generate a 128-bit type for
__int128. Pass the flag disabling this so that runtime and client code doesn't
accidentally stumble on it. This should be reverted once the compilers are
fixed.

> From: Jeff Hammond <jhammond@alcf.anl.gov>
> Date: Tue, 16 Oct 2012 17:37:26 -0500
> Message-ID: <CAGKz=u+syCU_wURrWxj6TEF-e9QK0nHHp6mORW5Z=M1JaEwPzg@mail.gmail.com>
> To: early-users-discuss <early-users-discuss@alcf.anl.gov>
> Subject: [Early-users-discuss] some known issues and their workarounds
> List-Archive: <https://lists.alcf.anl.gov/mailman/private/early-users-discuss>

> Here are some issues that we know about that are not going to be fixed
> immediately because they are either noncritical or require substantial
> effort to fix and will take some time to be resolved.  I am sending
> this for your convenience, particularly if you might get bitten by a
> silent error on them.

> 1) IBM XLC++ does not implement __int128 properly.  It is a 64b type
> rather than a 128b one.  If you have an automated build system that
> tests for this, please use "-qnokeyword=__int128".  I completely
> understand that one can say "but the whole point of an automated
> buildsystem is to not have to know the answers in advance."  To this,
> I respond, "With great computing power, comes great compiler
> responsibility." :-)

src/arch/mpi-bluegeneq/cc-xlc.sh
src/arch/pami-bluegeneq/cc-xlc.sh

index 5809d3692483fbf9a0a0af3a5c6e55db095e4557..3c7b633af9289ae5dcaf58b20191512c0b933708 100644 (file)
@@ -18,8 +18,8 @@ then
 fi
 
 XLC_F=$XLF_TYPICAL_PRE
-CMK_CC="$XLC_PRE/${XLC_POST}xlc_r -qcpluscmt -qhalt=e $BGQ_INC"
-CMK_CXX="$XLC_PRE/${XLC_POST}xlC_r -qhalt=e $BGQ_INC"
+CMK_CC="$XLC_PRE/${XLC_POST}xlc_r -qcpluscmt -qhalt=e $BGQ_INC -qnokeyword=__int128"
+CMK_CXX="$XLC_PRE/${XLC_POST}xlC_r -qhalt=e $BGQ_INC -qnokeyword=__int128"
 CMK_LD="$CMK_CC"
 CMK_LDXX="$CMK_CXX"
 CMK_CF77="$XLC_F/${XLC_POST}xlf_r "
index 429c88a85f29234666f4363aa22faa2ded43eee9..c2091b17721c46690a8e1ba6f2fc3ae4fb500ac2 100644 (file)
@@ -17,8 +17,8 @@ then
 fi
 
 XLC_F=$XLC_TYPICAL_PRE/xlf/bg/14.1
-CMK_CC="$XLC_PRE/${XLC_POST}xlc_r -qcpluscmt -qhalt=e $BGQ_INC"
-CMK_CXX="$XLC_PRE/${XLC_POST}xlC_r -qhalt=e $BGQ_INC"
+CMK_CC="$XLC_PRE/${XLC_POST}xlc_r -qcpluscmt -qhalt=e $BGQ_INC -qnokeyword=__int128"
+CMK_CXX="$XLC_PRE/${XLC_POST}xlC_r -qhalt=e $BGQ_INC -qnokeyword=__int128"
 CMK_LD="$CMK_CC"
 CMK_LDXX="$CMK_CXX"
 CMK_CF77="$XLC_F/${XLC_POST}xlf "