On Mon, 2011-02-14 at 17:26 -0800, Roland McGrath wrote: > > So I am now looking at only calculating the local hash when we currently > > finalize, but don't put the items directly in the cache, but only after > > we scanned over the whole CU. That way when we do put the item in the > > cache, we can calculate the full hash because we can be sure that all > > dies that the reference attributes (recursively) points at have their > > local hash set. > > I can't tell whether that sounds like exactly what I always thought the > plan of the new algorithm was, or sounds like you're still not changing the > old way of doing things enough.
I am probably not changing enough, trying to not disturb the current setup too much. > "When we currently finalize" is based on all the dismal hairy bookkeeping > that we ought to be getting rid of. yeah, I am probably just bad at splitting out the necessary versus dismal hairy parts. > In initial cut of the new plan, > nothing actually gets finalized until the whole CU is being finalized. So, the reason that I didn't do that directly was because only when we finalize, do we create a die_info, which is necessary to hold the local hash for each input die we transform to an output die and put into the collector. On my branch I now delay finalization till the whole CU is done in final_unit (). In defined_self () a die_info with the local hash is created (at which point all children exist and have their local hash set). Then when the entry gets finalized all referenced entries already have a die_info with a local hash set which can be used in calculating the final hash. This works for the small examples in tests/dwarf_edit_output. The attributes_type hash is now calculated using all the local hashes of the referenced dies in the attributes. For the bigger examples in the testsuite with dwarfcmp-test -T it will fail with a logic_error since it dwarfcmp detects that the input and dwarf_output aren't equal. Next up is looking into that (I believe most of these self-tests with dwarfcmp did also fail before/on the dwarf branch proper). Cheers, Mark _______________________________________________ elfutils-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/elfutils-devel
