From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14537 invoked by alias); 26 Sep 2005 21:17:27 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 14494 invoked by uid 22791); 26 Sep 2005 21:17:18 -0000 Received: from dumbledore.codesourcery.com (HELO sethra.codesourcery.com) (65.74.133.11) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 26 Sep 2005 21:17:18 +0000 Received: from sethra.codesourcery.com (localhost.localdomain [127.0.0.1]) by sethra.codesourcery.com (8.12.11/8.12.11) with ESMTP id j8QLHGk3022379 for ; Mon, 26 Sep 2005 14:17:16 -0700 Received: (from mitchell@localhost) by sethra.codesourcery.com (8.12.11/8.12.11/Submit) id j8QLHGxG022375; Mon, 26 Sep 2005 14:17:16 -0700 Date: Mon, 26 Sep 2005 23:13:00 -0000 Message-Id: <200509262117.j8QLHGxG022375@sethra.codesourcery.com> From: Mark Mitchell To: binutils@sources.redhat.com Subject: PATCH: Support "@file" Reply-to: mark@codesourcery.com X-SW-Source: 2005-09/txt/msg00287.txt.bz2 Here's a (boring) patch that makes binutils programs support "@file" arguments by using the new expandargv function in libiberty. Is this OK to apply? Where should documentation for the "@file" argument go? Should I add it to the list of options for every program in the binutils manual? Or, add a section up front with common options, of which this will be the only one? Or...? -- Mark Mitchell CodeSourcery, LLC mark@codesourcery.com 2005-08-30 Mark Mitchell * ld/ldmain.c (main): Use expandargv. * binutils/addr2line.c (main): Likewise. * binutils/ar.c (main): Likewise. * binutils/coffdump.c (main): Likewise. * binutils/cxxfilt.c (main): Likewise. * binutils/dlltool.c (main): Likewise. * binutils/dllwrap.c (main): Likewise. * binutils/nlmconv.c (main): Likewise. * binutils/nm.c (main): Likewise. * binutils/objcopy.c (main): Likewise. * binutils/objdump.c (main): Likewise. * binutils/readelf.c (main): Likewise. * binutils/size.c (main): Likeiwse. * binutils/srcconv.c (main): Likewise. * binutils/strings.c (main): Likewise. * binutils/sysdump.c (main): Likewise. * binutils/sysinfo.c (main): Likewise. * binutils/windres.c (main): Likewise. Index: binutils/addr2line.c =================================================================== RCS file: /cvs/src/src/binutils/addr2line.c,v retrieving revision 1.24 diff -c -5 -p -r1.24 addr2line.c *** binutils/addr2line.c 23 May 2005 17:45:42 -0000 1.24 --- binutils/addr2line.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 294,303 **** --- 294,305 ---- textdomain (PACKAGE); program_name = *argv; xmalloc_set_program_name (program_name); + expandargv (&argc, &argv); + bfd_init (); set_default_bfd_target (); file_name = NULL; target = NULL; Index: binutils/ar.c =================================================================== RCS file: /cvs/src/src/binutils/ar.c,v retrieving revision 1.42 diff -c -5 -p -r1.42 ar.c *** binutils/ar.c 14 Jun 2005 13:26:42 -0000 1.42 --- binutils/ar.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 358,367 **** --- 358,369 ---- textdomain (PACKAGE); program_name = argv[0]; xmalloc_set_program_name (program_name); + expandargv (&argc, &argv); + if (is_ranlib < 0) { char *temp; temp = strrchr (program_name, '/'); Index: binutils/coffdump.c =================================================================== RCS file: /cvs/src/src/binutils/coffdump.c,v retrieving revision 1.13 diff -c -5 -p -r1.13 coffdump.c *** binutils/coffdump.c 8 May 2005 14:17:38 -0000 1.13 --- binutils/coffdump.c 26 Sep 2005 21:09:12 -0000 *************** main (int ac, char **av) *** 492,501 **** --- 492,503 ---- textdomain (PACKAGE); 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) Index: binutils/cxxfilt.c =================================================================== RCS file: /cvs/src/src/binutils/cxxfilt.c,v retrieving revision 1.6 diff -c -5 -p -r1.6 cxxfilt.c *** binutils/cxxfilt.c 8 May 2005 14:17:38 -0000 1.6 --- binutils/cxxfilt.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 168,177 **** --- 168,179 ---- enum demangling_styles style = auto_demangling; 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) { switch (c) Index: binutils/dlltool.c =================================================================== RCS file: /cvs/src/src/binutils/dlltool.c,v retrieving revision 1.64 diff -c -5 -p -r1.64 dlltool.c *** binutils/dlltool.c 1 Aug 2005 16:54:07 -0000 1.64 --- binutils/dlltool.c 26 Sep 2005 21:09:12 -0000 *************** main (int ac, char **av) *** 3122,3131 **** --- 3122,3133 ---- setlocale (LC_CTYPE, ""); #endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + expandargv (&argc, &argv); + while ((c = getopt_long (ac, av, #ifdef DLLTOOL_MCORE_ELF "m:e:l:aD:d:z:b:xp:cCuUkAS:f:nvVHhM:L:F:", #else "m:e:l:aD:d:z:b:xp:cCuUkAS:f:nvVHh", Index: binutils/dllwrap.c =================================================================== RCS file: /cvs/src/src/binutils/dllwrap.c,v retrieving revision 1.18 diff -c -5 -p -r1.18 dllwrap.c *** binutils/dllwrap.c 8 Jul 2005 05:32:46 -0000 1.18 --- binutils/dllwrap.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 625,634 **** --- 625,636 ---- setlocale (LC_CTYPE, ""); #endif 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)); for (i = 0; i < argc; ++i) { Index: binutils/nlmconv.c =================================================================== RCS file: /cvs/src/src/binutils/nlmconv.c,v retrieving revision 1.25 diff -c -5 -p -r1.25 nlmconv.c *** binutils/nlmconv.c 8 May 2005 14:17:38 -0000 1.25 --- binutils/nlmconv.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 208,217 **** --- 208,219 ---- textdomain (PACKAGE); program_name = argv[0]; xmalloc_set_program_name (program_name); + expandargv (&argc, &argv); + bfd_init (); set_default_bfd_target (); while ((opt = getopt_long (argc, argv, "dHhI:l:O:T:Vv", long_options, (int *) NULL)) Index: binutils/nm.c =================================================================== RCS file: /cvs/src/src/binutils/nm.c,v retrieving revision 1.46 diff -c -5 -p -r1.46 nm.c *** binutils/nm.c 6 Jun 2005 14:28:31 -0000 1.46 --- binutils/nm.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 1489,1498 **** --- 1489,1500 ---- program_name = *argv; xmalloc_set_program_name (program_name); START_PROGRESS (program_name, 0); + expandargv (&argc, &argv); + bfd_init (); set_default_bfd_target (); while ((c = getopt_long (argc, argv, "aABCDef:gHhlnopPrSst:uvVvX:", long_options, (int *) 0)) != EOF) Index: binutils/objcopy.c =================================================================== RCS file: /cvs/src/src/binutils/objcopy.c,v retrieving revision 1.85 diff -c -5 -p -r1.85 objcopy.c *** binutils/objcopy.c 4 Jul 2005 01:53:42 -0000 1.85 --- binutils/objcopy.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char *argv[]) *** 3179,3188 **** --- 3179,3190 ---- program_name = argv[0]; xmalloc_set_program_name (program_name); START_PROGRESS (program_name, 0); + expandargv (&argc, &argv); + strip_symbols = STRIP_UNDEF; discard_locals = LOCALS_UNDEF; bfd_init (); set_default_bfd_target (); Index: binutils/objdump.c =================================================================== RCS file: /cvs/src/src/binutils/objdump.c,v retrieving revision 1.111 diff -c -5 -p -r1.111 objdump.c *** binutils/objdump.c 17 Aug 2005 14:28:01 -0000 1.111 --- binutils/objdump.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 2814,2823 **** --- 2814,2825 ---- program_name = *argv; xmalloc_set_program_name (program_name); START_PROGRESS (program_name, 0); + expandargv (&argc, &argv); + bfd_init (); set_default_bfd_target (); while ((c = getopt_long (argc, argv, "pib:m:M:VvCdDlfaHhrRtTxsSI:j:wE:zgeG", long_options, (int *) 0)) Index: binutils/readelf.c =================================================================== RCS file: /cvs/src/src/binutils/readelf.c,v retrieving revision 1.316 diff -c -5 -p -r1.316 readelf.c *** binutils/readelf.c 20 Sep 2005 17:55:13 -0000 1.316 --- binutils/readelf.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 12651,12660 **** --- 12651,12662 ---- setlocale (LC_CTYPE, ""); #endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + expandargv (&argc, &argv); + parse_args (argc, argv); if (num_dump_sects > 0) { /* Make a copy of the dump_sects array. */ Index: binutils/size.c =================================================================== RCS file: /cvs/src/src/binutils/size.c,v retrieving revision 1.23 diff -c -5 -p -r1.23 size.c *** binutils/size.c 8 May 2005 14:17:39 -0000 1.23 --- binutils/size.c 26 Sep 2005 21:09:12 -0000 *************** main (int argc, char **argv) *** 131,140 **** --- 131,142 ---- textdomain (PACKAGE); program_name = *argv; xmalloc_set_program_name (program_name); + expandargv (&argc, &argv); + bfd_init (); set_default_bfd_target (); while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options, (int *) 0)) != EOF) Index: binutils/srconv.c =================================================================== RCS file: /cvs/src/src/binutils/srconv.c,v retrieving revision 1.16 diff -c -5 -p -r1.16 srconv.c *** binutils/srconv.c 8 May 2005 14:17:39 -0000 1.16 --- binutils/srconv.c 26 Sep 2005 21:09:12 -0000 *************** main (int ac, char **av) *** 1759,1768 **** --- 1759,1770 ---- textdomain (PACKAGE); 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) { switch (opt) Index: binutils/strings.c =================================================================== RCS file: /cvs/src/src/binutils/strings.c,v retrieving revision 1.29 diff -c -5 -p -r1.29 strings.c *** binutils/strings.c 5 Jul 2005 11:43:55 -0000 1.29 --- binutils/strings.c 26 Sep 2005 21:09:13 -0000 *************** main (int argc, char **argv) *** 183,192 **** --- 183,195 ---- bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); program_name = argv[0]; xmalloc_set_program_name (program_name); + + expandargv (&argc, &argv); + string_min = -1; print_addresses = FALSE; print_filenames = FALSE; datasection_only = TRUE; target = NULL; Index: binutils/sysdump.c =================================================================== RCS file: /cvs/src/src/binutils/sysdump.c,v retrieving revision 1.15 diff -c -5 -p -r1.15 sysdump.c *** binutils/sysdump.c 8 May 2005 14:17:39 -0000 1.15 --- binutils/sysdump.c 26 Sep 2005 21:09:13 -0000 *************** main (int ac, char **av) *** 671,680 **** --- 671,682 ---- textdomain (PACKAGE); 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) { case 'H': Index: binutils/sysinfo.y =================================================================== RCS file: /cvs/src/src/binutils/sysinfo.y,v retrieving revision 1.8 diff -c -5 -p -r1.8 sysinfo.y *** binutils/sysinfo.y 8 May 2005 14:17:39 -0000 1.8 --- binutils/sysinfo.y 26 Sep 2005 21:09:13 -0000 *************** enum_list: *** 410,419 **** --- 410,421 ---- int yydebug; int main (int ac, char **av) { + expandargv (&ac, &av); + yydebug=0; if (ac > 1) writecode = av[1][1]; if (writecode == 'd') { Index: binutils/windres.c =================================================================== RCS file: /cvs/src/src/binutils/windres.c,v retrieving revision 1.24 diff -c -5 -p -r1.24 windres.c *** binutils/windres.c 8 May 2005 14:17:39 -0000 1.24 --- binutils/windres.c 26 Sep 2005 21:09:13 -0000 *************** main (int argc, char **argv) *** 765,774 **** --- 765,776 ---- textdomain (PACKAGE); program_name = argv[0]; xmalloc_set_program_name (program_name); + expandargv (&ac, &av); + bfd_init (); set_default_bfd_target (); res_init (); Index: ld/ldmain.c =================================================================== RCS file: /cvs/src/src/ld/ldmain.c,v retrieving revision 1.101 diff -c -5 -p -r1.101 ldmain.c *** ld/ldmain.c 29 Jul 2005 13:32:45 -0000 1.101 --- ld/ldmain.c 26 Sep 2005 21:09:16 -0000 *************** main (int argc, char **argv) *** 196,205 **** --- 196,207 ---- program_name = argv[0]; xmalloc_set_program_name (program_name); START_PROGRESS (program_name, 0); + expandargv (&argc, &argv); + bfd_init (); bfd_set_error_program_name (program_name); xatexit (remove_output);