http://qs1969.pair.com?node_id=1209796


in reply to Re: How to obtain perl5/auto/IO/IO.so with global symbols?
in thread How to obtain perl5/auto/IO/IO.so with global symbols?

edit: For your question "what global symbols?", this is what I mean (the directly delivered executable from Company A).

[emk@ekdev2 IO]$ pwd /tmp/par-656d6b/cache-08da00fae2ebdaf6d8f69a0988dac72d0e1f3d62/inc/lib +/auto/IO [emk@ekdev2 IO]$ nm -g IO.so U PerlIO_getpos U PerlIO_setpos U PerlIO_tmpfile U PerlIO_ungetc U Perl_Isv_undef_ptr U Perl_Isv_yes_ptr U Perl_PerlIO_clearerr U Perl_PerlIO_error U Perl_PerlIO_fileno U Perl_PerlIO_flush ... 0000000000001760 T boot_IO U fcntl@@GLIBC_2.2.5 U fsync@@GLIBC_2.2.5 U poll@@GLIBC_2.2.5 U sockatmark@@GLIBC_2.2.5

The following is what I get when I run ldd -v IO.so on each machine. The outputs are exactly the same, apart from the memory addresses. I ran ldd on the test machine's IO.so found in /tmp/par-..., and I ran ldd on the build machine's IO.so found in /usr/lib64/perl5/auto/IO.

Just realized you probably meant to run ldd -v IO.so for the executable I got directly from Company A. I checked on that, and even that one has the same output for ldd -v.

linux-vdso.so.1 => (0x00007fff091de000) libc.so.6 => /lib64/libc.so.6 (0x00007f1a0386b000) /lib64/ld-linux-x86-64.so.2 (0x00007f1a03e47000) Version information: ./IO.so: libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6 /lib64/libc.so.6: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so. +2 ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64 +.so.2

Replies are listed 'Best First'.
Re^3: How to obtain perl5/auto/IO/IO.so with global symbols?
by beech (Parson) on Feb 23, 2018 at 22:46 UTC

      Hi. I built my own and it did have global symbols, but that did not fix the issue. The issue was fixed when I changed the Par packer Makefile (Makefile.packer) to no longer package libc.so.6. Many other libraries were also packed, but it seems like none of the packed libraries were used if the test system had its own version of that library. Libc.so.6 was the exception. Anyway, the issue is solved either way. Thanks for all your help.

Re^3: How to obtain perl5/auto/IO/IO.so with global symbols?
by beech (Parson) on Feb 22, 2018 at 23:32 UTC

    Hi,

    The outputs are exactly the same

    Are you really really sure?

    What is the output of  LD_DEBUG=help  ./switchscan ...?

      Yes, I just went back and verified they are the same, apart from the last two lines being switched in order.

      Did you mean LD_DEBUG=help ./switchscan? That will just display the help message. Were you thinking of LD_DEBUG=libs ./switchscan?

        Hi,

        Did you mean LD_DEBUG=help ./switchscan? That will just display the help message. Were you thinking of LD_DEBUG=libs ./switchscan?

        Sorry, I meant "all"