Closed michael-groble closed 4 years ago
This is exciting work! Thanks for sharing what you have this far. :smiley:
closing this for now. I can't figure out why I can make things work on mac and not linux.
In both cases, the rb_encdb_declare
function is defined in the static ruby library and is an undefined symbol in the enc/encdb
module (lib/ruby/2.6.0/x86_64-darwin18/enc/encdb.bundle
on mac and lib/ruby/2.6.0/x86_64-linux/enc/encdb.so
on linux).
On the mac, explicitly calling them in force_loading
was enough to get them to pass. While in linux, I get that they are undefined (from the module):
stderr:
/tmp/rustdoctestyTvq1l/rust_out: symbol lookup error: /usr/local/lib/ruby/2.6.0/x86_64-linux/enc/encdb.so: undefined symbol: rb_encdb_declare
this is an exploration that makes the problem
class::vm::VM::init_loadpath
test from #45 pass.It does this by explicitly calling the methods that are being reported as "lazy symbol binding failed" until there are no such errors remaining.
There are two potential problems with this.
init_loadpath
passes, but the string tests now fail in a worse way:I see that the build is failing on travis:
error: could not find native static library 'ruby.2.6-static', perhaps an -L flag is missing?
. To build locally, I did the following: