[git commit master] move extend_alloca macro to alloca.h
Peter S. Mazinger
ps.m at gmx.net
Fri Nov 20 19:05:07 UTC 2009
commit: http://git.uclibc.org/uClibc/commit/?id=0ccab5e4a96ae1ad60a815c0045e1f0a51ea27d1
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
guard it by _LIBC. __MAX_ALLOCA_CUTOFF is not needed on target either
Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
include/alloca.h | 33 ++++++++++++++++++++++++++++++++-
include/libc-internal.h | 30 ------------------------------
2 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/include/alloca.h b/include/alloca.h
index b4fc317..2565b48 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -36,7 +36,38 @@ extern void *alloca (size_t __size) __THROW;
# define alloca(size) __builtin_alloca (size)
#endif /* GCC. */
-#define __MAX_ALLOCA_CUTOFF 65536
+#ifdef _LIBC
+# define __MAX_ALLOCA_CUTOFF 65536
+
+# include <bits/stackinfo.h>
+# ifdef _STACK_GROWS_DOWN
+# define extend_alloca(buf, len, newlen) \
+ (__typeof (buf)) ({ size_t __newlen = (newlen); \
+ char *__newbuf = alloca (__newlen); \
+ if (__newbuf + __newlen == (char *) buf) \
+ len += __newlen; \
+ else \
+ len = __newlen; \
+ __newbuf; })
+# elif defined _STACK_GROWS_UP
+# define extend_alloca(buf, len, newlen) \
+ (__typeof (buf)) ({ size_t __newlen = (newlen); \
+ char *__newbuf = alloca (__newlen); \
+ char *__buf = (buf); \
+ if (__buf + __newlen == __newbuf) \
+ { \
+ len += __newlen; \
+ __newbuf = __buf; \
+ } \
+ else \
+ len = __newlen; \
+ __newbuf; })
+# else
+# error unknown stack
+# define extend_alloca(buf, len, newlen) \
+ alloca (((len) = (newlen)))
+# endif
+#endif
__END_DECLS
diff --git a/include/libc-internal.h b/include/libc-internal.h
index 33956d8..8809bc0 100644
--- a/include/libc-internal.h
+++ b/include/libc-internal.h
@@ -67,36 +67,6 @@ extern const char *__uclibc_progname attribute_hidden;
# endif /* IS_IN_libc */
-/* #include <alloca.h> */
-#include <bits/stackinfo.h>
-#if defined(_STACK_GROWS_DOWN)
-# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = (newlen); \
- char *__newbuf = alloca (__newlen); \
- if (__newbuf + __newlen == (char *) buf) \
- len += __newlen; \
- else \
- len = __newlen; \
- __newbuf; })
-#elif defined(_STACK_GROWS_UP)
-# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = (newlen); \
- char *__newbuf = alloca (__newlen); \
- char *__buf = (buf); \
- if (__buf + __newlen == __newbuf) \
- { \
- len += __newlen; \
- __newbuf = __buf; \
- } \
- else \
- len = __newlen; \
- __newbuf; })
-#else
-# warning unknown stack
-# define extend_alloca(buf, len, newlen) \
- alloca (((len) = (newlen)))
-#endif
-
#endif /* __ASSEMBLER__ */
#endif /* _LIBC_INTERNAL_H */
--
1.6.3.3
More information about the uClibc-cvs
mailing list