Addend is actually usually 0 and important as a optimization for directly accessing indexed array values. It is not usually explained very well so I hope its clear now.
If there is anything else that could use clarification I am happy to update the article or answer questions.
">As we saw above, a simple program resulted in 2 different relocation entries just to compose the address of 1 variable. We saw:
R_OR1K_AHI16 R_OR1K_LO_16_IN_INSN"
Can you say why two relocations are needed? I understand the address of x is not known until link time however what would the second relocation be for?
Also is there a good reference for deciphering the relocation names?
For a full list of relocation types see the list in the last few links of the article. Note, the OpenRISC relocations are not all well documented.
>"Addend The addend available in from the relocation entry discussed above"
I'm having trouble parsing this sentence. Should this be "the addend from the relocation entry discussed above" or 'in the form of"? I feel like this an important part of the article but there's a typo. Where and how is the "addend" obtained exactly? From the program counter?