Currently, DWARFLinker receives kind of accel tables as predefined sets:
Apple, ///< .apple_names, .apple_namespaces, .apple_types, .apple_objc. Dwarf, ///< DWARF v5 .debug_names. Default, ///< Dwarf for DWARF5 or later, Apple otherwise. Pub, ///< .debug_pubnames, .debug_pubtypes
This patch removes implicit sets of tables(Default, Dwarf) and allows to ask for several sets:
Apple, ///< .apple_names, .apple_namespaces, .apple_types, .apple_objc. Pub, ///< .debug_pubnames, .debug_pubtypes DebugNames ///< .debug_names.
It allows seamlessness adding more accel tables in the future: .gdb_index, .debug_cu_index...
Doing things that way, DWARFLinker will be independent of consumers' requirements.
f.e. dsymutil and llvm-dwarfutil may have different variants for Default set
(so, instead of implementing these differencies inside DWARFLinker it could be
implemented in the corresponding module).
All of these go together and you never want any of them unless you have all of them. I would keep these as "Apple" as a single entry.