Opened 6 years ago

#1545 new bug

assembler syntax error on "mov $PREFETCHBLOCK"

Reported by: goodell Owned by:
Priority: long-term Milestone: future
Component: mpich Keywords:
Cc:

Description

It looks like the assembler on your machine doesn't like some of the enhanced memcpy code that we've written into nemesis. This appears to be a Solaris on x86 machine, and the configure script decides that x86 assembly is supported by the assembler by using a small test program. Unfortunately, the assembler does not support a more complicated hunk of inline assembly listed here:

http://trac.mcs.anl.gov/projects/mpich2/browser/mpich2/tags/release/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/nemesis/include/mpid_nem_memdefs.h

In the short run, you should be able to get unstuck by editing 12 of that file to read "#if 0" instead. If the relevant section of the configure.in file was written correctly then there would be other easy ways to get around this, but unfortunately it appears to be buggy.

A heavier weight option would be to upgrade your GCC and assembler packages so that the fancier assembly code is understood correctly. I personally wouldn't bother with this, but it should work.

In the long run we should probably make the configure test more robust, and also add a "--disable-asm-memcpy" option or similar so that no code editing is required. I'll add a ticket for this in trac.

-Dave

On Nov 8, 2011, at 11:57 AM CST, renato@… wrote:

Hi All,

I am tring build MPICH2 in Solaris 10, and I dont have success.

Fist I have problems in configuration, now I put it to work, but now I have problems in build.

Whell, this is what I did ->

./configure CC=gcc CXX=g++ --disable-f77 --disable-fc --prefix=/MPICH/mpich2-install/ 2>&1 | tee c.txt

The result is OK, see ->

..
Configuration completed.
-bash-3.00#

Then, I did make ->

make 2>&1 | tee m.txt

Assembler: dataloop.c
       "/var/tmp//ccuee48e.s", line 493 : Syntax error
       Near line: "mov $PREFETCHBLOCK/16, %eax"
       "/var/tmp//ccuee48e.s", line 501 : Syntax error
       Near line: "mov $PREFETCHBLOCK/8, %eax"
make[5]: ** [dataloop.o] Erro 1
make[5]: Saindo do diretório `/MPICH/Source/mpich2-1.4.1p1/src/mpid/common/datatype/dataloop'
make[4]: ** [all-redirect] Erro 2
make[4]: Saindo do diretório `/MPICH/Source/mpich2-1.4.1p1/src/mpid/common/datatype'
make[3]: ** [all-redirect] Erro 2
make[3]: Saindo do diretório `/MPICH/Source/mpich2-1.4.1p1/src/mpid/common'
make[2]: ** [all-redirect] Erro 2
make[2]: Saindo do diretório `/MPICH/Source/mpich2-1.4.1p1/src/mpid'
make[1]: ** [all-redirect] Erro 2
make[1]: Saindo do diretório `/MPICH/Source/mpich2-1.4.1p1/src'
make: ** [all-redirect] Erro 2
-bash-3.00#

And error.

What is wrong..?

Change History (0)

Note: See TracTickets for help on using tickets.