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

Reply via email to