On Tue, 09 Oct 2007 20:17:01 +0200, Daniel Jacobowitz wrote: > On Tue, Oct 09, 2007 at 08:02:46PM +0200, Jan Kratochvil wrote: > > DW_TAG_compile_unit has no children and it has neither DW_AT_low_pc nor > > DW_AT_high_pc but it has DW_AT_ranges instead. So far DW_AT_ranges was not > > parsed into PSYMTABS and so this file was ignored during the debug info search > > later. Reasons for the discontinuous vDSO32 layout/hack are in the Linux > > kernel sources. > > I'm curious, why is this? I couldn't find them in my kernel tree. linux-2.6.22/arch/x86_64/ia32/vsyscall.lds /* This is an 32bit object and we cannot easily get the offsets into the 64bit kernel. Just hardcode them here. This assumes that all the stubs don't need more than 0x100 bytes. */ . = VSYSCALL_BASE + 0x500; > > +# Avoid `-lm' from `lib/ada.exp' as it would fail with out `-nostdlib'. > > +# Provide BOARD for SET_BOARD_INFO. > > +set board [target_info name] > > +set_board_info mathlib "" > > Actually this is from DejaGNU. And it's global state, so you have > just made other tests behave differently depending on whether you run > this one first or not. Overlooked it, thanks. Saved/restored it in the attached updated patch. I understand it is very ugly hack, it would be probably more appropriate to fix `lib/ada.exp' instead. > I bet you don't need a custom linker script and -nostdlib to test > this. Gas must be generating the DW_AT_ranges itself regardless of > whether there's a gap. Which one, .space, .org +x? These all fill the space with flesh bytes. Regards, Jan