Skip to content

wasm-unknown target shouldn't set --import-memory by default #4319

Closed
@jmillikin

Description

@jmillikin

The wasm-unknown target invokes wasm-ld with the --import-memory option, which causes the following import to be emitted in the output:

(import "env" "memory" (memory $mimport$0 2))

This is undesirable to have as default behavior for wasm-unknown, because it introduces a mandatory import into what is otherwise a freestanding module.

If the --import-memory were to be removed from targets/wasm-unknown.json ldflags, then wasm-ld would emit this instead:

;; Declare and export the Memory, which requires no special import binding in the host
(memory $0 2)
(export "memory" (memory $0))

This option appears to have been added as part of a larger change in 2cd966d, but it's unclear from the commit message why --import-memory was added. Based on discussion in the PR, I think it was simply to reduce the number of bytes in an absolute bare-bones "hello world" module, which IMO is not a compelling reason to have it set by default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wasmWebAssembly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions