* 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) Mon Jul 4 19:35:45 1994 Jeff Law (law@snake.cs.utah.edu)
* scripttempl/hppaelf.sc (__stack_zero): Don't define this name, * scripttempl/hppaelf.sc (__stack_zero): Don't define this name,

View File

@ -46,12 +46,15 @@ parse_args (argc, argv)
int argc; int argc;
char **argv; char **argv;
{ {
int ingroup = 0;
/* Starting the short option string with '-' is for programs that /* Starting the short option string with '-' is for programs that
expect options and other ARGV-elements in any order and that care about 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 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. */ 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. */ /* 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_OFORMAT (OPTION_NON_SHARED + 1)
#define OPTION_RELAX (OPTION_OFORMAT + 1) #define OPTION_RELAX (OPTION_OFORMAT + 1)
#define OPTION_RETAIN_SYMBOLS_FILE (OPTION_RELAX + 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_STATS (OPTION_SORT_COMMON + 1)
#define OPTION_TBSS (OPTION_STATS + 1) #define OPTION_TBSS (OPTION_STATS + 1)
#define OPTION_TDATA (OPTION_TBSS + 1) #define OPTION_TDATA (OPTION_TBSS + 1)
@ -80,6 +84,8 @@ parse_args (argc, argv)
#define OPTION_WARN_COMMON (OPTION_VERSION + 1) #define OPTION_WARN_COMMON (OPTION_VERSION + 1)
static struct option longopts[] = { 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}, {"call_shared", no_argument, NULL, OPTION_CALL_SHARED},
{"dc", no_argument, NULL, 'd'}, {"dc", no_argument, NULL, 'd'},
{"defsym", required_argument, NULL, OPTION_DEFSYM}, {"defsym", required_argument, NULL, OPTION_DEFSYM},
@ -89,6 +95,7 @@ parse_args (argc, argv)
{"dynamic-linker", required_argument, NULL, OPTION_DYNAMIC_LINKER}, {"dynamic-linker", required_argument, NULL, OPTION_DYNAMIC_LINKER},
{"EB", no_argument, NULL, OPTION_EB}, {"EB", no_argument, NULL, OPTION_EB},
{"EL", no_argument, NULL, OPTION_EL}, {"EL", no_argument, NULL, OPTION_EL},
{"end-group", no_argument, NULL, ')'},
{"format", required_argument, NULL, 'b'}, {"format", required_argument, NULL, 'b'},
{"help", no_argument, NULL, OPTION_HELP}, {"help", no_argument, NULL, OPTION_HELP},
{"Map", required_argument, NULL, OPTION_MAP}, {"Map", required_argument, NULL, OPTION_MAP},
@ -100,9 +107,11 @@ parse_args (argc, argv)
{"Qy", no_argument, NULL, OPTION_IGNORE}, {"Qy", no_argument, NULL, OPTION_IGNORE},
{"qmagic", no_argument, NULL, OPTION_IGNORE}, /* Linux compatibility. */ {"qmagic", no_argument, NULL, OPTION_IGNORE}, /* Linux compatibility. */
{"relax", no_argument, NULL, OPTION_RELAX}, {"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},
{"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}, {"stats", no_argument, NULL, OPTION_STATS},
{"static", no_argument, NULL, OPTION_NON_SHARED}, {"static", no_argument, NULL, OPTION_NON_SHARED},
{"Tbss", required_argument, NULL, OPTION_TBSS}, {"Tbss", required_argument, NULL, OPTION_TBSS},
@ -139,9 +148,6 @@ parse_args (argc, argv)
case 'A': case 'A':
ldfile_add_arch (optarg); ldfile_add_arch (optarg);
break; break;
case 'B':
/* Ignore. */
break;
case 'b': case 'b':
lang_add_target (optarg); lang_add_target (optarg);
break; break;
@ -266,6 +272,9 @@ parse_args (argc, argv)
case 's': case 's':
link_info.strip = strip_all; link_info.strip = strip_all;
break; break;
case OPTION_SHARED:
link_info.shared = true;
break;
case OPTION_SORT_COMMON: case OPTION_SORT_COMMON:
config.sort_common = true; config.sort_common = true;
break; break;
@ -330,8 +339,33 @@ parse_args (argc, argv)
case 'y': case 'y':
add_ysym (optarg); add_ysym (optarg);
break; 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 /* Add the (colon-separated) elements of DIRLIST_PTR to the