On Fri, Oct 15, 2010 at 00:38, Jeff Squyres (jsquyres) <jsquy...@cisco.com>wrote:
> Huh. Can you make V=1 to build libmpi and use the same kind of options to > build your sample library? > Make log here http://59A2.org/files/openmpi-1.5-clang-make.log After some digging, this looks like a clang bug. First, from the comments on http://llvm.org/bugs/show_bug.cgi?id=3679 there seems to be some resistance to the #pragma weak g2 = g3, but since these things work with clang-2.8, that isn't the whole story. Indeed, #pragma GCC visibility push(default) #pragma weak fake = real #pragma GCC visibility pop does not expose the symbol "fake". This must be a bug, but an arguably better way to set up the aliasing is int fake(int i) __attribute__((weak, alias("real"))); which does work. I'll report the bug, but maybe Open MPI could use a more complete test for visibility working with weak aliasing? Or just don't support clang-2.8. Jed