问题
I am using the Squeak 5 class SecureSMTPClient to send e-Mails over SSL/TLS.
It works fine on my Windows machine (thanks to the answer to that question).
However, on Linux i get:
Error: primitiveSSLCreate failed
And it prints in a console (but only the first time the image attempts to send the mail):
# ioLoadModule(/home/squeak5vm/SqueakSSL):
/home/squeak5vm/SqueakSSL: undefined symbol: clock_gettime
Squeak "primitives" are functions that talk to the platform and libraries. My guess is, that this Linux does not provide some version of some SSL/TLS library that Squeak expects. But what exactly does Squeak expect?
Additional infos:
The output of ldd /home/squeak5vm/SqueakSSL
is:
linux-gate.so.1 => (0xb7757000)
libc.so.6 => /lib32/libc.so.6 (0xb7392000)
/lib/ld-linux.so.2 (0xb7758000)
回答1:
The version of the SqueakSSL plugin you are using is compiled against OpenSSL, which in turn required clock_gettime
.
Note the that the man
page says
Link with -lrt (only for glibc versions before 2.17).
Apparently, your SqueakSSL binary was compiled on a system later than glibc 2.17.
Here are some options:
- Try the SqueakSSL binary from https://github.com/squeak-smalltalk/squeakssl/releases which are statically linked against LibreSSL. Note: They might be some weeks out of date.
- See whether you could use an updated Linux version with glibc >= 2.17
Try something like re-linking or pre-loading (see How to relink existing shared library with extra object file), for example
LD_PRELOAD=/usr/lib32/librt.so /path/to/squeak
We hope to sort this out soon-ish. Maybe you want to open an issue at https://github.com/OpenSmalltalk/
来源:https://stackoverflow.com/questions/38049364/squeak-smtps-on-linux