summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortobiasu <tobiasu@openbsd.org>2014-08-31 13:40:02 +0000
committertobiasu <tobiasu@openbsd.org>2014-08-31 13:40:02 +0000
commita95e6fec581636af2a82a971254c0719e6204648 (patch)
treeed97a0bbcd7ce84cb9990a07fdb95b943c1d87e8
parentAdd Ingo's copyright as per his request. (diff)
downloadwireguard-openbsd-a95e6fec581636af2a82a971254c0719e6204648.tar.xz
wireguard-openbsd-a95e6fec581636af2a82a971254c0719e6204648.zip
Backport @file support from binutils-2.17
@file allows reading command line arguments from a file. Gcc now uses this to pass very long arguments lists to ld. ok guenther@ miod@
-rw-r--r--gnu/usr.bin/binutils/binutils/addr2line.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/ar.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/coffdump.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/cxxfilt.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/deflex.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/dlltool.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/dllwrap.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/nlmconv.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/nm.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/objcopy.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/objdump.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/rclex.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/readelf.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/size.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/srconv.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/strings.c3
-rw-r--r--gnu/usr.bin/binutils/binutils/sysdump.c2
-rw-r--r--gnu/usr.bin/binutils/binutils/windres.c2
-rw-r--r--gnu/usr.bin/binutils/gas/as.c2
-rw-r--r--gnu/usr.bin/binutils/gas/itbl-lex.c2
-rw-r--r--gnu/usr.bin/binutils/gprof/gprof.c2
-rw-r--r--gnu/usr.bin/binutils/include/libiberty.h3
-rw-r--r--gnu/usr.bin/binutils/ld/ldmain.c2
23 files changed, 45 insertions, 3 deletions
diff --git a/gnu/usr.bin/binutils/binutils/addr2line.c b/gnu/usr.bin/binutils/binutils/addr2line.c
index 354153eadb1..a3e6752049f 100644
--- a/gnu/usr.bin/binutils/binutils/addr2line.c
+++ b/gnu/usr.bin/binutils/binutils/addr2line.c
@@ -285,6 +285,8 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/binutils/ar.c b/gnu/usr.bin/binutils/binutils/ar.c
index 99597795f6d..dec8dbe5951 100644
--- a/gnu/usr.bin/binutils/binutils/ar.c
+++ b/gnu/usr.bin/binutils/binutils/ar.c
@@ -367,6 +367,8 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
if (is_ranlib < 0)
{
char *temp;
diff --git a/gnu/usr.bin/binutils/binutils/coffdump.c b/gnu/usr.bin/binutils/binutils/coffdump.c
index 039b9553621..808e886dc91 100644
--- a/gnu/usr.bin/binutils/binutils/coffdump.c
+++ b/gnu/usr.bin/binutils/binutils/coffdump.c
@@ -496,6 +496,8 @@ main (int ac, char **av)
program_name = av[0];
xmalloc_set_program_name (program_name);
+ expandargv (&ac, &av);
+
while ((opt = getopt_long (ac, av, "HhVv", long_options,
(int *) NULL))
!= EOF)
diff --git a/gnu/usr.bin/binutils/binutils/cxxfilt.c b/gnu/usr.bin/binutils/binutils/cxxfilt.c
index 1b297fd9da3..ad0e64fee30 100644
--- a/gnu/usr.bin/binutils/binutils/cxxfilt.c
+++ b/gnu/usr.bin/binutils/binutils/cxxfilt.c
@@ -171,6 +171,8 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
strip_underscore = TARGET_PREPENDS_UNDERSCORE;
while ((c = getopt_long (argc, argv, "_nps:", long_options, (int *) 0)) != EOF)
diff --git a/gnu/usr.bin/binutils/binutils/deflex.c b/gnu/usr.bin/binutils/binutils/deflex.c
index 04a162cd867..8422e3c80d6 100644
--- a/gnu/usr.bin/binutils/binutils/deflex.c
+++ b/gnu/usr.bin/binutils/binutils/deflex.c
@@ -1,7 +1,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/cvs/src/gnu/usr.bin/binutils/binutils/deflex.c,v 1.2 2004/11/02 20:45:16 miod Exp $
+ * $Header: /home/cvs/src/gnu/usr.bin/binutils/binutils/deflex.c,v 1.3 2014/08/31 13:40:02 tobiasu Exp $
*/
#define FLEX_SCANNER
diff --git a/gnu/usr.bin/binutils/binutils/dlltool.c b/gnu/usr.bin/binutils/binutils/dlltool.c
index 9a9d7f94bb4..fac1ea0585f 100644
--- a/gnu/usr.bin/binutils/binutils/dlltool.c
+++ b/gnu/usr.bin/binutils/binutils/dlltool.c
@@ -3202,6 +3202,8 @@ main (int ac, char **av)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
+ expandargv (&ac, &av);
+
while ((c = getopt_long (ac, av,
#ifdef DLLTOOL_MCORE_ELF
"m:e:l:aD:d:z:b:xcCuUkAS:f:nvVHhM:L:F:",
diff --git a/gnu/usr.bin/binutils/binutils/dllwrap.c b/gnu/usr.bin/binutils/binutils/dllwrap.c
index 725d87164e8..29dcc47659e 100644
--- a/gnu/usr.bin/binutils/binutils/dllwrap.c
+++ b/gnu/usr.bin/binutils/binutils/dllwrap.c
@@ -639,6 +639,8 @@ main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
+ expandargv (&argc, &argv);
+
saved_argv = (char **) xmalloc (argc * sizeof (char*));
dlltool_arg_indices = (int *) xmalloc (argc * sizeof (int));
driver_arg_indices = (int *) xmalloc (argc * sizeof (int));
diff --git a/gnu/usr.bin/binutils/binutils/nlmconv.c b/gnu/usr.bin/binutils/binutils/nlmconv.c
index 5a644e44669..e53d61908a8 100644
--- a/gnu/usr.bin/binutils/binutils/nlmconv.c
+++ b/gnu/usr.bin/binutils/binutils/nlmconv.c
@@ -214,6 +214,8 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/binutils/nm.c b/gnu/usr.bin/binutils/binutils/nm.c
index bac7d388ce2..2ed16541bf8 100644
--- a/gnu/usr.bin/binutils/binutils/nm.c
+++ b/gnu/usr.bin/binutils/binutils/nm.c
@@ -364,6 +364,8 @@ main (int argc, char **argv)
START_PROGRESS (program_name, 0);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/binutils/objcopy.c b/gnu/usr.bin/binutils/binutils/objcopy.c
index 0f7ce85561e..c3404f773a2 100644
--- a/gnu/usr.bin/binutils/binutils/objcopy.c
+++ b/gnu/usr.bin/binutils/binutils/objcopy.c
@@ -3030,6 +3030,8 @@ main (int argc, char *argv[])
START_PROGRESS (program_name, 0);
+ expandargv (&argc, &argv);
+
strip_symbols = STRIP_UNDEF;
discard_locals = LOCALS_UNDEF;
diff --git a/gnu/usr.bin/binutils/binutils/objdump.c b/gnu/usr.bin/binutils/binutils/objdump.c
index f67aacb8881..c720fb2d4d2 100644
--- a/gnu/usr.bin/binutils/binutils/objdump.c
+++ b/gnu/usr.bin/binutils/binutils/objdump.c
@@ -2719,6 +2719,8 @@ main (int argc, char **argv)
START_PROGRESS (program_name, 0);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/binutils/rclex.c b/gnu/usr.bin/binutils/binutils/rclex.c
index 1c5292e0819..20eb733ee20 100644
--- a/gnu/usr.bin/binutils/binutils/rclex.c
+++ b/gnu/usr.bin/binutils/binutils/rclex.c
@@ -1,7 +1,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/cvs/src/gnu/usr.bin/binutils/binutils/rclex.c,v 1.2 2004/11/02 20:45:18 miod Exp $
+ * $Header: /home/cvs/src/gnu/usr.bin/binutils/binutils/rclex.c,v 1.3 2014/08/31 13:40:02 tobiasu Exp $
*/
#define FLEX_SCANNER
diff --git a/gnu/usr.bin/binutils/binutils/readelf.c b/gnu/usr.bin/binutils/binutils/readelf.c
index f5fc740e0b7..f507e04a738 100644
--- a/gnu/usr.bin/binutils/binutils/readelf.c
+++ b/gnu/usr.bin/binutils/binutils/readelf.c
@@ -10634,6 +10634,8 @@ main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
+ expandargv (&argc, &argv);
+
parse_args (argc, argv);
if (optind < (argc - 1))
diff --git a/gnu/usr.bin/binutils/binutils/size.c b/gnu/usr.bin/binutils/binutils/size.c
index 98754934a98..a0ccfff98e2 100644
--- a/gnu/usr.bin/binutils/binutils/size.c
+++ b/gnu/usr.bin/binutils/binutils/size.c
@@ -134,6 +134,8 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/binutils/srconv.c b/gnu/usr.bin/binutils/binutils/srconv.c
index 0ffa0588347..025d47280da 100644
--- a/gnu/usr.bin/binutils/binutils/srconv.c
+++ b/gnu/usr.bin/binutils/binutils/srconv.c
@@ -1896,6 +1896,8 @@ main (int ac, char **av)
program_name = av[0];
xmalloc_set_program_name (program_name);
+ expandargv (&ac, &av);
+
while ((opt = getopt_long (ac, av, "dHhVvqn", long_options,
(int *) NULL))
!= EOF)
diff --git a/gnu/usr.bin/binutils/binutils/strings.c b/gnu/usr.bin/binutils/binutils/strings.c
index 68c244cafbd..18b41dc5f58 100644
--- a/gnu/usr.bin/binutils/binutils/strings.c
+++ b/gnu/usr.bin/binutils/binutils/strings.c
@@ -168,6 +168,9 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+
+ expandargv (&argc, &argv);
+
string_min = -1;
print_addresses = FALSE;
print_filenames = FALSE;
diff --git a/gnu/usr.bin/binutils/binutils/sysdump.c b/gnu/usr.bin/binutils/binutils/sysdump.c
index a1df1e05b7a..32589cf2e76 100644
--- a/gnu/usr.bin/binutils/binutils/sysdump.c
+++ b/gnu/usr.bin/binutils/binutils/sysdump.c
@@ -772,6 +772,8 @@ main (int ac, char **av)
program_name = av[0];
xmalloc_set_program_name (program_name);
+ expandargv (&ac, &av);
+
while ((opt = getopt_long (ac, av, "HhVv", long_options, (int *) NULL)) != EOF)
{
switch (opt)
diff --git a/gnu/usr.bin/binutils/binutils/windres.c b/gnu/usr.bin/binutils/binutils/windres.c
index 1d23f10975e..e6ec24e8165 100644
--- a/gnu/usr.bin/binutils/binutils/windres.c
+++ b/gnu/usr.bin/binutils/binutils/windres.c
@@ -763,6 +763,8 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
diff --git a/gnu/usr.bin/binutils/gas/as.c b/gnu/usr.bin/binutils/gas/as.c
index 8b64433003a..081a669483f 100644
--- a/gnu/usr.bin/binutils/gas/as.c
+++ b/gnu/usr.bin/binutils/gas/as.c
@@ -1014,6 +1014,8 @@ main (int argc, char ** argv)
myname = argv[0];
xmalloc_set_program_name (myname);
+ expandargv (&argc, &argv);
+
START_PROGRESS (myname, 0);
#ifndef OBJ_DEFAULT_OUTPUT_FILE_NAME
diff --git a/gnu/usr.bin/binutils/gas/itbl-lex.c b/gnu/usr.bin/binutils/gas/itbl-lex.c
index 88a1ba17fe3..753ad401384 100644
--- a/gnu/usr.bin/binutils/gas/itbl-lex.c
+++ b/gnu/usr.bin/binutils/gas/itbl-lex.c
@@ -1,7 +1,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/cvs/src/gnu/usr.bin/binutils/gas/itbl-lex.c,v 1.2 2004/11/02 20:45:24 miod Exp $
+ * $Header: /home/cvs/src/gnu/usr.bin/binutils/gas/itbl-lex.c,v 1.3 2014/08/31 13:40:02 tobiasu Exp $
*/
#define FLEX_SCANNER
diff --git a/gnu/usr.bin/binutils/gprof/gprof.c b/gnu/usr.bin/binutils/gprof/gprof.c
index 260dbebb4a7..08f87516b84 100644
--- a/gnu/usr.bin/binutils/gprof/gprof.c
+++ b/gnu/usr.bin/binutils/gprof/gprof.c
@@ -202,6 +202,8 @@ main (argc, argv)
whoami = argv[0];
xmalloc_set_program_name (whoami);
+ expandargv (&argc, &argv);
+
while ((ch = getopt_long (argc, argv,
"aA::bBcCd::De:E:f:F:hiI:J::k:lLm:n::N::O:p::P::q::Q::st:Tvw:xyzZ::",
long_options, 0))
diff --git a/gnu/usr.bin/binutils/include/libiberty.h b/gnu/usr.bin/binutils/include/libiberty.h
index 761b2cf060f..2da37386333 100644
--- a/gnu/usr.bin/binutils/include/libiberty.h
+++ b/gnu/usr.bin/binutils/include/libiberty.h
@@ -62,6 +62,9 @@ extern void freeargv PARAMS ((char **));
extern char **dupargv PARAMS ((char **)) ATTRIBUTE_MALLOC;
+/* Expand "@file" arguments in argv. */
+
+extern void expandargv PARAMS ((int *, char ***));
/* Return the last component of a path name. Note that we can't use a
prototype here because the parameter is declared inconsistently
diff --git a/gnu/usr.bin/binutils/ld/ldmain.c b/gnu/usr.bin/binutils/ld/ldmain.c
index 188422c7b5c..36f2fff53f7 100644
--- a/gnu/usr.bin/binutils/ld/ldmain.c
+++ b/gnu/usr.bin/binutils/ld/ldmain.c
@@ -190,6 +190,8 @@ main (int argc, char **argv)
START_PROGRESS (program_name, 0);
+ expandargv (&argc, &argv);
+
bfd_init ();
bfd_set_error_program_name (program_name);