summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl/rtl-elf.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* libdl: Realloc text memory if there are trampolinesChris Johns2023-08-271-13/+22
| | | | | | | | | - Add resize to the allocator interface - Rework the trampoline variables in the obj struct to make better sense of what is happening Closes #4944
* libdl: Add support to import base image TLS symbolsChris Johns2023-08-211-3/+17
| | | | | | | | | | | | | | | | This change requires an rtems-tools update for symbol generation. Working architectures: - aarch64 - arm - powerpc - sparc No newlib TLS support but checked: - i386 - m69k Updates #4920
* cpukit/libdl: Resolve size mismatch warningsKinsey Moore2023-04-051-2/+2
| | | | | Resolve warnings about mismatched pointer and integer sizes in AArch64 libdl when building with the ILP32 ABI.
* libdl: Fix warnings on 64bit architecturesChris Johns2022-08-051-1/+1
| | | | Updates #4662
* cpukit/libdl: Manual file header reordering (SPDX, Doxygen, Copyright)Joel Sherrill2022-03-221-9/+10
| | | | Updates #3053.
* cpukit/libdl Change license to BSD-2Joel Sherrill2022-03-221-3/+22
| | | | Updates #3053.
* libdl: Fix comment.Chris Johns2020-05-051-1/+1
| | | | Updates #3969
* Canonicalize config.h includeSebastian Huber2020-04-161-1/+1
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* libdl/debugger: Fix the broken list delete when unloading an object module.Chris Johns2019-08-121-2/+0
| | | | Closes #3777
* libdl: Fix size bug in loading symbols.Chris Johns2019-05-141-2/+2
| | | | | | This was introduced in 74883be5d4b5fa166179d6003032f6eac2e0f544. Updates #3746
* libdl: Fix loading symbol that reference unknown sections.Chris Johns2019-05-141-56/+159
| | | | | | | - Make the symbol parsing and loading stage match. - Check for possible overflow of the tables when loading. Closes #3746
* libdl: Do not access the ELF file while the allocator is locked.Chris Johns2019-05-031-156/+328
| | | | | | | | | | | | | - Load symbols before allocation. - Parse reloc records and place any reloc recs in a cache to use while the allocator is locked. - Relocate symbols after section allocation. - Split section loading into allocation/locating and loading. - Update all arch back-ends with a new reloc interface to control tramp handling. - Add `-a` and `-t` to the object list shell command. Closes #3741
* libdl/alloc: Add a locking interface to the allocator.Chris Johns2019-02-201-0/+11
| | | | | | | | | | | | | - Allow an allocator to lock the allocations. This is needed to lock the heap allocator so the text and trampoline table are as close together as possible to allow for the largest possible object file size. - Update the default heap allocator to lock the heap allocator. - Update ELF loading to lock the allocator. Updates #3685
* libdl: Add powerpc large memory and small data support.Chris Johns2019-02-091-3/+56
| | | | | | | | | | | | | | | | | - Add support for architecure sections that can be handled by the architecture back end. - Add trampoline/fixup support for PowerPC. This means the PowerPC now supports large memory loading of applications. - Add a bit allocator to manage small block based regions of memory. - Add small data (sdata/sbss) support for the PowerPC. The support makes the linker allocated small data region of memory a global resource available to libdl loaded object files. Updates #3687 Updates #3685
* libdl: Add support for large memory programsChris Johns2019-02-091-133/+216
| | | | | | | | | | | | | | | - Add trampolines to support relocs that are out of range on support architectures. - Support not loading separate text/data sections in an object file if the symbol provided in the section is a duplicate. A base image may have pulled in part of an object and another part needs to be dynamically loaded. - Refactor the unresolved handling to scale to hundreds of unresolved symbols when loading large number of files. Updates #3685
* libdl: Add support for trampolinesChris Johns2019-02-091-7/+50
| | | | | | | | | | | | | - Trampolines or fixups for veneers provide long jump support for instruciton sets that implement short relative address branches. The linker provides trampolines when creating a static image. This patch adds trampoline support to libdl and the ARM architecture. - The dl09 test requires enough memory so modules are outside the relative branch instruction ranges for the architecture. Updates #3685
* libdl: Fix the support for constructors and desctructors.Chris Johns2019-02-091-0/+21
| | | | | | | - Fix the handling of pending objects. - Add a constructor flags in objects to track then being called. Closes #2921
* libdl: Add symbol searching and loading from archives.Chris Johns2019-02-091-2/+14
| | | | | | | | | | | | | | - Load archive symbol tables to support searching of archives for symbols. - Search archive symbols and load the object file that contains the symbol. - Search the global and archives until all remaining unresolved symbols are not found. Group the loaded object files in the pending queue. - Run the object file and loaded dependents as a group before adding to the main object list. - Remove orphaned object files after references are removed. Updates #3686
* libdl: Add object file dependencies to track referencesChris Johns2018-11-221-90/+256
| | | | | | | | | | Tracking references lets us manage when an object file can be unloaded. If an object file has references to it, it cannot be unloaded. Modules that depend on each other cannot be unloaded. Updates #3605
* libdl: Manage the allocation of common uninitialised variables.Chris Johns2018-11-221-9/+141
| | | | | | | | | | | | | The use of separate text and data results in uninitialised variables being placed in the common section. There is no section in ELF for the common variables so the loader needs to create the section and allocate the variables in that section. This patch does that. The patch adds a second pass over the symbols. The issue can also be seen as a section 65522 error. Updates #3604
* libdl: Remove _t from all structures as this is reserved for the standardsChris Johns2018-04-121-74/+74
|
* libdl: Include <rtems/rtl/rtl-*.h>Sebastian Huber2017-12-131-2/+2
| | | | | | Prepare for header file move to common include directory. Update #3254.
* libdl: Fix warningsSebastian Huber2017-10-061-12/+14
| | | | Update #3155.
* libdl: Support link ordered loading of ELF sections.Chris Johns2017-03-311-1/+13
| | | | | | | | | | | | | The ARM C++ exception ABI uses an address ordered index table to locate the correct frame data and this requires the EXIDX sections are loaded in the order the order the matching text is loaded. The EXIDX sections set the SHF_LINK_ORDER flag and link field. This patch adds support to load those flagged sections in the linked-to section order. Updates #2955. Closes #2959
* libdl: Add C++ exception support to loaded modules.Chris Johns2016-12-141-32/+62
| | | | | | This has been tested on SPARC, i386, PowerPC and ARM. Closes #2767.
* libdl: Add trace output when reading section headers.Chris Johns2016-08-151-0/+3
|
* libdl/rtl-obj.c: synchronize cache after code relocation.Pavel Pisa2016-07-211-0/+2
| | | | | | | | Memory content changes caused by relocation has to be propagated to memory/cache level which is used/snooped during instruction cache fill. Closes #2438
* Replace www.rtems.com with www.rtems.orgSebastian Huber2015-03-201-1/+1
|
* libdl: Update comment with details about the error fix.Chris Johns2014-11-201-0/+3
| | | | See refs #2192.
* libdl: Fix possible 16-bit overflow (Coverity 1255339) refs #2192.Chris Johns2014-11-201-1/+1
| | | | | On a 16-bit target the section value could result in a sign-extension overflow.
* libdl: Add a local symbol table to the object module.Chris Johns2014-11-041-81/+154
| | | | | | Adding a local symbol lets the relocator find local symbols referenced in relocation records. The local symbol table is erased once the object module has been loaded.
* cpukit: Add libdl with the Runtime Loader (RTL) code.Chris Johns2014-10-311-0/+882
This is a merge of the RTL project.