Are you PIC-adjusting the percpu variables as well?
After this patch (and after fixing percpu_stable_op to use "a" operand
modifier on GCC), the only *one* remaining absolute reference to
percpu variable remain in xen-head.S, where:
movq $INIT_PER_CPU_VAR(fixed_percpu_data),%rax
should be changed to use leaq.
All others should then be (%rip)-relative.