Re: howto not strip .so on install

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 27, 2011 at 11:34 AM, Neal Becker <ndbecker2@xxxxxxxxx> wrote:
> 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.

It isn't strip.  If I run strip on the version of libmtcp.so left in
the build dir and copy it over /usr/lib64/dmtcp/libmtcp.so, then it
also works.  But that version is different from the one installed by
rpm.  Watch this:

$ ldd -r /usr/lib64/dmtcp/libmtcp.so
	linux-vdso.so.1 =>  (0x00007fff7d7c3000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f913f396000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f913f17b000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f913ef65000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f913ebcc000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003520600000)
undefined symbol: mtcp_restore_start	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: dmtcp_exists	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_restore_argv_start_addr	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_sys_errno	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_get_thread_sysinfo	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_no	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_dump_tls	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_readdec	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: test_and_prepare_for_forked_ckpt	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: write_ckpt_to_file	(/usr/lib64/dmtcp/libmtcp.so)
undefined symbol: mtcp_readchar	(/usr/lib64/dmtcp/libmtcp.so)
$ ldd -r /tmp/libmtcp-stripped.so
	linux-vdso.so.1 =>  (0x00007fffcd3ff000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f02082b3000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0208098000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0207e82000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f0207ae9000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003520600000)

The program /usr/lib/rpm/debugedit is used to extract debug
information from ELF objects when building RPMs.  It looks like it is
damaging the shared object somehow.
-- 
Jerry James
http://www.jamezone.org/
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux