From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Petr Hracek Newsgroups: gmane.emacs.bugs Subject: bug#20614: Segmentation fault when building on Power8 Little Endian Date: Mon, 5 Oct 2015 11:16:32 +0200 Message-ID: <56123FF0.3040104@redhat.com> References: <555C3E3C.4090700@redhat.com> <1gpp5vi5xn.fsf@fencepost.gnu.org> <555DD5D3.3020207@redhat.com> <55A3A08A.9060905@redhat.com> <55A4BFB7.3010208@redhat.com> <55F95275.4040209@redhat.com> <56012AA6.7010702@redhat.com> <56025D9A.9080608@redhat.com> <838u7xlbsn.fsf@gnu.org> <56028633.3000303@redhat.com> <83zj0djskx.fsf@gnu.org> <56029707.9040100@redhat.com> <83wpvhjpdd.fsf@gnu.org> <5603D8BE.10300@redhat.com> <834mijkf36.fsf@gnu.org> <56043950.7040108@redhat.com> <83k2rdhaso.fsf@gnu.org> <560BBBF3.6000407@redhat.com> <83r3lf9gq4.fsf@gnu.org> <560D1EAA.3080608@redhat.com> <83bnciaidw.fsf@gnu.org> <560D3DC5.2050804@redhat.com> <837fn6a881.fsf@gnu.org> <560E420B.9070200@redhat.com> <83d1wx7j0e.fsf@gnu.org> <560E7F90.1070609@redhat.com> <83wpv55qog.fsf@gnu.org> <5612295F.4000607@redhat.com> <83twq5zpne.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1444036675 19404 80.91.229.3 (5 Oct 2015 09:17:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Oct 2015 09:17:55 +0000 (UTC) Cc: 20614@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Oct 05 11:17:45 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zj1tv-0005Ol-Dv for geb-bug-gnu-emacs@m.gmane.org; Mon, 05 Oct 2015 11:17:43 +0200 Original-Received: from localhost ([::1]:44933 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zj1tu-0008Dr-VW for geb-bug-gnu-emacs@m.gmane.org; Mon, 05 Oct 2015 05:17:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zj1tL-00084e-Lg for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 05:17:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zj1tG-0002e4-Q5 for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 05:17:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37638) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zj1tG-0002e0-Ms for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 05:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Zj1tG-0008Ho-7t for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 05:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Petr Hracek Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Oct 2015 09:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20614 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20614-submit@debbugs.gnu.org id=B20614.144403659931820 (code B ref 20614); Mon, 05 Oct 2015 09:17:02 +0000 Original-Received: (at 20614) by debbugs.gnu.org; 5 Oct 2015 09:16:39 +0000 Original-Received: from localhost ([127.0.0.1]:54842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Zj1ss-0008H9-Sc for submit@debbugs.gnu.org; Mon, 05 Oct 2015 05:16:39 -0400 Original-Received: from mx1.redhat.com ([209.132.183.28]:49310) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Zj1sq-0008H0-0D for 20614@debbugs.gnu.org; Mon, 05 Oct 2015 05:16:37 -0400 Original-Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id BE92E461D6; Mon, 5 Oct 2015 09:16:34 +0000 (UTC) Original-Received: from [10.34.4.133] (unused-4-133.brq.redhat.com [10.34.4.133]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t959GXtf010113; Mon, 5 Oct 2015 05:16:34 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 In-Reply-To: <83twq5zpne.fsf@gnu.org> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:107304 Archived-At: On 10/05/2015 10:27 AM, Eli Zaretskii wrote: >> Cc: 20614@debbugs.gnu.org >> From: Petr Hracek >> Date: Mon, 5 Oct 2015 09:40:15 +0200 >> >>>>>> What does this GDB command display in frame #1: >>>>>> >>>>>> (gdb) p old_section_names + NEW_SECTION_H (nn).sh_name >>>>>> >>>>>> ? >>>>>> >>>>>> It is a really strange. >>>>>> in our unexelf.c is NEW_SECTION_H defined as >>>>>> >>>>>> #define NEW_SECTION_H(n) \ >>>>>> (*(ElfW (Shdr) *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) >>>>>> >>>>>> Paul Eggert did a some patch 1 or 2 year ago and modify it to >>>>>> #define NEW_SECTION_H(n) \ >>>>>> (*(ElfW (Shdr) *) entry_address (new_section_h, n, new_file_h->e_shentsize)) >>>>>> >>>>>> (gdb) frame 1 >>>>>> #1 0x00000000102e3724 in unexec (new_name=0x116387e8 >>>>>> "/home/phracek/rpmbuild/BUILD/emacs-24.3/src/emacs", old_name=0x11638838 >>>>>> "/home/phracek/rpmbuild/BUILD/emacs-24.3/src/temacs") >>>>>> at unexelf.c:1258 >>>>>> 1258 if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") >>>>>> (gdb) p old_section_names >>>>>> $1 = 0x3fffab1dbfcc "" >>>>>> (gdb) p old_section_names + NEW_SECTION_H (nn).sh_name >>>>>> No symbol "NEW_SECTION_H" in current context. >>>>> Use the expansion of that macro instead to display the value. >>>> How to use the expansion. >>> Just type it by hand: >>> >>> (gdb) p old_section_names + (*(ElfW (Shdr) *) ((byte *) new_section_h + new_file_h->e_shentsize * (nn))) >>> >>>> Are you connected on freenode #emacs. >>> No. >> First of all thank you for your time. >> Well, >> (gdb) p (*(ElfW (Shdr) *) ((byte *) new_section_h + >> new_file_h->e_shentsize * (nn))) >> No symbol "ElfW" in current context. >> (gdb) >> Also ElfBitsW does not exists. >> (gdb) p ElfBitsW >> No symbol "ElfBitsW" in current context. >> (gdb) > You need to expand all these macros by hand. They are defined at the > beginning of unexelf.c: > > #ifndef ElfW > # define ElfBitsW(bits, type) Elf##bits##_##type > # ifndef ELFSIZE > # ifdef _LP64 > # define ELFSIZE 64 > # else > # define ELFSIZE 32 > # endif > # endif > /* This macro expands `bits' before invoking ElfBitsW. */ > # define ElfExpandBitsW(bits, type) ElfBitsW (bits, type) > # define ElfW(type) ElfExpandBitsW (ELFSIZE, type) > #endif > > I would suggest at first to rebuild Emacs with "-gdwarf-4 -g3" > compiler switches, maybe that will allow you to type expressions with > macros, and let GDB expand them using the debug info. Maybe. Well, finally I have got it. (gdb) p (*(ElfW (Shdr) *) ((byte *) new_section_h + new_file_h->e_shentsize * (nn))) $1 = {sh_name = 1735746149, sh_type = 1650614623, sh_flags = 7090183337103746418, sh_addr = 28550371716589429, sh_offset = 8313477191008871470, sh_size = 8458434531098129012, sh_link = 1634885479, sh_info = 1936025454, sh_addralign = 6874592421672660480, sh_entsize = 478660485485} (gdb) p old_section_names + NEW_SECTION_H (nn).sh_name $2 = 0x4000128ceb51
(gdb) p old_section_names $3 = 0x3fffab1788ec "" (gdb) Hope it helps. -- Petr Hracek Software Engineer Developer Experience Red Hat, Inc Mob: +420777056169 email: phracek@redhat.com