* dlltool.c (add_stdcall_underscore): New flag.
(xlate): Also add underscore to stdcall symbol if add_stdcall_underscore set. (usage): Document --add-stdcall-underscore option. (OPTION_ADD_STDCALL_UNDERSCORE): New define. (long_options): Use it for --add-stdcall-underscore option. (main): Handle it. * doc/binutils.texi: Document --add-stdcall-underscore option and differentiate from --add-underscore.
This commit is contained in:
parent
86941c2759
commit
14288fdc16
@ -1,3 +1,15 @@
|
||||
2006-03-09 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
|
||||
* dlltool.c (add_stdcall_underscore): New flag.
|
||||
(xlate): Also add underscore to stdcall symbol if
|
||||
add_stdcall_underscore set.
|
||||
(usage): Document --add-stdcall-underscore option.
|
||||
(OPTION_ADD_STDCALL_UNDERSCORE): New define.
|
||||
(long_options): Use it for --add-stdcall-underscore option.
|
||||
(main): Handle it.
|
||||
* doc/binutils.texi: Document --add-stdcall-underscore option
|
||||
and differentiate from --add-underscore.
|
||||
|
||||
2006-03-06 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* readelf.c (get_machine_flags): Adjust.
|
||||
|
@ -354,6 +354,7 @@ static char *dll_name;
|
||||
|
||||
static int add_indirect = 0;
|
||||
static int add_underscore = 0;
|
||||
static int add_stdcall_underscore = 0;
|
||||
static int dontdeltemps = 0;
|
||||
|
||||
/* TRUE if we should export all symbols. Otherwise, we only export
|
||||
@ -1994,7 +1995,9 @@ xlate (const char *name)
|
||||
{
|
||||
int lead_at = (*name == '@');
|
||||
|
||||
if (add_underscore && !lead_at)
|
||||
if (!lead_at && (add_underscore
|
||||
|| (add_stdcall_underscore
|
||||
&& strchr (name, '@'))))
|
||||
{
|
||||
char *copy = xmalloc (strlen (name) + 2);
|
||||
|
||||
@ -3046,7 +3049,8 @@ usage (FILE *file, int status)
|
||||
fprintf (file, _(" -b --base-file <basefile> Read linker generated base file.\n"));
|
||||
fprintf (file, _(" -x --no-idata4 Don't generate idata$4 section.\n"));
|
||||
fprintf (file, _(" -c --no-idata5 Don't generate idata$5 section.\n"));
|
||||
fprintf (file, _(" -U --add-underscore Add underscores to symbols in interface library.\n"));
|
||||
fprintf (file, _(" -U --add-underscore Add underscores to all symbols in interface library.\n"));
|
||||
fprintf (file, _(" --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"));
|
||||
fprintf (file, _(" -k --kill-at Kill @<n> from exported names.\n"));
|
||||
fprintf (file, _(" -A --add-stdcall-alias Add aliases without @<n>.\n"));
|
||||
fprintf (file, _(" -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"));
|
||||
@ -3071,6 +3075,7 @@ usage (FILE *file, int status)
|
||||
#define OPTION_NO_EXPORT_ALL_SYMS (OPTION_EXPORT_ALL_SYMS + 1)
|
||||
#define OPTION_EXCLUDE_SYMS (OPTION_NO_EXPORT_ALL_SYMS + 1)
|
||||
#define OPTION_NO_DEFAULT_EXCLUDES (OPTION_EXCLUDE_SYMS + 1)
|
||||
#define OPTION_ADD_STDCALL_UNDERSCORE (OPTION_NO_DEFAULT_EXCLUDES + 1)
|
||||
|
||||
static const struct option long_options[] =
|
||||
{
|
||||
@ -3088,6 +3093,7 @@ static const struct option long_options[] =
|
||||
{"def", required_argument, NULL, 'd'}, /* for compatibility with older versions */
|
||||
{"input-def", required_argument, NULL, 'd'},
|
||||
{"add-underscore", no_argument, NULL, 'U'},
|
||||
{"add-stdcall-underscore", no_argument, NULL, OPTION_ADD_STDCALL_UNDERSCORE},
|
||||
{"kill-at", no_argument, NULL, 'k'},
|
||||
{"add-stdcall-alias", no_argument, NULL, 'A'},
|
||||
{"ext-prefix-alias", required_argument, NULL, 'p'},
|
||||
@ -3150,6 +3156,9 @@ main (int ac, char **av)
|
||||
case OPTION_NO_DEFAULT_EXCLUDES:
|
||||
do_default_excludes = FALSE;
|
||||
break;
|
||||
case OPTION_ADD_STDCALL_UNDERSCORE:
|
||||
add_stdcall_underscore = 1;
|
||||
break;
|
||||
case 'x':
|
||||
no_idata4 = 1;
|
||||
break;
|
||||
|
@ -3013,8 +3013,9 @@ dlltool [@option{-d}|@option{--input-def} @var{def-file-name}]
|
||||
[@option{--no-default-excludes}]
|
||||
[@option{-S}|@option{--as} @var{path-to-assembler}] [@option{-f}|@option{--as-flags} @var{options}]
|
||||
[@option{-D}|@option{--dllname} @var{name}] [@option{-m}|@option{--machine} @var{machine}]
|
||||
[@option{-a}|@option{--add-indirect}] [@option{-U}|@option{--add-underscore}] [@option{-k}|@option{--kill-at}]
|
||||
[@option{-A}|@option{--add-stdcall-alias}]
|
||||
[@option{-a}|@option{--add-indirect}]
|
||||
[@option{-U}|@option{--add-underscore}] [@option{--add-stdcall-underscore}]
|
||||
[@option{-k}|@option{--kill-at}] [@option{-A}|@option{--add-stdcall-alias}]
|
||||
[@option{-p}|@option{--ext-prefix-alias} @var{prefix}]
|
||||
[@option{-x}|@option{--no-idata4}] [@option{-c}|@option{--no-idata5}] [@option{-i}|@option{--interwork}]
|
||||
[@option{-n}|@option{--nodelete}] [@option{-t}|@option{--temp-prefix} @var{prefix}]
|
||||
@ -3190,7 +3191,14 @@ means!
|
||||
@item -U
|
||||
@itemx --add-underscore
|
||||
Specifies that when @command{dlltool} is creating the exports file it
|
||||
should prepend an underscore to the names of the exported functions.
|
||||
should prepend an underscore to the names of @emph{all} exported symbols.
|
||||
|
||||
@item --add-stdcall-underscore
|
||||
Specifies that when @command{dlltool} is creating the exports file it
|
||||
should prepend an underscore to the names of exported @emph{stdcall}
|
||||
functions. Variable names and non-stdcall function names are not modified.
|
||||
This option is useful when creating GNU-compatible import libs for third
|
||||
party DLLs that were built with MS-Windows tools.
|
||||
|
||||
@item -k
|
||||
@itemx --kill-at
|
||||
|
Loading…
Reference in New Issue
Block a user