On Fri, Oct 15, 2010 at 00:38, Jeff Squyres (jsquyres)
<jsquyres_at_[hidden]>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
|