This patch adds support for .glink resolver stubs from the example implementation in the V2 abi. (Section 4.2.5.3. Procedure Linkage Table)
The .glink section has a common resolver entry point '__glink_PLTresolve' which sets up the environment and then calls a resolver function supplied by the dynamic linker. Following __glink_PLTresolve is a set of branches, one for each function needing lazy resolution, which branch to the common resolver entry point.
Communicating to the dynamic linker where the lazy resolver stubs start is done with the PPC64_GLINK dynamic tag which has to point to the address 32 bytes before the first lazy symbol resolver stub.
In the V2 abi the .glink section is supposed to be merged into the end of the text section, this will be done in a follow up patch.
Looks like you set 60 to PltHeaderSize but you are using only the first 56 bytes. Is this intentional?