aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2005-03-23 20:27:12 +0000
committerTom Tromey <tromey@gcc.gnu.org>2005-03-23 20:27:12 +0000
commit85c4f26a8651192648d1d4ce37009d838abe4152 (patch)
treebd69a3ee7525a63aa54ad42136e26863f186a9df
parentd101034cd879822fbb76d8a2a50e4e27959e9d5b (diff)
downloadgcc-85c4f26a8651192648d1d4ce37009d838abe4152.zip
gcc-85c4f26a8651192648d1d4ce37009d838abe4152.tar.gz
gcc-85c4f26a8651192648d1d4ce37009d838abe4152.tar.bz2
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
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/decl.c9
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/include/jvm.h11
4 files changed, 25 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 70ad11c..16b956e 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -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.
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 2f9da97..d462f26 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -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);
}
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c3be587..14c5079 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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.
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 6234788..7a5a4ea 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -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