[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: