aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-10-17 19:42:09 +0000
committerTom Tromey <tromey@redhat.com>2006-10-17 19:42:09 +0000
commit3e05e7a7fe9f05fd86a7c7e876f39441212f8d9f (patch)
treec57a167a4ef54c4bbbb0906fbb114530b29c04ea
parent4aa97a1e0ee9818d071eda5c254fb057f4aa0bcf (diff)
libjava
* configure, Makefile.in: Rebuilt. * Makefile.am (install-exec-hook): Now unconditional. Rename ecjx if needed. (jar_DATA): Add ecj jar when needed. (toolexec_PROGRAMS): New variable. (ecjx_SOURCES, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES): Likewise. * prims.cc (JvRunMainName): New function. * include/jvm.h (JvRunMainName): Declare. * configure.ac: Added --with-ecj-jar. (ECJ_JAR): New subst. (ECJ_BUILD_JAR): Likewise. (INSTALL_ECJ_JAR): New conditional. (BUILD_ECJ1): Likewise. gcc/java * jvgenmain.c (main): Handle -findirect-dispatch. * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to jvgenmain. contrib * download_ecj: New file. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj-eclipse@117829 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--contrib/ChangeLog4
-rwxr-xr-xcontrib/download_ecj15
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/jvgenmain.c30
-rw-r--r--gcc/java/jvspec.c2
-rw-r--r--libjava/ChangeLog17
-rw-r--r--libjava/Makefile.am27
-rw-r--r--libjava/Makefile.in123
-rwxr-xr-xlibjava/configure66
-rw-r--r--libjava/configure.ac17
-rw-r--r--libjava/gcj/Makefile.in6
-rw-r--r--libjava/include/Makefile.in6
-rw-r--r--libjava/include/jvm.h2
-rw-r--r--libjava/prims.cc6
-rw-r--r--libjava/testsuite/Makefile.in6
15 files changed, 284 insertions, 49 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 3a59cb63dc7..e233b78fd27 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2006-10-17 Tom Tromey <tromey@redhat.com>
+
+ * download_ecj: New file.
+
2006-06-02 Richard Earnshaw <rearnsha@arm.com>
Mike Stump <mrs@apple.com>
diff --git a/contrib/download_ecj b/contrib/download_ecj
new file mode 100755
index 00000000000..77d6898f2c8
--- /dev/null
+++ b/contrib/download_ecj
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+#
+# Download the ecj jar file needed by gcj.
+# Run this from the top level of the gcc source tree and the libjava
+# build will do the right thing.
+#
+# (C) 2006 Free Software Foundation
+#
+# This script is Free Software, and it can be copied, distributed and
+# modified as defined in the GNU General Public License. A copy of
+# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+#
+
+wget -O ecj.jar ftp://sources.redhat.com/pub/java/ecj-latest.jar
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index c063ab5e79e..c604950e8f5 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-17 Tom Tromey <tromey@redhat.com>
+
+ * jvgenmain.c (main): Handle -findirect-dispatch.
+ * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
+ jvgenmain.
+
2006-10-06 Andrew Haley <aph@redhat.com>
* builtins.c (compareAndSwapInt_builtin): Check that we really do
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c
index e0cddc0d4d5..f4fb0ba38ab 100644
--- a/gcc/java/jvgenmain.c
+++ b/gcc/java/jvgenmain.c
@@ -1,5 +1,5 @@
/* Program to generate "main" a Java(TM) class containing a main method.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GCC.
@@ -57,14 +57,23 @@ main (int argc, char **argv)
FILE *stream;
const char *mangled_classname;
int i, last_arg;
+ int indirect = 0;
+ char *prog_name = argv[0];
/* Unlock the stdio streams. */
unlock_std_streams ();
gcc_init_libintl ();
+ if (argc > 1 && ! strcmp (argv[1], "-findirect-dispatch"))
+ {
+ indirect = 1;
+ ++argv;
+ --argc;
+ }
+
if (argc < 2)
- usage (argv[0]);
+ usage (prog_name);
for (i = 1; i < argc; ++i)
{
@@ -77,7 +86,7 @@ main (int argc, char **argv)
}
if (i < argc - 2 || i == argc)
- usage (argv[0]);
+ usage (prog_name);
last_arg = i;
classname = argv[i];
@@ -85,7 +94,7 @@ main (int argc, char **argv)
/* gcj always appends `main' to classname. We need to strip this here. */
p = strrchr (classname, 'm');
if (p == NULL || p == classname || strcmp (p, "main") != 0)
- usage (argv[0]);
+ usage (prog_name);
else
*p = '\0';
@@ -99,7 +108,7 @@ main (int argc, char **argv)
if (stream == NULL)
{
fprintf (stderr, _("%s: Cannot open output file: %s\n"),
- argv[0], outfile);
+ prog_name, outfile);
exit (1);
}
}
@@ -130,13 +139,18 @@ main (int argc, char **argv)
fprintf (stream, "int main (int argc, const char **argv)\n");
fprintf (stream, "{\n");
fprintf (stream, " _Jv_Compiler_Properties = props;\n");
- fprintf (stream, " extern void *%s;\n", mangled_classname);
- fprintf (stream, " JvRunMain (%s, argc, argv);\n", mangled_classname);
+ if (indirect)
+ fprintf (stream, " JvRunMainName (\"%s\", argc, argv);\n", classname);
+ else
+ {
+ fprintf (stream, " extern void *%s;\n", mangled_classname);
+ fprintf (stream, " JvRunMain (%s, argc, argv);\n", mangled_classname);
+ }
fprintf (stream, "}\n");
if (stream != stdout && fclose (stream) != 0)
{
fprintf (stderr, _("%s: Failed to close output file %s\n"),
- argv[0], argv[2]);
+ prog_name, argv[2]);
exit (1);
}
return 0;
diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c
index b542ec696e1..e6790e848e1 100644
--- a/gcc/java/jvspec.c
+++ b/gcc/java/jvspec.c
@@ -59,7 +59,7 @@ int lang_specific_extra_outfiles = 0;
int shared_libgcc = 1;
static const char jvgenmain_spec[] =
- "jvgenmain %{D*} %b %m.i |\n\
+ "jvgenmain %{findirect-dispatch} %{D*} %b %m.i |\n\
cc1 %m.i %1 \
%{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\
%{g*} %{O*} \
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 43bd7e388e7..5bbbbce99a0 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,20 @@
+2006-10-17 Tom Tromey <tromey@redhat.com>
+
+ * configure, Makefile.in: Rebuilt.
+ * Makefile.am (install-exec-hook): Now unconditional. Rename ecjx
+ if needed.
+ (jar_DATA): Add ecj jar when needed.
+ (toolexec_PROGRAMS): New variable.
+ (ecjx_SOURCES, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES):
+ Likewise.
+ * prims.cc (JvRunMainName): New function.
+ * include/jvm.h (JvRunMainName): Declare.
+ * configure.ac: Added --with-ecj-jar.
+ (ECJ_JAR): New subst.
+ (ECJ_BUILD_JAR): Likewise.
+ (INSTALL_ECJ_JAR): New conditional.
+ (BUILD_ECJ1): Likewise.
+
2006-10-13 Tom Tromey <tromey@redhat.com>
* HACKING: Updated.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 540b8f78f40..2e746d0e9ef 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -53,6 +53,9 @@ pkgconfig_DATA = libgcj.pc
jardir = $(datadir)/java
jar_DATA = libgcj-$(gcc_version).jar
+if INSTALL_ECJ_JAR
+jar_DATA += $(ECJ_BUILD_JAR)
+endif
if JAVA_HOME_SET
JAVA_HOME_DIR = $(JAVA_HOME)
@@ -83,6 +86,13 @@ endif
bin_SCRIPTS = addr2name.awk
+if BUILD_ECJ1
+## We build ecjx and not ecj1 because in one mode, ecjx will not work
+## until after 'make install', and we don't want it to be picked up in
+## the build tree by gcj via a -B option.
+toolexec_PROGRAMS = ecjx
+endif
+
## ################################################################
##
@@ -420,12 +430,12 @@ extra_headers = java/lang/Object.h java/lang/Class.h
$(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@:
+install-exec-hook: install-toolexeclibLTLIBRARIES install-toolexecPROGRAMS
## Support for libgcj_bc: dummy shared library used only at link-time.
if USE_LIBGCJ_BC
## Install libgcj_bc dummy lib in the target directory. We also need to delete
## libtool's .la file, this prevents libtool resetting the lib again
## later.
-install-exec-hook: install-toolexeclibLTLIBRARIES
@echo Installing dummy lib libgcj_bc.so.1.0.0; \
rm $(toolexeclibdir)/libgcj_bc.so; \
mv $(toolexeclibdir)/libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so; \
@@ -435,6 +445,9 @@ install-exec-hook: install-toolexeclibLTLIBRARIES
$(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \
rm $(toolexeclibdir)/libgcj_bc.la;
endif
+if BUILD_ECJ1
+ mv $(DESTDIR)$(toolexecdir)/ecjx $(DESTDIR)$(toolexecdir)/ecj1
+endif
## Install the headers. It is fairly ugly that we have to do this by
## hand.
@@ -660,6 +673,18 @@ grmiregistry_LDADD = -L$(here)/.libs libgcj.la
## linking this program.
grmiregistry_DEPENDENCIES = libgcj.la libgcj.spec
+## Build an ecjx from a .jar.
+ecjx_SOURCES =
+## We use the BC ABI here so that we don't need to compile ecj.jar.
+## Hopefully the user has compiled it into his system .db.
+## However, even if not it will run reasonably quickly.
+ecjx_LDFLAGS = -findirect-dispatch \
+ --main=org.eclipse.jdt.internal.compiler.batch.GCCMain \
+ -Djava.class.path=$(ECJ_JAR)
+ecjx_LINK = $(GCJLINK)
+ecjx_LDADD = -L$(here)/.libs libgcj.la
+ecjx_DEPENDENCIES = libgcj.la libgcj.spec
+
## ################################################################
## This lists all the C++ source files in subdirectories.
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 00e39123c2a..251a8740161 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -44,19 +44,21 @@ target_triplet = @target@
@USE_LIBGCJ_BC_TRUE@am__append_2 = libgcj_bc.la
@XLIB_AWT_TRUE@am__append_3 = lib-gnu-awt-xlib.la
@QT_AWT_TRUE@am__append_4 = lib-gnu-java-awt-peer-qt.la
+@INSTALL_ECJ_JAR_TRUE@am__append_5 = $(ECJ_BUILD_JAR)
@NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) \
@NATIVE_TRUE@ grmic$(EXEEXT) grmiregistry$(EXEEXT) \
@NATIVE_TRUE@ gcj-dbtool$(EXEEXT)
-@BASH_JAR_TRUE@am__append_5 = scripts/jar
-@USING_GCC_TRUE@am__append_6 = $(WARNINGS)
-@USING_BOEHMGC_TRUE@am__append_7 = boehm.cc
-@USING_NOGC_TRUE@am__append_8 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_9 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_10 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_11 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_12 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_13 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_14 = no-threads.cc
+@BUILD_ECJ1_TRUE@toolexec_PROGRAMS = ecjx$(EXEEXT)
+@BASH_JAR_TRUE@am__append_6 = scripts/jar
+@USING_GCC_TRUE@am__append_7 = $(WARNINGS)
+@USING_BOEHMGC_TRUE@am__append_8 = boehm.cc
+@USING_NOGC_TRUE@am__append_9 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_10 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_11 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_12 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_13 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_14 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_15 = no-threads.cc
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(srcdir)/../config.guess $(srcdir)/../config.sub \
$(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -68,7 +70,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT)
-@XLIB_AWT_TRUE@am__append_15 = $(xlib_nat_headers)
+@XLIB_AWT_TRUE@am__append_16 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -106,9 +108,9 @@ am__vpath_adj = case $$p in \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" \
- "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" \
- "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" \
- "$(DESTDIR)$(toolexecmainlibdir)"
+ "$(DESTDIR)$(toolexecdir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" \
+ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"
toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
am__dirstamp = $(am__leading_dot)dirstamp
@@ -391,7 +393,10 @@ libgcj_bc_la_OBJECTS = $(am_libgcj_bc_la_OBJECTS)
am_libgij_la_OBJECTS = gij.lo
libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+toolexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(toolexec_PROGRAMS)
+am_ecjx_OBJECTS =
+ecjx_OBJECTS = $(am_ecjx_OBJECTS)
am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT)
gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS)
am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \
@@ -436,13 +441,13 @@ GCJLD = $(GCJ)
SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
$(lib_gnu_java_awt_peer_qt_la_SOURCES) $(libgcj_la_SOURCES) \
$(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
- $(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) \
+ $(libgij_la_SOURCES) $(ecjx_SOURCES) $(gcj_dbtool_SOURCES) \
$(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) \
$(grmiregistry_SOURCES) $(jv_convert_SOURCES)
DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
$(lib_gnu_java_awt_peer_qt_la_SOURCES) \
$(am__libgcj_la_SOURCES_DIST) $(EXTRA_libgcj_la_SOURCES) \
- $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \
+ $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) $(ecjx_SOURCES) \
$(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \
$(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \
$(jv_convert_SOURCES)
@@ -486,6 +491,8 @@ AWK = @AWK@
BACKTRACESPEC = @BACKTRACESPEC@
BASH_JAR_FALSE = @BASH_JAR_FALSE@
BASH_JAR_TRUE = @BASH_JAR_TRUE@
+BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@
+BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
@@ -507,6 +514,8 @@ DIVIDESPEC = @DIVIDESPEC@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
+ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
+ECJ_JAR = @ECJ_JAR@
EGREP = @EGREP@
EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
@@ -531,6 +540,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@
+INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
@@ -730,7 +741,7 @@ toolexecmainlib_DATA = libgcj.spec
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libgcj.pc
jardir = $(datadir)/java
-jar_DATA = libgcj-$(gcc_version).jar
+jar_DATA = libgcj-$(gcc_version).jar $(am__append_5)
@JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)
@JAVA_HOME_SET_TRUE@JAVA_HOME_DIR = $(JAVA_HOME)
@JAVA_HOME_SET_FALSE@BOOT_CLASS_PATH_DIR = $(jardir)/$(jar_DATA)
@@ -740,7 +751,7 @@ propdir = $(libdir)
db_name = classmap.db
db_pathtail = gcj-$(gcc_version)/$(db_name)
@NATIVE_TRUE@dbexec_DATA = $(db_name)
-bin_SCRIPTS = addr2name.awk $(am__append_5)
+bin_SCRIPTS = addr2name.awk $(am__append_6)
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
$(LDFLAGS) -o $@
@@ -778,7 +789,7 @@ AM_GCJFLAGS = \
--encoding=UTF-8 \
-Wno-deprecated -fbootstrap-classes
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_6)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_7)
PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
JCFLAGS = -g
JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
@@ -802,9 +813,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
defineclass.cc interpret.cc verify.cc $(nat_source_files) \
- $(am__append_7) $(am__append_8) $(am__append_9) \
- $(am__append_10) $(am__append_11) $(am__append_12) \
- $(am__append_13) $(am__append_14)
+ $(am__append_8) $(am__append_9) $(am__append_10) \
+ $(am__append_11) $(am__append_12) $(am__append_13) \
+ $(am__append_14) $(am__append_15)
nat_files = $(nat_source_files:.cc=.lo)
xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
@@ -7519,6 +7530,14 @@ grmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \
grmiregistry_LINK = $(GCJLINK)
grmiregistry_LDADD = -L$(here)/.libs libgcj.la
grmiregistry_DEPENDENCIES = libgcj.la libgcj.spec
+ecjx_SOURCES =
+ecjx_LDFLAGS = -findirect-dispatch \
+ --main=org.eclipse.jdt.internal.compiler.batch.GCCMain \
+ -Djava.class.path=$(ECJ_JAR)
+
+ecjx_LINK = $(GCJLINK)
+ecjx_LDADD = -L$(here)/.libs libgcj.la
+ecjx_DEPENDENCIES = libgcj.la libgcj.spec
nat_source_files = \
gnu/classpath/natSystemProperties.cc \
gnu/classpath/natConfiguration.cc \
@@ -7620,7 +7639,7 @@ gnu/gcj/xlib/natXImage.cc \
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_15)
+headers_to_make = $(nat_headers) $(am__append_16)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
@@ -8188,6 +8207,37 @@ clean-noinstPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
+install-toolexecPROGRAMS: $(toolexec_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(toolexecdir)" || $(mkdir_p) "$(DESTDIR)$(toolexecdir)"
+ @list='$(toolexec_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(toolexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(toolexecdir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(toolexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(toolexecdir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-toolexecPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(toolexec_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(toolexecdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(toolexecdir)/$$f"; \
+ done
+
+clean-toolexecPROGRAMS:
+ @list='$(toolexec_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES)
+ @rm -f ecjx$(EXEEXT)
+ $(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS)
gnu/gcj/tools/gcj_dbtool/$(am__dirstamp):
@$(mkdir_p) gnu/gcj/tools/gcj_dbtool
@: > gnu/gcj/tools/gcj_dbtool/$(am__dirstamp)
@@ -9159,7 +9209,7 @@ check: check-recursive
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \
+ for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(toolexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
@@ -9246,12 +9296,11 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@USE_LIBGCJ_BC_FALSE@install-exec-hook:
clean: clean-recursive
clean-am: clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS clean-toolexeclibLTLIBRARIES \
- mostlyclean-am
+ clean-noinstPROGRAMS clean-toolexecPROGRAMS \
+ clean-toolexeclibLTLIBRARIES mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -9274,8 +9323,8 @@ install-data-am: install-data-local install-jarDATA \
install-pkgconfigDATA
install-exec-am: install-binPROGRAMS install-binSCRIPTS \
- install-dbexecDATA install-toolexeclibLTLIBRARIES \
- install-toolexecmainlibDATA
+ install-dbexecDATA install-toolexecPROGRAMS \
+ install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
@@ -9307,14 +9356,14 @@ ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-dbexecDATA uninstall-info-am uninstall-jarDATA \
- uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES \
- uninstall-toolexecmainlibDATA
+ uninstall-pkgconfigDATA uninstall-toolexecPROGRAMS \
+ uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS clean-recursive \
+ clean-noinstPROGRAMS clean-recursive clean-toolexecPROGRAMS \
clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
distcheck distclean distclean-compile distclean-generic \
@@ -9325,7 +9374,7 @@ uninstall-info: uninstall-info-recursive
install-data-am install-data-local install-dbexecDATA \
install-exec install-exec-am install-exec-hook install-info \
install-info-am install-jarDATA install-man \
- install-pkgconfigDATA install-strip \
+ install-pkgconfigDATA install-strip install-toolexecPROGRAMS \
install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic \
@@ -9335,7 +9384,8 @@ uninstall-info: uninstall-info-recursive
uninstall uninstall-am uninstall-binPROGRAMS \
uninstall-binSCRIPTS uninstall-dbexecDATA uninstall-info-am \
uninstall-jarDATA uninstall-pkgconfigDATA \
- uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
+ uninstall-toolexecPROGRAMS uninstall-toolexeclibLTLIBRARIES \
+ uninstall-toolexecmainlibDATA
$(db_name): gcj-dbtool$(EXEEXT)
@@ -10937,7 +10987,7 @@ gcjh.stamp: classpath/lib/compile-classes
$(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@:
-@USE_LIBGCJ_BC_TRUE@install-exec-hook: install-toolexeclibLTLIBRARIES
+install-exec-hook: install-toolexeclibLTLIBRARIES install-toolexecPROGRAMS
@USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ mv $(toolexeclibdir)/libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so; \
@@ -10946,6 +10996,7 @@ $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.la;
+@BUILD_ECJ1_TRUE@ mv $(DESTDIR)$(toolexecdir)/ecjx $(DESTDIR)$(toolexecdir)/ecj1
install-data-local:
$(PRE_INSTALL)
diff --git a/libjava/configure b/libjava/configure
index e6eb0e58764..e61a16fb20a 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_subdir host_subdir target_subdir libgcj_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP BASH_JAR_TRUE BASH_JAR_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE QT_AWT_TRUE QT_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJH INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME INTERPRETER LIBFFI LIBFFIINCS PLATFORM CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS extra_ldflags_libjava GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV LIBMAGIC GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir dbexecdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL SYSDEP_SOURCES LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_subdir host_subdir target_subdir libgcj_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP BASH_JAR_TRUE BASH_JAR_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE QT_AWT_TRUE QT_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJH INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME INTERPRETER LIBFFI LIBFFIINCS PLATFORM CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS extra_ldflags_libjava GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV LIBMAGIC GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir dbexecdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL SYSDEP_SOURCES LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -889,6 +889,7 @@ Optional Packages:
--with-escher=ABS.PATH specify path to escher dir or JAR for X peers
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-pic try to use only PIC/non-PIC objects default=use both
+ --with-ecj-jar=FILE use preinstalled ecj jar
--with-java-home=DIRECTORY
value of java.home system property
--with-win32-nlsapi=ansi or unicows or unicode
@@ -5899,7 +5900,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 5902 "configure"' > conftest.$ac_ext
+ echo '#line 5903 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -6797,6 +6798,45 @@ if test -z "$enable_hash_synchronization"; then
fi
+install_ecj_jar=no
+ECJ_BUILD_JAR=
+ECJ_JAR=
+
+# Check whether --with-ecj-jar or --without-ecj-jar was given.
+if test "${with_ecj_jar+set}" = set; then
+ withval="$with_ecj_jar"
+ ECJ_JAR=$withval
+else
+ if test -f $libgcj_basedir/../ecj.jar; then
+ ECJ_BUILD_JAR=$libgcj_basedir/../ecj.jar
+ ECJ_JAR='$(jardir)/ecj.jar'
+ install_ecj_jar=yes
+ fi
+fi;
+
+
+
+
+if test "$ECJ_JAR" != ""; then
+ BUILD_ECJ1_TRUE=
+ BUILD_ECJ1_FALSE='#'
+else
+ BUILD_ECJ1_TRUE='#'
+ BUILD_ECJ1_FALSE=
+fi
+
+
+
+if test $install_ecj_jar = yes; then
+ INSTALL_ECJ_JAR_TRUE=
+ INSTALL_ECJ_JAR_FALSE='#'
+else
+ INSTALL_ECJ_JAR_TRUE='#'
+ INSTALL_ECJ_JAR_FALSE=
+fi
+
+
+
# Check whether --with-java-home or --without-java-home was given.
if test "${with_java_home+set}" = set; then
withval="$with_java_home"
@@ -6902,7 +6942,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 6905 "configure"
+#line 6945 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -17128,6 +17168,20 @@ echo "$as_me: error: conditional \"TESTSUBDIR\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${BUILD_ECJ1_TRUE}" && test -z "${BUILD_ECJ1_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"BUILD_ECJ1\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"BUILD_ECJ1\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${INSTALL_ECJ_JAR_TRUE}" && test -z "${INSTALL_ECJ_JAR_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"INSTALL_ECJ_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"INSTALL_ECJ_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${JAVA_HOME_SET_TRUE}" && test -z "${JAVA_HOME_SET_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"JAVA_HOME_SET\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -17904,6 +17958,12 @@ s,@am__fastdepGCJ_FALSE@,$am__fastdepGCJ_FALSE,;t t
s,@subdirs@,$subdirs,;t t
s,@TESTSUBDIR_TRUE@,$TESTSUBDIR_TRUE,;t t
s,@TESTSUBDIR_FALSE@,$TESTSUBDIR_FALSE,;t t
+s,@ECJ_BUILD_JAR@,$ECJ_BUILD_JAR,;t t
+s,@ECJ_JAR@,$ECJ_JAR,;t t
+s,@BUILD_ECJ1_TRUE@,$BUILD_ECJ1_TRUE,;t t
+s,@BUILD_ECJ1_FALSE@,$BUILD_ECJ1_FALSE,;t t
+s,@INSTALL_ECJ_JAR_TRUE@,$INSTALL_ECJ_JAR_TRUE,;t t
+s,@INSTALL_ECJ_JAR_FALSE@,$INSTALL_ECJ_JAR_FALSE,;t t
s,@JAVA_HOME_SET_TRUE@,$JAVA_HOME_SET_TRUE,;t t
s,@JAVA_HOME_SET_FALSE@,$JAVA_HOME_SET_FALSE,;t t
s,@JAVA_HOME@,$JAVA_HOME,;t t
diff --git a/libjava/configure.ac b/libjava/configure.ac
index f418998bbf5..f5808010385 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -452,6 +452,23 @@ if test -z "$enable_hash_synchronization"; then
enable_hash_synchronization=$enable_hash_synchronization_default
fi
+
+install_ecj_jar=no
+ECJ_BUILD_JAR=
+ECJ_JAR=
+AC_ARG_WITH(ecj-jar,
+ AS_HELP_STRING([--with-ecj-jar=FILE], [use preinstalled ecj jar]),
+ [ECJ_JAR=$withval],
+ [if test -f $libgcj_basedir/../ecj.jar; then
+ ECJ_BUILD_JAR=$libgcj_basedir/../ecj.jar
+ ECJ_JAR='$(jardir)/ecj.jar'
+ install_ecj_jar=yes
+ fi])
+AC_SUBST(ECJ_BUILD_JAR)
+AC_SUBST(ECJ_JAR)
+AM_CONDITIONAL(BUILD_ECJ1, test "$ECJ_JAR" != "")
+AM_CONDITIONAL(INSTALL_ECJ_JAR, test $install_ecj_jar = yes)
+
AC_ARG_WITH(java-home,
AS_HELP_STRING([--with-java-home=DIRECTORY],
[value of java.home system property]),
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index 2c3c88da09b..a44ea293c6e 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -89,6 +89,8 @@ AWK = @AWK@
BACKTRACESPEC = @BACKTRACESPEC@
BASH_JAR_FALSE = @BASH_JAR_FALSE@
BASH_JAR_TRUE = @BASH_JAR_TRUE@
+BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@
+BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
@@ -110,6 +112,8 @@ DIVIDESPEC = @DIVIDESPEC@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
+ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
+ECJ_JAR = @ECJ_JAR@
EGREP = @EGREP@
EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
@@ -134,6 +138,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@
+INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index a5df6754455..65a93b1799d 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -88,6 +88,8 @@ AWK = @AWK@
BACKTRACESPEC = @BACKTRACESPEC@
BASH_JAR_FALSE = @BASH_JAR_FALSE@
BASH_JAR_TRUE = @BASH_JAR_TRUE@
+BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@
+BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
@@ -109,6 +111,8 @@ DIVIDESPEC = @DIVIDESPEC@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
+ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
+ECJ_JAR = @ECJ_JAR@
EGREP = @EGREP@
EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
@@ -133,6 +137,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@
+INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 4f860133d5c..90f8d263a3c 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -413,6 +413,8 @@ void _Jv_FreeMethodCache ();
void _Jv_SetStackSize (const char *arg);
extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
+extern "C" void JvRunMainName (const char *name, int argc, const char **argv);
+
void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
bool is_jar);
diff --git a/libjava/prims.cc b/libjava/prims.cc
index 744dd6657bf..cd39f075605 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -1584,6 +1584,12 @@ JvRunMain (jclass klass, int argc, const char **argv)
_Jv_RunMain (klass, NULL, argc, argv, false);
}
+void
+JvRunMainName (const char *name, int argc, const char **argv)
+{
+ _Jv_RunMain (NULL, name, argc, argv, false);
+}
+
// Parse a string and return a heap size.
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 7d7223cc8bd..8d9905b496b 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -77,6 +77,8 @@ AWK = @AWK@
BACKTRACESPEC = @BACKTRACESPEC@
BASH_JAR_FALSE = @BASH_JAR_FALSE@
BASH_JAR_TRUE = @BASH_JAR_TRUE@
+BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@
+BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
@@ -98,6 +100,8 @@ DIVIDESPEC = @DIVIDESPEC@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
+ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
+ECJ_JAR = @ECJ_JAR@
EGREP = @EGREP@
EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
@@ -122,6 +126,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@
+INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@