+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.
/* 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;
(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);
}
+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.
#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