This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Patch for IA64 32-bit function descriptors
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: jessica at cup dot hp dot com, gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Fri, 14 Jun 2002 10:42:34 -0700
- Subject: Re: Patch for IA64 32-bit function descriptors
- Organization: Red Hat / Paris
- References: <20020603161650.D13917@redhat.com><012601c20c0e$ce457890$8b63f40f@JH761542><20020613175451.A3321@redhat.com>
- Reply-to: bkoz at redhat dot com
> I've re-written the patch and tested it for basic sanity on
> ia64-linux.
Thanks Richard. This part still troubles me. I'm not sure why
target-specific padding is being added to this struct. Isn't there a
better way of doing this than hacking up common code for IA64 and HPUX
issues?
-benjamin
002-06-04 Jessica Han <jessica@cup.hp.com>
* libsupc++/tinfo.cc Handle the 8 byte vtable entries in
IA64 32-bit mode.
--- tinfo.cc.1.9 Tue Apr 2 12:38:38 2002
+++ tinfo.cc Tue Jun 4 13:02:47 2002
@@ -95,7 +95,13 @@ using namespace abi;
// have to keep alignments consistent manually.
struct vtable_prefix {
ptrdiff_t whole_object; // offset to most derived object
+#if !defined(_LP64) && defined (__ia64__)
+ ptrdiff_t padding1; // padding to the offset IA64 32-bit
only
+#endif
const __class_type_info *whole_type; // pointer to most derived
type_info
+#if !defined(_LP64) && defined (__ia64__)
+ ptrdiff_t padding2; // padding to the pointer IA64 32-bit
only
+#endif
const void *origin; // what a class's vptr points to
};