summaryrefslogtreecommitdiff
path: root/packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch')
-rw-r--r--packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch b/packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch
new file mode 100644
index 0000000..a3e0544
--- /dev/null
+++ b/packages/picolibc/1.5.1/0002-libc-Expose-wchar-stdio-prototypes-even-for-TINY_STD.patch
@@ -0,0 +1,103 @@
+From f0c62653bbcf68291a7dd621db367a9fef666183 Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp@keithp.com>
+Date: Sun, 24 Jan 2021 15:27:14 -0800
+Subject: [PATCH 3/3] libc: Expose wchar stdio prototypes even for TINY_STDIO
+
+This makes libstdc++ happy when wrapping these names, even though they
+aren't actually available for appplications.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+---
+ newlib/libc/include/wchar.h | 39 ++++++++++++++++++++-------------------
+ 1 file changed, 20 insertions(+), 19 deletions(-)
+
+--- a/newlib/libc/include/wchar.h
++++ b/newlib/libc/include/wchar.h
+@@ -217,8 +217,6 @@
+ long double wcstold_l (const wchar_t *, wchar_t **, locale_t);
+ #endif
+
+-#ifndef TINY_STDIO
+-
+ wint_t fgetwc (__FILE *);
+ wchar_t *fgetws (wchar_t *__restrict, int, __FILE *__restrict);
+ wint_t fputwc (wchar_t, __FILE *);
+@@ -232,6 +230,8 @@
+ wint_t putwchar (wchar_t);
+ wint_t ungetwc (wint_t wc, __FILE *);
+
++#ifndef TINY_STDIO
++
+ struct _reent;
+
+ wint_t _fgetwc_r (struct _reent *, __FILE *);
+@@ -253,6 +253,24 @@
+ wint_t _putwchar_unlocked_r (struct _reent *, wchar_t);
+ wint_t _ungetwc_r (struct _reent *, wint_t wc, __FILE *);
+
++int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...);
++int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...);
++int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, va_list);
++int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, va_list);
++int _vwprintf_r (struct _reent *, const wchar_t *, va_list);
++int _wprintf_r (struct _reent *, const wchar_t *, ...);
++
++int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...);
++int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...);
++int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, va_list);
++int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, va_list);
++int _vwscanf_r (struct _reent *, const wchar_t *, va_list);
++int _wscanf_r (struct _reent *, const wchar_t *, ...);
++
++__FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *);
++
++#endif
++
+ #if __GNU_VISIBLE
+ wint_t fgetwc_unlocked (__FILE *);
+ wchar_t *fgetws_unlocked (wchar_t *__restrict, int, __FILE *__restrict);
+@@ -267,7 +285,6 @@
+ #if __POSIX_VISIBLE >= 200809
+ __FILE *open_wmemstream (wchar_t **, size_t *);
+ #endif
+-__FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *);
+
+ #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
+ int fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...);
+@@ -281,13 +298,6 @@
+ int wprintf (const wchar_t *__restrict, ...);
+ #endif
+
+-int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...);
+-int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...);
+-int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, va_list);
+-int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, va_list);
+-int _vwprintf_r (struct _reent *, const wchar_t *, va_list);
+-int _wprintf_r (struct _reent *, const wchar_t *, ...);
+-
+ #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
+ int fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...);
+ int swscanf (const wchar_t *__restrict,
+@@ -300,13 +310,6 @@
+ int wscanf (const wchar_t *__restrict, ...);
+ #endif
+
+-int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...);
+-int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...);
+-int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, va_list);
+-int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, va_list);
+-int _vwscanf_r (struct _reent *, const wchar_t *, va_list);
+-int _wscanf_r (struct _reent *, const wchar_t *, ...);
+-
+ #define getwc(fp) fgetwc(fp)
+ #define putwc(wc,fp) fputwc((wc), (fp))
+ #define getwchar() fgetwc(stdin)
+@@ -319,8 +322,6 @@
+ #define putwchar_unlocked(wc) fputwc_unlocked((wc), stdout)
+ #endif
+
+-#endif /* !TINY_STDIO */
+-
+ _END_STD_C
+
+ #if __SSP_FORTIFY_LEVEL > 0