diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-12-01 14:15:06 +0000 |
---|---|---|
committer | Kai Tietz <kai.tietz@onevision.com> | 2010-12-01 14:15:06 +0000 |
commit | 04276a0cf59acc47556856a1a6e9511fb5a98d3b (patch) | |
tree | 17276904aef276bafaf996ff497dfc76fb87b0af /binutils/dlltool.c | |
parent | ba4b845cec664810fcc635d3159f11dcd35857bb (diff) | |
download | binutils-04276a0cf59acc47556856a1a6e9511fb5a98d3b.zip binutils-04276a0cf59acc47556856a1a6e9511fb5a98d3b.tar.gz binutils-04276a0cf59acc47556856a1a6e9511fb5a98d3b.tar.bz2 |
2010-12-01 Kai Tietz <kai.tietz@onevision.com>
PR binutils/11065
* dlltool.c (dll_name_set_by_exp_name): New variable.
(def_name): Allow setting of dll_name by .def file.
(def_library): Likewise.
(main): Set dll_name_set_by_exp_name, if dll_name is
set indirect by exp_name.
Diffstat (limited to 'binutils/dlltool.c')
-rw-r--r-- | binutils/dlltool.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/binutils/dlltool.c b/binutils/dlltool.c index 8c72647..80aac99 100644 --- a/binutils/dlltool.c +++ b/binutils/dlltool.c @@ -399,6 +399,7 @@ typedef struct identify_data_t static char *head_label; static char *imp_name_lab; static char *dll_name; +static int dll_name_set_by_exp_name; static int add_indirect = 0; static int add_underscore = 0; static int add_stdcall_underscore = 0; @@ -1089,6 +1090,11 @@ def_name (const char *name, int base) if (d_is_dll) non_fatal (_("Can't have LIBRARY and NAME")); + if (dll_name_set_by_exp_name && name && *name != 0) + { + dll_name = NULL; + dll_name_set_by_exp_name = 0; + } /* If --dllname not provided, use the one in the DEF file. FIXME: Is this appropriate for executables? */ if (!dll_name) @@ -1105,6 +1111,12 @@ def_library (const char *name, int base) if (d_is_exe) non_fatal (_("Can't have LIBRARY and NAME")); + if (dll_name_set_by_exp_name && name && *name != 0) + { + dll_name = NULL; + dll_name_set_by_exp_name = 0; + } + /* If --dllname not provided, use the one in the DEF file. */ if (!dll_name) set_dll_name_from_def (name, 1); @@ -4177,6 +4189,7 @@ main (int ac, char **av) dll_name = xmalloc (len); strcpy (dll_name, exp_basename); strcat (dll_name, ".dll"); + dll_name_set_by_exp_name = 1; } if (as_name == NULL) |