bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/14625] [2.23/2.24 regression] ar: File truncated


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/14625] [2.23/2.24 regression] ar: File truncated
Date: Wed, 25 May 2016 16:49:20 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=14625

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e6cc316af931911da20249e19f9342e5cf8aeeff

commit e6cc316af931911da20249e19f9342e5cf8aeeff
Author: H.J. Lu <address@hidden>
Date:   Wed May 25 09:46:47 2016 -0700

    Enable 64-bit archives in ar and ranlib

    Since existing ld and gold support the 64-bit (MIPS) ELF archives, we
    can use the 64-bit (MIPS) ELF archives as 64-bit archives.  Since the
    plugin target is used to create archive in plugin-enabled ar, we need
    a way to enable 64-bit archives in the plugin target.  This patch adds
    --enable-64-bit-archive to bfd to force 64-bit archives in ar and
    ranlib.  Since both 64-bit MIPS and s390 ELF targets currently use
    64-bit archives, 64-bit archives are enabled by default for them.
    64-bit archive is generated automatically if the archive is too big.

    Tested on Linux/x86 and Linux/x86-64 with existing ld and gold.

    bfd/

        PR binutils/14625
        * archive.c (bfd_slurp_armap): Replace
        bfd_elf64_archive_slurp_armap with
        _bfd_archive_64_bit_slurp_armap.
        (bsd_write_armap): Call _bfd_archive_64_bit_write_armap if
        BFD64 is defined and the archive is too big.
        (coff_write_armap): Likewise.
        * archive64.c (bfd_elf64_archive_slurp_armap): Renamed to ...
        (_bfd_archive_64_bit_slurp_armap): This.
        (bfd_elf64_archive_write_armap): Renamed to ...
        (_bfd_archive_64_bit_write_armap): This.
        * configure.ac: Add --enable-64-bit-archive.
        (want_64_bit_archive): New.  Set to true by default for 64-bit
        MIPS and s390 ELF targets.
        (USE_64_BIT_ARCHIVE): New AC_DEFINE.
        * config.in: Regenerated.
        * configure: Likewise.
        * elf64-mips.c (bfd_elf64_archive_functions): Removed.
        (bfd_elf64_archive_slurp_armap): Likewise.
        (bfd_elf64_archive_write_armap): Likewise.
        (bfd_elf64_archive_slurp_extended_name_table): Likewise.
        (bfd_elf64_archive_construct_extended_name_table): Likewise.
        (bfd_elf64_archive_truncate_arname): Likewise.
        (bfd_elf64_archive_read_ar_hdr): Likewise.
        (bfd_elf64_archive_write_ar_hdr): Likewise.
        (bfd_elf64_archive_openr_next_archived_file): Likewise.
        (bfd_elf64_archive_get_elt_at_index): Likewise.
        (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
        (bfd_elf64_archive_update_armap_timestamp): Likewise.
        * elf64-s390.c (bfd_elf64_archive_functions): Removed.
        (bfd_elf64_archive_slurp_armap): Likewise.
        (bfd_elf64_archive_write_armap): Likewise.
        (bfd_elf64_archive_slurp_extended_name_table): Likewise.
        (bfd_elf64_archive_construct_extended_name_table): Likewise.
        (bfd_elf64_archive_truncate_arname): Likewise.
        (bfd_elf64_archive_read_ar_hdr): Likewise.
        (bfd_elf64_archive_write_ar_hdr): Likewise.
        (bfd_elf64_archive_openr_next_archived_file): Likewise.
        (bfd_elf64_archive_get_elt_at_index): Likewise.
        (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
        (bfd_elf64_archive_update_armap_timestamp): Likewise.
        * elfxx-target.h (TARGET_BIG_SYM): Use _bfd_archive_64_bit on
        BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined and
        bfd_elfNN_archive_functions isn't defined.
        (TARGET_LITTLE_SYM): Likewise.
        * libbfd-in.h (_bfd_archive_64_bit_slurp_armap): New prototype.
        (_bfd_archive_64_bit_write_armap): Likewise.
        (_bfd_archive_64_bit_slurp_extended_name_table): New macro.
        (_bfd_archive_64_bit_construct_extended_name_table): Likewise.
        (_bfd_archive_64_bit_truncate_arname): Likewise.
        (_bfd_archive_64_bit_read_ar_hdr): Likewise.
        (_bfd_archive_64_bit_write_ar_hdr): Likewise.
        (_bfd_archive_64_bit_openr_next_archived_file): Likewise.
        (_bfd_archive_64_bit_get_elt_at_index): Likewise.
        (_bfd_archive_64_bit_generic_stat_arch_elt): Likewise.
        (_bfd_archive_64_bit_update_armap_timestamp): Likewise.
        * libbfd.h: Regenerated.
        * plugin.c (plugin_vec): Use _bfd_archive_64_bit on
        BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined.

    binutils/

        PR binutils/14625
        * NEWS: Mention --enable-64-bit-archive.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]