From c348be20ae22608c1b61cc377ae58125b5583c97 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Sat, 20 Aug 2005 20:26:26 +0000 Subject: [PATCH] re PR libgcj/21692 (unexpected java.lang.NoClassDefFoundError) PR libgcj/21692 * sysdep/pa/descriptor.h: New file. * configure.host: Use sysdep/pa/descriptor.h on hppa*-*. From-SVN: r103306 --- libjava/ChangeLog | 6 ++++++ libjava/configure.host | 6 +++++- libjava/sysdep/pa/descriptor.h | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 libjava/sysdep/pa/descriptor.h diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 97b128474fc..e3c9a6d1959 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2005-08-20 John David Anglin + + PR libgcj/21692 + * sysdep/pa/descriptor.h: New file. + * configure.host: Use sysdep/pa/descriptor.h on hppa*-*. + 2005-08-19 Andrew Pinski * Makefile.am (extra_ldflags_libjava): New variable to diff --git a/libjava/configure.host b/libjava/configure.host index 7f57cb0841b..d84757f7928 100644 --- a/libjava/configure.host +++ b/libjava/configure.host @@ -278,10 +278,14 @@ case "${host}" in esac case "${host}" in - ia64-* | hppa*-*) + ia64-*) descriptor_h=sysdep/descriptor-y.h ;; + hppa*-*) + descriptor_h=sysdep/pa/descriptor.h + ;; + rs6000-* | powerpc*-*) descriptor_h=sysdep/powerpc/descriptor.h ;; diff --git a/libjava/sysdep/pa/descriptor.h b/libjava/sysdep/pa/descriptor.h new file mode 100644 index 00000000000..d9888516d9c --- /dev/null +++ b/libjava/sysdep/pa/descriptor.h @@ -0,0 +1,7 @@ +// Given a function pointer, return the code address. +// If the plabel bit is set, mask it off and return the code from the +// first word of the function descriptor. Otherwise, the function +// pointer is the code address. + +#define UNWRAP_FUNCTION_DESCRIPTOR(X) \ + (((unsigned int)(X)) & 2 ? *(void **)(((unsigned int)(X)) & ~3) : (X)) -- 2.30.2