-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Open
Description
Version of emscripten/emsdk:
Tip of tree
$ ./emcc --version
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 5.0.1-git (d4c1c6e1d37bf38e84cca063753a462143b7af9a)
a.c:
#include "stdio.h"
#include <fcntl.h>
int syscall_openat_orig(int dirfd, intptr_t path, int flags, void* varags)
__attribute__((__import_module__("env"),
__import_name__("__syscall_openat"), __warn_unused_result__));
int __syscall_openat(int dirfd, intptr_t path, int flags, void* varargs) {
printf("__syscall_openat!\n");
return syscall_openat_orig(dirfd, path, flags, varargs);
}
int main() {
int fd = open("a.c", O_RDONLY);
printf("fd: %d\n", fd);
}
compile, link, run
$ emcc a.c -sNODERAWFS -sEXPORT_ALL -sMAIN_MODULE -O2 && node a.out.js
RuntimeError: Aborted(LinkError: WebAssembly.instantiate(): Import #0 "env" "__syscall_openat": function import requires a callable).
Comments
Removing either -sEXPORT_ALL or -sMAIN_MODULE makes the error go away.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels