Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix CWD
CWD of the running binary is kept in two places: libc and the runtime. These two values should be in sync at all times. This rule could be broken though since at the start, libc always assumes that CWD is the root directory, but there are various ways to change the starting CWD of a wasm program, namely:
--dir .
changes the CWD to/home
cwd
WASI annotation inwasmer.toml
That's why libc and runtime could have different opinions as to what CWD is.
This PR adds a synchronization logic to the
make_absolute
function which calls into the runtime to get the CWD of the program. This only needs to happen once, since any change to this value throughchdir
will update both libc and the runtime.