From d4fb9e1c8d1c03d2fb0548f8c62dfb7ca04b7bf0 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Tue, 22 Feb 2005 19:00:38 +0000 Subject: [PATCH] re PR libgcj/19823 (java fails with non-executable memory) 2005-02-22 Bryce McKinlay PR libgcj/19823 * configure.host: Set gc_use_mmap on *-linux*. * configure.in: Define USE_MMAP if gc_use_mmap is set. * configure: Rebuilt. From-SVN: r95407 --- boehm-gc/ChangeLog | 7 +++++++ boehm-gc/configure | 9 ++++++++- boehm-gc/configure.host | 9 +++++++++ boehm-gc/configure.in | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index f441bf6f527b..2a2f8d228b72 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,10 @@ +2005-02-22 Bryce McKinlay + + PR libgcj/19823 + * configure.host: Set gc_use_mmap on *-linux*. + * configure.in: Define USE_MMAP if gc_use_mmap is set. + * configure: Rebuilt. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff --git a/boehm-gc/configure b/boehm-gc/configure index 20b334af74fe..3ff5861be767 100755 --- a/boehm-gc/configure +++ b/boehm-gc/configure @@ -3076,7 +3076,7 @@ esac # # We don't set NO_EXECUTE_PERMISSION by default because gcj (and # anything else that creates trampolines in gc-allocated memory) -# always needs exec permission. The exception to this is IA-64 and +# always needs exec permission. The exceptions to this are IA-64 and # some variations of Power PC, where trampolines don't contain # executable code. # @@ -3453,6 +3453,13 @@ EOF fi +if test "${gc_use_mmap}" = "yes"; then + cat >> confdefs.h <<\EOF +#define USE_MMAP 1 +EOF + +fi + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host index a98a0a7cb30c..97f4dacb6dee 100644 --- a/boehm-gc/configure.host +++ b/boehm-gc/configure.host @@ -18,8 +18,11 @@ # It sets the following shell variables: # gc_cflags Special CFLAGS to use when building +# gc_use_mmap Set to "yes" on platforms where mmap should be used instead +# of sbrk. This will define USE_MMAP. gc_cflags="" +gc_use_mmap= # We should set -fexceptions if we are using gcc and might be used # inside something like gcj. This is the zeroth approximation: @@ -37,6 +40,12 @@ else esac fi +case "${host}" in + *-linux*) + gc_use_mmap=yes + ;; +esac + case "${target_optspace}:${host}" in yes:*) gc_cflags="${gc_cflags} -Os" diff --git a/boehm-gc/configure.in b/boehm-gc/configure.in index f109c9003edc..69c50ae6a4f3 100644 --- a/boehm-gc/configure.in +++ b/boehm-gc/configure.in @@ -419,6 +419,10 @@ AC_ARG_ENABLE(full-debug, esac ] fi) +if test "${gc_use_mmap}" = "yes"; then + AC_DEFINE(USE_MMAP, 1, [use MMAP instead of sbrk to get new memory]) +fi + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' -- 2.47.2