From: John David Anglin Date: Sat, 20 Aug 2005 20:26:26 +0000 (+0000) Subject: re PR libgcj/21692 (unexpected java.lang.NoClassDefFoundError) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c348be20ae22608c1b61cc377ae58125b5583c97;p=gcc.git 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 --- 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))