This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] New option for DLL and import library generation on PE systems.
- From: "Dave Korn" <dave dot korn dot cygwin at googlemail dot com>
- To: binutils at sourceware dot org
- Date: Tue, 23 Dec 2008 13:50:26 +0000
- Subject: Re: [PATCH] New option for DLL and import library generation on PE systems.
- References: <2ca21dcc0812230505h76f5da47p930b2cc5a05566f5@mail.gmail.com>
On 12/23/08, Dave Korn wrote:
> The attached patch adds a new feature to systems based on the PE and PEP
> (PE+) emulations, a new command-line option to use when linking a DLL and
> generating its related import library.
>
> The new --exclude-modules-for-implib command-line option
Forgot the ChangeLog, didn't I? Ho ho ho!
Dave Korn wrote:
> Hi gang,
>
> The attached patch adds a new feature to systems based on the PE and PEP
> (PE+) emulations, a new command-line option to use when linking a DLL and
> generating its related import library.
>
> The new --exclude-modules-for-implib command-line option
Forgot the ChangeLog, didn't I? Ho ho ho!
2008-12-23 Dave Korn <dave.korn.cygwin@gmail.com>
* NEWS: Mention new feature.
* ld.texinfo: Document new feature.
* pe-dll.c (exclude_list_struct): Change type member from int to
new enumeration exclude_type.
(pe_dll_add_excludes): Accept exclude_type instead of int param.
(auto_export): Replace magic constants by exclude_type values and
handle new choice EXCLUDEFORIMPLIB.
(pe_dll_generate_implib): Accept a pointer to the link_info and
iterate all input BFDs looking for EXCLUDEFORIMPLIB modules; re-open
fresh BFDs for any found and link into import lib archive chain.
* pe-dll.h (exclude_type): Add new enumerated type to replace magic
constants previously used for exclude_list_struct type member.
(pe_dll_add_excludes, pe_dll_generate_implib): Update prototypes.
* pep-dll.h (exclude_type, pe_dll_add_excludes,
pe_dll_generate_implib): Likewise to all the above.
* emultempl/pe.em (OPTION_EXCLUDE_MODULES_FOR_IMPLIB): Define new
getopts long option code for new --exclude-modules-for-implib option.
(gld${EMULATION_NAME}_add_options): Add new entry to xtra_long[].
(gld_${EMULATION_NAME}_list_options): List usage for it.
(gld${EMULATION_NAME}_handle_option): Use exclude_type enumerated
values when calling pe_dll_add_excludes, and handle EXCLUDEFORIMPLIB.
(gld_${EMULATION_NAME}_finish): Pass pointer to link_info when
calling pe_dll_generate_implib.
* emultempl/pep.em (options): Define new enumerated value for getopts
long option code for new --exclude-modules-for-implib option.
(gld${EMULATION_NAME}_add_options, gld_${EMULATION_NAME}_list_options,
gld${EMULATION_NAME}_handle_option, gld_${EMULATION_NAME}_finish):
Again, likewise to all the above.
cheers,
DaveK