Updated in 2024-01. Branch target Many architectures encode a branch/jump/call instruction with PC-relative addressing, i.e. the distance to the target is encoded in the instruction. In an executable| MaskRay
Updated in 2024-02. (In celebration of my 2800th llvm-project commit) Happy Halloween! This article describes relative relocations and how the RELR format can greatly decrease file sizes. An ELF linke| MaskRay
This article describes some notes about z/Architecture with a focus on the ELF ABI and ELF linkers. An lld/ELF patch sparked my motivation to study the architecture and write this post. z/Architecture| MaskRay
Updated in 2024-04. GNU indirect function (ifunc) is a mechanism making a direct function call resolve to an implementation picked by a resolver. It is mainly used in glibc but has adoption in FreeBSD| MaskRay
UNDER CONSTRUCTION This article describes target-specific details about AArch32 in ELF linkers. I described AArch64 in a previous article. AArch32 is the 32-bit execution state for the Arm architectur| MaskRay
This article describes target-specific details about AArch64 in ELF linkers. AArch64 is the 64-bit execution state for the Arm architecture. The AArch64 execution state runs the A64 instruction set. T| MaskRay
This article describes target-specific details about Power ISA in ELF linkers. Initially there was IBM POWER. The 1991 Apple–IBM–Motorola alliance created PowerPC. In 2006, the architecture was rebran| MaskRay