This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFC: Objcopy --only-keep-debug update
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Mark Wielaard <mjw at redhat dot com>
- Cc: Nicholas Clifton <nickc at redhat dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Wed, 29 Jul 2015 13:16:22 -0700
- Subject: Re: RFC: Objcopy --only-keep-debug update
- Authentication-results: sourceware.org; auth=none
- References: <55B8D362 dot 9070004 at redhat dot com> <1438196435 dot 28346 dot 120 dot camel at bordewijk dot wildebeest dot org> <CAMe9rOpc=nfBdFRCjNF3c9h3-CRQTBMOUUs8dOAyqXXt3tbcuQ at mail dot gmail dot com> <1438200889 dot 28346 dot 134 dot camel at bordewijk dot wildebeest dot org>
On Wed, Jul 29, 2015 at 1:14 PM, Mark Wielaard <mjw@redhat.com> wrote:
> On Wed, 2015-07-29 at 12:09 -0700, H.J. Lu wrote:
>> On Wed, Jul 29, 2015 at 12:00 PM, Mark Wielaard <mjw@redhat.com> wrote:
>> > On Wed, 2015-07-29 at 14:21 +0100, Nicholas Clifton wrote:
>> >> One problem I did have with this part of the patch was in determining
>> >> which sections should have their sh_link fields preserved. In the
>> >> end I had to encode the section names directly, but I feel that their
>> >> ought to be a better way.
>> >
>> > I should prefix this with noting that eu-unstrip only got confused
>> > because the sh_flags weren't preserved. In particular the missing
>> > SHF_INFO_LINK on .plt.rela sections caused it to not match those in the
>> > main and debug file. I have a workaround for that now:
>> > https://lists.fedorahosted.org/pipermail/elfutils-devel/2015-July/005076.html
>> >
>>
>> Can you try binutils master branch? I think I have fixed it.
>
> It doesn't seem so. This is how I tried:
>
> $ gcc --version | head -1
> gcc (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
> $ ./objcopy --version | head -1
> GNU objcopy (GNU Binutils) 2.25.51.20150729
> $ cat > testprog.c <<EOF
> int main()
> {
> return 0;
> }
> EOF
> $ gcc -o testprog -g testprog.c
> $ ./objcopy --only-keep-debug testprog testprog.debuginfo
> $ eu-readelf -S testprog testprog.debuginfo | grep rela.plt
> [10] .rela.plt RELA 0000000000400378 00000378 00000030 24 AI 5 12 8
> [10] .rela.plt NOBITS 0000000000400378 00000298 00000030 24 A 0 0 8
>
> Note how the SHF_INFO_LINK flag, sh_info and sh_link are missing in the
> debuginfo file.
>
>
Please file a binutils bug report.
Thanks.
--
H.J.