Subject: Re: bug#20614: Segmentation fault when building on Power8 Little Endian

From: Jaromir Capik <[email-masked]>
Date: Thu, 8 Oct 2015 09:27:45 -0400 (EDT)

Hello guys.

> > Awesome. The patch fixes the problem and I can build the emacs under
> > PPC64LE.
> 
> Does it mean only the unexec stage completes without segfault?  Or the
> resulting binary also runs successfully?

The unexec call runs without segfaults now and the resulting binary
can be started and exited (that was all I tested).

> > By the way .toc is still not fixed. It is specific to ppc64. And it
> > doesn't cause the segfault, though.  It has a data and addresses.
> > It seems that unexec corrupted it:(
> 
> I guess you mean the entry in
> https://bugzilla.redhat.com/show_bug.cgi?id=1265271#c16 .
> 
>   .rela.plt -> .plt
>   .rela.toc -> empty string
> 
> What does the above notation stand for?  Is this the output of some
> tool?  Then what would be the output for src/temacs?

That is a debug output I put in the relocation udoing loop where
the segfault occured when the section names were compared with listed
literals.
I was printing the section names of REL/RELA sections and their
PROGBITS/NOBITS counterparts. The segfault occured when accessing
'old_section_names + NEW_SECTION_H (section.sh_info).sh_name' where
section.sh_name was '.rela.toc'. That means it was pointing to
an invalid address. When the .plt evaluation was fixed, the segfault
disappeared, but the NEW_SECTION_H (section.sh_info).sh_type is NULL
now and the section name is empty. The question is whether this is ok
or not. After looking at the complete list of sections it seems to be
a PPC specific oddity and I'm looking at the code to make myself sure
it doesn't need a special care. So, right now it requires no attention
from your side.

Thanks,
Jaromir.

--
Jaromir Capik
Red Hat Czech, s.r.o.
Software Engineer / Secondary Arch

Email: [email-masked]
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkynova 99/71, 612 45, Brno, Czech Republic
IC: 27690016