gcj.texi (Code Generation): Document -fbootstrap-classes.

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.

From-SVN: r99604
This commit is contained in:
Tom Tromey 2005-05-12 01:27:15 +00:00 committed by Tom Tromey
parent cd0b240bf1
commit cca1655eab
15 changed files with 112 additions and 12 deletions

View file

@ -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