|
From: | Petr Hracek |
Subject: | bug#20614: Segmentation fault when building on Power8 Little Endian |
Date: | Wed, 7 Oct 2015 10:17:38 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 10/06/2015 04:55 PM, Eli Zaretskii
wrote:
Our secondary arches expert did awesome research and mention it in bugzillaFrom: Petr Hracek <phracek@redhat.com> 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. 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 -> .gotCan 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 |
[Prev in Thread] | Current Thread | [Next in Thread] |