jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
authorJakub Jelinek <jakub@redhat.com>
Thu, 17 Aug 2006 01:03:21 +0000 (03:03 +0200)
committerTom Tromey <tromey@gcc.gnu.org>
Thu, 17 Aug 2006 01:03:21 +0000 (01:03 +0000)
gcc/java/ChangeLog
* jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
libjava/ChangeLog
* configure, Makefile.in: Rebuilt.
* Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la.
(libgcj_bc_la_SOURCES): New variable.
(libgcj_bc_la_LDFLAGS): Likewise.
(libgcj_bc_la_LIBADD): Likewise.
(libgcj_bc_la_DEPENDENCIES): Likewise.
(libgcj_bc_la_LINK): Likewise.
(libgcj_bc_dummy_LINK): Likewise.
(libgcj_bc.la): New target.
(install-exec-hook): Likewise.
* libgcj.spec.in (*lib): Use LIBGCJ_SPEC.
* libgcj_bc.c: New file.
* configure.ac (LIBGCJ_SPEC): New subst.
* configure.host (use_libgcj_bc): New variable.

Co-Authored-By: Bryce McKinlay <bryce@mckinlay.net.nz>
From-SVN: r116204

13 files changed:
gcc/java/ChangeLog
gcc/java/jvspec.c
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/configure
libjava/configure.ac
libjava/configure.host
libjava/gcj/Makefile.in
libjava/include/Makefile.in
libjava/libgcj.spec.in
libjava/libgcj_bc.c [new file with mode: 0644]
libjava/testsuite/Makefile.in

index d1728f8..81970f5 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-16  Jakub Jelinek  <jakub@redhat.com>
+           Bryce McKinlay  <bryce@mckinlay.net.nz>
+
+       * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
+
 2006-08-10  Simon Martin  <simartin@users.sourceforge.net>
 
        PR java/8923
index 63f49ff..f64d438 100644 (file)
@@ -243,6 +243,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
   /* The argument we use to specify the spec file.  */
   char *spec_file = NULL;
 
+  /* If linking, nonzero if the BC-ABI is in use.  */
+  int link_for_bc_abi = 0;
+
   argc = *in_argc;
   argv = *in_argv;
   added_libraries = *in_added_libraries;
@@ -365,6 +368,11 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
           else if (strcmp (argv[i], "-static-libgcc") == 0
                    || strcmp (argv[i], "-static") == 0)
            shared_libgcc = 0;
+         else if (strcmp (argv[i], "-findirect-dispatch") == 0
+                  || strcmp (argv[i], "--indirect-dispatch") == 0)
+           {
+             link_for_bc_abi = 1;
+           }
          else
            /* Pass other options through.  */
            continue;
@@ -490,6 +498,8 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
   
   num_args += shared_libgcc;
 
+  num_args += link_for_bc_abi;
+
   arglist = XNEWVEC (const char *, num_args + 1);
   j = 0;
 
@@ -599,6 +609,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
   if (shared_libgcc)
     arglist[j++] = "-shared-libgcc";
 
+  if (link_for_bc_abi)
+    arglist[j++] = "-s-bc-abi";
+
   arglist[j] = NULL;
 
   *in_argc = j;
index 1fa075c..5d324c2 100644 (file)
@@ -1,3 +1,21 @@
+2006-08-16  Jakub Jelinek  <jakub@redhat.com>
+           Bryce McKinlay  <bryce@mckinlay.net.nz>
+
+       * configure, Makefile.in: Rebuilt.
+       * Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la.
+       (libgcj_bc_la_SOURCES): New variable.
+       (libgcj_bc_la_LDFLAGS): Likewise.
+       (libgcj_bc_la_LIBADD): Likewise.
+       (libgcj_bc_la_DEPENDENCIES): Likewise.
+       (libgcj_bc_la_LINK): Likewise.
+       (libgcj_bc_dummy_LINK): Likewise.
+       (libgcj_bc.la): New target.
+       (install-exec-hook): Likewise.
+       * libgcj.spec.in (*lib): Use LIBGCJ_SPEC.
+       * libgcj_bc.c: New file.
+       * configure.ac (LIBGCJ_SPEC): New subst.
+       * configure.host (use_libgcj_bc): New variable.
+
 2006-08-15  Kyle Galloway  <kgallowa@redhat.com>
 
        * include/java-interp.h (_Jv_InterpMethod::run_debug): New method.
index 06049fd..f04f993 100644 (file)
@@ -36,6 +36,10 @@ libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la
 toolexecmainlib_DATA = libgcj.spec
 
+if USE_LIBGCJ_BC
+toolexeclib_LTLIBRARIES += libgcj_bc.la
+endif
+
 if XLIB_AWT
 toolexeclib_LTLIBRARIES += lib-gnu-awt-xlib.la
 endif
@@ -277,6 +281,31 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
 
+## Support for libgcj_bc: dummy shared library.
+##
+## This lets us have one soname in BC objects and another in C++ ABI objects.
+libgcj_bc_la_SOURCES = libgcj_bc.c
+libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0
+libgcj_bc_la_LIBADD = libgcj.la
+libgcj_bc_la_DEPENDENCIES = libgcj.la
+libgcj_bc_la_LINK = $(LIBLINK)
+## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
+## USE_LIBGCJ_BC shouldn't be set on other targets.
+libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
+       -fPIC -nostdlib
+
+## This rule creates the libgcj_bc dummy library in the .libs directory, for use
+## when testing.
+libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES)
+       $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
+       $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) || exit; \
+       rm .libs/libgcj_bc.so; \
+       mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
+       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+       -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+       rm .libs/libgcj_bc.so.1; \
+       $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
+
 ## Note that property_files is defined in sources.am.
 propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))
 
@@ -507,6 +536,22 @@ extra_headers = java/lang/Object.h java/lang/Class.h
 $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
        @:
 
+## 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; \
+       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+       -o $(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+       rm $(toolexeclibdir)/libgcj_bc.so.1; \
+       $(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \
+       rm $(toolexeclibdir)/libgcj_bc.la;
+endif
+
 ## Install the headers.  It is fairly ugly that we have to do this by
 ## hand.
 install-data-local:
index d0c360f..2a6f7d1 100644 (file)
@@ -41,21 +41,22 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 @TESTSUBDIR_TRUE@am__append_1 = testsuite
-@XLIB_AWT_TRUE@am__append_2 = lib-gnu-awt-xlib.la
+@USE_LIBGCJ_BC_TRUE@am__append_2 = libgcj_bc.la
+@XLIB_AWT_TRUE@am__append_3 = lib-gnu-awt-xlib.la
 @NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) \
 @NATIVE_TRUE@  grmic$(EXEEXT) grmiregistry$(EXEEXT) \
 @NATIVE_TRUE@  gcj-dbtool$(EXEEXT) gappletviewer$(EXEEXT) \
 @NATIVE_TRUE@  gjarsigner$(EXEEXT) gkeytool$(EXEEXT)
-@BASH_JAR_TRUE@am__append_3 = scripts/jar
-@USING_GCC_TRUE@am__append_4 = $(WARNINGS)
-@USING_BOEHMGC_TRUE@am__append_5 = boehm.cc
-@USING_NOGC_TRUE@am__append_6 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_7 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_8 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_9 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_10 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_11 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_12 = no-threads.cc
+@BASH_JAR_TRUE@am__append_4 = scripts/jar
+@USING_GCC_TRUE@am__append_5 = $(WARNINGS)
+@USING_BOEHMGC_TRUE@am__append_6 = boehm.cc
+@USING_NOGC_TRUE@am__append_7 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_8 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_9 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_10 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_11 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_12 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_13 = no-threads.cc
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(srcdir)/../config.guess $(srcdir)/../config.sub \
        $(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -67,7 +68,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_13 = $(xlib_nat_headers)
+@XLIB_AWT_TRUE@am__append_14 = $(xlib_nat_headers)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -368,6 +369,9 @@ am_libgcj_la_OBJECTS = prims.lo jni.lo jvmti.lo exception.lo \
        $(am__objects_6) $(am__objects_7) $(am__objects_8) \
        $(am__objects_9) $(am__objects_10)
 libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS)
+am_libgcj_bc_la_OBJECTS = libgcj_bc.lo
+libgcj_bc_la_OBJECTS = $(am_libgcj_bc_la_OBJECTS)
+@USE_LIBGCJ_BC_TRUE@am_libgcj_bc_la_rpath = -rpath $(toolexeclibdir)
 am_libgij_la_OBJECTS = gij.lo
 libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
 am_libjvm_la_OBJECTS = jni-libjvm.lo
@@ -423,18 +427,19 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \
        $(GCJFLAGS)
 GCJLD = $(GCJ)
 SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \
-       $(libgcj_la_SOURCES) $(libgij_la_SOURCES) $(libjvm_la_SOURCES) \
+       $(libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
+       $(libgij_la_SOURCES) $(libjvm_la_SOURCES) \
        $(gappletviewer_SOURCES) $(gcj_dbtool_SOURCES) \
        $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjarsigner_SOURCES) \
        $(gkeytool_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \
        $(jv_convert_SOURCES)
 DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \
-       $(libgij_la_SOURCES) $(libjvm_la_SOURCES) \
-       $(gappletviewer_SOURCES) $(gcj_dbtool_SOURCES) \
-       $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
-       $(gjarsigner_SOURCES) $(gkeytool_SOURCES) $(grmic_SOURCES) \
-       $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
+       $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \
+       $(libjvm_la_SOURCES) $(gappletviewer_SOURCES) \
+       $(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \
+       $(gij_SOURCES) $(gjarsigner_SOURCES) $(gkeytool_SOURCES) \
+       $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-exec-recursive install-info-recursive \
@@ -539,6 +544,7 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
 LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
 LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
 LIBOBJS = @LIBOBJS@
@@ -584,6 +590,8 @@ THREADSPEC = @THREADSPEC@
 THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
 TOOLKIT = @TOOLKIT@
 UNZIP = @UNZIP@
+USE_LIBGCJ_BC_FALSE = @USE_LIBGCJ_BC_FALSE@
+USE_LIBGCJ_BC_TRUE = @USE_LIBGCJ_BC_TRUE@
 USING_BOEHMGC_FALSE = @USING_BOEHMGC_FALSE@
 USING_BOEHMGC_TRUE = @USING_BOEHMGC_TRUE@
 USING_DARWIN_CRT_FALSE = @USING_DARWIN_CRT_FALSE@
@@ -702,7 +710,7 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o
 # This is required by TL_AC_GXX_INCLUDE_DIR.
 libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la \
-       $(am__append_2)
+       $(am__append_2) $(am__append_3)
 toolexecmainlib_DATA = libgcj.spec
 dbexec_LTLIBRARIES = libjvm.la
 pkgconfigdir = $(libdir)/pkgconfig
@@ -718,7 +726,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_3)
+bin_SCRIPTS = addr2name.awk $(am__append_4)
 GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
 GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
           $(LDFLAGS) -o $@
@@ -756,7 +764,7 @@ AM_GCJFLAGS = \
        --encoding=UTF-8 \
        -Wno-deprecated -fbootstrap-classes
 
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_4)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_5)
 PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
 JCFLAGS = -g
 JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
@@ -781,9 +789,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
 libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc \
        stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
        java/lang/Class.java java/lang/Object.java $(nat_source_files) \
-       $(am__append_5) $(am__append_6) $(am__append_7) \
-       $(am__append_8) $(am__append_9) $(am__append_10) \
-       $(am__append_11) $(am__append_12)
+       $(am__append_6) $(am__append_7) $(am__append_8) \
+       $(am__append_9) $(am__append_10) $(am__append_11) \
+       $(am__append_12) $(am__append_13)
 nat_files = $(nat_source_files:.cc=.lo)
 xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
 
@@ -834,6 +842,14 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 
 lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
+libgcj_bc_la_SOURCES = libgcj_bc.c
+libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0
+libgcj_bc_la_LIBADD = libgcj.la
+libgcj_bc_la_DEPENDENCIES = libgcj.la
+libgcj_bc_la_LINK = $(LIBLINK)
+libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
+       -fPIC -nostdlib
+
 propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))
 CLEANFILES = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
 DISTCLEANFILES = native.dirs
@@ -7446,7 +7462,7 @@ gnu/gcj/xlib/natXImage.cc \
 gnu/gcj/xlib/natXUnmapEvent.cc
 
 sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_13)
+headers_to_make = $(nat_headers) $(am__append_14)
 
 # 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
@@ -8269,6 +8285,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni-libjvm.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jvmti.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgcj_bc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no-threads.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nogc.Plo@am__quote@
@@ -9082,6 +9099,7 @@ 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-dbexecLTLIBRARIES clean-generic \
@@ -9111,6 +9129,8 @@ install-data-am: install-data-local install-jarDATA \
 install-exec-am: install-binPROGRAMS install-binSCRIPTS \
        install-dbexecDATA install-dbexecLTLIBRARIES \
        install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
 
 install-info: install-info-recursive
 
@@ -9157,18 +9177,18 @@ uninstall-info: uninstall-info-recursive
        install install-am install-binPROGRAMS install-binSCRIPTS \
        install-data install-data-am install-data-local \
        install-dbexecDATA install-dbexecLTLIBRARIES install-exec \
-       install-exec-am install-info install-info-am install-jarDATA \
-       install-man install-pkgconfigDATA install-strip \
-       install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA \
-       installcheck installcheck-am installdirs installdirs-am \
-       maintainer-clean maintainer-clean-generic \
-       maintainer-clean-recursive mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool mostlyclean-local \
-       mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-binSCRIPTS uninstall-dbexecDATA \
-       uninstall-dbexecLTLIBRARIES uninstall-info-am \
-       uninstall-jarDATA uninstall-pkgconfigDATA \
+       install-exec-am install-exec-hook install-info install-info-am \
+       install-jarDATA install-man install-pkgconfigDATA \
+       install-strip install-toolexeclibLTLIBRARIES \
+       install-toolexecmainlibDATA installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic maintainer-clean-recursive \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool mostlyclean-local mostlyclean-recursive \
+       pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+       uninstall-binPROGRAMS uninstall-binSCRIPTS \
+       uninstall-dbexecDATA uninstall-dbexecLTLIBRARIES \
+       uninstall-info-am uninstall-jarDATA uninstall-pkgconfigDATA \
        uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
 
 
@@ -9176,6 +9196,16 @@ $(db_name): gcj-dbtool$(EXEEXT)
        @rm -f $(db_name)
        ./gcj-dbtool -n $(db_name) || touch $(db_name)
 
+libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES)
+       $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
+       $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) || exit; \
+       rm .libs/libgcj_bc.so; \
+       mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
+       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+       -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+       rm .libs/libgcj_bc.so.1; \
+       $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
+
 $(propertyo_files): %.lo: classpath/resource/%
        $(mkinstalldirs) `dirname $@`; \
        $(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,$(@:.lo=)
@@ -11742,6 +11772,16 @@ java/lang/ConcreteProcess$$ProcessManager.h: classpath/lib/java/lang/ConcretePro
 $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
        @:
 
+@USE_LIBGCJ_BC_TRUE@install-exec-hook: install-toolexeclibLTLIBRARIES
+@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; \
+@USE_LIBGCJ_BC_TRUE@   $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+@USE_LIBGCJ_BC_TRUE@   -o $(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+@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;
+
 install-data-local:
        $(PRE_INSTALL)
        @echo Creating list of headers to install...
index e305b1f..195b035 100755 (executable)
@@ -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_libsubdir 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 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_INNER_NAT_HDRS 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 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 THREADSTARTFILESPEC 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 HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG 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_libsubdir 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 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_INNER_NAT_HDRS 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 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 THREADSTARTFILESPEC 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 PKG_CONFIG 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.
@@ -9263,6 +9263,16 @@ else
 fi
 
 
+
+if test "$use_libgcj_bc" = yes; then
+  USE_LIBGCJ_BC_TRUE=
+  USE_LIBGCJ_BC_FALSE='#'
+else
+  USE_LIBGCJ_BC_TRUE='#'
+  USE_LIBGCJ_BC_FALSE=
+fi
+
+
 if test -d sysdep; then true; else mkdir sysdep; fi
           ac_config_links="$ac_config_links sysdep/locks.h:sysdep/$sysdeps_dir/locks.h"
 
@@ -9271,6 +9281,12 @@ if test -d sysdep; then true; else mkdir sysdep; fi
           ac_config_links="$ac_config_links sysdep/descriptor.h:$descriptor_h"
 
 
+LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
+if test "$use_libgcj_bc" = yes; then
+  LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
+fi
+
+
 HASH_SYNC_SPEC=
 # Hash synchronization is only useful with posix threads right now.
 if test "$enable_hash_synchronization" = yes && test "$THREADS" != "none"; then
@@ -16878,6 +16894,13 @@ echo "$as_me: error: conditional \"USING_NO_THREADS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${USE_LIBGCJ_BC_TRUE}" && test -z "${USE_LIBGCJ_BC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"USE_LIBGCJ_BC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_LIBGCJ_BC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${USING_GCC_TRUE}" && test -z "${USING_GCC_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"USING_GCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -17622,6 +17645,9 @@ s,@USING_WIN32_THREADS_TRUE@,$USING_WIN32_THREADS_TRUE,;t t
 s,@USING_WIN32_THREADS_FALSE@,$USING_WIN32_THREADS_FALSE,;t t
 s,@USING_NO_THREADS_TRUE@,$USING_NO_THREADS_TRUE,;t t
 s,@USING_NO_THREADS_FALSE@,$USING_NO_THREADS_FALSE,;t t
+s,@USE_LIBGCJ_BC_TRUE@,$USE_LIBGCJ_BC_TRUE,;t t
+s,@USE_LIBGCJ_BC_FALSE@,$USE_LIBGCJ_BC_FALSE,;t t
+s,@LIBGCJ_SPEC@,$LIBGCJ_SPEC,;t t
 s,@HASH_SYNC_SPEC@,$HASH_SYNC_SPEC,;t t
 s,@USING_GCC_TRUE@,$USING_GCC_TRUE,;t t
 s,@USING_GCC_FALSE@,$USING_GCC_FALSE,;t t
index cc53350..72c67e4 100644 (file)
@@ -881,12 +881,19 @@ AC_SUBST(THREADCXXFLAGS)
 AM_CONDITIONAL(USING_POSIX_THREADS, test "$THREADS" = posix)
 AM_CONDITIONAL(USING_WIN32_THREADS, test "$THREADS" = win32)
 AM_CONDITIONAL(USING_NO_THREADS, test "$THREADS" = none)
+AM_CONDITIONAL(USE_LIBGCJ_BC, test "$use_libgcj_bc" = yes)
 
 if test -d sysdep; then true; else mkdir sysdep; fi
 AC_CONFIG_LINKS(sysdep/locks.h:sysdep/$sysdeps_dir/locks.h)
 AC_CONFIG_LINKS(sysdep/backtrace.h:$fallback_backtrace_h)
 AC_CONFIG_LINKS(sysdep/descriptor.h:$descriptor_h)
 
+LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
+if test "$use_libgcj_bc" = yes; then
+  LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
+fi
+AC_SUBST(LIBGCJ_SPEC)
+
 HASH_SYNC_SPEC=
 # Hash synchronization is only useful with posix threads right now.
 if test "$enable_hash_synchronization" = yes && test "$THREADS" != "none"; then
index 6aa969c..b2bdd53 100644 (file)
@@ -31,6 +31,8 @@
 #   fallback_backtrace_h  Header to use for fallback backtrace implementation
 #                        (only for targets that don't support DWARF2 unwind)
 #   descriptor_h       Header to use for looking past function descriptors
+#   use_libgcj_bc      Whether to build a "libgcj-bc" library for BC-ABI
+#                      binaries to link against.
 
 libgcj_flags=
 libgcj_cflags=
@@ -317,6 +319,15 @@ case "${host}" in
        ;;
 esac
 
+case "${host}" in
+  *linux*)
+    use_libgcj_bc=yes
+  ;;
+  *)
+    use_libgcj_bc=no
+  ;;
+esac    
+
 libgcj_cflags="${libgcj_cflags} ${libgcj_flags}"
 libgcj_cxxflags="${libgcj_cxxflags} ${libgcj_flags}"
 libgcj_javaflags="${libgcj_javaflags} ${libgcj_flags}"
index 44db450..116620f 100644 (file)
@@ -153,6 +153,7 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
 LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
 LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
 LIBOBJS = @LIBOBJS@
@@ -198,6 +199,8 @@ THREADSPEC = @THREADSPEC@
 THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
 TOOLKIT = @TOOLKIT@
 UNZIP = @UNZIP@
+USE_LIBGCJ_BC_FALSE = @USE_LIBGCJ_BC_FALSE@
+USE_LIBGCJ_BC_TRUE = @USE_LIBGCJ_BC_TRUE@
 USING_BOEHMGC_FALSE = @USING_BOEHMGC_FALSE@
 USING_BOEHMGC_TRUE = @USING_BOEHMGC_TRUE@
 USING_DARWIN_CRT_FALSE = @USING_DARWIN_CRT_FALSE@
index 992ad3b..a101827 100644 (file)
@@ -152,6 +152,7 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
 LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
 LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
 LIBOBJS = @LIBOBJS@
@@ -197,6 +198,8 @@ THREADSPEC = @THREADSPEC@
 THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
 TOOLKIT = @TOOLKIT@
 UNZIP = @UNZIP@
+USE_LIBGCJ_BC_FALSE = @USE_LIBGCJ_BC_FALSE@
+USE_LIBGCJ_BC_TRUE = @USE_LIBGCJ_BC_TRUE@
 USING_BOEHMGC_FALSE = @USING_BOEHMGC_FALSE@
 USING_BOEHMGC_TRUE = @USING_BOEHMGC_TRUE@
 USING_DARWIN_CRT_FALSE = @USING_DARWIN_CRT_FALSE@
index f482125..cf24170 100644 (file)
@@ -7,6 +7,6 @@
 *startfile: @THREADSTARTFILESPEC@ %(startfileorig)
 
 %rename lib liborig
-*lib: @LD_START_STATIC_SPEC@ -lgcj @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
+*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
 
 *jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions
diff --git a/libjava/libgcj_bc.c b/libjava/libgcj_bc.c
new file mode 100644 (file)
index 0000000..66a1468
--- /dev/null
@@ -0,0 +1,94 @@
+/* libgcj_bc.c  */
+
+/* Copyright (C) 2006 Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+/* This file is used to build libgcj_bc.so, a 'fake' library that is
+   used at link time only. It ensures that binaries built with the
+   BC-ABI link against a constant SONAME. This way, BC-ABI binaries
+   continue to work if the SONAME underlying libgcj.so changes.  */
+
+#include <stdlib.h>
+#include <stdio.h>
+
+static void print_wrong_lib_msg ()
+{
+  fprintf (stderr, "libgcj error: \
+This is libgcj_bc.so, a fake library used only for linking.\n\
+Please create a symlink from libgcj_bc.so.1 to the real libgcj.so.\n");
+  exit (1);
+}
+
+/* Functions called from code generated by gcj.  */
+
+void __gcj_personality_v0 () {}
+void _Jv_AllocObject () {}
+void _Jv_AllocObjectNoFinalizer () {}
+void _Jv_InitClass () {}
+void _Jv_ResolvePoolEntry () {}
+void _Jv_Throw () {}
+void _Jv_MonitorEnter () {}
+void _Jv_NewPrimArray () {}
+void _Jv_NewObjectArray () {}
+void _Jv_NewMultiArray () {}
+void _Jv_ThrowBadArrayIndex () {}
+void _Jv_ThrowNullPointerException () {}
+void _Jv_ThrowAbstractMethodError () {}
+void _Jv_ThrowNoSuchFieldError () {}
+void _Jv_CheckCast () {}
+void _Jv_IsInstanceOf () {}
+void _Jv_CheckArrayStore () {}
+void _Jv_LookupInterfaceMethodIdx () {}
+
+void _Jv_RegisterClasses () 
+{
+  print_wrong_lib_msg ();
+}
+
+void _Jv_RegisterNewClasses () 
+{
+  print_wrong_lib_msg ();
+}
+
+/* Symbols used by jvgenmain (-fmain).  */
+
+void JvRunMain () {}
+const char **_Jv_Compiler_Properties;
+
+/* Functions used by -fjni.  */
+
+void _Jv_LookupJNIMethod () {}
+void _Jv_GetJNIEnvNewFrame () {}
+void _Jv_UnwrapJNIweakReference () {}
+
+
+/* Checked divide (-fuse-divide-subroutine).  */
+
+void _Jv_divI () {}
+void _Jv_remI () {}
+void _Jv_divJ () {}
+void _Jv_remJ () {}
+
+
+/* CNI Functions.  */
+
+void _Jv_AllocBytes () {}
+void _Jv_AllocString () {}
+void _Jv_NewString () {}
+void _Jv_NewStringLatin1 () {}
+void _Jv_GetStringChars () {}
+void _Jv_GetStringUTFLength () {}
+void _Jv_GetStringUTFRegion () {}
+void _Jv_NewStringUTF () {}
+void _Jv_Malloc () {}
+void _Jv_Realloc () {}
+void _Jv_Free () {}
+void _Jv_CreateJavaVM () {}
+void _Jv_AttachCurrentThread () {}
+void _Jv_AttachCurrentThreadAsDaemon () {}
+void _Jv_DetachCurrentThread () {}
index 73026dd..485b8ea 100644 (file)
@@ -141,6 +141,7 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
 LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
 LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
 LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
 LIBOBJS = @LIBOBJS@
@@ -186,6 +187,8 @@ THREADSPEC = @THREADSPEC@
 THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
 TOOLKIT = @TOOLKIT@
 UNZIP = @UNZIP@
+USE_LIBGCJ_BC_FALSE = @USE_LIBGCJ_BC_FALSE@
+USE_LIBGCJ_BC_TRUE = @USE_LIBGCJ_BC_TRUE@
 USING_BOEHMGC_FALSE = @USING_BOEHMGC_FALSE@
 USING_BOEHMGC_TRUE = @USING_BOEHMGC_TRUE@
 USING_DARWIN_CRT_FALSE = @USING_DARWIN_CRT_FALSE@