* lexsup.c (parse_args): Changed "retain-symbols-file" from

no_argument to required_argument.  From djm.
This commit is contained in:
Ian Lance Taylor 1994-07-08 15:06:29 +00:00
parent 13d9fd33a4
commit db770dfa72
2 changed files with 54 additions and 6 deletions

View File

@ -1,3 +1,17 @@
Fri Jul 8 10:57:02 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
* emultempl/sunos.em (gld${EMULATION_NAME}_before_allocation): Use
bfd_abs_section_ptr, not &bfd_abs_section.
* lexsup.c (parse_args): Changed "retain-symbols-file" from
no_argument to required_argument. From djm.
Thu Jul 7 12:29:53 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
* scripttempl/elf.sc: Explicitly mention .stab and .stabstr
sections to force a VMA of 0; needed for ELF backends which have
not been converted to the new linker style.
Mon Jul 4 19:35:45 1994 Jeff Law (law@snake.cs.utah.edu)
* scripttempl/hppaelf.sc (__stack_zero): Don't define this name,

View File

@ -46,12 +46,15 @@ parse_args (argc, argv)
int argc;
char **argv;
{
int ingroup = 0;
/* Starting the short option string with '-' is for programs that
expect options and other ARGV-elements in any order and that care about
the ordering of the two. We describe each non-option ARGV-element
as if it were the argument of an option with character code 1. */
const char *shortopts = "-A:B::b:cde:F::G:giL:l:Mm:NnO:o:R:rSsT:tu:VvXxY:y:";
const char *shortopts =
"-A:B::b:cde:F::G:giL:l:Mm:NnO:o:R:rSsT:tu:VvXxY:y:()";
/* 150 isn't special; it's just an arbitrary non-ASCII char value. */
@ -69,7 +72,8 @@ parse_args (argc, argv)
#define OPTION_OFORMAT (OPTION_NON_SHARED + 1)
#define OPTION_RELAX (OPTION_OFORMAT + 1)
#define OPTION_RETAIN_SYMBOLS_FILE (OPTION_RELAX + 1)
#define OPTION_SORT_COMMON (OPTION_RETAIN_SYMBOLS_FILE + 1)
#define OPTION_SHARED (OPTION_RETAIN_SYMBOLS_FILE + 1)
#define OPTION_SORT_COMMON (OPTION_SHARED + 1)
#define OPTION_STATS (OPTION_SORT_COMMON + 1)
#define OPTION_TBSS (OPTION_STATS + 1)
#define OPTION_TDATA (OPTION_TBSS + 1)
@ -80,6 +84,8 @@ parse_args (argc, argv)
#define OPTION_WARN_COMMON (OPTION_VERSION + 1)
static struct option longopts[] = {
{"Bdynamic", no_argument, NULL, OPTION_CALL_SHARED},
{"Bstatic", no_argument, NULL, OPTION_NON_SHARED},
{"call_shared", no_argument, NULL, OPTION_CALL_SHARED},
{"dc", no_argument, NULL, 'd'},
{"defsym", required_argument, NULL, OPTION_DEFSYM},
@ -89,6 +95,7 @@ parse_args (argc, argv)
{"dynamic-linker", required_argument, NULL, OPTION_DYNAMIC_LINKER},
{"EB", no_argument, NULL, OPTION_EB},
{"EL", no_argument, NULL, OPTION_EL},
{"end-group", no_argument, NULL, ')'},
{"format", required_argument, NULL, 'b'},
{"help", no_argument, NULL, OPTION_HELP},
{"Map", required_argument, NULL, OPTION_MAP},
@ -100,9 +107,11 @@ parse_args (argc, argv)
{"Qy", no_argument, NULL, OPTION_IGNORE},
{"qmagic", no_argument, NULL, OPTION_IGNORE}, /* Linux compatibility. */
{"relax", no_argument, NULL, OPTION_RELAX},
{"retain-symbols-file", no_argument, NULL, OPTION_RETAIN_SYMBOLS_FILE},
{"retain-symbols-file", required_argument, NULL, OPTION_RETAIN_SYMBOLS_FILE},
{"shared", no_argument, NULL, OPTION_SHARED},
{"sort-common", no_argument, NULL, OPTION_SORT_COMMON},
{"sort_common", no_argument, NULL, OPTION_SORT_COMMON},
{"start-group", no_argument, NULL, '('},
{"stats", no_argument, NULL, OPTION_STATS},
{"static", no_argument, NULL, OPTION_NON_SHARED},
{"Tbss", required_argument, NULL, OPTION_TBSS},
@ -139,9 +148,6 @@ parse_args (argc, argv)
case 'A':
ldfile_add_arch (optarg);
break;
case 'B':
/* Ignore. */
break;
case 'b':
lang_add_target (optarg);
break;
@ -266,6 +272,9 @@ parse_args (argc, argv)
case 's':
link_info.strip = strip_all;
break;
case OPTION_SHARED:
link_info.shared = true;
break;
case OPTION_SORT_COMMON:
config.sort_common = true;
break;
@ -330,8 +339,33 @@ parse_args (argc, argv)
case 'y':
add_ysym (optarg);
break;
case '(':
if (ingroup)
{
fprintf (stderr,
"%s: may not nest groups (--help for usage)\n",
program_name);
xexit (1);
}
lang_enter_group ();
ingroup = 1;
break;
case ')':
if (! ingroup)
{
fprintf (stderr,
"%s: group ended before it began (--help for usage)\n",
program_name);
xexit (1);
}
lang_leave_group ();
ingroup = 0;
break;
}
}
if (ingroup)
lang_leave_group ();
}
/* Add the (colon-separated) elements of DIRLIST_PTR to the