1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool/m4/ruby_stack_grow_direction.m4
Nobuyoshi Nakada 29bbad9399
Fix 2.7 build (#4359)
* merge revision(s) fcc88da5eb:

	configure.ac: fix for upcoming autoconf-2.70

	The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):

	```
	$ ./configure
	./configure: line 8720: syntax error near unexpected token `fi'
	./configure: line 8720: `fi'
	```

	Before the change generated `./configure ` snippet looked like:

	```
	    if ! $CC -E -xc - <<SRC >/dev/null
	then :

		#if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3
		#error premature clang
		#endif
	SRC
		as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5
	fi
	```

	Note the newline that breaks here-document syntax.

	After the change the snippet does not use here-document.

	Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
	---
	 configure.ac | 15 ++++++++-------
	 1 file changed, 8 insertions(+), 7 deletions(-)

* merge revision(s) 0df67a4695:

	Signal handler type should be void

	---
	 configure.ac                          |  1 -
	 include/ruby/internal/intern/signal.h |  3 +--
	 signal.c                              | 14 +++++++-------
	 vm_core.h                             |  2 +-
	 win32/Makefile.sub                    |  1 -
	 5 files changed, 9 insertions(+), 12 deletions(-)

* merge revision(s) 4d2ad8d737:

	Removed obsolete autoconf checks

	Use regular `AC_CHECK_MEMBERS` instead of:
	* `AC_STRUCT_ST_BLKSIZE`
	* `AC_STRUCT_ST_BLOCKS`
	* `AC_STRUCT_ST_RDEV`
	---
	 configure.ac         | 6 +++---
	 missing/fileblocks.c | 1 -
	 win32/Makefile.sub   | 1 -
	 3 files changed, 3 insertions(+), 5 deletions(-)
	 delete mode 100644 missing/fileblocks.c

* merge revision(s) 3b7c05ef8d:

	Fixed RUBY_RM_RECURSIVE when autoconf met the required version

	Before 9189cf5793 the result of
	`m4_version_compare` was compared to -1, however the `$2` of
	`m4_version_prereq` has different meaning and is expanded when
	the required version met.
	---
	 tool/m4/ruby_rm_recursive.m4 | 4 ++--
	 1 file changed, 2 insertions(+), 2 deletions(-)

* merge revision(s) c32375883a696fcf8e9e99875f1339ee5474a255,48bb0329eb325bc5b77c222f45b8dc97a208d986:

	Update for autoconf 2.70

	---
	 configure.ac                         | 232 +++++++++++++++++------------------
	 tool/m4/ruby_check_builtin_setjmp.m4 |   8 +-
	 tool/m4/ruby_check_printf_prefix.m4  |   9 +-
	 tool/m4/ruby_check_setjmp.m4         |   6 +-
	 tool/m4/ruby_check_sysconf.m4        |   6 +-
	 tool/m4/ruby_cppoutfile.m4           |   4 +-
	 tool/m4/ruby_decl_attribute.m4       |   4 +-
	 tool/m4/ruby_dtrace_available.m4     |   2 +-
	 tool/m4/ruby_dtrace_postprocess.m4   |   2 +-
	 tool/m4/ruby_mingw32.m4              |   4 +-
	 tool/m4/ruby_stack_grow_direction.m4 |   4 +-
	 tool/m4/ruby_try_cflags.m4           |   2 +-
	 tool/m4/ruby_try_cxxflags.m4         |   2 +-
	 tool/m4/ruby_try_ldflags.m4          |   2 +-
	 14 files changed, 143 insertions(+), 144 deletions(-)

	Revert AC_PROG_CC_C99 for -std=gnu99 option to gcc 4.8

	---
	 configure.ac | 5 ++++-
	 1 file changed, 4 insertions(+), 1 deletion(-)

Co-authored-by: Sergei Trofimovich <slyfox@gentoo.org>
2021-05-31 23:04:44 +09:00

30 lines
715 B
Text

# -*- Autoconf -*-
AC_DEFUN([RUBY_STACK_GROW_DIRECTION], [
AS_VAR_PUSHDEF([stack_grow_dir], [rb_cv_stack_grow_dir_$1])
AC_CACHE_CHECK(stack growing direction on $1, stack_grow_dir, [
AS_CASE(["$1"],
[m68*|x86*|x64|i?86|ppc*|sparc*|alpha*], [ $2=-1],
[hppa*], [ $2=+1],
[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
/* recurse to get rid of inlining */
static int
stack_growup_p(addr, n)
volatile int *addr, n;
{
volatile int end;
if (n > 0)
return *addr = stack_growup_p(addr, n - 1);
else
return (&end > addr);
}
int main()
{
int x;
return stack_growup_p(&x, 10);
}
]])],[$2=-1],[$2=+1],[$2=0])
])
eval stack_grow_dir=\$$2])
eval $2=\$stack_grow_dir
AS_VAR_POPDEF([stack_grow_dir])])dnl