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 ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs