mirror of
git://sourceware.org/git/libabigail.git
synced 2025-02-15 04:56:54 +00:00
abidiff-ing libtsan.so again the output of abidw libtsan.so does not yield the empty set. This is because some types, especially an enum (in certain cases) when read (de-serialized) from DWARF doesn't hash the same as when de-serialized from abixml. This is because an enum type can have a linkage name, referred to by the DW_AT_linkage_name DWARF attribute. This linkage_name was being read from DWARF but wasn't serialized to abixml. At de-serialization time, well, the linkage_name information was lost. Oops. Also, I have seen that in some case we can canonicalize enum types too early, when we de-serialize them from abixml, before we are done building them. This patch addresses these issues. * src/abg-reader.cc (read_context::maybe_canonicalize_type): Late canonicalize enum types. (build_enum_type_decl): Read the linkage name of the enum type. * src/abg-writer.cc (write_enum_type_decl): Emit the linkage name of the enum type. * tests/data/test-read-dwarf/test15-pr18892.so: New binary test input. * tests/data/test-read-dwarf/test15-pr18892.so.abi: New test output reference. * tests/data/Makefile.am: Add the new test inputs above to source distribution. * tests/test-read-dwarf.cc (in_out_specs): Run the two tests above. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
4.0 MiB
4.0 MiB