The bug is
in binutils/binemul.c
function do_ar_emul_default_append (bfd **after_bfd, bfd *new_bfd, bfd_boolean
verbose, bfd_boolean flatten)
the line is
if (do_ar_emul_default_append (after_bfd, elt, verbose, TRUE))
where elt is the object within the archive to be added to this archive
unfortunately, the code that calculates for whether replace is possible
is in ar.c - functions in this file have no way of knowing what previous
elements exist, and the do_ar_emul_default_replace method implementation
is therefore stupid.
hmm, looking at struct bfd, I see ...
/* Stuff only useful for archives. */
void *arelt_data;
struct bfd *my_archive; /* The containing archive BFD. */
struct bfd *archive_next; /* The next BFD in the archive. */
struct bfd *archive_head; /* The first BFD in the archive. */
struct bfd *nested_archives; /* List of nested archive in a flattened
thin archive. */
so I guess it won't be too hard to fix
--
ar duplicates files when flattening thin archives
https://bugs.launchpad.net/bugs/565227
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs