howto not strip .so on install
Neal Becker
ndbecker2 at gmail.com
Wed Jul 27 17:34:19 UTC 2011
Jerry James wrote:
> On Wed, Jul 27, 2011 at 9:48 AM, Neal Becker <ndbecker2 at gmail.com> wrote:
>> Trying to help packaging dmtcp. There are 2 shared libs installed. They are
>> stripped by the rpm install, and then fail when attempting to dlopen them (or
>> 1 of them).
>
> Fail how? What's the error?
1. Get srpm here
http://www.ccs.neu.edu/home/kapil/fedora_rpms/dmtcp-1.2.3+svn1214-1.1.src.rpm
2. rpmbuild -ba dmtcp.spec
3. sudo rpm -U *dmtcp* (install all the rpms you just built)
4. Test:
dmtcp_checkpoint python
DMTCP/MTCP Copyright (C) 2006-2010 Jason Ansel, Michael Rieker,
Kapil Arya, and Gene Cooperman
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see COPYING file for details.
(Use flag "-q" to hide this message.)
dmtcp_coordinator starting...
Port: 7779
Checkpoint Interval: disabled (checkpoint manually instead)
Exit on last client: 1
Backgrounding...
[18446] NOTE at connectionmanager.cpp:623 in handlePreExistingFd; REASON='found
pre-existing socket... will not be restored'
fd = 10
device = pipe:[19269]
[18446] ERROR at mtcpinterface.cpp:91 in find_and_open_mtcp_so;
REASON='JASSERT(handle != NULL) failed'
mtcpso = /usr/lib64/dmtcp/libmtcp.so
dlerror() = /usr/lib64/dmtcp/libmtcp.so: undefined symbol:
mtcp_restore_start
Message: failed to load libmtcp.so
python (18446): Terminating...
5. Goto the rpmbuild/BUILD/dmtcpxxx directory, and reinstall the shared libs
sudo make install
6. Now it does not fail.
7. Verify that the only difference is replacing the shared libs installed via
rpm vs. the same shared libs installed without rpm.
So something that rpm does to the shared libs (in /usr/lib64/dmtcp) is breaking
things. The only thing I can think of is strip.
8. Notice the error:
dlerror() = /usr/lib64/dmtcp/libmtcp.so: undefined symbol:
mtcp_restore_start
But it is defined!
nm -D /usr/lib64/dmtcp/libmtcp.so | grep mtcp_restore_start
000000000000911c T mtcp_restore_start
That was the non-working version of libmtcp.so, which has been stripped.
More information about the devel
mailing list