On Wed, 31 Oct 2018 18:20:56 +0100 Florian Weimer <fwei...@redhat.com> wrote:
> We tried to use Go to build PIE binaries, and while the Go toolchain > is definitely not ready (it produces text relocations and problematic > relocations in general), it exposed what could be an accidental > userspace ABI change. > > With our 4.10-derived kernel, PIE binaries are mapped below 4 GiB, so > relocations like R_PPC64_ADDR16_HA work: > ... > There are fewer mappings because the loader detects a relocation > overflow and aborts (“error while loading shared libraries: > R_PPC64_ADDR16_HA reloc at 0x0000000120f0983c for symbol `' out of > range”), so I had to recover the mappings externally. Disabling ASLR > does not help. > ... > > And it needs to be built with: > > go build -ldflags=-extldflags=-pie extld.go > > I'm not entirely sure what to make of this, but I'm worried that this > could be a regression that matters to userspace. I encountered the same when trying to build go on ppc64le. I am not familiar with the internals so I just let it be. It does not seem to matter to any other userspace. Maybe it would be good idea to generate 64bit relocations on 64bit targets? Thanks Michal