On Oct 14, 2010, at 5:38 PM, Jed Brown wrote: > $ nm -D > /home/jed/src/openmpi-1.5/bclang/ompi/contrib/vt/vt/../../../.libs/libmpi.so > |grep MPI_Abort > 0000000000074380 T PMPI_Abort > > In contrast, with gcc: > > $ nm -D > /home/jed/src/openmpi-1.5/bgcc/ompi/contrib/vt/vt/../../../.libs/libmpi.so > |grep MPI_Abort > 00000000000712d0 W MPI_Abort > 00000000000712d0 T PMPI_Abort > > Weak symbol issue, I don't know how clang is different in this regard.
Ah ha -- maybe this is the root problem and the VT guys are not to blame. :-) config.log determined that weak symbol support was there, but I wonder if that was somehow a lie...? configure:14417: checking for weak symbol support configure:14448: clang -O3 -DNDEBUG -Werror -ansi -c conftest_weak.c configure:14455: $? = 0 configure:14465: clang -O3 -DNDEBUG -Werror -ansi conftest.c conftest_weak.o -o conftest configure:14472: $? = 0 configure:14498: result: yes The configure test essentially looks like this -- could you try this manually and see what happens? cat > conftest_weak.h <<EOF int real(int i); int fake(int i); EOF cat > conftest_weak.c <<EOF #include "conftest_weak.h" #pragma weak fake = real int real(int i) { return i; } EOF cat > conftest.c <<EOF #include "conftest_weak.h" int main() { return fake(3); } EOF # Try the compile clang $CFLAGS -c conftest_weak.c clang $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS The configure test rules that weak symbol support is there if both compiler invocations return an exit status of 0. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/