Rolf,
Thanks, your explanation makes sense (intersection of ILP32 and V9 ISA
yields V8+ ABI).
When updating the README, please also consider my posting regarding the
recommended flags for the Sun C compiler, which are causing warnings
from recent Sun compilers:
http://www.open-mpi.org/community/lists/devel/2010/08/8334.php
-Paul
Rolf vandeVaart wrote:
Paul, I believe you are right. I was referencing information from
here http://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html From this
site, I also read the following:
"With -mv8plus, GCC generates code for the SPARC-V8+ ABI. The
difference from the V8 ABI is that the global and out registers are
considered 64-bit wide. This is enabled by default on Solaris in
32-bit mode for all SPARC-V9 processors."
So, by compiling in 32-bit mode with mcpu=v9, we get the same ABI. I
experimented with both "-mcpu=v9" and "-mv8plus -Wa,-xarch=v8plus" and
the results were the same.
# file orterun
release-v8/bin/orterun: ELF 32-bit MSB executable SPARC32PLUS Version
1, V8+ Required, dynamically linked, not stripped
Rolf
On 08/26/10 14:23, Paul H. Hargrove wrote:
Rolf,
Thanks for looking into this issue. Can you explain for me why V8+
is OK w/ the Sun C complier, but V9 is required w/ gcc? I am
guessing that one is an ABI flag and the other is a CPU flag, right?
-Paul
P.S.
The V8+ vs V9 ABI differences are described at
http://developers.sun.com/solaris/articles/sparcv9abi.html
Rolf vandeVaart wrote:
I have dug a little more into this. I am now just planning to fix
the README to match
the configure message. In short, use CFLAGS="-mcpu=v9". It turns
out this change
was made in the configure code, but the README was never updated.
This should
work properly for all cases.
Rolf
On 8/25/2010 6:53 PM, Paul H. Hargrove wrote:
In the message below I fouled up some cut-and-paste.
Please mentally replace
And have configured (again stopping after the Assembler ABI probe)
with gcc-4.3.3 AND Rolf's flags
CC=gcc-4.3.3 CXX=g++-4.3.3 CFLAGS=-mv8plus CC=gcc-4.3.3
CXX=g++-4.3.3 CFLAGS=-mv8plus
with
And have configured (again stopping after the Assembler ABI probe)
with gcc-4.3.3 AND Rolf's flags
CC=gcc-4.3.3 CXX=g++-4.3.3 CFLAGS="-mv8plus -Wa,-xarch=v8plus"
CXXFLAGS="-mv8plus -Wa,-xarch=v8plus"
-Paul
Paul H. Hargrove wrote:
Trying Rolf's suggestion, I configure 1.4.3rc1 with
CFLAGS="-mv8plus -Wa,-xarch=v8plus" CXXFLAGS="-mv8plus
-Wa,-xarch=v8plus"
I find that I get configure past the v8+/v9 Assembler ABI probe
(but didn't wait for the full configure to run).
Another datapoint in favor of #2 is that I can successfully build
1.4.3rc1 w/ gcc-4.3.3 when I configure with
CC=gcc-4.3.3 CXX=g++-4.3.3 CFLAGS=-mv8plus CXXFLAGS=-mv8plus
And have configured (again stopping after the Assembler ABI probe)
with gcc-4.3.3 AND Rolf's flags
CC=gcc-4.3.3 CXX=g++-4.3.3 CFLAGS=-mv8plus CC=gcc-4.3.3
CXX=g++-4.3.3 CFLAGS=-mv8plus
So, here is MY summary:
+ For gcc-4.3.3 README is providing correct information
+ For gcc-3.3.2 README is providing INcorrect information
+ For both gcc versions configure provides correct info on
failure, but following it prevents using the V8+ ABI.
My suggestion fix:
+ Edit README and configure both to suggest "-mv8plus
-Wa,-xarch=v8plus" as that should be correct for either compiler
version.
-Paul
Rolf vandeVaart wrote:
Paul, is it possible for you to try one more thing. Can you
reconfigure with
CFLAGS="-mv8plus -Wa,-xarch=v8plus"
I think this will get past the configure test as the configure
test is compiling a piece
of assembly, and for some reason, the -mv8plus is not finding its
way to the assembler.
If that works, then we eliminate #2 on your list below, and have
to decide between
#1 and #3.
Rolf
On 08/25/10 15:56, Paul H. Hargrove wrote:
In both 1.5rc5 and 1.4.3rc1, README says:
- Open MPI does not support the Sparc v8 CPU target, which is the
default on Sun Solaris. The v8plus (32 bit) or v9 (64 bit)
targets must be used to build Open MPI on Solaris. This can be
done by including a flag in CFLAGS, CXXFLAGS, FFLAGS, and FCFLAGS,
-xarch=v8plus for the Sun compilers, -mv8plus for GCC.
However, the -mv8plus flag DOES NOT work for me.
The following occurs for both 1.5rc5 and 1.4.3rc1:
$ uname -a
SunOS lem.lbl.gov 5.10 s10_69 sun4u sparc SUNW,Ultra-5_10
$ gcc --version
gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
$ [path_to]/configure --disable-mpi-f77 --disable-mpi-f90
CFLAGS=-mv8plus CXXFLAGS=-mv8plus
[...]
*** Assembler
[...]
checking if have Sparc v8+/v9 support... no
configure: WARNING: Sparc v8 target is not supported in this
release of Open MPI.
configure: WARNING: You must specify the target architecture v8plus
configure: WARNING: (cc: -xarch=v8plus, gcc: -mcpu=v9) for
CFLAGS, CXXFLAGS,
configure: WARNING: FFLAGS, and FCFLAGS to compile Open MPI in
32 bit mode on
configure: WARNING: Sparc processors
configure: error: Can not continue.
Following the recommendation from configure:
$ [path_to]/configure --disable-mpi-f77 --disable-mpi-f90
CFLAGS=-mcpu=v9 CXXFLAGS=-mcpu=v9
DOES work for both of the current RCs.
So, I see a few possibilities:
1) -mv8plus SHOULD work (as -xarch=v8plus appears to w/ Suc C
5.10) but configure is unconditionally too strict.
OR
2) My gcc is older than other have tested and configure is
mistakenly thinking the ABI is wrong.
OR
3) -mcpu=v9 is the proper incantation and README needs correction.
No matter which of the above is correct, I suspect REAME and
configure need to give the user the same information.
-Paul
P.S. I can provide temporary machine access if needed to
resolve this.
P.P.S. I am /still/ not finished testing all the platforms
available to me ;-)
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900