jvm.h (GCJ_40_BC_ABI_VERSION): New define.

libjava:
	* include/jvm.h (GCJ_40_BC_ABI_VERSION): New define.
	(_Jv_CheckABIVersion): Use it.
gcc/java:
	* decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
	(parse_version): Use it.

From-SVN: r96948
This commit is contained in:
Tom Tromey 2005-03-23 20:27:12 +00:00 committed by Tom Tromey
parent d101034cd8
commit 85c4f26a86
4 changed files with 25 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-03-23 Tom Tromey <tromey@redhat.com>
* decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
(parse_version): Use it.
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
* lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

View File

@ -64,6 +64,13 @@ static void parse_version (void);
/* Used when computing the ABI version. */
#define GCJ_BINARYCOMPAT_ADDITION 5
/* The version of the BC ABI that we generate. At the moment we are
compatible with what shipped in GCC 4.0. This must be kept in sync
with parse_version(), libgcj, and reality (if the BC format
changes, this must change. */
#define GCJ_CURRENT_BC_ABI_VERSION \
(4 * 10000 + 0 * 10 + GCJ_BINARYCOMPAT_ADDITION)
/* The ABI version number. */
tree gcj_abi_version;
@ -609,7 +616,7 @@ parse_version (void)
(objects generated by different version of gcj), but will
probably always require strict matching for ordinary ABI. */
if (flag_indirect_dispatch)
abi_version += GCJ_BINARYCOMPAT_ADDITION;
abi_version = GCJ_CURRENT_BC_ABI_VERSION;
gcj_abi_version = build_int_cstu (ptr_type_node, abi_version);
}

View File

@ -1,3 +1,8 @@
2005-03-23 Tom Tromey <tromey@redhat.com>
* include/jvm.h (GCJ_40_BC_ABI_VERSION): New define.
(_Jv_CheckABIVersion): Use it.
2005-03-22 Mike Stump <mrs@apple.com>
* stacktrace.cc: Delete unused _Jv_FindCallingClassState.

View File

@ -562,14 +562,17 @@ extern void _Jv_RegisterBootstrapPackages ();
#define GCJ_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 10)
#define GCJ_BINARYCOMPAT_ADDITION 5
// At present we know we are compatible with the BC ABI as used in GCC
// 4.0.
#define GCJ_40_BC_ABI_VERSION (4 * 10000 + 0 * 10 + GCJ_BINARYCOMPAT_ADDITION)
inline bool
_Jv_CheckABIVersion (unsigned long value)
{
// For this release, recognize just our defined C++ ABI and our
// defined BC ABI. (In the future we may recognize past BC ABIs as
// well.)
// Recognize our defined C++ ABI.
return (value == GCJ_VERSION
|| value == (GCJ_VERSION + GCJ_BINARYCOMPAT_ADDITION));
// At the moment this is the only BC ABI we recognize.
|| value == GCJ_40_BC_ABI_VERSION);
}
// It makes the source cleaner if we simply always define this