|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Classes | |
| class | EMXOptionCollector |
Public Member Functions | |
| void | ReadFile (Linker::Reader &rd) override |
| Loads file into memory. | |
| offset_t | ImageSize () const override |
| Retrieves size of stored data. | |
| offset_t | WriteFile (Linker::Writer &wr) const override |
| Stores data in memory to file. | |
| void | Dump (Dumper::Dumper &dump) const override |
| Display file contents in a nice manner. | |
| void | GenerateModule (Linker::Module &module) const override |
| Loads the information into a module object, a convenience method when there is a single module generated. | |
| std::vector< Linker::OptionDescription< void > * > | GetLinkerScriptParameterNames () override |
| Returns a list of the parameters used in the linker scripts, used for documentation. | |
| std::shared_ptr< Linker::OptionCollector > | GetOptions () override |
| Returns object containing a sequence of option fields provided with the -S command line flag. | |
| void | SetOptions (std::map< std::string, std::string > &options) override |
| Passes command line parameters as settings over to format object. | |
| void | OnNewSegment (std::shared_ptr< Linker::Segment > segment) override |
| Callback function when allocating a new segment When the linker script runs, it creates segments consecutively. Overriding this method permits the output format to handle the allocated segment. | |
| void | ProcessModule (Linker::Module &module) override |
| Processes the module object and initializes format fields. | |
| void | CalculateValues () override |
| Intermediate step between processing module and generating output file to set up headers and management sections It is expected that after a module is processed, additional steps are required to evaluate the final values of the fields. | |
| void | GenerateFile (std::string filename, Linker::Module &module) override |
| The main function that handles processing, calculating and generating the final image. | |
| std::string | GetDefaultExtension (Linker::Module &module, std::string filename) const override |
| Appends a default extension to the filename. | |
| std::string | GetDefaultExtension (Linker::Module &module) const override |
| Provides a default filename for the output file. | |
Public Member Functions inherited from AOut::AOutFormat | |
| constexpr uint32_t | GetHeaderSize () const |
| Retrieves the size of the header for the current settings. | |
| ::EndianType | GetEndianType () const |
| Returns the default endian type for the currently set CPU. | |
| word_size_t | GetWordSize () const |
| Returns the expected word size for the currently set CPU. | |
| uint32_t | GetPageSize () const |
| uint32_t | GetTextOffset () const |
| uint32_t | GetTextAddress () const |
| uint32_t | GetDataOffsetAlign () const |
| uint32_t | GetDataAddressAlign () const |
| void | ReadHeader (Linker::Reader &rd) |
| void | WriteHeader (Linker::Writer &wr) const |
| void | CreateDefaultSegments () |
| std::unique_ptr< Script::List > | GetScript (Linker::Module &module) |
| void | Link (Linker::Module &module) |
| std::shared_ptr< Linker::Segment > | GetCodeSegment () |
| std::shared_ptr< Linker::Segment > | GetDataSegment () |
| std::shared_ptr< Linker::Segment > | GetBssSegment () |
Public Member Functions inherited from Linker::InputFormat | |
| virtual void | SetupOptions (std::shared_ptr< OutputFormat > format) |
| Initializes the reader for linking purposes. | |
| virtual void | ProduceModule (ModuleCollector &linker, Reader &rd, std::string file_name) |
| Reads a file and loads the information into a module object. | |
| virtual void | ProduceModule (Module &module, Reader &rd) |
| Reads a file and loads the information into a module object, a convenience method when there is a single module generated. | |
| virtual void | GenerateModule (ModuleCollector &linker, std::string file_name, bool is_library=false) const |
| Loads the information into a module object. | |
| virtual bool | FormatProvidesSegmentation () const |
| Whether the format enables multiple x86 segments. | |
| virtual bool | FormatRequiresDataStreamFix () const |
| Whether the generated file might contain bugs that require fixing. | |
| virtual bool | FormatProvidesResources () const |
| Whether the format supports resources. | |
| virtual bool | FormatProvidesLibraries () const |
| Whether the format enables importing/exporting libraries. | |
Public Member Functions inherited from Linker::Format | |
| Format (offset_t file_offset=0) | |
| virtual void | Clear () |
| Resets all fields to their default values, deallocate memory. | |
| offset_t | WriteFile (Writer &wr, offset_t count, offset_t offset=0) const override |
| Writes data of non-zero filled sections. | |
Public Member Functions inherited from Linker::Image | |
| virtual std::shared_ptr< const ActualImage > | AsImage () const |
| Retrieves a randomly accessible image. | |
| std::shared_ptr< ActualImage > | AsImage () |
| Retrieves a randomly accessible image. | |
Public Member Functions inherited from Linker::SegmentManager | |
| void | ClearSegmentManager () |
| void | SetLinkScript (std::string script_file, std::map< std::string, std::string > &options) override |
| Sets up the linker script and linker parameters. | |
| std::unique_ptr< Script::List > | GetScript (Module &module) |
| Compiles the linker script into an internal format. | |
| offset_t | GetCurrentAddress () const |
| Retrieves current address pointer. | |
| void | SetCurrentAddress (offset_t address) |
| Moves the current address pointer further, and if the current segment already contains data, fill it up to the point. | |
| void | AlignCurrentAddress (offset_t align) |
| Aligns current address to alignment, using SetCurrentAddress. | |
| void | SetLatestBase (offset_t address) |
| Sets the base of the current section (the value from which offsets are counted from) | |
| void | FinishCurrentSegment () |
| Closes the current segment, sets current_segment to null. | |
| std::shared_ptr< Segment > | AppendSegment (std::string name) |
| Terminates the current segment (if there is one), creates a new segment and attaches it to the image. | |
| std::shared_ptr< Segment > | FetchSegment (std::string name) |
| Attempts to fetch a segment, returns null if not found. | |
| void | AppendSection (std::shared_ptr< Section > section) |
| Adds a new section to the current segment, sets the base to the same as the segment. | |
| void | ProcessScript (std::unique_ptr< Script::List > &directives, Module &module) |
| Executes a parsed linker script on a module and collects segments The function OnNewSegment can be defined to handle each newly allocated segment. | |
| void | ProcessAction (std::unique_ptr< Script::Node > &action, Module &module) |
| void | PostProcessAction (std::unique_ptr< Script::Node > &action, Module &module) |
| void | ProcessCommand (std::unique_ptr< Script::Node > &command, Module &module) |
| bool | CheckPredicate (std::unique_ptr< Script::Node > &predicate, std::shared_ptr< Section > section, Module &module) |
| offset_t | EvaluateExpression (std::unique_ptr< Script::Node > &expression, Module &module) |
Public Member Functions inherited from Linker::OutputFormat | |
| virtual bool | AddSupplementaryOutputFormat (std::string subformat) |
| If the output format actually drives multiple output formats (resource file, apple double, etc.), specify multiple types, return false if unknown. | |
| virtual std::vector< OptionDescription< void > > | GetMemoryModelNames () |
| Returns a list of the supported memory models, used for documentation. | |
| virtual std::vector< OptionDescription< void > > | GetSpecialSymbolNames () |
| Returns a list of special symbol names recognized by the format, used for documentation. | |
| std::optional< std::string > | FetchOption (std::map< std::string, std::string > &options, std::string name) |
| Convenience method to look up option by name. | |
| std::string | FetchOption (std::map< std::string, std::string > &options, std::string name, std::string default_value) |
| Convenience method to look up option by name, returning default value if name is missing. | |
| std::optional< offset_t > | FetchIntegerOption (std::map< std::string, std::string > &options, std::string name) |
| Convenience method to look up option by name and convert it to integer. | |
| virtual void | SetModel (std::string model) |
| Sets the way memory is organized, typically modifying a built-in script. | |
| virtual bool | FormatIs16bit () const |
| Whether the format is 16-bit or not. | |
| virtual bool | FormatIsProtectedMode () const |
| Whether the format is in protected mode or not (x86 only) | |
| virtual bool | FormatIsLinear () const |
| Whether the address space is linear or segmented. | |
| virtual bool | FormatSupportsResources () const |
| Whether the format supports resources. | |
Public Attributes | |
| bool | bound_image = false |
| uint32_t | aout_header_offset = 0 |
| std::array< char, 64 > | dos_options |
| uint32_t | text_base = 0 |
| uint32_t | text_end = 0 |
| uint32_t | data_base = 0 |
| uint32_t | data_end = 0 |
| uint32_t | bss_base = 0 |
| uint32_t | bss_end = 0 |
| uint32_t | heap_base = 0 |
| uint32_t | heap_end = 0 |
| uint32_t | heap_brk = 0 |
| uint32_t | heap_off = 0 |
| uint32_t | os2_dll = 0 |
| uint32_t | stack_base = 0 |
| uint32_t | stack_end = 0 |
| uint32_t | flags = 0 |
| std::array< char, 64 > | os2_options |
Public Attributes inherited from AOut::AOutFormat | |
| ::EndianType | endiantype = ::UndefinedEndian |
| system_type | system |
| The target operating system, it influences section offset and address choices. | |
| magic_type | magic |
| The low 16 bits of the midmag field. | |
| ::EndianType | midmag_endiantype |
| All fields in the header must appear in native byte order, except for FreeBSD and NetBSD where: | |
| uint16_t | mid_value = 0 |
| uint8_t | flags = 0 |
| word_size_t | word_size = word_size_t(0) |
| Number of bytes in a machine word (2 or 4), typically also determines the size of the header (16 or 32 bytes) | |
| cpu_type | cpu = UNKNOWN |
| uint32_t | code_size = 0 |
| uint32_t | data_size = 0 |
| uint32_t | bss_size = 0 |
| uint32_t | symbol_table_size = 0 |
| uint32_t | entry_address = 0 |
| uint32_t | code_relocation_size = 0 |
| uint32_t | data_relocation_size = 0 |
| std::map< uint32_t, uint32_t > | code_relocations |
| std::map< uint32_t, uint32_t > | data_relocations |
| std::shared_ptr< Linker::Image > | code |
| std::shared_ptr< Linker::Image > | data |
| std::shared_ptr< Linker::Image > | bss |
| std::vector< Symbol > | symbols |
| uint32_t | page_size = 0 |
| Microsoft::MZSimpleStubWriter | stub |
Public Attributes inherited from Linker::Format | |
| offset_t | file_offset |
Public Attributes inherited from Linker::SegmentManager | |
| offset_t | current_base = 0 |
| The base address of the current section. | |
| std::vector< std::shared_ptr< Segment > > | segment_vector |
| Ordered sequence of segments. | |
| std::map< std::string, std::shared_ptr< Segment > > | segment_map |
| Map of segments from their names. | |
| std::shared_ptr< Segment > | current_segment |
| Currently processed segment. | |
| std::map< std::string, Location > | linker_parameters |
| Parameters that permit customizing the linker script. | |
| std::string | linker_script |
| Contents of the linker script. | |
Static Public Attributes | |
| static std::vector< Linker::OptionDescription< void > * > | ParameterNames |
Static Public Attributes inherited from AOut::AOutFormat | |
| static constexpr uint16_t | MID_UNKNOWN = 0x000 |
| static constexpr uint16_t | MID_68010 = 0x001 |
| static constexpr uint16_t | MID_68020 = 0x002 |
| static constexpr uint16_t | MID_PC386 = 0x064 |
| static constexpr uint16_t | MID_I386 = 0x086 |
| static constexpr uint16_t | MID_ARM6 = 0x08F |
| static constexpr uint16_t | MID_MIPS1 = 0x097 |
| static constexpr uint16_t | MID_MIPS2 = 0x098 |
| static constexpr uint16_t | MID_HP200 = 0x0C8 |
| static constexpr uint16_t | MID_HP300 = 0x12C |
| static constexpr uint16_t | MID_HPUX800 = 0x20B |
| static constexpr uint16_t | MID_HPUX = 0x20C |
| static constexpr uint16_t | MID_LINUX_OLDSUN2 = 0x000 |
| static constexpr uint16_t | MID_LINUX_SPARC = 0x003 |
| static constexpr uint16_t | MID_FREEBSD_SPARC = 0x08C |
| static constexpr uint16_t | MID_NETBSD_M68K = 0x087 |
| static constexpr uint16_t | MID_NETBSD_M68K4K = 0x088 |
| static constexpr uint16_t | MID_NETBSD_NS32532K = 0x089 |
| static constexpr uint16_t | MID_NETBSD_SPARC = 0x08A |
| static constexpr uint16_t | MID_NETBSD_PMAX = 0x08B |
| static constexpr uint16_t | MID_NETBSD_VAX1K = 0x08C |
| static constexpr uint16_t | MID_NETBSD_ALPHA = 0x08D |
| static constexpr uint16_t | MID_NETBSD_MIPS = 0x08E |
| static constexpr uint16_t | MID_NETBSD_M680002K = 0x090 |
| static constexpr uint16_t | MID_NETBSD_SH3 = 0x091 |
| static constexpr uint16_t | MID_NETBSD_POWERPC64 = 0x094 |
| static constexpr uint16_t | MID_NETBSD_POWERPC = 0x095 |
| static constexpr uint16_t | MID_NETBSD_VAX = 0x096 |
| static constexpr uint16_t | MID_NETBSD_M88K = 0x099 |
| static constexpr uint16_t | MID_NETBSD_HPPA = 0x09A |
| static constexpr uint16_t | MID_NETBSD_SH5_64 = 0x09B |
| static constexpr uint16_t | MID_NETBSD_SPARC64 = 0x09C |
| static constexpr uint16_t | MID_NETBSD_X86_64 = 0x09D |
| static constexpr uint16_t | MID_NETBSD_SH5_32 = 0x09E |
| static constexpr uint16_t | MID_NETBSD_IA64 = 0x09F |
| static constexpr uint16_t | MID_NETBSD_AARCH64 = 0x0B7 |
| static constexpr uint16_t | MID_NETBSD_OR1K = 0x0B8 |
| static constexpr uint16_t | MID_NETBSD_RISCV = 0x0B9 |
| static constexpr uint16_t | MID_BFD_ARM = 0x067 |
| static std::vector< Linker::OptionDescription< void > * > | ParameterNames |
Additional Inherited Members | ||
Public Types inherited from AOut::AOutFormat | ||
| enum | system_type { UNSPECIFIED , LINUX , FREEBSD , NETBSD , DJGPP1 , PDOS386 , EMX } | |
| The target operating system type for parsing or generating binaries. More... | ||
| enum | magic_type { OMAGIC = 0x0107 , NMAGIC = 0x0108 , ZMAGIC = 0x010B , QMAGIC = 0x00CC } | |
| The low 16 bits of the midmag field, it determines how sections should be loaded into memory, in a system dependent way. More... | ||
| enum | word_size_t { WordSize16 = 2 , WordSize32 = 4 } | |
| enum | cpu_type { UNKNOWN , M68K , SPARC , SPARC64 , I386 , AMD64 , ARM , AARCH64 , MIPS , PARISC , PDP11 , NS32K , VAX , ALPHA , SUPERH , SUPERH64 , PPC , PPC64 , M88K , IA64 , OR1K , RISCV } | |
Static Public Member Functions inherited from AOut::AOutFormat | ||
| static constexpr magic_type | GetDefaultMagic (system_type system) | |
| Default magic number associated with the system. | ||
| static std::shared_ptr< AOutFormat > | CreateReader (word_size_t word_size, ::EndianType endiantype, system_type system=UNSPECIFIED) | |
| static std::shared_ptr< AOutFormat > | CreateWriter (system_type system, magic_type magic) | |
| static std::shared_ptr< AOutFormat > | CreateWriter (system_type system) | |
Protected Types inherited from Microsoft::LEFormat | ||
| enum | compatibility_type { CompatibleNone , CompatibleWatcom , CompatibleMicrosoft , CompatibleGNU } | |
| enum | cpu_type { I286 = 0x01 , I386 = 0x02 , I486 = 0x03 , I586 = 0x04 , I860_N10 = 0x20 , I860_N11 = 0x21 , MIPS1 = 0x40 , MIPS2 = 0x41 , MIPS3 = 0x42 } | |
| enum | system_type { OS2 = 1 , Windows , MSDOS4 , Windows386 , Neutral , DOS4G = -1 } | |
| enum | { PreProcessInitialization = 0x00000004 , NoInternalFixup = 0x00000010 , NoExternalFixup = 0x00000020 , FullScreen = 0x00000100 , GUIAware = 0x00000200 , GUI = 0x00000300 , ErrorInImage = 0x00002000 , Library = 0x00008000 , ProtectedMemoryLibrary = 0x00018000 , PhysicalDriver = 0x00020000 , VirtualDriver = 0x00028000 , PerProcessTermination = 0x40000000 } | |
Protected Member Functions inherited from AOut::AOutFormat | ||
| AOutFormat (system_type system, magic_type magic) | ||
Protected Member Functions inherited from Microsoft::LEFormat | ||
| bool | IsExtendedFormat () const | |
| LEFormat (unsigned system, unsigned module_flags, bool extended_format) | ||
| bool | IsLibrary () const | |
| bool | IsDriver () const | |
| bool | IsOS2 () const | |
| void | ReadFile (Linker::Reader &rd) override | |
| Loads file into memory. | ||
| offset_t | ImageSize () const override | |
| Retrieves size of stored data. | ||
| offset_t | WriteFile (Linker::Writer &wr) const override | |
| Stores data in memory to file. | ||
| void | Dump (Dumper::Dumper &dump) const override | |
| Display file contents in a nice manner. | ||
| offset_t | GetPageOffset (uint32_t index) const | |
| offset_t | GetPageSize (uint32_t index) const | |
| std::shared_ptr< LEFormat > | SimulateLinker (compatibility_type compatibility) | |
| bool | FormatSupportsSegmentation () const override | |
| Whether the format supports multiple segments. | ||
| bool | FormatSupportsLibraries () const override | |
| Whether the format supports libraries. | ||
| unsigned | FormatAdditionalSectionFlags (std::string section_name) const override | |
| Resource & | AddResource (Resource &resource) | |
| void | GetRelocationOffset (Object &object, size_t offset, size_t &page_index, uint16_t &page_offset) | |
| void | AddRelocation (Object &object, unsigned type, unsigned flags, size_t offset, uint16_t module, uint32_t target=0, uint32_t addition=0) | |
| unsigned | GetDefaultObjectFlags () const | |
| void | AddObject (const Object &object) | |
| uint16_t | FetchImportedModuleName (std::string name) | |
| uint16_t | FetchImportedProcedureName (std::string name) | |
| uint16_t | MakeEntry (Linker::Position value) | |
| uint16_t | MakeEntry (uint16_t index, Linker::Position value) | |
| uint8_t | CountBundles (size_t entry_index) const | |
| std::vector< Linker::OptionDescription< void > * > | GetLinkerScriptParameterNames () override | |
| Returns a list of the parameters used in the linker scripts, used for documentation. | ||
| std::shared_ptr< Linker::OptionCollector > | GetOptions () override | |
| Returns object containing a sequence of option fields provided with the -S command line flag. | ||
| void | SetOptions (std::map< std::string, std::string > &options) override | |
| Passes command line parameters as settings over to format object. | ||
| void | OnNewSegment (std::shared_ptr< Linker::Segment > segment) override | |
| Callback function when allocating a new segment When the linker script runs, it creates segments consecutively. Overriding this method permits the output format to handle the allocated segment. | ||
| std::unique_ptr< Script::List > | GetScript (Linker::Module &module) | |
| void | Link (Linker::Module &module) | |
| void | ProcessModule (Linker::Module &module) override | |
| Processes the module object and initializes format fields. | ||
| void | CalculateValues () override | |
| Intermediate step between processing module and generating output file to set up headers and management sections It is expected that after a module is processed, additional steps are required to evaluate the final values of the fields. | ||
| void | GenerateFile (std::string filename, Linker::Module &module) override | |
| The main function that handles processing, calculating and generating the final image. | ||
| std::string | GetDefaultExtension (Linker::Module &module, std::string filename) const override | |
| Appends a default extension to the filename. | ||
Static Protected Member Functions inherited from Microsoft::LEFormat | ||
| static std::shared_ptr< LEFormat > | CreateConsoleApplication (system_type system=OS2) | |
| static std::shared_ptr< LEFormat > | CreateGUIApplication (system_type system=OS2) | |
| static std::shared_ptr< LEFormat > | CreateLibraryModule (system_type system=OS2) | |
Protected Attributes inherited from Linker::SegmentManager | ||
| offset_t | current_address = 0 | |
| Holds the current address value when there is no current_segment. | ||
| bool | current_is_template = false | |
| bool | current_is_template_head = false | |
| offset_t | template_counter = 0 | |
| std::string | current_template_name | |
Protected Attributes inherited from Microsoft::LEFormat | ||
| ::EndianType | endiantype = ::LittleEndian | |
| std::array< char, 2 > | signature {'L', 'E'} | |
| The signature, almost always "LE" or "LX". | ||
| uint32_t | format_level = 0 | |
| cpu_type | cpu = I386 | |
| system_type | system = system_type(0) | |
| uint32_t | module_version = 0 | |
| uint32_t | module_flags = 0 | |
| uint32_t | page_count = 0 | |
| uint32_t | page_size = 0x1000 | |
| uint32_t | eip_object = 0 | |
| uint32_t | eip_value = 0 | |
| uint32_t | esp_object = 0 | |
| uint32_t | esp_value = 0 | |
| union { | ||
| uint32_t last_page_size | ||
| uint32_t page_offset_shift | ||
| }; | ||
| uint32_t | fixup_section_size = 0 | |
| uint32_t | fixup_section_checksum = 0 | |
| uint32_t | loader_section_size = 0 | |
| uint32_t | loader_section_checksum = 0 | |
| uint32_t | object_table_offset = 0 | |
| uint32_t | object_page_table_offset = 0 | |
| uint32_t | object_iterated_pages_offset = 0 | |
| uint32_t | resource_table_offset = 0 | |
| uint32_t | resource_table_entry_count = 0 | |
| uint32_t | resident_name_table_offset = 0 | |
| uint32_t | entry_table_offset = 0 | |
| uint32_t | module_directives_offset = 0 | |
| uint32_t | fixup_page_table_offset = 0 | |
| uint32_t | fixup_record_table_offset = 0 | |
| uint32_t | imported_module_table_offset = 0 | |
| uint32_t | imported_procedure_table_offset = 0 | |
| uint32_t | per_page_checksum_offset = 0 | |
| uint32_t | data_pages_offset = 0 | |
| uint32_t | preload_page_count = 0 | |
| uint32_t | nonresident_name_table_offset = 0 | |
| uint32_t | nonresident_name_table_size = 0 | |
| uint32_t | nonresident_name_table_checksum = 0 | |
| uint32_t | automatic_data = 0 | |
| uint32_t | debug_info_offset = 0 | |
| uint32_t | debug_info_size = 0 | |
| uint32_t | instance_preload_page_count = 0 | |
| uint32_t | instance_demand_page_count = 0 | |
| uint32_t | stack_size = 0 | |
| uint32_t | heap_size = 0 | |
| uint32_t | vxd_version_info_resource_offset = 0 | |
| uint32_t | vxd_version_info_resource_length = 0 | |
| uint16_t | vxd_device_id = 0 | |
| uint16_t | vxd_ddk_version = 0 | |
| std::vector< Object > | objects | |
| std::vector< ModuleDirective > | module_directives | |
| std::vector< Page > | pages | |
| std::map< uint16_t, std::map< uint16_t, Resource > > | resources | |
| std::vector< Name > | resident_names | |
| std::vector< Name > | nonresident_names | |
| std::vector< Entry > | entries | |
| std::vector< std::string > | imported_modules | |
| std::vector< std::string > | imported_procedures | |
| offset_t | file_size = offset_t(-1) | |
| MZStubWriter | stub | |
| compatibility_type | compatibility = CompatibleNone | |
| std::string | program_name | |
| std::string | module_name | |
| std::shared_ptr< Linker::Segment > | stack | |
| std::shared_ptr< Linker::Segment > | heap | |
| std::map< std::shared_ptr< Linker::Segment >, size_t > | object_index | |
| std::map< std::string, uint32_t > | imported_procedure_name_offsets | |
| offset_t | imported_procedure_names_length = 0 | |
Static Protected Attributes inherited from Microsoft::LEFormat | ||
| static std::vector< Linker::OptionDescription< void > * > | ParameterNames | |
|
overridevirtual |
Intermediate step between processing module and generating output file to set up headers and management sections It is expected that after a module is processed, additional steps are required to evaluate the final values of the fields.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Display file contents in a nice manner.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
The main function that handles processing, calculating and generating the final image.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Loads the information into a module object, a convenience method when there is a single module generated.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Provides a default filename for the output file.
Typically a.out or some other extension, such as a.exe.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Appends a default extension to the filename.
A typical behavior would be to append .exe at the end of the filename. The default action is to leave it intact.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Returns a list of the parameters used in the linker scripts, used for documentation.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Returns object containing a sequence of option fields provided with the -S command line flag.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Retrieves size of stored data.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Callback function when allocating a new segment When the linker script runs, it creates segments consecutively. Overriding this method permits the output format to handle the allocated segment.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Processes the module object and initializes format fields.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Loads file into memory.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Passes command line parameters as settings over to format object.
Reimplemented from AOut::AOutFormat.
|
overridevirtual |
Stores data in memory to file.
Reimplemented from AOut::AOutFormat.
|
static |