www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/01/15/17:04:47

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-5.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_BJ,TW_JC
X-Spam-Check-By: sourceware.org
X-Received: by 10.236.84.77 with SMTP id r53mr89648226yhe.36.1358287433729; Tue, 15 Jan 2013 14:03:53 -0800 (PST)
Message-ID: <50F5D246.6010902@gmail.com>
Date: Tue, 15 Jan 2013 23:03:50 +0100
From: marco atzeri <marco DOT atzeri AT gmail DOT com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: rebase segfault
References: <50F516C8 DOT 9050602 AT gmail DOT com> <20130115100745 DOT GC2353 AT calimero DOT vinschen DOT de> <50F5312A DOT 2040503 AT gmail DOT com> <20130115112406 DOT GA13752 AT calimero DOT vinschen DOT de>
In-Reply-To: <20130115112406.GA13752@calimero.vinschen.de>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 1/15/2013 12:24 PM, Corinna Vinschen wrote:
> On Jan 15 11:36, marco atzeri wrote:
>> On 1/15/2013 11:07 AM, Corinna Vinschen wrote:
>>> On Jan 15 09:43, marco atzeri wrote:
>>>> rebase is segfaulting on two dlls of new package
>>>>
>>>> postgresql-contrib-9.2.2-1
>>>>
>>>> Full packages here
>>>> http://matzeri.altervista.org/cygwin-1.7/postgresql/
>>>>
>>>> Just the two dll's here:
>>>> http://matzeri.altervista.org/works/rebase/
>>>>
>>>> for i in *.dll; do echo $i ; rebase -O  $i ; done
>>>>
>>>> dict_snowball.dll
>>>> Segmentation fault (core dumped)
>>>>
>>>> ltree.dll
>>>> Segmentation fault (core dumped)
>>>
>>> I don't know exactly what's going on here, but there's a common
>>> factor:
>>> [...]
>>> Both DLLs have a section .gnu_deb, whatever that one is good for.
>>> Rebase crashes both times when trying to relocate this .gnu_deb section.
>>> As you can see, the .gnu_deb section is pretty small, only 28 resp. 20
>>> bytes.  What happens is that the relocation information for the .gnu_deb
>>> section appears to be too big.  In case of dict_snowball.dll, the reloc
>>> info covers 44 relocation entries.  The segfault occurs as soon as one
>>> entry translates into a memory address which is beyond the committed
>>> area of the file memory map.
>>> [...]
>>
>> It seems the result of the .dbg creation, that trunks
>> wrongly the sections.
>> [...]
>> for what I can see a dll with debug symbols
>> should have a .gnu_debuglink sections:
>
> Right.  Something's scrambled.  AFAIK, the .gnu_debuglink is not
> relocatable, it only contains a path.  ".gnu_deb" appears to be
> a result of using only the fixed 8 bytes of the section name.
> Yaakov, do you have any idea what's going on here?

it seems that objcopy is considering the

    --long-section-names {enable|disable|keep}

as disable (or keeping an incorrect disable)

using in sequence on a stripped ltree.dll

$ objcopy -v  --add-gnu-debuglink="ltree.dll.dbg" ltree.dll
$ objcopy -v --long-section-names enable 
--add-gnu-debuglink="ltree.dll.dbg" ltree.dll

$ objdump -h ltree.dll

ltree.dll:     file format pei-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
   0 .text         000088a8  6fc81000  6fc81000  00000400  2**4
                   CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
   1 .data         00000dc0  6fc8a000  6fc8a000  00008e00  2**5
                   CONTENTS, ALLOC, LOAD, DATA
   2 .bss          000000f8  6fc8b000  6fc8b000  00000000  2**5
                   ALLOC
   3 .edata        00000e3c  6fc8c000  6fc8c000  00009c00  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
   4 .idata        000005b8  6fc8d000  6fc8d000  0000ac00  2**2
                   CONTENTS, ALLOC, LOAD, DATA
   5 .reloc        00000adc  6fc8e000  6fc8e000  0000b200  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
   6 .gnu_deb      00000014  6fc8f000  6fc8f000  0000be00  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
   7 .gnu_debuglink 00000014  6fc90000  6fc90000  0000c000  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, DATA


I consider this a bug of objcopy:
   "--add-gnu-debuglink" should imply "--long-section-names enable"

>
>
> Corinna
>
Regards
MArco


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019