-
Notifications
You must be signed in to change notification settings - Fork 285
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
cmake: Add wasi toolchain #328
base: master
Are you sure you want to change the base?
Conversation
With
Can ethash be improved to not compile pthread-dependent parts for evmone? |
The second problem is building evmc, |
Codecov Report
@@ Coverage Diff @@
## master #328 +/- ##
=======================================
Coverage 99.77% 99.77%
=======================================
Files 27 27
Lines 3932 3932
=======================================
Hits 3923 3923
Misses 9 9
Flags with carried forward coverage won't be shown. Click here to find out more. |
D'oh, there's a toolchain+platform file in wasi-sdk, but that seems to be working worse for me. |
This is the problem Silkworm is also having (cc @yperbasis, @AndreaLanfranchi). We can attack the ethash library first, probably by disabling some "managed" API in wasm build. Here we only need the |
Yes we experienced the same problem in Silkworm and opted to amalgamate in our source (with slight modifications) only the strict necessary from ethash library code. Here what we have now https://github.com/torquem-ch/silkworm/tree/master/ethash/ethash |
I think for the evmone case, we may be better off having a Not sure about the Silkworm case, @AndreaLanfranchi does silkworm also uses the ethash part for PoW? |
But for evmc we may need to have cmake settings for building the client- vs vm-side only. On the vm-side the loader is not needed. Another dumb option is just having an ifdef in the loader for unsupported platforms resulting in |
Yes we implement the full Ethash PoW validation |
37512ae
to
76b512e
Compare
Currently blocked on evmc: [ 5%] Building C object evmc/lib/instructions/CMakeFiles/instructions.dir/instruction_metrics.c.o
[ 10%] Building C object evmc/lib/instructions/CMakeFiles/instructions.dir/instruction_names.c.o
[ 21%] Building CXX object evmc/lib/tooling/CMakeFiles/tooling.dir/run.cpp.o
[ 21%] Building C object evmc/lib/loader/CMakeFiles/loader.dir/loader.c.o
/home/builder/project/evmc/lib/loader/loader.c:25:10: fatal error: 'dlfcn.h' file not found
#include <dlfcn.h>
^~~~~~~~~
1 error generated. Why do we need to even build these from evmc? At this point I think mostly only the headers are used. |
These are used for evmc testing tool but we can skip it. |
Imported from ethash
Part of #293.