From 85c4f26a8651192648d1d4ce37009d838abe4152 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 23 Mar 2005 20:27:12 +0000 Subject: [PATCH] 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 --- gcc/java/ChangeLog | 5 +++++ gcc/java/decl.c | 9 ++++++++- libjava/ChangeLog | 5 +++++ libjava/include/jvm.h | 11 +++++++---- 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 + + * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define. + (parse_version): Use it. + 2005-03-23 Joseph S. Myers * 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 + + * include/jvm.h (GCJ_40_BC_ABI_VERSION): New define. + (_Jv_CheckABIVersion): Use it. + 2005-03-22 Mike Stump * 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 -- 2.7.4