In the include/llvm/Support/ELFRelocs directory, there is a bunch of .def files defining enums that are to be included in ELF.h. For example, in ARM.def, there is this record:
What does ‘R_ARM_PC24’ mean and where does the value 0x01 come from?
I’m trying to define a backend for a custom cpu and I have to provide a .def file but I don’t know what these records mean.
See for a general description of ELF relocations.Â The names, values, and meanings are all CPU-specific because it depends on the instruction encoding.Â For commonly used CPUs, there are standard ELF relocations, so different compilers and linkers for a given CPU are compatible.Â For example, the ARM ELF relocations are defined in . If you’re defining your own CPU architecture, it doesn’t really matter what the names or values are, as long as the compiler and linker agree what they mean. -Eli