[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