Releases: yomaytk/elfconv
elfconv v1.0.0
This is the first major release of elfconv! 🚀
Please see release/README.md for the usage of the release package.
Highlights
Enhanced demos
- Added browser demos for running GNU Bash and Python (e.g., #186, #183, #199)
- Expanded supported commands in busybox (e.g., #186, #189, #234)
- Demo Page: https://yomaytk.github.io/elfconv-demo/
Multi-process support
- Implemented
fork/execveemulation in the browser (e.g., #171, #173) - Enables running process-spawning programs such as Bash
Host file system mounting
- Added support for mounting the host file system into MEMFS (e.g., #237)
- Enables applications that depend on external data
Improved Linux syscall coverage
- Added and enhanced syscalls (e.g.,
ppoll,ioctl,nanosleep) - Improves overall Linux compatibility (e.g., #150, #185, #200, #233, #171, #234, #173, #189)
Build system overhaul
- Adopted remill’s new superbuild system (e.g., #210)
- Reduced unnecessary external dependencies (e.g., #208)
New Contributors
elfconv v0.2.0
This is the second release of elfconv!🚀.
Highlights
- Two major optimizations to generate higher-performance Wasm:
Thanks to these optimizations, the generated Wasm achieves over a 20× performance improvement, and we confirmed it delivers 35–70× the performance compared to container2wasm.
- Published Demo page
- We’ve launched a demo page that runs elfconv-converted Wasm directly in the browser. You can currently try out busybox and other examples.
- demo page: https://yomaytk.github.io/elfconv-demo/
Quick Start
You can translate the ELF binary to the WASM binary using outdir directory.
settings
You should prepare Emscripten, WASI-SDK and WASI runtimes (e.g., WasmEdge, wasmtime)
command
After configuring the above settings, you can try translation by the command as follows.
$ tar -zxvf elfconv-v0.2.0-linux-amd64.tar.gz
$ cd outdir
$ TARGET=aarch64-wasm ./elfconv.sh </path/to/ELF> # generates out/exe.wasmNew Contributors
v0.1.0
Initial release!
Quick Start
You can translate the ELF binary to the WASM binary using elfconv.sh. TARGET should be wasm-host for WASI runtimes or wasm-browser for the browser. elfconv generates the WASM using emscripten for the browser and wasi-sdk for WASI runtimes, so please configure the following settings.
settings
emscripten
emcc: compile command of emscripten
wasi-sdk
WASI_SDK_PATH: path to the parent directory of bin of wasi-sdk.
command
After configuring the above settings, you can try translation by the command as follows.
$ cd <unzipped directory>
$ TARGET=wasm-host ./elfconv.sh </path/to/ELF> ./bitcode