aboutsummaryrefslogtreecommitdiff
path: root/libjava/sysdep
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-05-25 16:24:07 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-05-25 16:24:07 -0700
commiteb2925b676cb88c2c28b5bf7484fb432f709ce88 (patch)
treedecadfd6855f01f7f2fa5b72d94ed6ce6e6edfea /libjava/sysdep
parent2f828272d85e2ef044aaab493d67d38dbd2dead8 (diff)
downloadgcc-eb2925b676cb88c2c28b5bf7484fb432f709ce88.zip
gcc-eb2925b676cb88c2c28b5bf7484fb432f709ce88.tar.gz
gcc-eb2925b676cb88c2c28b5bf7484fb432f709ce88.tar.bz2
re PR libgcj/21692 (unexpected java.lang.NoClassDefFoundError)
PR libgcj/21692 * sysdep/descriptor-n.h: New file. * sysdep/descriptor-y.h: New file. * sysdep/powerpc/descriptor.h: New file. * configure.host: Set $descriptor_h appropriate for the host. * configure.ac: Link it. * configure: Regenerate. * stacktrace.cc: Include sysdep/descriptor.h. (_Jv_StackTrace::UpdateNCodeMap): Use UNWRAP_FUNCTION_DESCRIPTOR. From-SVN: r100173
Diffstat (limited to 'libjava/sysdep')
-rw-r--r--libjava/sysdep/descriptor-n.h3
-rw-r--r--libjava/sysdep/descriptor-y.h5
-rw-r--r--libjava/sysdep/powerpc/descriptor.h9
3 files changed, 17 insertions, 0 deletions
diff --git a/libjava/sysdep/descriptor-n.h b/libjava/sysdep/descriptor-n.h
new file mode 100644
index 0000000..d640405
--- /dev/null
+++ b/libjava/sysdep/descriptor-n.h
@@ -0,0 +1,3 @@
+// Given a function pointer, return the code address.
+
+#define UNWRAP_FUNCTION_DESCRIPTOR(X) (X)
diff --git a/libjava/sysdep/descriptor-y.h b/libjava/sysdep/descriptor-y.h
new file mode 100644
index 0000000..ca61550
--- /dev/null
+++ b/libjava/sysdep/descriptor-y.h
@@ -0,0 +1,5 @@
+// Given a function pointer, return the code address.
+
+// The function descriptor is actually multiple words,
+// but we don't care about anything except the first.
+#define UNWRAP_FUNCTION_DESCRIPTOR(X) (*(void **)(X))
diff --git a/libjava/sysdep/powerpc/descriptor.h b/libjava/sysdep/powerpc/descriptor.h
new file mode 100644
index 0000000..51296c2
--- /dev/null
+++ b/libjava/sysdep/powerpc/descriptor.h
@@ -0,0 +1,9 @@
+// Given a function pointer, return the code address.
+
+#ifdef _CALL_AIX
+// The function descriptor is actually multiple words,
+// but we don't care about anything except the first.
+# define UNWRAP_FUNCTION_DESCRIPTOR(X) (*(void **)(X))
+#else
+# define UNWRAP_FUNCTION_DESCRIPTOR(X) (X)
+#endif