* dllwrap.c: Replace 'program_name' with 'prog_name' to avoid conflicts with

exported global defined in bucomm.h.
  (deduce_name): Rename parameter 'program_name' to 'name' to avoid shadowing
  the global defined in bucomm.h.
This commit is contained in:
Nick Clifton 2004-07-13 16:46:51 +00:00
parent 982de27abe
commit 61513dc1cb
2 changed files with 56 additions and 60 deletions

View File

@ -1,3 +1,10 @@
2004-07-13 Nick Clifton <nickc@redhat.com>
* dllwrap.c: Replace 'program_name' with 'prog_name' to avoid
conflicts with exported global defined in bucomm.h.
(deduce_name): Rename parameter 'program_name' to 'name' to avoid
shadowing the global defined in bucomm.h.
2004-07-12 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
* dlltool.c (ext_prefix_alias): New global variable.

View File

@ -1,5 +1,5 @@
/* dllwrap.c -- wrapper for DLLTOOL and GCC to generate PE style DLLs
Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Mumit Khan (khan@xraylith.wisc.edu).
This file is part of GNU Binutils.
@ -101,7 +101,7 @@ static target_type which_target = UNKNOWN_TARGET;
static int dontdeltemps = 0;
static int dry_run = 0;
static char *program_name;
static char *prog_name;
static int verbose = 0;
@ -139,8 +139,8 @@ static void cleanup_and_exit (int);
static void
display (const char * message, va_list args)
{
if (program_name != NULL)
fprintf (stderr, "%s: ", program_name);
if (prog_name != NULL)
fprintf (stderr, "%s: ", prog_name);
vfprintf (stderr, message, args);
fputc ('\n', stderr);
@ -244,17 +244,20 @@ look_for_prog (const char *prog_name, const char *prefix, int end_prefix)
Returns a dynamically allocated string. */
static char *
deduce_name (const char *prog_name)
deduce_name (const char * name)
{
char *cmd;
char *dash, *slash, *cp;
const char *dash;
const char *slash;
const char *cp;
dash = NULL;
slash = NULL;
for (cp = program_name; *cp != '\0'; ++cp)
for (cp = name; *cp != '\0'; ++cp)
{
if (*cp == '-')
dash = cp;
if (
#if defined(__DJGPP__) || defined (__CYGWIN__) || defined(__WIN32__)
*cp == ':' || *cp == '\\' ||
@ -269,24 +272,18 @@ deduce_name (const char *prog_name)
cmd = NULL;
if (dash != NULL)
{
/* First, try looking for a prefixed PROG_NAME in the
PROGRAM_NAME directory, with the same prefix as PROGRAM_NAME. */
cmd = look_for_prog (prog_name, program_name, dash - program_name + 1);
}
/* First, try looking for a prefixed PROG_NAME in the
PROGRAM_NAME directory, with the same prefix as PROGRAM_NAME. */
cmd = look_for_prog (name, name, dash - name + 1);
if (slash != NULL && cmd == NULL)
{
/* Next, try looking for a PROG_NAME in the same directory as
that of this program. */
cmd = look_for_prog (prog_name, program_name, slash - program_name + 1);
}
/* Next, try looking for a PROG_NAME in the same directory as
that of this program. */
cmd = look_for_prog (name, name, slash - name + 1);
if (cmd == NULL)
{
/* Just return PROG_NAME as is. */
cmd = xstrdup (prog_name);
}
/* Just return PROG_NAME as is. */
cmd = xstrdup (name);
return cmd;
}
@ -396,14 +393,14 @@ run (const char *what, char *args)
if (dry_run)
return 0;
pid = pexecute (argv[0], (char * const *) argv, program_name, temp_base,
pid = pexecute (argv[0], (char * const *) argv, prog_name, temp_base,
&errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH);
if (pid == -1)
{
int errno_val = errno;
fprintf (stderr, "%s: ", program_name);
fprintf (stderr, "%s: ", prog_name);
fprintf (stderr, errmsg_fmt, errmsg_arg);
fprintf (stderr, ": %s\n", strerror (errno_val));
return 1;
@ -479,13 +476,13 @@ strhash (const char *str)
static void
usage (FILE *file, int status)
{
fprintf (file, _("Usage %s <option(s)> <object-file(s)>\n"), program_name);
fprintf (file, _("Usage %s <option(s)> <object-file(s)>\n"), prog_name);
fprintf (file, _(" Generic options:\n"));
fprintf (file, _(" --quiet, -q Work quietly\n"));
fprintf (file, _(" --verbose, -v Verbose\n"));
fprintf (file, _(" --version Print dllwrap version\n"));
fprintf (file, _(" --implib <outname> Synonym for --output-lib\n"));
fprintf (file, _(" Options for %s:\n"), program_name);
fprintf (file, _(" Options for %s:\n"), prog_name);
fprintf (file, _(" --driver-name <driver> Defaults to \"gcc\"\n"));
fprintf (file, _(" --driver-flags <flags> Override default ld flags\n"));
fprintf (file, _(" --dlltool-name <dlltool> Defaults to \"dlltool\"\n"));
@ -624,7 +621,7 @@ main (int argc, char **argv)
char *image_base_str = 0;
program_name = argv[0];
prog_name = argv[0];
#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
setlocale (LC_MESSAGES, "");
@ -688,7 +685,7 @@ main (int argc, char **argv)
verbose = 1;
break;
case OPTION_VERSION:
print_version (program_name);
print_version (prog_name);
break;
case 'e':
entry_point = optarg;
@ -781,7 +778,7 @@ main (int argc, char **argv)
}
}
/* sanity checks. */
/* Sanity checks. */
if (! dll_name && ! dll_file_name)
{
warn (_("Must provide at least one of -o or --dllname options"));
@ -806,6 +803,7 @@ main (int argc, char **argv)
if (! def_file_seen)
{
char *fileprefix = choose_temp_base ();
def_file_name = (char *) xmalloc (strlen (fileprefix) + 5);
sprintf (def_file_name, "%s.def",
(dontdeltemps) ? mybasename (fileprefix) : fileprefix);
@ -816,7 +814,7 @@ main (int argc, char **argv)
Creating one, but that may not be what you want"));
}
/* set the target platform. */
/* Set the target platform. */
if (strstr (target, "cygwin"))
which_target = CYGWIN_TARGET;
else if (strstr (target, "mingw"))
@ -824,12 +822,11 @@ Creating one, but that may not be what you want"));
else
which_target = UNKNOWN_TARGET;
/* re-create the command lines as a string, taking care to quote stuff. */
/* Re-create the command lines as a string, taking care to quote stuff. */
dlltool_cmdline = dyn_string_new (cmdline_len);
if (verbose)
{
dyn_string_append_cstr (dlltool_cmdline, " -v");
}
dyn_string_append_cstr (dlltool_cmdline, " -v");
dyn_string_append_cstr (dlltool_cmdline, " --dllname ");
dyn_string_append_cstr (dlltool_cmdline, dll_name);
@ -922,10 +919,8 @@ Creating one, but that may not be what you want"));
}
}
/*
* Step pre-1. If no --def <EXPORT_DEF> is specified, then create it
* and then pass it on.
*/
/* Step pre-1. If no --def <EXPORT_DEF> is specified,
then create it and then pass it on. */
if (! def_file_seen)
{
@ -980,16 +975,13 @@ Creating one, but that may not be what you want"));
fprintf (stderr, _("DRIVER options : %s\n"), driver_cmdline->s);
}
/*
* Step 1. Call GCC/LD to create base relocation file. If using GCC, the
* driver command line will look like the following:
*
* % gcc -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
*
* If the user does not specify a base name, create temporary one that
* is deleted at exit.
*
*/
/* Step 1. Call GCC/LD to create base relocation file. If using GCC, the
driver command line will look like the following:
% gcc -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
If the user does not specify a base name, create temporary one that
is deleted at exit. */
if (! base_file_name)
{
@ -1027,23 +1019,19 @@ Creating one, but that may not be what you want"));
dyn_string_delete (step1);
}
/*
* Step 2. generate the exp file by running dlltool.
* dlltool command line will look like the following:
*
* % dlltool -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
*
* If the user does not specify a base name, create temporary one that
* is deleted at exit.
*
*/
/* Step 2. generate the exp file by running dlltool.
dlltool command line will look like the following:
% dlltool -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
If the user does not specify a base name, create temporary one that
is deleted at exit. */
if (! exp_file_name)
{
char *p = strrchr (dll_name, '.');
size_t prefix_len = (p) ? p - dll_name : strlen (dll_name);
size_t prefix_len = (p) ? (size_t) (p - dll_name) : strlen (dll_name);
exp_file_name = (char *) xmalloc (prefix_len + 4 + 1);
strncpy (exp_file_name, dll_name, prefix_len);
exp_file_name[prefix_len] = '\0';
@ -1053,6 +1041,7 @@ Creating one, but that may not be what you want"));
{
int quote;
dyn_string_t step2 = dyn_string_new (dlltool_cmdline->length
+ strlen (base_file_name)
+ strlen (exp_file_name)