This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC PATCH, binutils, ELF 9/11] Add support for creating import libraries


Hi Thomas,

Please find an updated patch below.

*** bfd/ChangeLog ***

2016-02-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook.
        (_bfd_elf_filter_global_symbols): Declare.
        * elf.c (_bfd_elf_filter_global_symbols): New function.
        * elflink.c (elf_filter_global_symbols): Likewise.
        (elf_output_implib): Likewise.
        (bfd_elf_final_link): Call above function, failing if it does.
        * elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and
        default it to NULL.
        (elf_backend_copy_indirect_symbol): Fix spacing.
        (elf_backend_hide_symbol): Likewise.
        (elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook.


*** include/ChangeLog ***

2015-10-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * bfdlink.h (struct bfd_link_info): Declare new ldscript_def and
        out_implib_bfd fields.


*** ld/ChangeLog ***

2015-11-02  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Open import
        library file for writing and initialize implib_bfd field of link_info
        structure.
        * emultempl/pe.em (pe_implib_filename): Remove variable declaration.
        (OPTION_IMPLIB_FILENAME): Remove macro definition.
        (gld${EMULATION_NAME}_add_options): Remove --out-implib option.
        (gld_${EMULATION_NAME}_list_options): Likewise.
        (gld${EMULATION_NAME}_handle_option): Likewise.
        (gld_${EMULATION_NAME}_finish): Use command_line.out_implib_filename
        instead of pe_implib_filename.
        * emultempl/pep.em (pep_implib_filename): Remove variable declaration.
        (OPTION_IMPLIB_FILENAME): Remove enumerator.
        (gld${EMULATION_NAME}_add_options): Remove --out-implib option.
        (gld_${EMULATION_NAME}_list_options): Likewise.
        (gld${EMULATION_NAME}_handle_option): Likewise.
        (gld_${EMULATION_NAME}_finish): Use command_line.out_implib_filename
        instead of pep_implib_filename.
        * ld.h (args_type): Declare new out_implib_filename field.
        * ld.texinfo (--out-implib): Move documentation to arch-independent
        part and rephrase to apply to ELF targets.
        * ldexp.c (exp_fold_tree_1): Set ldscript_def field to 1 for symbols
        defined in linker scripts.
        * ldlex.h (enum option_values): Declare new OPTION_OUT_IMPLIB
        enumerator.
        * lexsup.c (ld_options): Add entry for new --out-implib switch.
        (parse_args): Handle OPTION_OUT_IMPLIB case.


*** ld/testsuite/ChangeLog ***

2015-10-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * ld-elf/elf.exp (Generate empty import library): New test.
        (Generate import library): Likewise.
        * ld-elf/implib.s: Likewise.
        * ld-elf/implib.rd: New file.
        * ld-elf/empty-implib.out: Likewise


Approved - please apply - but please could you add a line to the ld/NEWS file mentioning the new feature.

Also - I suspect that you will want this patch to go in to the 2.27 release. The decision is up to Tristan, but I would urge that it be
delayed until 2.28 as I think that it needs some time to bed-in, so to
speak.

Cheers
  Nick



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]