X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=binutils%2Fdllwrap.c;h=698f6468d6c52b05ecebbd0e83741c0074ce1a69;hb=117e35f51972acd1f29fd249ef20343258ef5256;hp=293a49136be869eaa0bcef0f10af7baa0f9a6068;hpb=9cf03b7e412b9cdeca8b5ea3f73c081e31078a28;p=binutils-gdb.git diff --git a/binutils/dllwrap.c b/binutils/dllwrap.c index 293a49136be..698f6468d6c 100644 --- a/binutils/dllwrap.c +++ b/binutils/dllwrap.c @@ -1,6 +1,5 @@ /* dllwrap.c -- wrapper for DLLTOOL and GCC to generate PE style DLLs - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, - 2011 Free Software Foundation, Inc. + Copyright (C) 1998-2021 Free Software Foundation, Inc. Contributed by Mumit Khan (khan@xraylith.wisc.edu). This file is part of GNU Binutils. @@ -20,13 +19,6 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -/* AIX requires this to be the first thing in the file. */ -#ifndef __GNUC__ -# ifdef _AIX - #pragma alloca -#endif -#endif - #include "sysdep.h" #include "bfd.h" #include "libiberty.h" @@ -35,7 +27,6 @@ #include "bucomm.h" #include -#include #ifdef HAVE_SYS_WAIT_H #include @@ -152,28 +143,30 @@ display (const char * message, va_list args) static void -inform VPARAMS ((const char *message, ...)) +inform (const char *message, ...) { - VA_OPEN (args, message); - VA_FIXEDARG (args, const char *, message); + va_list args; + + va_start (args, message); if (!verbose) return; display (message, args); - VA_CLOSE (args); + va_end (args); } static void -warn VPARAMS ((const char *format, ...)) +warn (const char *format, ...) { - VA_OPEN (args, format); - VA_FIXEDARG (args, const char *, format); + va_list args; + + va_start (args, format); display (format, args); - VA_CLOSE (args); + va_end (args); } /* Look for the program formed by concatenating PROG_NAME and the @@ -371,7 +364,7 @@ run (const char *what, char *args) if (*s == ' ') i++; i++; - argv = alloca (sizeof (char *) * (i + 3)); + argv = xmalloc (sizeof (char *) * (i + 3)); i = 0; argv[i++] = what; s = args; @@ -399,6 +392,7 @@ run (const char *what, char *args) pid = pexecute (argv[0], (char * const *) argv, prog_name, temp_base, &errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH); + free (argv); if (pid == -1) { @@ -482,7 +476,7 @@ usage (FILE *file, int status) { fprintf (file, _("Usage %s \n"), prog_name); fprintf (file, _(" Generic options:\n")); - fprintf (file, _(" @ Read options from \n")); + fprintf (file, _(" @ Read options from \n")); fprintf (file, _(" --quiet, -q Work quietly\n")); fprintf (file, _(" --verbose, -v Verbose\n")); fprintf (file, _(" --version Print dllwrap version\n")); @@ -636,15 +630,16 @@ main (int argc, char **argv) prog_name = argv[0]; -#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) +#ifdef HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif -#if defined (HAVE_SETLOCALE) setlocale (LC_CTYPE, ""); -#endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + warn (_("WARNING: %s is deprecated, use gcc -shared or ld -shared instead\n"), + prog_name); + expandargv (&argc, &argv); saved_argv = (char **) xmalloc (argc * sizeof (char*)); @@ -843,11 +838,11 @@ Creating one, but that may not be what you want")); else which_target = UNKNOWN_TARGET; - if (! strncmp (target, "arm", 3)) + if (startswith (target, "arm")) which_cpu = ARM_CPU; - else if (!strncmp (target, "x86_64", 6) - || !strncmp (target, "athlon64", 8) - || !strncmp (target, "amd64", 5)) + else if (startswith (target, "x86_64") + || startswith (target, "athlon64") + || startswith (target, "amd64")) which_cpu = X64_CPU; else if (target[0] == 'i' && (target[1] >= '3' && target[1] <= '6') && target[2] == '8' && target[3] == '6') @@ -1028,9 +1023,9 @@ Creating one, but that may not be what you want")); /* 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. */ @@ -1072,9 +1067,9 @@ Creating one, but that may not be what you want")); /* 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. */