Hi -

This is pretty odd. I haven't gotten a chance to make the "official" 1.2 OS X package yet, so I havent run into this problem. I'll try to replicate in the next day or two. In the mean time, just to make sure, you are using the latest version of XCode, right?

Brian


On Apr 6, 2007, at 7:22 AM, Werner Van Geit wrote:

Hello,

In our lab we are installing OpenMPI onto our Apple cluster computer. The
cluster contains a couple of PowerPC G5 nodes and the new Intel Xeon
Xserves, all with a clean install of Mac OS X Server 10.4.8 , Xcode 2.4.1 and Sun Grid Engine 6 (so we're not using XGrid). Since we want to make it 1
big cluster, we need Universal Binaries of OpenMPI.

We have been using the script buildpackage.sh available from the
contrib/dist/macosx-pkg from the openmpi-1.2.tar.gz file. If we run this
script on an Intel machine, we get fat binaries (checked this with the
command line "file" command) that run on the Intel machine (we used
"ompi_info" as the test), but not on the G5 machines. While running
ompi_info) we get an error:

dyld: Symbol not found: _lt_libltdlc_LTX_preloaded_symbols
  Referenced from: /tmp/werner/mpi/lib/libopen-pal.0.dylib
  Expected in: flat namespace

Trace/BPT trap

(There are no error @ compile time)

Also the inverse occurs. If we compile on a G5, again fat binaries of
everything are created, but now it doesn't run on the Intel anymore, with exactly the same error. And it also doesn't run on a G5 unless we make a thinner binary (from the fat ones), only containing the ppc and intel code
(not the ppc64).

First, we thought that the problem could be caused by the processor
switching modes from 32 to 64 bit or something, so we compiled everything with a modified buildpackage.sh script adding "-m32" to the CFLAGS, CXXFLAGS and OBJCFLAGS, but this had no effect, still the same errors @ runtime.

Then we compiled with "-enable-static" and "-disable-shared" but then the error occurred @ compile time. We got an error like " Symbol not found:
_lt_libltdlc_LTX_preloaded_symbols".


Since we figured out that this libltdlc is used for the "dlopen", I disabled
it by putting "--disable-dlopen" in the buildpackage.sh script. Now
everything compiles on both Intel and PPC and also runs on both
architectures.
But now I can imagine that in the future we might be having problems with
installing plugins because we disabled the dlopen.

Do you maybe know if there is another way to compile OpenMPI on our
configuration, while still enabling dlopen ? (Is the problem maybe caused by
the fact that there doesn't seem to exist a 64-bit version of
libltdl.3.dylib and libltdl.a on the OS ? The output of the file command is

"
libltdl.3.dylib: Mach-O fat file with 2 architectures
libltdl.3.dylib (for architecture i386): Mach-O dynamically linked shared
library i386
libltdl.3.dylib (for architecture ppc): Mach-O dynamically linked shared
library ppc
"
(so no ppc64)



Thank you,

Werner Van Geit

--
                         ,,,
                        (o o)
====================oOO==(_)==OOo==================
PhD Student Laboratory for Theoretical Neurobiology
Department of Biomedical Sciences
University of Antwerp (Campus Drie Eiken)
Universiteitsplein 1
B-2610 Wilrijk (Belgium)

Office T5.37

Tel. ++ 32 3 8202610
wer...@ihatespamtnb.ua.ac.be

<buildoutput.txt>
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to