Re: That highly annoying C++ unaligned trap..
On Wed, 15 Dec 1999, Jason Gunthorpe wrote:
> .. turns out to be a bug in the glibc dynamic linker or gcc!
>
> Now at this point I start to give up - the dl_relocate_object is a
> *MASSIVE* inline'd function that spans many header files and so on - the
> net results is that *reloc_addr is not an aligned value. What I don't know
> is if it *should* be an aligned value or not.. ie should the linker be
> taking special measures to not do trap, or should the compiler not be
> generating relocations like that.
>
> Indeed, given this information an 'objdump -R
> /usr/lib/libstdc++-libc6.1-2.so.3' turns up a couple addresses like this:
>
> 0000000000159424 RELATIVE *ABS*
>
> That's unaligned!!!
>
> So.. The net result is that G++ is generating unaligned 64 bit relocation
> fields in the C++ library which causes the dynamic loader to unalign trap
> when it loads them.
>
> 'Fini'
>
> Guys, I don't even know *who* to send this to who knows more about what
> should be going on, let alone fixing it - but I strongly suspect it should
> go to the gcc group.
It sounds like gcc, but it may be helpful to cross-post it to the
libc-alpha list as well. Either way, I get the feeling that the gcc group
will try to pawn this off a bit onto the glibc folks. I've got some other
issues with gcc on Alpha (namely that including the C++ libs during
bootstrapping makes the build fail and has for about two months now), so
this shouldn't be a shock. I get the feeling that RTH hasn't been doing
alot with the Alpha lately (well deserved vacation time for him?), but I'm
not positive on that.
C
Reply to: