aboutsummaryrefslogblamecommitdiff
path: root/nuttx-patches/c++11.patch
blob: 70276aa928801b987f73dd6d2c666f0e8a0e55d4 (plain) (tree)
1
2
3
4
5
6
7
8
                                                                        
                             

                                  
                    


                                                                              












                                                                                
 













                                                                                

















































































                                                                       
       
                                                                                

                                                                  
                             

                               

                                      


                                                                         

    





                                                                                







                        
                                                                                
 

             

                                                                           
                                        
                                         







                                                                                
    










                                                                                
                                
diff --git NuttX/nuttx/include/cxx/cwchar NuttX/nuttx/include/cxx/cwchar
index 67716ab..bd21740 100755
--- NuttX/nuttx/include/cxx/cwchar
+++ NuttX/nuttx/include/cxx/cwchar
@@ -46,13 +46,115 @@
 // Namespace
 //***************************************************************************
 
+/* N.B. The following definitions are enabled at this time to allow the PX4
+ * development to continue until there is a SAFE  solution to foreign
+ * (non-nuttx) header file inclusion. There is a potential of a binary
+ * incompatibility and runtime errors, memory overwrites or corruption
+ * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
+ */
 namespace std
 {
-#if 0 /* Not defined */
+#if __cplusplus >= 201103L
   using ::mbstate_t;
 #endif
+/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
+
   using ::wint_t;
   using ::size_t;
 };
 
+/* N.B. The following definitions are enabled at this time to allow the PX4
+ * development to continue until there is a SAFE  solution to foreign
+ * (non-nuttx) header file inclusion. There is a potential of a binary
+ * incompatibility and runtime errors, memory overwrites or corruption
+ *
+ * These functions are not implemented, but listed here to allow compilation
+ *  Any resulting linker error will require the implementation of the offending
+ *  function(s) Code contributions are welcome.
+ * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
+ */
+
+#if __cplusplus >= 201103L
+
+wint_t            btowc(int);
+int               fwprintf(FILE *, const wchar_t *, ...);
+int               fwscanf(FILE *, const wchar_t *, ...);
+int               iswalnum(wint_t);
+int               iswalpha(wint_t);
+int               iswcntrl(wint_t);
+int               iswdigit(wint_t);
+int               iswgraph(wint_t);
+int               iswlower(wint_t);
+int               iswprint(wint_t);
+int               iswpunct(wint_t);
+int               iswspace(wint_t);
+int               iswupper(wint_t);
+int               iswxdigit(wint_t);
+int               iswctype(wint_t, wctype_t);
+wint_t            fgetwc(FILE *);
+wchar_t          *fgetws(wchar_t *, int, FILE *);
+wint_t            fputwc(wchar_t, FILE *);
+int               fputws(const wchar_t *, FILE *);
+int               fwide(FILE *, int);
+wint_t            getwc(FILE *);
+wint_t            getwchar(void);
+int               mbsinit(const mbstate_t *);
+size_t            mbrlen(const char *, size_t, mbstate_t *);
+size_t            mbrtowc(wchar_t *, const char *, size_t,
+                      mbstate_t *);
+size_t            mbsrtowcs(wchar_t *, const char **, size_t,
+                      mbstate_t *);
+wint_t            putwc(wchar_t, FILE *);
+wint_t            putwchar(wchar_t);
+int               swprintf(wchar_t *, size_t, const wchar_t *, ...);
+int               swscanf(const wchar_t *, const wchar_t *, ...);
+wint_t            towlower(wint_t);
+wint_t            towupper(wint_t);
+wint_t            ungetwc(wint_t, FILE *);
+int               vfwprintf(FILE *, const wchar_t *, va_list);
+int               vwprintf(const wchar_t *, va_list);
+int               vswprintf(wchar_t *, size_t, const wchar_t *,
+                      va_list);
+size_t            wcrtomb(char *, wchar_t, mbstate_t *);
+wchar_t          *wcscat(wchar_t *, const wchar_t *);
+wchar_t          *wcschr(const wchar_t *, wchar_t);
+int               wcscmp(const wchar_t *, const wchar_t *);
+int               wcscoll(const wchar_t *, const wchar_t *);
+wchar_t          *wcscpy(wchar_t *, const wchar_t *);
+size_t            wcscspn(const wchar_t *, const wchar_t *);
+size_t            wcsftime(wchar_t *, size_t, const wchar_t *,
+                      const struct tm *);
+size_t            wcslen(const wchar_t *);
+wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
+int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
+wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
+wchar_t          *wcsrchr(const wchar_t *, wchar_t);
+size_t            wcsrtombs(char *, const wchar_t **, size_t,
+                      mbstate_t *);
+size_t            wcsspn(const wchar_t *, const wchar_t *);
+wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
+double            wcstod(const wchar_t *, wchar_t **);
+wchar_t          *wcstok(wchar_t *, const wchar_t *, wchar_t **);
+long int          wcstol(const wchar_t *, wchar_t **, int);
+unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+wchar_t          *wcswcs(const wchar_t *, const wchar_t *);
+int               wcswidth(const wchar_t *, size_t);
+size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
+int               wctob(wint_t);
+wctype_t          wctype(const char *);
+int               wcwidth(wchar_t);
+wchar_t          *wmemchr(const wchar_t *, wchar_t, size_t);
+int               wmemcmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t          *wmemcpy(wchar_t *, const wchar_t *, size_t);
+wchar_t          *wmemmove(wchar_t *, const wchar_t *, size_t);
+wchar_t          *wmemset(wchar_t *, wchar_t, size_t);
+int               wprintf(const wchar_t *, ...);
+int               wscanf(const wchar_t *, ...);
+int               vfwscanf(FILE *, const wchar_t *, va_list);
+int               vswscanf(const wchar_t *, const wchar_t *, va_list);
+int               vwscanf(const wchar_t *, va_list);
+float             wcstof(const wchar_t *, wchar_t **);
+#endif
+/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 #endif // __INCLUDE_CXX_CWCHAR
diff --git NuttX/nuttx/include/wchar.h NuttX/nuttx/include/wchar.h
index 90e3d4f..f7dee97 100644
--- NuttX/nuttx/include/wchar.h
+++ NuttX/nuttx/include/wchar.h
@@ -96,7 +96,25 @@ typedef int wint_t;
 /* wctype_t
  *   A scalar type of a data object that can hold values which represent
  *   locale-specific character classification.
- *
+ */
+
+/* N.B. The following definitions are enabled at this time to allow the PX4
+ * development to continue until there is a SAFE  solution to foreign
+ * (non-nuttx) header file inclusion. There is a potential of a binary
+ * incompatibility and runtime errors, memory overwrites or corruption
+ * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
+ */
+#ifndef _WCTYPE_T
+#define _WCTYPE_T
+# ifdef _AEABI_PORTABLE
+typedef void *wctype_t;
+# else
+typedef int wctype_t;
+# endif
+#endif /* !_WCTYPE_T */
+/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
+
+/*
  * mbstate_t
  *   An object type other than an array type that can hold the conversion
  *   state information necessary to convert between sequences of (possibly
@@ -105,7 +123,13 @@ typedef int wint_t;
  *   state, the results are unspecified.
  */
 
-#if 0 /* Not used */
+/* N.B. The following definitions are enabled at this time to allow the PX4
+ * development to continue until there is a SAFE  solution to foreign
+ * (non-nuttx) header file inclusion. There is a potential of a binary
+ * incompatibility and runtime errors, memory overwrites or corruption
+ * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
+ */
+#if __cplusplus >= 201103L
 /* Commented out because this is dangerous.  This defines a type that would
  * be internal to some wchar implementation.  NuttX does not implement the
  * wchar functions.  Having this definition is a time bomb:  If this header
@@ -128,6 +152,7 @@ struct mbstate_s
 
 typedef struct mbstate_s mbstate_t;
 #endif
+/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 
 /* FILE
  *   As described in <stdio.h>.