diff options
Diffstat (limited to 'wasm/missing.c')
-rw-r--r-- | wasm/missing.c | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/wasm/missing.c b/wasm/missing.c new file mode 100644 index 0000000000..5bbf988642 --- /dev/null +++ b/wasm/missing.c @@ -0,0 +1,199 @@ +#include <errno.h> +#include <sys/types.h> +#include "ruby/missing.h" + +// Produce weak symbols for missing functions to replace them with actual ones if exists. +#define WASM_MISSING_LIBC_FUNC __attribute__((weak)) + +WASM_MISSING_LIBC_FUNC +int +chmod(const char *pathname, rb_mode_t mode) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +chown(const char *pathname, rb_uid_t owner, rb_gid_t group) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +dup(int oldfd) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +dup2(int oldfd, int newfd) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +execl(const char *path, const char *arg, ...) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +execle(const char *path, const char *arg, ...) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +execv(const char *path, char *const argv[]) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +execve(const char *filename, char *const argv[], char *const envp[]) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +rb_uid_t +geteuid(void) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +rb_uid_t +getuid(void) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +rb_pid_t +getppid(void) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +rb_gid_t +getegid(void) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +rb_gid_t +getgid(void) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +char * +getlogin(void) +{ + errno = ENOTSUP; + return NULL; +} + +WASM_MISSING_LIBC_FUNC +rb_mode_t +umask(rb_mode_t mask) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +int +mprotect(const void *addr, size_t len, int prot) +{ + return 0; +} + +WASM_MISSING_LIBC_FUNC +int +pclose(FILE *stream) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +FILE * +popen(const char *command, const char *type) +{ + errno = ENOTSUP; + return NULL; +} + +WASM_MISSING_LIBC_FUNC +int +pipe(int pipefd[2]) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +posix_madvise(void *addr, size_t len, int advice) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +kill(rb_pid_t pid, int sig) +{ + errno = ENOTSUP; + return -1; +} + + +WASM_MISSING_LIBC_FUNC +void +tzset(void) +{ + return; +} + +WASM_MISSING_LIBC_FUNC +int +shutdown(int s, int how) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +int +system(const char *command) +{ + errno = ENOTSUP; + return -1; +} + +WASM_MISSING_LIBC_FUNC +pid_t +waitpid(pid_t pid, int *wstatus, int options) +{ + errno = ENOTSUP; + return -1; +} |