Commit fb5b5d97 by Thomas Fitzsimmons Committed by Thomas Fitzsimmons

Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to "$(dbexecdir)".

2006-06-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to
	"$(dbexecdir)".
	Build libjvm.la.
	* Makefile.in: Regenerate.
	* jni.cc (the_vm): Rename and export as ...
	(_Jv_the_vm): New exported symbol.
	(_Jv_JNI_AttachCurrentThread): Export.
	(_Jv_JNI_DestroyJavaVM): Replace the_vm references with _Jv_the_vm
	references.
	(_Jv_GetJavaVM): Likewise.
	(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
	JNI_GetCreatedJavaVMs): Move to ...
	* jni-libjvm.cc: New file.

From-SVN: r114824
parent 0ccff66d
2006-06-20 Thomas Fitzsimmons <fitzsim@redhat.com>
* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to
"$(dbexecdir)".
Build libjvm.la.
* Makefile.in: Regenerate.
* jni.cc (the_vm): Rename and export as ...
(_Jv_the_vm): New exported symbol.
(_Jv_JNI_AttachCurrentThread): Export.
(_Jv_JNI_DestroyJavaVM): Replace the_vm references with _Jv_the_vm
references.
(_Jv_GetJavaVM): Likewise.
(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
JNI_GetCreatedJavaVMs): Move to ...
* jni-libjvm.cc: New file.
2006-06-19 Andrew Haley <aph@redhat.com> 2006-06-19 Andrew Haley <aph@redhat.com>
* testsuite/libjava.lang/PR27908.out: New. * testsuite/libjava.lang/PR27908.out: New.
......
...@@ -40,6 +40,8 @@ if XLIB_AWT ...@@ -40,6 +40,8 @@ if XLIB_AWT
toolexeclib_LTLIBRARIES += lib-gnu-awt-xlib.la toolexeclib_LTLIBRARIES += lib-gnu-awt-xlib.la
endif endif
dbexec_LTLIBRARIES = libjvm.la
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libgcj.pc pkgconfig_DATA = libgcj.pc
...@@ -122,7 +124,7 @@ AM_CXXFLAGS = \ ...@@ -122,7 +124,7 @@ AM_CXXFLAGS = \
-DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \ -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
-DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \ -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
-DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \ -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
-DGCJ_VERSIONED_LIBDIR="\"$(libdir)/gcj-$(gcc_version)\"" \ -DGCJ_VERSIONED_LIBDIR="\"$(dbexecdir)\"" \
-DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \ -DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \
-DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \ -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \ -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \
...@@ -232,6 +234,14 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ ...@@ -232,6 +234,14 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
$(LIBLTDL) $(libgcj_la_LIBADD) $(LIBLTDL) $(libgcj_la_LIBADD)
libgcj_la_LINK = $(LIBLINK) libgcj_la_LINK = $(LIBLINK)
## libjvm.so
libjvm_la_SOURCES = jni-libjvm.cc
libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
## See jv_convert_LDADD.
libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
## The mysterious backslash in the grep pattern is consumed by make.
libjvm_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
## The .db file. This rule is only used for native builds, so it is ## The .db file. This rule is only used for native builds, so it is
## safe to invoke gcj-dbtool. ## safe to invoke gcj-dbtool.
...@@ -887,6 +897,7 @@ create-headers: $(headers_to_make) ...@@ -887,6 +897,7 @@ create-headers: $(headers_to_make)
$(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp $(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp
$(libgij_la_OBJECTS): headers.stamp $(libgij_la_OBJECTS): headers.stamp
$(libjvm_la_OBJECTS): headers.stamp
## ################################################################ ## ################################################################
......
...@@ -104,12 +104,14 @@ am__vpath_adj = case $$p in \ ...@@ -104,12 +104,14 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \ *) f=$$p;; \
esac; esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" \ am__installdirs = "$(DESTDIR)$(dbexecdir)" \
"$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" \
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" \ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" \
"$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" \ "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" \
"$(DESTDIR)$(toolexecmainlibdir)" "$(DESTDIR)$(toolexecmainlibdir)"
dbexecLTLIBRARIES_INSTALL = $(INSTALL)
toolexeclibLTLIBRARIES_INSTALL = $(INSTALL) toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(toolexeclib_LTLIBRARIES) LTLIBRARIES = $(dbexec_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
am__dirstamp = $(am__leading_dot)dirstamp am__dirstamp = $(am__leading_dot)dirstamp
am__objects_1 = gnu/gcj/xlib/lib_gnu_awt_xlib_la-natClip.lo \ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt_xlib_la-natClip.lo \
gnu/gcj/xlib/lib_gnu_awt_xlib_la-natColormap.lo \ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natColormap.lo \
...@@ -343,6 +345,8 @@ am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo stacktrace.lo \ ...@@ -343,6 +345,8 @@ am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo stacktrace.lo \
libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS) libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS)
am_libgij_la_OBJECTS = gij.lo am_libgij_la_OBJECTS = gij.lo
libgij_la_OBJECTS = $(am_libgij_la_OBJECTS) libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
am_libjvm_la_OBJECTS = jni-libjvm.lo
libjvm_la_OBJECTS = $(am_libjvm_la_OBJECTS)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) \ am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) \
...@@ -388,14 +392,14 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \ ...@@ -388,14 +392,14 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \
$(GCJFLAGS) $(GCJFLAGS)
GCJLD = $(GCJ) GCJLD = $(GCJ)
SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_la_SOURCES) \ SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_la_SOURCES) \
$(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) \ $(libgij_la_SOURCES) $(libjvm_la_SOURCES) \
$(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) \ $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) \
$(grmiregistry_SOURCES) $(jv_convert_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \ DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
$(am__libgcj_la_SOURCES_DIST) $(libgij_la_SOURCES) \ $(am__libgcj_la_SOURCES_DIST) $(libgij_la_SOURCES) \
$(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \ $(libjvm_la_SOURCES) $(gcj_dbtool_SOURCES) \
$(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \ $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
$(jv_convert_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \ html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \ install-exec-recursive install-info-recursive \
...@@ -662,6 +666,7 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o ...@@ -662,6 +666,7 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o
libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
toolexeclib_LTLIBRARIES = libgcj.la libgij.la $(am__append_2) toolexeclib_LTLIBRARIES = libgcj.la libgij.la $(am__append_2)
toolexecmainlib_DATA = libgcj.spec toolexecmainlib_DATA = libgcj.spec
dbexec_LTLIBRARIES = libjvm.la
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libgcj.pc pkgconfig_DATA = libgcj.pc
jardir = $(datadir)/java jardir = $(datadir)/java
...@@ -701,7 +706,7 @@ AM_CXXFLAGS = \ ...@@ -701,7 +706,7 @@ AM_CXXFLAGS = \
-DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \ -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
-DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \ -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
-DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \ -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
-DGCJ_VERSIONED_LIBDIR="\"$(libdir)/gcj-$(gcc_version)\"" \ -DGCJ_VERSIONED_LIBDIR="\"$(dbexecdir)\"" \
-DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \ -DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \
-DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \ -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \ -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \
...@@ -762,6 +767,12 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ ...@@ -762,6 +767,12 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
$(LIBLTDL) $(libgcj_la_LIBADD) $(LIBLTDL) $(libgcj_la_LIBADD)
libgcj_la_LINK = $(LIBLINK) libgcj_la_LINK = $(LIBLINK)
libjvm_la_SOURCES = jni-libjvm.cc
libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
libjvm_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files) lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files)
lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
...@@ -7210,6 +7221,33 @@ libgcj-test.spec: $(top_builddir)/config.status $(srcdir)/libgcj-test.spec.in ...@@ -7210,6 +7221,33 @@ libgcj-test.spec: $(top_builddir)/config.status $(srcdir)/libgcj-test.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@ cd $(top_builddir) && $(SHELL) ./config.status $@
scripts/jar: $(top_builddir)/config.status $(top_srcdir)/scripts/jar.in scripts/jar: $(top_builddir)/config.status $(top_srcdir)/scripts/jar.in
cd $(top_builddir) && $(SHELL) ./config.status $@ cd $(top_builddir) && $(SHELL) ./config.status $@
install-dbexecLTLIBRARIES: $(dbexec_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(dbexecdir)" || $(mkdir_p) "$(DESTDIR)$(dbexecdir)"
@list='$(dbexec_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(dbexecLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(dbexecdir)/$$f'"; \
$(LIBTOOL) --mode=install $(dbexecLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(dbexecdir)/$$f"; \
else :; fi; \
done
uninstall-dbexecLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(dbexec_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(dbexecdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(dbexecdir)/$$p"; \
done
clean-dbexecLTLIBRARIES:
-test -z "$(dbexec_LTLIBRARIES)" || rm -f $(dbexec_LTLIBRARIES)
@list='$(dbexec_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES) install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(toolexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(toolexeclibdir)" test -z "$(toolexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(toolexeclibdir)"
...@@ -7572,6 +7610,8 @@ libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES) ...@@ -7572,6 +7610,8 @@ libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
$(libgcj_la_LINK) -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(libgcj_la_OBJECTS) $(libgcj_la_LIBADD) $(LIBS) $(libgcj_la_LINK) -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(libgcj_la_OBJECTS) $(libgcj_la_LIBADD) $(LIBS)
libgij.la: $(libgij_la_OBJECTS) $(libgij_la_DEPENDENCIES) libgij.la: $(libgij_la_OBJECTS) $(libgij_la_DEPENDENCIES)
$(CXXLINK) -rpath $(toolexeclibdir) $(libgij_la_LDFLAGS) $(libgij_la_OBJECTS) $(libgij_la_LIBADD) $(LIBS) $(CXXLINK) -rpath $(toolexeclibdir) $(libgij_la_LDFLAGS) $(libgij_la_OBJECTS) $(libgij_la_LIBADD) $(LIBS)
libjvm.la: $(libjvm_la_OBJECTS) $(libjvm_la_DEPENDENCIES)
$(CXXLINK) -rpath $(dbexecdir) $(libjvm_la_LDFLAGS) $(libjvm_la_OBJECTS) $(libjvm_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS) install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
...@@ -7842,6 +7882,7 @@ distclean-compile: ...@@ -7842,6 +7882,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
@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)/jni.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.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)/no-threads.Plo@am__quote@
...@@ -8532,7 +8573,7 @@ check: check-recursive ...@@ -8532,7 +8573,7 @@ check: check-recursive
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA)
installdirs: installdirs-recursive installdirs: installdirs-recursive
installdirs-am: installdirs-am:
for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \ for dir in "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \ test -z "$$dir" || $(mkdir_p) "$$dir"; \
done done
install: install-recursive install: install-recursive
...@@ -8611,9 +8652,9 @@ maintainer-clean-generic: ...@@ -8611,9 +8652,9 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild." @echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive clean: clean-recursive
clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-am: clean-binPROGRAMS clean-dbexecLTLIBRARIES clean-generic \
clean-noinstPROGRAMS clean-toolexeclibLTLIBRARIES \ clean-libtool clean-noinstPROGRAMS \
mostlyclean-am clean-toolexeclibLTLIBRARIES mostlyclean-am
distclean: distclean-recursive distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f $(am__CONFIG_DISTCLEAN_FILES)
...@@ -8636,8 +8677,8 @@ install-data-am: install-data-local install-jarDATA \ ...@@ -8636,8 +8677,8 @@ install-data-am: install-data-local install-jarDATA \
install-pkgconfigDATA install-pkgconfigDATA
install-exec-am: install-binPROGRAMS install-binSCRIPTS \ install-exec-am: install-binPROGRAMS install-binSCRIPTS \
install-dbexecDATA install-toolexeclibLTLIBRARIES \ install-dbexecDATA install-dbexecLTLIBRARIES \
install-toolexecmainlibDATA install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA
install-info: install-info-recursive install-info: install-info-recursive
...@@ -8666,36 +8707,37 @@ ps: ps-recursive ...@@ -8666,36 +8707,37 @@ ps: ps-recursive
ps-am: ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-dbexecDATA uninstall-info-am uninstall-jarDATA \ uninstall-dbexecDATA uninstall-dbexecLTLIBRARIES \
uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES \ uninstall-info-am uninstall-jarDATA uninstall-pkgconfigDATA \
uninstall-toolexecmainlibDATA uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
uninstall-info: uninstall-info-recursive uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-binPROGRAMS clean-generic clean-libtool \ check-am clean clean-binPROGRAMS clean-dbexecLTLIBRARIES \
clean-noinstPROGRAMS clean-recursive \ clean-generic clean-libtool clean-noinstPROGRAMS \
clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \ clean-recursive clean-toolexeclibLTLIBRARIES ctags \
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
distcheck distclean distclean-compile distclean-generic \ dist-tarZ dist-zip distcheck distclean distclean-compile \
distclean-libtool distclean-local distclean-recursive \ distclean-generic distclean-libtool distclean-local \
distclean-tags distcleancheck distdir distuninstallcheck dvi \ distclean-recursive distclean-tags distcleancheck distdir \
dvi-am html html-am info info-am install install-am \ distuninstallcheck dvi dvi-am html html-am info info-am \
install-binPROGRAMS install-binSCRIPTS install-data \ install install-am install-binPROGRAMS install-binSCRIPTS \
install-data-am install-data-local install-dbexecDATA \ install-data install-data-am install-data-local \
install-exec install-exec-am install-info install-info-am \ install-dbexecDATA install-dbexecLTLIBRARIES install-exec \
install-jarDATA install-man install-pkgconfigDATA \ install-exec-am install-info install-info-am install-jarDATA \
install-strip install-toolexeclibLTLIBRARIES \ install-man install-pkgconfigDATA install-strip \
install-toolexecmainlibDATA installcheck installcheck-am \ install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA \
installdirs installdirs-am maintainer-clean \ installcheck installcheck-am installdirs installdirs-am \
maintainer-clean-generic maintainer-clean-recursive \ maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \
mostlyclean-libtool mostlyclean-local mostlyclean-recursive \ mostlyclean-generic mostlyclean-libtool mostlyclean-local \
pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall uninstall-am uninstall-binPROGRAMS \
uninstall-dbexecDATA uninstall-info-am uninstall-jarDATA \ uninstall-binSCRIPTS uninstall-dbexecDATA \
uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES \ uninstall-dbexecLTLIBRARIES uninstall-info-am \
uninstall-toolexecmainlibDATA uninstall-jarDATA uninstall-pkgconfigDATA \
uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
$(db_name): gcj-dbtool$(EXEEXT) $(db_name): gcj-dbtool$(EXEEXT)
...@@ -11273,6 +11315,7 @@ create-headers: $(headers_to_make) ...@@ -11273,6 +11315,7 @@ create-headers: $(headers_to_make)
$(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp $(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp
$(libgij_la_OBJECTS): headers.stamp $(libgij_la_OBJECTS): headers.stamp
$(libjvm_la_OBJECTS): headers.stamp
# No install-html support yet. # No install-html support yet.
.PHONY: install-html .PHONY: install-html
......
// jni-libjvm.cc - an implementation of the JNI invocation API.
/* 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. */
#include <gcj/cni.h>
#include <gcj/javaprims.h>
#include <java-assert.h>
#include <jvm.h>
#include <jni.h>
using namespace gcj;
// Forward declarations.
extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
extern jint JNICALL _Jv_JNI_AttachCurrentThread (JavaVM *vm,
void **penv, void *args);
extern JavaVM *_Jv_the_vm;
jint JNICALL
JNI_GetDefaultJavaVMInitArgs (void *args)
{
jint version = * (jint *) args;
// Here we only support 1.2 and 1.4.
if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
return JNI_EVERSION;
JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
ia->version = JNI_VERSION_1_4;
ia->nOptions = 0;
ia->options = NULL;
ia->ignoreUnrecognized = true;
return 0;
}
jint JNICALL
JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
{
JvAssert (! _Jv_the_vm);
jint version = * (jint *) args;
// We only support 1.2 and 1.4.
if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
return JNI_EVERSION;
JvVMInitArgs* vm_args = reinterpret_cast<JvVMInitArgs *> (args);
jint result = _Jv_CreateJavaVM (vm_args);
if (result)
return result;
// FIXME: synchronize
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
if (nvm == NULL)
return JNI_ERR;
nvm->functions = &_Jv_JNI_InvokeFunctions;
jint r =_Jv_JNI_AttachCurrentThread (nvm, penv, NULL);
if (r < 0)
return r;
_Jv_the_vm = nvm;
*vm = _Jv_the_vm;
return 0;
}
jint JNICALL
JNI_GetCreatedJavaVMs (JavaVM **vm_buffer, jsize buf_len, jsize *n_vms)
{
if (buf_len <= 0)
return JNI_ERR;
// We only support a single VM.
if (_Jv_the_vm != NULL)
{
vm_buffer[0] = _Jv_the_vm;
*n_vms = 1;
}
else
*n_vms = 0;
return 0;
}
...@@ -107,7 +107,7 @@ static java::util::IdentityHashMap *local_ref_table; ...@@ -107,7 +107,7 @@ static java::util::IdentityHashMap *local_ref_table;
static java::util::IdentityHashMap *global_ref_table; static java::util::IdentityHashMap *global_ref_table;
// The only VM. // The only VM.
static JavaVM *the_vm; JavaVM *_Jv_the_vm;
#ifdef ENABLE_JVMPI #ifdef ENABLE_JVMPI
// The only JVMPI interface description. // The only JVMPI interface description.
...@@ -2408,7 +2408,7 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv, ...@@ -2408,7 +2408,7 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv,
} }
// This is the one actually used by JNI. // This is the one actually used by JNI.
static jint JNICALL jint JNICALL
_Jv_JNI_AttachCurrentThread (JavaVM *vm, void **penv, void *args) _Jv_JNI_AttachCurrentThread (JavaVM *vm, void **penv, void *args)
{ {
return _Jv_JNI_AttachCurrentThread (vm, NULL, penv, args, false); return _Jv_JNI_AttachCurrentThread (vm, NULL, penv, args, false);
...@@ -2424,7 +2424,7 @@ _Jv_JNI_AttachCurrentThreadAsDaemon (JavaVM *vm, void **penv, ...@@ -2424,7 +2424,7 @@ _Jv_JNI_AttachCurrentThreadAsDaemon (JavaVM *vm, void **penv,
static jint JNICALL static jint JNICALL
_Jv_JNI_DestroyJavaVM (JavaVM *vm) _Jv_JNI_DestroyJavaVM (JavaVM *vm)
{ {
JvAssert (the_vm && vm == the_vm); JvAssert (_Jv_the_vm && vm == _Jv_the_vm);
union union
{ {
...@@ -2496,82 +2496,16 @@ _Jv_JNI_GetEnv (JavaVM *, void **penv, jint version) ...@@ -2496,82 +2496,16 @@ _Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
return 0; return 0;
} }
jint JNICALL
JNI_GetDefaultJavaVMInitArgs (void *args)
{
jint version = * (jint *) args;
// Here we only support 1.2 and 1.4.
if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
return JNI_EVERSION;
JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
ia->version = JNI_VERSION_1_4;
ia->nOptions = 0;
ia->options = NULL;
ia->ignoreUnrecognized = true;
return 0;
}
jint JNICALL
JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
{
JvAssert (! the_vm);
jint version = * (jint *) args;
// We only support 1.2 and 1.4.
if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
return JNI_EVERSION;
JvVMInitArgs* vm_args = reinterpret_cast<JvVMInitArgs *> (args);
jint result = _Jv_CreateJavaVM (vm_args);
if (result)
return result;
// FIXME: synchronize
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
if (nvm == NULL)
return JNI_ERR;
nvm->functions = &_Jv_JNI_InvokeFunctions;
jint r =_Jv_JNI_AttachCurrentThread (nvm, penv, NULL);
if (r < 0)
return r;
the_vm = nvm;
*vm = the_vm;
return 0;
}
jint JNICALL
JNI_GetCreatedJavaVMs (JavaVM **vm_buffer, jsize buf_len, jsize *n_vms)
{
if (buf_len <= 0)
return JNI_ERR;
// We only support a single VM.
if (the_vm != NULL)
{
vm_buffer[0] = the_vm;
*n_vms = 1;
}
else
*n_vms = 0;
return 0;
}
JavaVM * JavaVM *
_Jv_GetJavaVM () _Jv_GetJavaVM ()
{ {
// FIXME: synchronize // FIXME: synchronize
if (! the_vm) if (! _Jv_the_vm)
{ {
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM)); JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
if (nvm != NULL) if (nvm != NULL)
nvm->functions = &_Jv_JNI_InvokeFunctions; nvm->functions = &_Jv_JNI_InvokeFunctions;
the_vm = nvm; _Jv_the_vm = nvm;
} }
// If this is a Java thread, we want to make sure it has an // If this is a Java thread, we want to make sure it has an
...@@ -2579,10 +2513,10 @@ _Jv_GetJavaVM () ...@@ -2579,10 +2513,10 @@ _Jv_GetJavaVM ()
if (_Jv_ThreadCurrent () != NULL) if (_Jv_ThreadCurrent () != NULL)
{ {
void *ignore; void *ignore;
_Jv_JNI_AttachCurrentThread (the_vm, &ignore, NULL); _Jv_JNI_AttachCurrentThread (_Jv_the_vm, &ignore, NULL);
} }
return the_vm; return _Jv_the_vm;
} }
static jint JNICALL static jint JNICALL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment