ARM Relocation Information

Hello, Renato

While Clang doesn’t include the TARGET2 relocation information, and that
mess up cross-linking.

Is there any documentation for this stuff?

Hi Anton,

Sure, EABI pdfs. For instance, the EHABI (4.4.2) state that "exception tables should be free of dynamic relocations. A static relocation may be applied to an exception table for the following purposes:" and list them, including RTTI (which is TARGET2).

What I couldn't find, however, was a complete list of all cases and their specific relocations.

AAELF 4.7.1.2 list (and explain briefly) all supported relocation types. GCC doesn't support all of them, so you can have a look in its source for the most used ones.

Digging a bit deeper I saw that MCAsmStreamer is the one printing the values. So I could modify MCExpr to include a MCRelocation that gets printed, if available, following the platform specific relocation types (eg. ARMMCRelocation.print()), with the default being null.

Does it seem fair? It's my first dig into MC stuff, might be completely wrong... :wink:

Cheers,
--renato