there must be remains of another Perl installation - libraries specifically - in the system.

Compilation of module is successful which denotes that gcc is looking for libraries at the correct places and with the correct order - if there was any need re:-shared. What fails is running the module. Because it was compiled as "shared" which means it must look for and link with the Perl libraries during runtime. And this is where it fails, not because it can't find any libraries but because it (i.e. the operating system's linker responsible for finding shared components at runtime) finds the wrong versions (the handshake mismatch, btw it is cool of perl to make its own checks for its library versions).

I suggest you make a thorough search of old-version Perl libraries in your system. Also, run this: echo $LD_LIBRARY_PATH to tell you the linker's search path, although it can be empty meaning it follows a default which most likely is not aware of your local installation at /home/rg8239. In fact, it looks weird to me that you installed Perl in your home dir but its libraries are searched, by Perl's Makefiles, in a system dir. The guess is that older Perl is installed in system dir and you tried to install a newer version in your homedir. This will mess up Perl for you. Don't worry, this being Linux, unless you installed as root, your system Perl is safe. Which possibly means, another guess, that you did not upgrade the system Perl but you installed a newer version in your homedir. This is tricky when you do it without the help of something like perlbrew. This will enable root-free multiple/parallel Perl versions in a system. You should use it if you want to have Perl in your home dir. This is preferred than upgrading as root the system Perl. Leave the system Perl to the system and install a "user" Perl in your homedir via perlbrew

Edit: to make it clear: your problem is not with compiling. Compilation succeeded. Running (the tests) failed because system runtime linker links to a different Perl library. Perl detects that and complains (handshake failed).

bw, biako


In reply to Re: XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000) by bliako
in thread XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000) by rgren925

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.