32#include <spdlog/spdlog.h>
43#include <coff/archive.hpp>
44#include <coff/image.hpp>
55using sym_data_t = std::tuple<coff::image_t*, coff::symbol_t*, std::uint32_t>;
76 std::vector<routine_t>
rtns();
82 std::vector<std::uint8_t>
lib();
88 std::vector<std::vector<std::uint8_t>>
objs();
102 std::map<coff::section_header_t*, std::size_t>&
scn_hash_tbl();
111 std::optional<recomp::symbol_table_t*>
decompose(std::string& entry_sym);
119 std::uint32_t ext_used_syms(
const std::string&& entry_sym);
126 std::optional<sym_data_t> get_symbol(
const std::string_view& name);
136 std::uint32_t next_sym(coff::image_t* img,
137 coff::section_header_t* hdr,
140 const std::vector<std::uint8_t> m_lib;
141 std::vector<std::vector<std::uint8_t>> m_objs;
142 std::vector<routine_t> m_rtns;
143 std::set<sym_data_t> m_used_syms;
144 std::set<coff::image_t*> m_processed_objs;
145 std::map<coff::section_header_t*, std::size_t> m_scn_hash_tbl;
146 std::map<std::size_t, std::vector<sym_data_t>> m_lookup_tbl;