aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/ChangeLog17
-rw-r--r--boehm-gc/Makefile.in5
-rwxr-xr-xboehm-gc/configure8
-rw-r--r--boehm-gc/configure.ac4
-rw-r--r--boehm-gc/configure.host9
-rw-r--r--boehm-gc/dyn_load.c5
-rw-r--r--boehm-gc/include/Makefile.in29
-rw-r--r--boehm-gc/include/gc_config.h.in3
-rw-r--r--boehm-gc/include/private/gc_priv.h4
9 files changed, 73 insertions, 11 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index b9c7c46ae05..9b5852d4777 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,20 @@
+2005-03-01 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Makefile.in, include/Makefile.in: Regenerate.
+
+2005-02-26 Richard Earnshaw <rearnsha@arm.com>
+
+ * dyn_load.c: On NetBSD, include machine/elf_machdep.h and define
+ ELFSIZE in terms of ARCH_ELFSIZE (back-ported from gc7.0alpha1).
+
+2005-02-15 Bryce McKinlay <mckinlay@redhat.com>
+
+ PR libgcj/19823
+ * configure.host: Set gc_use_mmap on *-linux*.
+ * configure.ac: Define USE_MMAP if gc_use_mmap is set.
+ * include/private/gc_priv.h: Include gc_config.h.
+ * configure, include/gc_config.h.in: Rebuilt.
+
2005-02-07 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (GC_allochblk_nth): Dont overlook available space if
diff --git a/boehm-gc/Makefile.in b/boehm-gc/Makefile.in
index a81e3d0b466..6f842205efe 100644
--- a/boehm-gc/Makefile.in
+++ b/boehm-gc/Makefile.in
@@ -77,7 +77,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
-CONFIG_HEADER = $(top_builddir)/include/gc_config.h
+CONFIG_HEADER = $(top_builddir)/include/gc_config.h \
+ $(top_builddir)/include/gc_ext_config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
@@ -100,7 +101,7 @@ am_gctest_OBJECTS = tests/test.$(OBJEXT)
gctest_OBJECTS = $(am_gctest_OBJECTS)
gctest_DEPENDENCIES = ./libgcjgc.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_builddir)/include
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
diff --git a/boehm-gc/configure b/boehm-gc/configure
index 36243d4c58b..b205d328c03 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -6558,6 +6558,14 @@ _ACEOF
fi
fi;
+if test "${gc_use_mmap}" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_MMAP 1
+_ACEOF
+
+fi
+
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
diff --git a/boehm-gc/configure.ac b/boehm-gc/configure.ac
index 208a9160872..dfb0e17e261 100644
--- a/boehm-gc/configure.ac
+++ b/boehm-gc/configure.ac
@@ -446,6 +446,10 @@ AC_ARG_ENABLE(gc-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_noncanonical)'
diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host
index a98a0a7cb30..97f4dacb6de 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/dyn_load.c b/boehm-gc/dyn_load.c
index dfe0a3c87e8..c5139aa80a8 100644
--- a/boehm-gc/dyn_load.c
+++ b/boehm-gc/dyn_load.c
@@ -80,6 +80,11 @@
# define l_name lm_name
#endif
+#if defined(NETBSD)
+# include <machine/elf_machdep.h>
+# define ELFSIZE ARCH_ELFSIZE
+#endif
+
#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
(defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
(defined(NETBSD) && defined(__ELF__)) || defined(HURD)
diff --git a/boehm-gc/include/Makefile.in b/boehm-gc/include/Makefile.in
index 66aacac205a..4c823287b32 100644
--- a/boehm-gc/include/Makefile.in
+++ b/boehm-gc/include/Makefile.in
@@ -39,14 +39,15 @@ host_triplet = @host@
target_triplet = @target@
subdir = include
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/gc_config.h.in
+ $(srcdir)/Makefile.in $(srcdir)/gc_config.h.in \
+ $(srcdir)/gc_ext_config.h.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-CONFIG_HEADER = gc_config.h
+CONFIG_HEADER = gc_config.h gc_ext_config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
@@ -179,7 +180,7 @@ AUTOMAKE_OPTIONS = foreign
noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
gc_pthread_redirects.h gc_cpp.h
-all: gc_config.h
+all: gc_config.h gc_ext_config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
@@ -227,8 +228,18 @@ $(srcdir)/gc_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
rm -f stamp-h1
touch $@
+gc_ext_config.h: stamp-h2
+ @if test ! -f $@; then \
+ rm -f stamp-h2; \
+ $(MAKE) stamp-h2; \
+ else :; fi
+
+stamp-h2: $(srcdir)/gc_ext_config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h2
+ cd $(top_builddir) && $(SHELL) ./config.status include/gc_ext_config.h
+
distclean-hdr:
- -rm -f gc_config.h stamp-h1
+ -rm -f gc_config.h stamp-h1 gc_ext_config.h stamp-h2
mostlyclean-libtool:
-rm -f *.lo
@@ -250,11 +261,11 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
+TAGS: $(HEADERS) $(SOURCES) gc_config.h.in gc_ext_config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) gc_config.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) gc_config.h.in gc_ext_config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -266,11 +277,11 @@ TAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
$$tags $$unique; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
+CTAGS: $(HEADERS) $(SOURCES) gc_config.h.in gc_ext_config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) gc_config.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) gc_config.h.in gc_ext_config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -317,7 +328,7 @@ distdir: $(DISTFILES)
done
check-am: all-am
check: check-am
-all-am: Makefile $(HEADERS) gc_config.h
+all-am: Makefile $(HEADERS) gc_config.h gc_ext_config.h
installdirs:
install: install-am
install-exec: install-exec-am
diff --git a/boehm-gc/include/gc_config.h.in b/boehm-gc/include/gc_config.h.in
index 60ffb9741b6..92f1b2cf460 100644
--- a/boehm-gc/include/gc_config.h.in
+++ b/boehm-gc/include/gc_config.h.in
@@ -145,6 +145,9 @@
/* define GC_local_malloc() & GC_local_malloc_atomic() */
#undef THREAD_LOCAL_ALLOC
+/* use MMAP instead of sbrk to get new memory */
+#undef USE_MMAP
+
/* POSIX version of C Source */
#undef _POSIX_C_SOURCE
diff --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h
index e5bd52b62b7..c336ce5c433 100644
--- a/boehm-gc/include/private/gc_priv.h
+++ b/boehm-gc/include/private/gc_priv.h
@@ -19,6 +19,10 @@
# ifndef GC_PRIVATE_H
# define GC_PRIVATE_H
+/* Autoconf definitions. */
+/* FIXME: This should really be included directly from each .c file. */
+#include <gc_config.h>
+
#if defined(mips) && defined(SYSTYPE_BSD) && defined(sony_news)
/* sony RISC NEWS, NEWSOS 4 */
# define BSD_TIME