Installed with instructions at https://github.com/oracle/truffleruby/issues/1062#issuecomment-382202615
~/P/o/Review-collector ❯❯❯ gem install bundler master ✭ ✱
ERROR: Loading command: install (RuntimeError)
java.io.IOException: Error while trying to parse null (RuntimeException)
from java.lang.Throwable.<init>(Throwable.java:310)
from java.lang.Exception.<init>(Exception.java:102)
from java.lang.RuntimeException.<init>(RuntimeException.java:96)
from com.oracle.truffle.api.TruffleLanguage.parse(TruffleLanguage.java:1062)
from com.oracle.truffle.api.TruffleLanguage$Env.parse(TruffleLanguage.java:1568)
from org.truffleruby.language.loader.FeatureLoader.lambda$loadCExtLibrary$2(FeatureLoader.java:279)
from org.truffleruby.language.loader.FeatureLoader$$Lambda$1224/1911388477.accept(Unknown Source)
from org.truffleruby.cext.Linker.loadLibrary(Linker.java:135)
from org.truffleruby.language.loader.FeatureLoader.loadCExtLibrary(FeatureLoader.java:275)
from org.truffleruby.language.loader.RequireNode.requireCExtension(RequireNode.java:172)
Caused by:
Error while trying to parse null (IOException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.io.IOException.<init>(IOException.java:81)
from com.oracle.truffle.llvm.Runner.parse(Runner.java:273)
from com.oracle.truffle.llvm.Sulong.parse(Sulong.java:114)
from com.oracle.truffle.api.TruffleLanguage$ParsingRequest.parse(TruffleLanguage.java:596)
from com.oracle.truffle.api.TruffleLanguage.parse(TruffleLanguage.java:1058)
from com.oracle.truffle.api.TruffleLanguage$Env.parse(TruffleLanguage.java:1568)
from org.truffleruby.language.loader.FeatureLoader.lambda$loadCExtLibrary$2(FeatureLoader.java:279)
from org.truffleruby.language.loader.FeatureLoader$$Lambda$1224/1911388477.accept(Unknown Source)
Caused by:
External function @SSLv23_method cannot be found. (LinkageError)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Error.<init>(Error.java:70)
from java.lang.LinkageError.<init>(LinkageError.java:55)
from com.oracle.truffle.llvm.runtime.NFIContextExtension.getNativeFunction(NFIContextExtension.java:293)
from com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor$UnresolvedFunction.resolve(LLVMFunctionDescriptor.java:213)
from com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor$UnresolvedFunction.createNativeWrapper(LLVMFunctionDescriptor.java:231)
from com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor.toNative(LLVMFunctionDescriptor.java:495)
from com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor$LLVMFunctionDescriptorNativeLibrary.toNative(LLVMFunctionDescriptor.java:458)
from com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor$LLVMFunctionDescriptorNativeLibrary.toNative(LLVMFunctionDescriptor.java:436)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMObjectNativeFactory$CachedToNativeNode.toNative(LLVMObjectNativeFactory.java:232)
Translated to internal error
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
Looks like you're missing libssl, or it's a different version, see
https://github.com/oracle/truffleruby#system-compatibility.
The error message should be much nicer though, this seems like a regression.
Probably we should test this in Docker. cc @chrisseaton
Ok, I'm using https://www.archlinux.org/packages/core/x86_64/openssl/, which version is supported?
See https://github.com/oracle/truffleruby/blob/master/doc/user/installing-libssl.md
So, currently 1.0.2.
We plan to update to Ruby 2.4 which should allow using a newer OpenSSL.
weird, it is also installed, but somehow not detected (from this package https://www.archlinux.org/packages/core/x86_64/openssl-1.0/)
OpenSSL's linking to your system libssl is quite delicate. You'll see that we often install a development package as otherwise the library isn't where we expect.
You can also set an explicit path for libraries:
-Xcexts.remap=libssl.so:path/to/libssl.so
At the moment we've got that small set of compatible Linux distributions that we know work because we test them and don't have much time to expand it.
Ok, wasn't hard to make it work in the end:
~ ❯❯❯ TRUFFLERUBYOPT='-Xcexts.remap=libssl.so:/usr/lib/libssl.so.1.0.0' gem install bundler
Fetching: bundler-1.16.1.gem (100%)
Successfully installed bundler-1.16.1
1 gem installed
I'll close this unless you need anything else? I think this is already covered by saying that we don't explicitly support Arch Linux. I'll just make it more clear for each library that -Xcexts.remap is an action.
sure, thank you :)
Most helpful comment
Ok, wasn't hard to make it work in the end: