On 10/06/2015 04:55 PM, Eli Zaretskii wrote: >> From: Petr Hracek >> Date: Tue, 6 Oct 2015 13:52:52 +0200 >> >> I have a question >> unexec part is called always? >> Even when make bootstrap is not called? > It is called each time the Emacs executable is built. > >> What is bootstrap used for? > Fir the first build, when there are no *.elc files. Our secondary arches expert did awesome research and mention it in bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1265271#c11 Basically If you don't have an access to bugzilla: Hello guys. I'm affraid it didn't work correctly even with the old binutils. The whole unexec logic is broken and needs a lot of love. The relocation undoing is done the following way on x86_64: .rela.plt -> .plt .rela.bss -> .bss .rela.got -> .got ... but on ppc64le I get the following with the old binutils: .rela.plt -> .data .rela.toc -> empty string (probably some zeros in memory) ... and with the new binutils it probably just attacks a different part of memory and segfaults. On ppc64be I also get wrong results ... with binutils-2.23.52.0.1-50.el7.ppc64 .rela.plt -> .data .rela.toc -> empty string .rela.data.rel.ro -> .data.rel.ro with binutils-2.23.52.0.1-54.el7.ppc64 .rela.plt -> .data .rela.toc -> segfault Fedora 22 is affected too ... with binutils-2.25-8.fc22.ppc64le .rela.plt -> .data .rela.toc -> empty string .rela.data.rel.ro -> .data.rel.ro Fedora 22 for s390x seems ok ... .rela.plt -> .plt .rela.got -> .got Fedora 22 for aarch64 seems ok too .. .rela.plt -> .plt .rela.got -> .got Can anybody from upstream correct it? @Jaromir: Thank you for your time and awesome analysis. -- Petr Hracek Software Engineer Developer Experience Red Hat, Inc Mob: +420777056169 email: phracek@redhat.com