Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] Assembler instruction errors for push and pop during make
From: Richard Haney (rfhaney_at_[hidden])
Date: 2013-08-18 00:29:18


During make I get several instruction errors for push, pushl, pop, and popl
 at atomic-asm.S , which is included indirectly in asm.c . For example,
for the first reported "Error", the instruction

pushl %ebp

apparently generates the error message

atomic-asm.S:5: Error: invalid instruction suffix for `push'

There are several more Error messages like that.

---
And the instruction
push    %ebx
apparently generates the error message
atomic-asm.S:64: Error: operand type mismatch for `push'
---
And the instruction
pop   %ebx
apparently generates the error message
atomic-asm.S:68: Error: operand type mismatch for `pop'
---
And the instruction
popl  %ebp
apparently generates the error message
atomic-asm.S:75: Error: invalid instruction suffix for `pop'
-----------------------------------------------
It seems worth noting that make does a symbolic link involving "atomic-asm.S"
immediately before the processing of this file, which generates the errors,
but the configure output reports
checking whether ln -s works... no, using cp -p
as if symbolic links will not be used.
----------------------------------------
The configure output was generated by executing the script file "
mpiconfigure" via command
*$ mpiconfigure  &>  openmpi-1.6.5_configure.out*
"mpiconfigure" executes
*export LD_LIBRARY_PATH=/c/MinGW64/lib/gcc/x86_64-w64-mingw32/4.6.1*
just before executing ./configure ... so that I won't forget to set
LD_LIBRARY_PATH
.
The make command used was
*$ make -j 2     &>  make_-j_2.out*
I am using the Mingw MSYS 1.0 command-window/bash in a Windows 7
environment for processing the commands.
The compilers are Mingw 64-bit as reported in config.log ; these are not
"official" Mingw compiler versions, but supposedly are very nearly so --
see http://tdm-gcc.tdragon.net/ for details:
configure:5375: gcc --version >&5
gcc.exe (tdm64-1) 4.6.1
configure:15880: g++ --version >&5
g++.exe (tdm64-1) 4.6.1
configure:28191: gfortran.exe --version >&5
GNU Fortran (tdm64-1) 4.6.1
The processor is an Intel Sandybridge i5, with capability for parallel
execution of four threads.
My guess is that these errors are due simply to a mismatch between the
assembly instructions gcc can understand and the assembly instructions that
OpenMPI assumes gcc can understand.
Is there some flag I can set to tell gcc that a particular assembly
language (dialect) is being used?  And, if so, can I set it for make
without having to re-run configure?
-- 
*- Richard Haney*
*
*