2000-07-19 H.J. Lu <hjl@gnu.org>

* emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
	(PARSE_AND_LIST_PROLOGUE): New.
	(PARSE_AND_LIST_LONGOPTS): Likewise.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Likewise.

	* ldmain.c (main): Clear link_info.flags and link_info.flags_1.

	* lexsup.c (ld_options): Comment out 'z'.
	(parse_args): Likewise.

	* emultempl/elf32.em: Include "elf/common.h".
	(gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
	options.
	(gld_${EMULATION_NAME}_list_options): Likewise.

	* ld.texinfo: Add documentation for the recognized -z options.
This commit is contained in:
H.J. Lu
2000-07-20 03:25:10 +00:00
parent 9bfcb6d689
commit e0ee487bb5
6 changed files with 201 additions and 52 deletions

View File

@@ -33,54 +33,20 @@ GENERATE_SHLIB_SCRIPT=yes
# This code gets inserted into the generic elf32.sc linker script
# and allows us to define our own command line switches.
PARSE_AND_LIST_ARGS='
PARSE_AND_LIST_PROLOGUE='
#define OPTION_BASE_FILE 300
'
#include "getopt.h"
static struct option longopts[] =
{
PARSE_AND_LIST_LONGOPTS='
{"base-file", required_argument, NULL, OPTION_BASE_FILE},
{NULL, no_argument, NULL, 0}
};
'
static void
gld_elf32mcore_list_options (file)
FILE * file;
{
fprintf (file, _(" --base_file <basefile> Generate a base file for relocatable DLLs\n"));
}
static int
gld_elf32mcore_parse_args (argc, argv)
int argc;
char ** argv;
{
int longind;
int optc;
int prevoptind = optind;
int prevopterr = opterr;
int wanterror;
static int lastoptind = -1;
if (lastoptind != optind)
opterr = 0;
wanterror = opterr;
lastoptind = optind;
optc = getopt_long_only (argc, argv, "-", longopts, & longind);
opterr = prevopterr;
switch (optc)
{
default:
if (wanterror)
xexit (1);
optind = prevoptind;
return 0;
PARSE_AND_LIST_OPTIONS='
fprintf (file, _(" --base_file <basefile>\n"));
fprintf (file, _("\t\t\tGenerate a base file for relocatable DLLs\n"));
'
PARSE_AND_LIST_ARGS_CASES='
case OPTION_BASE_FILE:
link_info.base_file = (PTR) fopen (optarg, FOPEN_WB);
if (link_info.base_file == NULL)
@@ -91,9 +57,4 @@ gld_elf32mcore_parse_args (argc, argv)
xexit (1);
}
break;
}
return 1;
}
'