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

--
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

Reply via email to