When compiling -fpie and linking with the --pie option the R_ARM_GOTBREL relocation to D is resolved by writing the value of D into the .got slot and emitting an R_ARM_RELATIVE relocation for it.
Unfortunately R_ARM_RELATIVE is missing from relocateOne() leading to an unsupported relocation error (and then a segfault by the error handling system as it tries to look up the source for the GotSection.
The simple fix is to add R_ARM_RELATIVE to relocateOne() as R_ABS.
The R_ARM_GOTBREL relocation is present in the glibc library startup code so this problem will affect all --pie applications.