From 61513dc1cba5822b78735459477e09ce819a948e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 Jul 2004 16:46:51 +0000 Subject: [PATCH] * 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. --- binutils/ChangeLog | 7 ++++ binutils/dllwrap.c | 109 ++++++++++++++++++++++++----------------------------- 2 files changed, 56 insertions(+), 60 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 2f1b733..7880807 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2004-07-13 Nick Clifton + + * 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 * dlltool.c (ext_prefix_alias): New global variable. diff --git a/binutils/dllwrap.c b/binutils/dllwrap.c index e4db7ba..4b53511 100644 --- a/binutils/dllwrap.c +++ b/binutils/dllwrap.c @@ -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 \n"), program_name); + fprintf (file, _("Usage %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 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 Defaults to \"gcc\"\n")); fprintf (file, _(" --driver-flags Override default ld flags\n")); fprintf (file, _(" --dlltool-name 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 is specified, then create it - * and then pass it on. - */ + /* Step pre-1. If no --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) -- 2.7.4