]> granicus.if.org Git - esp-idf/commitdiff
newlib: enable timeradd, timersub, and similar macros
authorIvan Grokhotkov <ivan@espressif.com>
Fri, 8 Mar 2019 07:16:26 +0000 (15:16 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Tue, 19 Mar 2019 14:15:12 +0000 (22:15 +0800)
This uses a hack (temporarily defining __rtems__ from a wrapper header
file) to include timeradd, timersub, and similar macros, without
modifying newlib headers.

components/newlib/platform_include/sys/time.h [new file with mode: 0644]

diff --git a/components/newlib/platform_include/sys/time.h b/components/newlib/platform_include/sys/time.h
new file mode 100644 (file)
index 0000000..ecf3f70
--- /dev/null
@@ -0,0 +1,17 @@
+#pragma once
+/* Newlib sys/time.h defines timerisset, timerclear, timercmp, timeradd, timersub macros
+   for __CYGWIN__ and __rtems__. We want to define these macros in IDF as well.
+   Since we wish to use un-modified newlib headers until a patched newlib version is
+   available, temporarily define __rtems__ here before including sys/time.h.
+   __rtems__ is chosen instead of __CYGWIN__ since there are no other checks in sys/time.h
+   which depend on __rtems__.
+
+   Also, so that __rtems__ define does not affect other headers included from sys/time.h,
+   we include them here in advance (_ansi.h and sys/types.h).
+ */
+
+#include <_ansi.h>
+#include <sys/types.h>
+#define __rtems__
+#include_next <sys/time.h>
+#undef __rtems__