https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71934
--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Thanks, you've got far further than I ended up with. I'll incorporate your changes tomorrow. And indeed, the PIE relocation code needs to take the bias into account and I even noted I need to do that, but just forgot to do it in the patch in the end. Will tweak that tomorrow as well. As for the file size, perhaps a way to shrink it slightly more would be to use uleb128 differences instead of unsigned short.