summaryrefslogtreecommitdiffstats
path: root/backends/aarch64_symbol.c
Commit message (Collapse)AuthorAgeFilesLines
* Handle ADD/SUB relocationsAndreas Schwab2018-10-131-1/+2
| | | | | | This adds support for ADD and SUB relocations as seen on RISC-V. Signed-off-by: Andreas Schwab <[email protected]>
* backends: Always use elf_getshdrstrndx in check_special_symbol.Mark Wielaard2018-09-131-3/+6
| | | | | | | | | | The check_special_symbol backend functions used the Ehdr e_shstrndx field to get at the name of sections. This is not correct if there are more than SHN_LORESERVE sections. Always use elf_getshdrstrndx to get the shstrtab section. And drop the Ehdr argument that isn't necessary anymore. Signed-off-by: Mark Wielaard <[email protected]>
* strip: Deal with ARM data marker symbols pointing to debug sections.Mark Wielaard2017-07-241-1/+13
| | | | | | | | | | | | | | | | | | | ARM data marker symbols "$d" indicate the start of a sequence of data items in a section. For data only sections no data marker symbol is necessary, but may be put pointing to the start of the section. binutils however has a bug which places a data marker symbol somewhere inside the section (at least for .debug_frame). https://sourceware.org/bugzilla/show_bug.cgi?id=21809 When strip finds a symbol pointing to a debug section that would be put into the .debug file then it will copy over the whole symbol table. This isn't necessary because the symbol is redundant. Add an ebl hook to recognize data marker symbols with implementations for arm and aarch64. Use it in strip to strip such symbols from the symbol table if they point to a debug section. Signed-off-by: Mark Wielaard <[email protected]>
* backends: aarch64 can have _GLOBAL_OFFSET_TABLE_ point anywhere in .got.Mark Wielaard2015-03-271-5/+10
| | | | | | | | | | When building with relro aarch64 splits .got in a writable and read-only part. _GLOBAL_OFFSET_TABLE_ points to the first writable symbol, not the start of .got. https://bugzilla.redhat.com/show_bug.cgi?id=1201778 Signed-off-by: Mark Wielaard <[email protected]>
* backends: aarch64_check_special_symbol check shdr is not NULL before usage.Mark Wielaard2014-01-171-3/+6
| | | | Signed-off-by: Mark Wielaard <[email protected]>
* backends: aarch64 always has _GLOBAL_OFFSET_TABLE_ point to .got[0].Mark Wielaard2013-12-201-0/+28
| | | | | | | | | | | Like some other architectures aarch64 has a special rule for the _GLOBAL_OFFSET_TABLE_ symbol. Even if there is a .plt.got section the symbol value still points to the start of the .got section. This is also what the dynamic linker expects. See https://sourceware.org/ml/libc-ports/2013-06/msg00057.html Signed-off-by: Mark Wielaard <[email protected]>
* Support AArch64 architecturePetr Machata2013-11-261-0/+56
Signed-off-by: Petr Machata <[email protected]>