-
Notifications
You must be signed in to change notification settings - Fork 113
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
Add support for emscripten #6
Conversation
I tried bypassing the OOM issues I see, and it turns out all the I/O-related tests fail as we disabled |
Thanks for this! Do you have an Emscripten + OpenSSL build working locally? If so, are they being built slightly differently for one to work where the other isn't? Additionally, could CI be enabled on Travis via a prebuilt emscripten docker image? |
Yes!
If you're talking about
I'm using this image for all my tests: https://hub.docker.com/r/tomaka/rustc-emscripten/ |
Whoa cool! I was thinking mores for the Emscripten targets with a working build, as I doubt It sounds like though your tests are passing on Emscripten with OpenSSL locally, but not passing when built through this crate? Do you know how the OpenSSL build is different? |
Oh and, yes, Docker can be used on Travis! There's some small configuration and then it'll have a |
Ah sorry, I misunderstood you. |
By this you mean that because of
Oh that's totally fine yeah! Having OpenSSL at all on Emscripten seems better than not at all :) I think this should be good to go with a Travis builder for Emscripten (just the asmjs target is fine), that way we can be sure to avoid regressing it with future OpenSSL upgrades (hopefully!) |
Ok I've tidied up the travis build a bit to go ahead and use docker everywhere and should be good to go, thanks! |
wasm32-unknown-unknown
is a bit harder, so I focused on emscripten first.emcc
is similar togcc
, so we can configure OpenSSL forgcc
and it works.However if we simply do that, we get linking errors when building the
openssl
executable because some symbols are defined twice. I have no idea what that happens.The easiest way to disable building the
openssl
executable if to useno-stdio
, so that's what I'm doing.Tests unfortunately fail because of out-of-memory issues, but the ones which don't need a lot of memory all pass.
I didn't add any CI test because it's quite hard to test for emscripten on travis (building emscripten :-/). It should be doable with circle-ci if you think we should add CI.