summaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-12 01:27:15 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-12 01:27:15 +0000
commitfffadcfa2f45575f6a4f5d68fb8f7c3ef732d794 (patch)
tree9f39fff82022b1ead94d585a390edb4a4f526870 /libjava/include
parent9508132a0f3d625ed0b5e8fc2f4f65faa18d2160 (diff)
downloadgcc-fffadcfa2f45575f6a4f5d68fb8f7c3ef732d794.tar.gz
gcc/java:
* gcj.texi (Code Generation): Document -fbootstrap-classes. * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro. (parse_version): Use it. * lang.opt (-fbootstrap-classes): New option. libjava: * external/w3c_dom/Makefile.in: Rebuilt. * external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Added -fbootstrap-classes. * external/sax/Makefile.in: Rebuilt. * external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Added -fbootstrap-classes. * java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Declare as friend. * java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal): Call _Jv_CopyClassesToSystemLoader. * java/lang/natClassLoader.cc (system_class_list): New global. (_Jv_RegisterClassHookDefault): Handle bootstrap and system classes differently. (_Jv_CopyClassesToSystemLoader): New function. (SYSTEM_LOADER_INITIALIZED): New define. * include/jvm.h (GCJ_BOOTSTRAP_LOADER_ADDITION): New define. (_Jv_CheckABIVersion): Use it. (_Jv_ClassForBootstrapLoader): New function. * Makefile.in: Rebuilt. * Makefile.am (AM_GCJFLAGS): Added -fbootstrap-classes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99604 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/jvm.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 90b61627f3d..6b978f906e4 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -565,6 +565,7 @@ extern void _Jv_RegisterBootstrapPackages ();
// This is used to find ABI versions we recognize.
#define GCJ_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 10)
#define GCJ_BINARYCOMPAT_ADDITION 5
+#define GCJ_BOOTSTRAP_LOADER_ADDITION 1
// At present we know we are compatible with the BC ABI as used in GCC
// 4.0.
@@ -573,10 +574,18 @@ extern void _Jv_RegisterBootstrapPackages ();
inline bool
_Jv_CheckABIVersion (unsigned long value)
{
- // Recognize our defined C++ ABI.
+ // Recognize our defined C++ ABIs.
return (value == GCJ_VERSION
- // At the moment this is the only BC ABI we recognize.
- || value == GCJ_40_BC_ABI_VERSION);
+ || value == (GCJ_VERSION + GCJ_BOOTSTRAP_LOADER_ADDITION)
+ || value == GCJ_40_BC_ABI_VERSION
+ || value == (GCJ_40_BC_ABI_VERSION + GCJ_BOOTSTRAP_LOADER_ADDITION));
+}
+
+inline bool
+_Jv_ClassForBootstrapLoader (unsigned long value)
+{
+ return (value == (GCJ_VERSION + GCJ_BOOTSTRAP_LOADER_ADDITION)
+ || value == (GCJ_40_BC_ABI_VERSION + GCJ_BOOTSTRAP_LOADER_ADDITION));
}
// It makes the source cleaner if we simply always define this