Hi,
While debugging a customer issue that had dmtcp wrapped around
some scripts, I found that at a certain
point the dmtcp.so was no longer able to be loaded due to not being able to
find a symbol that exists in libmtcp.so.
After much digging, I determined that one of the scripts had modified the
LD_LIBRARY_PATH by replacing it
(not by prepending to it, which would be the right thing to do). It removed the
LD_LIBRARY_PATH portion that
contained where libmtcp.so was, and so as a result, executables being called
trying to preload dmtcp.so weren't able
to be called. Given that this was a global script used by many folks, I could
not change it on the fly. I made a couple
changes to the build flow to have dmtcp.so link with the mtcp.so (my change
assumes that the tool is installed after
being built, so probably adding an extra -rpath entry would be good for those
who do not install, but just build).
This was on the trunk, but I think the situation exists also in older versions
as well.
dmtcp/src/Makefile.am: 75,82 Add in rpath links for libmtcp.so
# Was dmtcp_so_LDFLAGS = -shared
dmtcp_so_LDFLAGS = -shared -L../../mtcp -Xlinker -rpath -Xlinker $(libdir)
# Was ../../libmtcp.so
-lmtcp
Joshua Louie
------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
endpoint security space. For insight on selecting the right partner to
tackle endpoint security challenges, access the full report.
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Dmtcp-forum mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dmtcp-forum