This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 3/5] remove deleted BFDs from the archive cache
On Thu, Aug 16, 2012 at 10:42 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Aug 16, 2012 at 10:30 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Thu, Aug 16, 2012 at 10:28 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Thu, Aug 16, 2012 at 10:04 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> On Thu, Aug 16, 2012 at 8:53 PM, Hans-Peter Nilsson
>>>> <hans-peter.nilsson@axis.com> wrote:
>>>>> (Just replying to the last message in the thread)
>>>>>
>>>>>> xcalloc shouldn't be called from within bfd. I've already committed a
>>>>>> kneejerk patch to revert Tom's last change, instead using bfd_zmalloc
>>>>>> here. Tom said he'd look into fixing the leak this causes, so I'm
>>>>>> happy to leave that to him. :)
>>>>>
>>>>> The last I see is (2012-08-17-02:39:34 UTC)
>>>>>
>>>>> bfd:
>>>>> 2012-08-17 Yuri Chornoivan <yurchor@ukr.net>
>>>>>
>>>>> * elf-bfd.h, * elf32-ppc.c, * elf64-ia64-vms.c, * elfnn-ia64.c,
>>>>> * elfxx-mips.c, * vms-alpha.c: Typo fixes.
>>>>>
>>>>> 2012-08-17 Alan Modra <amodra@gmail.com>
>>>>>
>>>>> PR binutils/14475:
>>>>> * archive.c (bfd_ar_hdr_from_filesystem): Revert last change.
>>>>> Instead malloc areltdata.
>>>>>
>>>>> binutils:
>>>>> 2012-08-17 Yuri Chornoivan <yurchor@ukr.net>
>>>>>
>>>>> * doc/binutils.texi, * objdump.c, * od-xcoff.c: Typo fixes.
>>>>>
>>>>> 2012-08-16 H.J. Lu <hongjiu.lu@intel.com>
>>>>>
>>>>> PR binutils/14481
>>>>> * Makefile.am (BFDTEST1_PROG): New.
>>>>> (TEST_PROGS): Likewise.
>>>>> (bfdtest1_DEPENDENCIES): Likewise.
>>>>> (noinst_PROGRAMS): Add $(TEST_PROGS).
>>>>> * Makefile.in: Regenerated.
>>>>>
>>>>> * bfdtest1.c: New file.
>>>>>
>>>>> With this I still see FAILS for cris-elf and cris-linux-gnu (but
>>>>> not for arm-unknown-eabi, mipsisa32r2el-unknown-linux-gnu,
>>>>> mmix-knuth-mmixware):
>>>
>>> This should be a clue.
>>>
>>>>> Running /tmp/hpautotest-binutils/bsrc/src/binutils/testsuite/binutils-all/ar.exp ...
>>>>> FAIL: ar long file names (bfdtest1)
>>>>> FAIL: ar thin archive (bfdtest1)
>>>
>>> This fixes it.
>>>
>>>
>
>>> /* a.out link code. */
>>
>> Patch is wrong.
>>
>
> Here is the correct patch.
>
> --
> H.J.
> --
> diff --git a/bfd/aout-target.h b/bfd/aout-target.h
> index f6e8bd2..b0edb17 100644
> --- a/bfd/aout-target.h
> +++ b/bfd/aout-target.h
> @@ -577,7 +577,7 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
> #endif
>
> #ifndef MY_close_and_cleanup
> -#define MY_close_and_cleanup MY_bfd_free_cached_info
> +#define MY_close_and_cleanup _bfd_generic_close_and_cleanup
> #endif
>
> #ifndef MY_get_dynamic_symtab_upper_bound
More potential problems:
aout-adobe.c:#define aout_32_close_and_cleanup
aout_32_bfd_free_cached_info
aout-tic30.c:#define MY_close_and_cleanup MY_bfd_free_cached_info
bout.c:#define aout_32_close_and_cleanup
aout_32_bfd_free_cached_info
coff-sh.c:#define coff_small_close_and_cleanup \
elf64-aarch64.c:#define bfd_elf64_close_and_cleanup \
elf64-ia64-vms.c:#define bfd_elf64_close_and_cleanup elf64_vms_close_and_cleanup
elfxx-target.h:#define bfd_elfNN_close_and_cleanup _bfd_elf_close_and_cleanup
i386os9k.c:#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info
som.c:#define som_close_and_cleanup som_bfd_free_cached_info
vms-alpha.c:#define alpha_vms_close_and_cleanup vms_close_and_cleanup
We need to make sure that all of them call _bfd_generic_close_and_cleanup
at the end.
H.J.