| Index: bfd/archive64.c
|
| diff --git a/bfd/archive64.c b/bfd/archive64.c
|
| index f3a13d341ebe3d1674ee207175ed0fe7c13be2d7..be64e0d373d82fe351d57c4b4d96dda1940448d3 100644
|
| --- a/bfd/archive64.c
|
| +++ b/bfd/archive64.c
|
| @@ -1,6 +1,5 @@
|
| -/* MIPS-specific support for 64-bit ELF
|
| - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007,
|
| - 2010, 2012 Free Software Foundation, Inc.
|
| +/* Support for 64-bit ELF archives.
|
| + Copyright 1996-2013 Free Software Foundation, Inc.
|
| Ian Lance Taylor, Cygnus Support
|
| Linker support added by Mark Mitchell, CodeSourcery, LLC.
|
| <mark@codesourcery.com>
|
| @@ -77,7 +76,7 @@ bfd_elf64_archive_slurp_armap (bfd *abfd)
|
| if (mapdata == NULL)
|
| return FALSE;
|
| parsed_size = mapdata->parsed_size;
|
| - bfd_release (abfd, mapdata);
|
| + free (mapdata);
|
|
|
| if (bfd_bread (int_buf, 8, abfd) != 8)
|
| {
|
| @@ -200,7 +199,7 @@ bfd_elf64_archive_write_armap (bfd *arch,
|
| current = current->archive_next)
|
| {
|
| /* For each symbol which is used defined in this object, write out
|
| - the object file's address in the archive */
|
| + the object file's address in the archive. */
|
|
|
| for (;
|
| count < symbol_count && map[count].u.abfd == current;
|
| @@ -210,9 +209,11 @@ bfd_elf64_archive_write_armap (bfd *arch,
|
| if (bfd_bwrite (buf, 8, arch) != 8)
|
| return FALSE;
|
| }
|
| +
|
| /* Add size of this archive entry */
|
| - archive_member_file_ptr += (arelt_size (current)
|
| - + sizeof (struct ar_hdr));
|
| + archive_member_file_ptr += sizeof (struct ar_hdr);
|
| + if (! bfd_is_thin_archive (arch))
|
| + archive_member_file_ptr += arelt_size (current);
|
| /* remember about the even alignment */
|
| archive_member_file_ptr += archive_member_file_ptr % 2;
|
| }
|
|
|