cgo: add support for stdio in picolibc and wasi-libc

This adds support for stdio in picolibc and fixes wasm_exec.js so that
it can also support C puts. With this, C stdout works on all supported
platforms.
This commit is contained in:
Ayke van Laethem
2021-09-24 01:39:56 +02:00
committed by Ron Evans
parent 1645f45c1a
commit 14bb90c3c0
11 changed files with 158 additions and 7 deletions
+18
View File
@@ -0,0 +1,18 @@
// This file is included in the picolibc build.
// It makes stdio functions available to the C library.
#include <stdio.h>
#include <sys/cdefs.h>
// Defined in the runtime package. Writes to the default console (usually, the
// first UART or an USB-CDC device).
int runtime_putchar(char, FILE*);
// Define stdin, stdout, and stderr as a single object.
// This object must not reside in ROM.
static FILE __stdio = FDEV_SETUP_STREAM(runtime_putchar, NULL, NULL, _FDEV_SETUP_WRITE);
// Define the underlying structs for stdin, stdout, and stderr.
FILE *const stdin = &__stdio;
__strong_reference(stdin, stdout);
__strong_reference(stdin, stderr);