aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sidrane <david_s5@nscdg.com>2015-02-19 06:47:13 -1000
committerDavid Sidrane <david_s5@nscdg.com>2015-02-19 06:47:13 -1000
commit9b72589464ed1bec2c6c7009a8265c09d84c367f (patch)
treec1a67196920fb056a24d861a5cdff9c14d490553
parent9ec3f31794475d700ac7e2e9b47893ddf084a587 (diff)
downloadpx4-firmware-9b72589464ed1bec2c6c7009a8265c09d84c367f.tar.gz
px4-firmware-9b72589464ed1bec2c6c7009a8265c09d84c367f.tar.bz2
px4-firmware-9b72589464ed1bec2c6c7009a8265c09d84c367f.zip
Latest Intrim C++11 workaround waitng on feedback
m---------NuttX0
-rw-r--r--nuttx-patches/c++11.patch142
-rw-r--r--nuttx-patches/ctime.patch12
-rw-r--r--nuttx-patches/wchar.h.patch57
4 files changed, 142 insertions, 69 deletions
diff --git a/NuttX b/NuttX
-Subproject bc7bddedba414f1a5a7ae7360761f5f03149bd7
+Subproject 406c3a3b7ddefbfadbae9ac1858a4b235c7e6cf
diff --git a/nuttx-patches/c++11.patch b/nuttx-patches/c++11.patch
new file mode 100644
index 000000000..17b3fd52f
--- /dev/null
+++ b/nuttx-patches/c++11.patch
@@ -0,0 +1,142 @@
+diff --git NuttX/nuttx/include/cxx/cwchar NuttX/nuttx/include/cxx/cwchar
+index 60c261d..68a1c04 100755
+--- NuttX/nuttx/include/cxx/cwchar
++++ NuttX/nuttx/include/cxx/cwchar
+@@ -46,4 +46,97 @@
+ // Namespace
+ //***************************************************************************
+
++namespace std
++{
++ using ::mbstate_t;
++} // namespace std
++
++/* 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.
++*/
++
++#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
+ #endif // __INCLUDE_CXX_CWCHAR
+diff --git NuttX/nuttx/include/wchar.h NuttX/nuttx/include/wchar.h
+index 54fa796..263212a 100644
+--- NuttX/nuttx/include/wchar.h
++++ NuttX/nuttx/include/wchar.h
+@@ -93,15 +93,31 @@
+ * wctype_t
+ * A scalar type of a data object that can hold values which represent
+ * locale-specific character classification.
+- *
+- * mbstate_t
++ */
++
++#ifndef _WCTYPE_T
++#define _WCTYPE_T
++# ifdef _AEABI_PORTABLE
++typedef void *wctype_t;
++# else
++typedef int wctype_t;
++# endif
++#endif /* !_WCTYPE_T */
++
++ /* mbstate_t
+ * An object type other than an array type that can hold the conversion
+ * state information necessary to convert between sequences of (possibly
+ * multibyte) characters and wide-characters. If a codeset is being used
+ * such that an mbstate_t needs to preserve more than 2 levels of reserved
+ * state, the results are unspecified.
+- *
+- * FILE
++ */
++
++typedef struct
++{
++ int __fill[6];
++} mbstate_t;
++
++/* FILE
+ * As described in <stdio.h>.
+ *
+ * size_t
diff --git a/nuttx-patches/ctime.patch b/nuttx-patches/ctime.patch
deleted file mode 100644
index 4d8b1fd0f..000000000
--- a/nuttx-patches/ctime.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git NuttX/nuttx/include/cxx/ctime NuttX/nuttx/include/cxx/ctime
-index 3d3dfae..18fdded 100644
---- NuttX/nuttx/include/cxx/ctime
-+++ NuttX/nuttx/include/cxx/ctime
-@@ -53,7 +53,6 @@ namespace std
- using ::clockid_t;
- using ::timer_t;
- using ::timespec;
-- using ::timeval;
- using ::tm;
- using ::itimerspec;
- using ::sigevent;
diff --git a/nuttx-patches/wchar.h.patch b/nuttx-patches/wchar.h.patch
deleted file mode 100644
index 716db992e..000000000
--- a/nuttx-patches/wchar.h.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git NuttX/nuttx/include/wchar.h NuttX/nuttx/include/wchar.h
-index 54fa796..889b272 100644
---- NuttX/nuttx/include/wchar.h
-+++ NuttX/nuttx/include/wchar.h
-@@ -118,7 +118,19 @@ typedef int wint_t;
- * Reference: Opengroup.org
- */
-
--struct tm; /* Forward reference (see <time.h>) */
-+ struct tm; /* Forward reference (see <time.h>) */
-+
-+/* An object type other than an array type that can hold the conversion state
-+ * information necessary to convert between sequences of (possibly multi-byte)
-+ * characters and wide characters. If a codeset is being
-+ * used such that an mbstate_t needs to preserve more than two levels of
-+ * reserved state, the results are unspecified.
-+ */
-+
-+typedef struct
-+{
-+ int __fill[6];
-+} mbstate_t;
-
- /****************************************************************************
- * Public Data
-@@ -142,7 +154,18 @@ extern "C"
- * Reference: Opengroup.org
- */
-
--#if 0 /* Not yet implemented */
-+
-+#ifndef _WCTYPE_T
-+#define _WCTYPE_T
-+# ifdef _AEABI_PORTABLE
-+typedef void *wctype_t;
-+# else
-+typedef int wctype_t;
-+# endif
-+#endif /* !_WCTYPE_T */
-+
-+ /* Not yet implemented */
-+
- wint_t btowc(int);
- int fwprintf(FILE *, const wchar_t *, ...);
- int fwscanf(FILE *, const wchar_t *, ...);
-@@ -218,7 +241,10 @@ 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 *, ...);
--#endif
-+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 **);
-
- #undef EXTERN
- #ifdef __cplusplus