Mail Archives: cygwin/2013/01/25/08:20:45
X-Recipient: | archive-cygwin AT delorie DOT com
|
X-SWARE-Spam-Status: | No, hits=-4.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,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
|
MIME-Version: | 1.0
|
X-Received: | by 10.50.194.167 with SMTP id hx7mr3994388igc.99.1359119973024; Fri, 25 Jan 2013 05:19:33 -0800 (PST)
|
In-Reply-To: | <51027B9E.3080104@gmail.com>
|
References: | <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> <50F5D246 DOT 6010902 AT gmail DOT com> <50F653AB DOT 80102 AT gmail DOT com> <20130116123509 DOT GA16991 AT calimero DOT vinschen DOT de> <50F6AD63 DOT 8080106 AT gmail DOT com> <20130124030145 DOT 22fa143f AT YAAKOV04> <20130124092746 DOT GC8311 AT calimero DOT vinschen DOT de> <510103AF DOT 3080305 AT gmail DOT com> <20130124100037 DOT GB24121 AT calimero DOT vinschen DOT de> <51027B9E DOT 3080104 AT gmail DOT com>
|
Date: | Fri, 25 Jan 2013 14:19:32 +0100
|
Message-ID: | <CAEwic4b6jQkh+5FT+R1um12U09nqHoNcR1Vj7kZpsuvQb7pMpg@mail.gmail.com>
|
Subject: | Re: Binutils objcopy bug (was Re: rebase segfault)
|
From: | Kai Tietz <ktietz70 AT googlemail DOT com>
|
To: | cygwin AT cygwin DOT com
|
X-IsSubscribed: | yes
|
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm
|
List-Id: | <cygwin.cygwin.com>
|
List-Unsubscribe: | <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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
|
2013/1/25 marco atzeri <marco DOT atzeri AT gmail DOT com>:
> On 1/24/2013 11:00 AM, Corinna Vinschen wrote:
>
>> I already explained why: The SEGV happens during relocation.
>> The file header has been changed already. If you call the
>> same rebase, it will try to rebase the file to the same new
>> address. If current file base address == requested file base
>> address, rebase will return without performing any action.
>>
>
> Hi Corinna,
> I would like your opinion on this .reloc strange issue of
> dict_snowball, as I have the impression I found the root cause.
>
> The relocation table looks the same for the the build, strip and
> with debug link dll's
>
> $ objdump -p dict_snowball-strip.dll |grep Virtual |wc -l
> 130
>
> $ objdump -p dict_snowball-build.dll |grep Virtual |wc -l
> 130
>
> $ objdump -p dict_snowball-debug.dll |grep Virtual |wc -l
> 130
>
> but some some sections does not exist anymore after the strip,
> so the .reloc table should be smaller after strip.
>
> $ objdump -p dict_snowball-build.dll |grep Virtual
> Virtual Address: 00001000 Chunk size 72 (0x48) Number of fixups 32
>
> [cut]
>
> Virtual Address: 0002e000 Chunk size 340 (0x154) Number of fixups 166
>
> [this area points to the .debug_* sections,
> starting with .debug_info, up to .debug_loc]
>
> Virtual Address: 0003b000 Chunk size 96 (0x60) Number of fixups 44
> Virtual Address: 0003f000 Chunk size 12 (0xc) Number of fixups 2
> ....
> Virtual Address: 00098000 Chunk size 20 (0x14) Number of fixups 6
> Virtual Address: 0009a000 Chunk size 12 (0xc) Number of fixups 2
>
>
> $ objdump -h dict_snowball-build.dll
>
> dict_snowball-build.dll: file format pei-i386
>
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .text 00016808 67ec1000 67ec1000 00000400 2**4
> CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
> 1 .data 00017180 67ed8000 67ed8000 00016e00 2**5
> CONTENTS, ALLOC, LOAD, DATA
> 2 .bss 000000f8 67ef0000 67ef0000 00000000 2**5
> ALLOC
> 3 .edata 00000fe0 67ef1000 67ef1000 0002e000 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 4 .idata 000003e0 67ef2000 67ef2000 0002f000 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 5 .reloc 0000765c 67ef3000 67ef3000 0002f400 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 6 .debug_aranges 00000560 67efb000 67efb000 00036c00 2**0
> CONTENTS, READONLY, DEBUGGING
> 7 .debug_pubnames 00001112 67efc000 67efc000 00037200 2**0
> CONTENTS, READONLY, DEBUGGING
> 8 .debug_pubtypes 00000f49 67efe000 67efe000 00038400 2**0
> CONTENTS, READONLY, DEBUGGING
> 9 .debug_info 00048851 67eff000 67eff000 00039400 2**0
> CONTENTS, READONLY, DEBUGGING
> 10 .debug_abbrev 000050a3 67f48000 67f48000 00081e00 2**0
> CONTENTS, READONLY, DEBUGGING
> 11 .debug_line 000078a3 67f4e000 67f4e000 00087000 2**0
> CONTENTS, READONLY, DEBUGGING
> 12 .debug_frame 00002114 67f56000 67f56000 0008ea00 2**2
> CONTENTS, READONLY, DEBUGGING
> 13 .debug_str 00000664 67f59000 67f59000 00090c00 2**0
> CONTENTS, READONLY, DEBUGGING
> 14 .debug_loc 000170a4 67f5a000 67f5a000 00091400 2**0
> CONTENTS, READONLY, DEBUGGING
> 15 .debug_ranges 0000f3a0 67f72000 67f72000 000a8600 2**0
> CONTENTS, READONLY, DEBUGGING
>
> $ objdump -h dict_snowball-strip.dll
>
> dict_snowball-strip.dll: file format pei-i386
>
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .text 00016808 67ec1000 67ec1000 00000400 2**4
> CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
> 1 .data 00017180 67ed8000 67ed8000 00016e00 2**5
> CONTENTS, ALLOC, LOAD, DATA
> 2 .bss 000000f8 67ef0000 67ef0000 00000000 2**5
> ALLOC
> 3 .edata 00000fe0 67ef1000 67ef1000 0002e000 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 4 .idata 000003e0 67ef2000 67ef2000 0002f000 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 5 .reloc 0000765c 67ef3000 67ef3000 0002f400 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
>
>
> Questions:
> - Is it anomalous to have a .reloc portion addressing the
> debug_* sections (so the original build file is broken)
> - or should strip recognize and remove reloc portion not
> anymore relevant ?
>
> rebase is choking on this portion of the .reloc table
>
>>
>> Corinna
>>
>
> Thansk in advance
> Marco
Well, here are my 2-cents about that issue. In general it is a flaw
to have an base-relocation in debug-section, as this means such a
section can't be moved into a separate debug-file anymore, due that
has no relocation-information.
Nevertheless it would be good, if objcopy gets adjusted to eliminated
base-relocations of stripped sections.
Kai
--
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 -