diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-09 03:34:08 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-09 03:34:08 +0000 |
commit | 1c0323adbc390c40453c4ad02150e26b55e0dbf5 (patch) | |
tree | c4ea4626415f4aab7ab221a778bfbe3ba2132b10 /eval_intern.h | |
parent | 8ebd713b7f469923749c53d3ed191123d8f0ef27 (diff) | |
download | ruby-1c0323adbc390c40453c4ad02150e26b55e0dbf5.tar.gz |
Fix build when gcc is used and the platform's libc lacks alloca().
* include/ruby/ruby.h (alloca), eval_intern.h (alloca), gc.c
(alloca): Make alloca() globally available by moving the
ultimate ifdef's to ruby/ruby.h. Gcc hides its builtin alloca()
when compiling with -ansi, and linking thus fails on platforms
that lack their own alloca() implementation in libc, which
include OpenBSD and some ports of NetBSD. We use alloca()
everywhere including from within third party C extentions, so
alloca() must be made globally available. [Bug #7307]
* addr2line.c (alloca): Replace the alloca() part with the
ultimate ifdef's. [Bug #7307]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval_intern.h')
-rw-r--r-- | eval_intern.h | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/eval_intern.h b/eval_intern.h index fb852cbca5..421900b147 100644 --- a/eval_intern.h +++ b/eval_intern.h @@ -31,27 +31,6 @@ #include <crt_externs.h> #endif -/* Make alloca work the best possible way. */ -#ifdef __GNUC__ -# ifndef atarist -# ifndef alloca -# define alloca __builtin_alloca -# endif -# endif /* atarist */ -#else -# ifdef HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX -#pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca(); -# endif -# endif /* AIX */ -# endif /* HAVE_ALLOCA_H */ -#endif /* __GNUC__ */ - #ifndef HAVE_STRING_H char *strrchr(const char *, const char); #endif |