diff options
author | 2014-08-31 13:40:02 +0000 | |
---|---|---|
committer | 2014-08-31 13:40:02 +0000 | |
commit | a95e6fec581636af2a82a971254c0719e6204648 (patch) | |
tree | ed97a0bbcd7ce84cb9990a07fdb95b943c1d87e8 | |
parent | Add Ingo's copyright as per his request. (diff) | |
download | wireguard-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@
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); |