This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Support "@file"
- From: Mark Mitchell <mark at codesourcery dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 26 Sep 2005 14:17:16 -0700
- Subject: PATCH: Support "@file"
- Reply-to: mark at codesourcery dot com
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 <mark@codesourcery.com>
* 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);