-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ubuntu 16.04: /lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found #22
Comments
No, libcrypt and libcrypto aren't the same. The latter is comes from OpenSSL (together with libssl) while the former used to be part of libc (the original passwd hash) and nowadays contains several other hash functions. But that's not what the error messages are about. Your perl (or stuff that it's linked to) uses stuff from libc that is too "new" for the libc of your target system (libm, libcrypt, too). Ubuntu 16.04 uses libc 2.23 so the highest symbol version in its libc is GLIBC_2.23. You're out of luck here - it's the same reason why an arbitrary binary from Ubuntu 20.04 (libc 2.31) won't run on Ubuntu 16.04. If you have wildly different libc versions on source and target you must pack on the older version. @shawnlaffan: Is it really a good idea for autolink to |
pp_autolink should probably not be packing anything from system dirs that are expected to be on all machines. I'll add an exclude for |
@hakonhagland - I've pushed a change to the github repo to exclude Can you give that a test? |
Interesting. Can you explain a little bit more? I would think the packing the newer version (not the older) would work.. |
Read about symbol versioning, e.g. this blog or in depth (chapter 3). |
@rschupp Thanks, I will check it out. BTW the last link in your previous comment refers to the same blog post as the first link. |
Thanks, corrected. |
I am still testing
PAR::Packer
to generate an exe from the Perl script in issue #21:This time I am using
perl
version 5.30.0 on Ubuntu 20.04. I run:If I now transfer the
p2.exe
to a docker container running Ubuntu 16.04 andperl
version 5.22.1 and execute it:So this did not work. Seems like
pp_autolink
detectedlibcrypto.so.1.1
but is this the same aslibcrypt.so
(note the missingo
) from the error message? For the other error fromlibm.so.6
, does it mean that--link /lib/x86_64-linux-gnu/libm.so.6
somehow did not work properly? Or that it should also link withlibc.so
? Any ideas?The text was updated successfully, but these errors were encountered: