Commit d90f9882 by Roger Sayle Committed by Roger Sayle

re PR bootstrap/10169 (Bootstrap fails on mainline with Tru64 5.1B)


	PR bootstrap/10169
	* mips-tfile.c (main): Use getopt_long instead of getopt.
	Add new command line option --version to display version.
	Treat --verbose like -v to report a single line version.
	(options): New global variable for getopt_long.
	* mips-tdump.c (main): Use getopt_long instead of getopt.
	New command line options -v, --version and -verbose to display
	the program version number (to match mips-tfile's behavior).
	(options): New global variable for getopt_long.

	* gcov.c (options): Zero-terminate getopt_long array.
	* gcov-dump.c (options): Likewise.

	* Makefile.in (mips-tdump.o): Add dependency on version.h.

Co-Authored-By: Kaveh R. Ghazi <ghazi@caip.rutgers.edu>

From-SVN: r67230
parent 1c36b2f9
2003-05-29 Roger Sayle <roger@eyesopen.com>
Kaveh Ghazi <ghazi@caip.rutgers.edu>
PR bootstrap/10169
* mips-tfile.c (main): Use getopt_long instead of getopt.
Add new command line option --version to display version.
Treat --verbose like -v to report a single line version.
(options): New global variable for getopt_long.
* mips-tdump.c (main): Use getopt_long instead of getopt.
New command line options -v, --version and -verbose to display
the program version number (to match mips-tfile's behavior).
(options): New global variable for getopt_long.
* gcov.c (options): Zero-terminate getopt_long array.
* gcov-dump.c (options): Likewise.
* Makefile.in (mips-tdump.o): Add dependency on version.h.
2003-05-29 Stan Shebs <shebs@apple.com>
Remove OBJC_PROLOGUE everywhere.
......
......@@ -1793,7 +1793,7 @@ mips-tfile.o : mips-tfile.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h $(TM_H)
mips-tdump: mips-tdump.o version.o $(LIBDEPS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tdump.o version.o $(LIBS)
mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h $(TM_H)
mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h $(TM_H) version.h
#
# Generate header and source files from the machine description,
......
......@@ -55,6 +55,7 @@ static const struct option options[] =
{ "version", no_argument, NULL, 'v' },
{ "long", no_argument, NULL, 'l' },
{ "positions", no_argument, NULL, 'o' },
{ 0, 0, 0, 0 }
};
static const tag_format_t tag_table[] =
......
......@@ -445,6 +445,7 @@ static const struct option options[] =
{ "object-directory", required_argument, NULL, 'o' },
{ "object-file", required_argument, NULL, 'o' },
{ "unconditional-branches", no_argument, NULL, 'u' },
{ 0, 0, 0, 0 }
};
/* Process args, return index to first non-arg. */
......
/* Read and manage MIPS symbol tables from object modules.
Copyright (C) 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001
Copyright (C) 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003
Free Software Foundation, Inc.
Contributed by hartzell@boulder.colorado.edu,
Rewritten by meissner@osf.org.
......@@ -25,6 +25,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "version.h"
#ifdef index
#undef index
#endif
......@@ -34,6 +35,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "mips/a.out.h"
#endif /* CROSS_COMPILE */
/* Include getopt.h for the sake of getopt_long. */
#include "getopt.h"
#ifndef MIPS_IS_STAB
/* Macros for mips-tfile.c to encapsulate stabs in ECOFF, and for
and mips-tdump.c to print them out. This is used on the Alpha,
......@@ -209,6 +213,8 @@ int want_line = 0; /* print line numbers */
int want_rfd = 0; /* print relative file desc's */
int want_scope = 0; /* print scopes for every symbol */
int tfile = 0; /* no global header file */
int version = 0; /* print version # */
int verbose = 0;
int tfile_fd; /* file descriptor of .T file */
off_t tfile_offset; /* current offset in .T file */
scope_t *cur_scope = 0; /* list of active scopes */
......@@ -254,6 +260,14 @@ const struct {const short code; const char string[10];} stab_names[] = {
#undef __define_stab
};
/* Command line options for getopt_long. */
static const struct option options[] =
{
{ "version", 0, 0, 'V' },
{ "verbose", 0, 0, 'v' },
{ 0, 0, 0, 0 }
};
/* Read some bytes at a specified location, and return a pointer. */
......@@ -1434,7 +1448,7 @@ main (argc, argv)
/*
* Process arguments
*/
while ((opt = getopt (argc, argv, "alrst")) != EOF)
while ((opt = getopt_long (argc, argv, "alrsvt", options, NULL)) != -1)
switch (opt)
{
default: errors++; break;
......@@ -1442,10 +1456,35 @@ main (argc, argv)
case 'l': want_line++; break; /* print line numbers */
case 'r': want_rfd++; break; /* print relative fd's */
case 's': want_scope++; break; /* print scope info */
case 't': tfile++; break; /* this is a tfile (without header), and not a .o */
case 'v': verbose++; break; /* print version # */
case 'V': version++; break; /* print version # */
case 't': tfile++; break; /* this is a tfile (without header),
and not a .o */
}
if (errors || optind != argc - 1)
if (version)
{
printf ("mips-tdump (GCC) %s\n", version_string);
fputs ("Copyright (C) 2003 Free Software Foundation, Inc.\n", stdout);
fputs ("This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
stdout);
exit (0);
}
if (optind != argc - 1)
errors++;
if (verbose || errors)
{
fprintf (stderr, "mips-tdump (GCC) %s", version_string);
#ifdef TARGET_VERSION
TARGET_VERSION;
#endif
fputc ('\n', stderr);
}
if (errors)
{
fprintf (stderr, "Calling Sequence:\n");
fprintf (stderr, "\t%s [-alrst] <object-or-T-file>\n", argv[0]);
......@@ -1456,6 +1495,7 @@ main (argc, argv)
fprintf (stderr, "\t-r Print out relative file descriptors.\n");
fprintf (stderr, "\t-s Print out the current scopes for an item.\n");
fprintf (stderr, "\t-t Assume there is no global header (ie, a T-file).\n");
fprintf (stderr, "\t-v Print program version.\n");
return 1;
}
......
......@@ -611,6 +611,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define saber_stop()
#endif
/* Include getopt.h for the sake of getopt_long. */
#include "getopt.h"
#ifndef __LINE__
#define __LINE__ 0
#endif
......@@ -1510,6 +1513,7 @@ static unsigned cur_line_alloc = 0; /* # bytes total in buffer */
static long line_number = 0; /* current input line number */
static int debug = 0; /* trace functions */
static int version = 0; /* print version # */
static int verbose = 0;
static int had_errors = 0; /* != 0 if errors were found */
static int rename_output = 0; /* != 0 if rename output file*/
static int delete_input = 0; /* != 0 if delete input after done */
......@@ -1664,6 +1668,15 @@ static const pseudo_ops_t pseudo_ops[] = {
};
/* Command line options for getopt_long. */
static const struct option options[] =
{
{ "version", 0, 0, 'V' },
{ "verbose", 0, 0, 'v' },
{ 0, 0, 0, 0 }
};
/* Add a page to a varray object. */
STATIC void
......@@ -4809,7 +4822,7 @@ main (argc, argv)
void_type_info = type_info_init;
void_type_info.basic_type = bt_Void;
while ((option = getopt (argc, argv, "d:i:I:o:v")) != EOF)
while ((option = getopt_long (argc, argv, "d:i:I:o:v", options, NULL)) != -1)
switch (option)
{
default:
......@@ -4849,10 +4862,24 @@ main (argc, argv)
break;
case 'v':
verbose++;
break;
case 'V':
version++;
break;
}
if (version)
{
printf (_("mips-tfile (GCC) %s\n"), version_string);
fputs (_("Copyright (C) 2003 Free Software Foundation, Inc.\n"), stdout);
fputs (_("This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
stdout);
exit (0);
}
if (obj_in_name == (char *) 0 && optind <= argc - 2)
obj_in_name = argv[--argc];
......@@ -4868,7 +4895,19 @@ main (argc, argv)
delete_input = 1;
}
if (object_name == (char *) 0 || had_errors || optind != argc - 1)
if (optind != argc - 1)
had_errors++;
if (verbose || had_errors)
{
fprintf (stderr, _("mips-tfile (GCC) %s"), version_string);
#ifdef TARGET_VERSION
TARGET_VERSION;
#endif
fputc ('\n', stderr);
}
if (object_name == (char *) 0 || had_errors)
{
fprintf (stderr, _("Calling Sequence:\n"));
fprintf (stderr, _("\tmips-tfile [-d <num>] [-v] [-i <o-in-file>] -o <o-out-file> <s-file> (or)\n"));
......@@ -4883,16 +4922,6 @@ main (argc, argv)
return 1;
}
if (version)
{
fprintf (stderr, _("mips-tfile version %s"), version_string);
#ifdef TARGET_VERSION
TARGET_VERSION;
#endif
fputc ('\n', stderr);
}
if (obj_in_name == (char *) 0)
obj_in_name = object_name;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment