Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Nathan DeBardeleben (ndebard_at_[hidden])
Date: 2005-08-12 15:13:29


We've got a 64bit Linux (SUSE) box here. For a variety of reasons
(Java, JNI, linking in with OMPI libraries, etc which I won't get into)
I need to compile OMPI 32 bit (or get 64bit versions of a lot of other
libraries).
I get various compile errors when I try different things, but first let
me explain the system we have:

> [sparkplug]~/ompi > uname -a
> Linux sparkplug 2.6.10 #4 SMP Wed Jan 26 11:50:00 MST 2005 x86_64
> x86_64 x86_64 GNU/Linux
> [sparkplug]~/ompi >
> [sparkplug]~/ompi > cat /etc/issue
>
> Welcome to SuSE Linux 9.1 (x86-64) - Kernel \r (\l).
>
>
> [sparkplug]~/ompi >

I tried the obvious:

> ./configure CFLAGS=-m32 FFLAGS=-m32 .. <other args>

The make then bailed out with compile errors:

>
> gcc -m32 -g -Wall -Wundef -Wno-long-long -Wsign-compare -Wmissing-
> prototypes -Wstrict-prototypes -Wcomment -pedantic -Werror-
> implicit-function-declaration -fno-strict-aliasing -c atomic-asm.s -o
> atomic-asm.o
> atomic-asm.s: Assembler messages:
> atomic-asm.s:6: Error: suffix or operands invalid for `push'
> atomic-asm.s:7: Error: suffix or operands invalid for `movq'
> atomic-asm.s:16: Error: suffix or operands invalid for `push'
> atomic-asm.s:17: Error: suffix or operands invalid for `movq'
> atomic-asm.s:26: Error: suffix or operands invalid for `push'
> atomic-asm.s:27: Error: suffix or operands invalid for `movq'
> atomic-asm.s:36: Error: suffix or operands invalid for `push'
> atomic-asm.s:37: Error: suffix or operands invalid for `movq'
> atomic-asm.s:38: Error: `-8(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:39: Error: `-12(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:40: Error: `-16(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:41: Error: `-16(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:42: Error: `-8(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:43: Error: `-12(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:45: Error: `(%rdx)' is not a valid 32 bit base/index
> expression
> atomic-asm.s:47: Error: `-24(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:48: Error: `-24(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:49: Error: `-28(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:50: Error: `-28(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:51: Error: `-12(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:54: Error: `-28(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:55: Error: `-28(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:64: Error: suffix or operands invalid for `push'
> atomic-asm.s:65: Error: suffix or operands invalid for `movq'
> atomic-asm.s:66: Error: `-8(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:67: Error: `-16(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:68: Error: `-24(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:69: Error: `-24(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:70: Error: `-8(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:71: Error: `-16(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:73: Error: `(%rdx)' is not a valid 32 bit base/index
> expression
> atomic-asm.s:76: Error: `-32(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:77: Error: `-32(%rbp)' is not a valid 32 bit base/ index
> expression
> atomic-asm.s:78: Error: `-16(%rbp)' is not a valid 32 bit base/ index
> expression
> make[2]: *** [atomic-asm.lo] Error 1
> make[2]: Leaving directory `/home/ndebard/ompi/opal/asm'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/ndebard/ompi/opal'
> make: *** [all-recursive] Error 1

Greg Watson then suggested I add to me configure:

> --build=i586-suse-linux

That got the Make further, but now it dies saying:

> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/bin/ld:
> warning: i386 architecture of input file
> `../../../opal/.libs/libopal.a(memory.o)' is incompatible with
> i386:x86-64 output
> ../../../ompi/.libs/libmpi.a(mca_io_romio_dist_ad_nfs_read.o)(.text+0x106e):
> In function `mca_io_romio_dist_ADIOI_NFS_ReadStrided':
> /home/ndebard/ompi/ompi/mca/io/romio/romio-dist/adio/ad_nfs/mca_io_romio_dist_ad_nfs_read.c:230:
> undefined reference to `__divdi3'
> ../../../ompi/.libs/libmpi.a(mca_io_romio_dist_ad_nfs_read.o)(.text+0x108f):/home/ndebard/ompi/ompi/mca/io/romio/romio-dist/adio/ad_nfs/mca_io_romio_dist_ad_nfs_read.c:231:
> undefined reference to `__moddi3'
> ../../../ompi/.libs/libmpi.a(mca_io_romio_dist_ad_nfs_write.o)(.text+0xf76):
> In function `mca_io_romio_dist_ADIOI_NFS_WriteStrided':
> /home/ndebard/ompi/ompi/mca/io/romio/romio-dist/adio/ad_nfs/mca_io_romio_dist_ad_nfs_write.c:268:
> undefined reference to `__divdi3'
> ../../../ompi/.libs/libmpi.a(mca_io_romio_dist_ad_nfs_write.o)(.text+0xf97):/home/ndebard/ompi/ompi/mca/io/romio/romio-dist/adio/ad_nfs/mca_io_romio_dist_ad_nfs_write.c:269:
> undefined reference to `__moddi3'

This goes on and on and on actually. And the 'is incompatible with
i386:x86-64 output' looks to be repeated for every line before this
error which actually caused the Make to bomb.

Any suggestions at all? Surely someone must have tried to force OMPI to
build in 32bit mode on a 64bit machine.

-- 
-- Nathan
Correspondence
---------------------------------------------------------------------
Nathan DeBardeleben, Ph.D.
Los Alamos National Laboratory
Parallel Tools Team
High Performance Computing Environments
phone: 505-667-3428
email: ndebard_at_[hidden]
---------------------------------------------------------------------