This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Unaligned relocations in the shared libstdc++ on a linux/alpha


Hi!

This is an example of the asm output from output_call_frame_info()
(dwarf2out.c):

.section	.eh_frame,"aw",@progbits
__FRAME_BEGIN__:
	.4byte	$LECIE1-$LSCIE1	 # Length of Common Information Entry
$LSCIE1:
	.4byte	0x0	 # CIE Identifier Tag
	.byte	0x1	 # CIE Version
	.ascii "eh\0"	 # CIE Augmentation
	.8byte	__EXCEPTION_TABLE__	 # pointer to exception region info
	.byte	0x1	 # ULEB128 0x1 (CIE Code Alignment Factor)
...
One can see that pointer to exception table is not 8 bytes aligned.
That causes a bunch of unaligned traps in the loader.

I'm not familiar with dwarf-2 stuff, so I'm not sure what is correct way
to fix it, but it could be fixed quite easy.

Ivan.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]