This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Optimize add_archive_element call


On Sat, Dec 11, 2010 at 8:02 PM, Alan Modra <amodra@gmail.com> wrote:
> On Fri, Dec 10, 2010 at 03:13:40PM -0800, H.J. Lu wrote:
>> On Fri, Dec 10, 2010 at 2:37 PM, Alan Modra <amodra@gmail.com> wrote:
>> > On Fri, Dec 10, 2010 at 05:48:44AM -0800, H.J. Lu wrote:
>> >> Hi,
>> >>
>> >> Before we call add_archive_element, we set subsbfd to NULL and
>> >> check if it is changed after add_archive_element returns. ?This
>> >> patch sets subsbfd to the unchanged value and avoids the check.
>> >> OK to install?
>> >
>> > Why not get rid of subsbfd entirely?
>> >
>> > ? ? ? ? ?if (! (*info->callbacks->add_archive_element)
>> > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(info, element, symdef->name, &element))
>> >
>>
>> Like this?
>
> Yes, but the same in ldlang.c too. ?It's true that "member" is used
> later, but I think that is a bug. ?Better to report an error against
> the actual file that caused the problem.
>
> Like the following, which does the same for other backends too.
> Also fixes freeing of external symbols when !keep_memory, which may
> lead to a real bug for xcoff. ?The formatting changes are so that
> emacs c-indent-exp or other automatic indenting keeps the code looking
> reasonable.
>

Please note

member = bfd_openr_next_archived_file (entry->the_bfd, member);

If member is changed by plugin, how will it find the next member?


H.J.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]