Add define to send stderr to stdout and enable for sonata.
This is useful because although sonata has a second UART its not currently initialised.
See #317 and #275 .
diff --git a/sdk/boards/sonata-prerelease.json b/sdk/boards/sonata-prerelease.json
index 83f2211..130785d 100644
--- a/sdk/boards/sonata-prerelease.json
+++ b/sdk/boards/sonata-prerelease.json
@@ -92,7 +92,8 @@
"SUNBURST_SHADOW_SIZE=0x800",
"ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM=1",
"ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM=1",
- "CHERIOT_NO_SAIL_83"
+ "CHERIOT_NO_SAIL_83",
+ "STDERR_TO_STDOUT=1"
],
"cxflags": "-mllvm -enable-machine-outliner=never",
"driver_includes" : [
diff --git a/sdk/include/stdio.h b/sdk/include/stdio.h
index 9448b5c..884924e 100644
--- a/sdk/include/stdio.h
+++ b/sdk/include/stdio.h
@@ -28,12 +28,16 @@
#elif DEVICE_EXISTS(uart)
# define stdout MMIO_CAPABILITY(void, uart)
# define stdin MMIO_CAPABILITY(void uart)
+#else
+#error No device found for stdout and stderr
#endif
-#if DEVICE_EXISTS(uart1)
+#if DEVICE_EXISTS(uart1) && !STDERR_TO_STDOUT
# define stderr MMIO_CAPABILITY(void, uart1)
#elif defined(stdout)
# define stderr stdout
+#else
+#error No device found for stderr
#endif
int __cheri_libcall vfprintf(FILE *stream, const char *fmt, va_list ap);