RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Helper class that collects object files and libraries, and includes library objects for required symbols. More...
#include <module_collector.h>
Classes | |
struct | definition |
Public Member Functions | |
void | SetupOptions (char special_char, std::shared_ptr< OutputFormat > output_format) |
Initializes the reader for linking purposes. | |
std::shared_ptr< Module > | CreateModule (std::shared_ptr< const InputFormat > input_format, std::string file_name="") |
void | AddModule (std::shared_ptr< Module > module, bool is_library=false) |
void | AddLibraryModule (std::shared_ptr< Module > module) |
void | CombineModulesInto (Module &output_module) |
Public Attributes | |
std::vector< std::shared_ptr< Module > > | modules |
std::set< std::string > | required_symbols |
std::map< std::string, definition > | symbol_definitions |
Helper class that collects object files and libraries, and includes library objects for required symbols.
void ModuleCollector::SetupOptions | ( | char | special_char, |
std::shared_ptr< OutputFormat > | output_format ) |
Initializes the reader for linking purposes.
special_char | Most input formats do not provide support for the special requirements of the output format (such as segmentation for ELF). We work around this by introducing special name prefixes $$SEGOF$ where $ is the value of special_char. |
output_format | The output format that will be used. This is required to know which extra special features need to be implemented (such as segmentation). |