summaryrefslogtreecommitdiff
path: root/rld-outputter.cpp (follow)
AgeCommit message (Collapse)Author
2014-09-01rld: Split the file into a path module for path specific functions.Chris Johns
This allows resued for other parts of the system not dependent on objcet files or archives.
2014-08-01Fix building on Windows with the latest MSVC.Chris Johns
Remove some warnings.
2014-07-24std::list should be sorted before uniquePeng Fan
std::list should be sorted first, then unique can remove duplicated objects. Otherwise there will be many duplicated objects. Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
2013-08-30Implement a new tool 'rtems-ra'Peng Fan
rtems-ra supports converting an elf archive file into a rap archive file. It also support add, replace and delete rap files from the rap archive file.
2013-08-29RA format support for rtems-ldPeng Fan
1. Automatically place object files in archive files into a ra file, using new option --runtime-lib 2. Add a new option --one-file to decide whether the collected object files should be merged into the rap file or not. Signed-off-by: Peng Fan <van.freenix@gmail.com>
2012-12-29Fix managing weak symbols.Chris Johns
Weak symbols where not being managed correctly. The symbols table is now a class with externals and weaks as separate symtabs so the externals can be searched first then the weaks and if not found an unresolved error is raised. This was found creating a libbsdport RAP file where the drivers in the all driver table resolved to the weak symbols and so linking in nothing. Fixing the weak symbols as found in the libbsdport library triggered a new resolver bug. The object files now contain the resolver state and this is used to determine if an object file has been resolved or is currently being resolved avoiding rescursive loops with dependent object files. The resolver trace output is a little easier to read.
2012-12-21Set header length. Make sections public.Chris Johns
Set the compressed file length in the RAP header. Move the string from the outputter to the RAP file. Make the sections public by moving to the RAP header.
2012-12-01RAP format up to relocation records completed.Chris Johns
Do not write the script into the RAP file rather just write the init and fini labels. These are appended to the string table and offsets in the string table added to the image. Fi the sizes so the sections can be correctly loaded on the target.
2012-11-29Remove the \0 character after the header.Chris Johns
2012-11-26Add exit label, ELF application and Application.Chris Johns
Add an exit label that is called when removing an application. Change the "applicatiion" to "elf_application" and add a custom format called the RAP format for applications.
2012-11-22Split out the compression code for reuse.Chris Johns
2012-11-21Clean archive names for every output format other than scripts.Chris Johns
2012-11-21Add entry point support.Chris Johns
2012-11-21Add header to remove warning on Linux.Chris Johns
2012-11-21Set the correct header size field.Chris Johns
2012-11-20Add support to write a metadata ELF file.Chris Johns
This also adds support to the ELF classes that wrap libelf. While this is now done and seems to work I will not be using an ELF file to hold the metadata after all.
2012-11-17Refactor the ELF support to allow ELF write suppport.Chris Johns
The refactoring allows better reuse of the ELF support and cleans up some hacks from the generic file and archive handling improving the separation of the file handling from the file format, ie ELF. The handling of ELF object files and ELF object files inside archives is cleaner. The refactor cleaned up the symbol handling where the symbols now reside in the ELF file object and references are take in symbol pointer containers and symbol table containers. The main purpose of the refactor is to allow support for creating and writing ELF files. Also added an rtems-syms command where special symbol support can be added.
2012-10-22Fix repeats in output when cmd line objects depend on each other.Chris Johns
If an object on the command line depends on another object the output code wrote the object files and then the dependent files and a command line object file that is dependent ended up in the object and dependent lists. A simple merge and unique fixed it. Also moved the script generation code into a separate function that can be used in a application container.
2012-10-22Add script output dbug messages.Chris Johns
2012-05-07Add to git.Chris Johns