Commit Graph

45 Commits

Author SHA1 Message Date
David MacKenzie
d4e5e3c330 Use getopt instead of lex and yacc to parse the command line.
* ld.texinfo (Options): Document changes to option syntax.
	* Makefile.in: Update dependencies.
	* ldver.c (help): Tweak dashes in usage message.
	* ldgram.y (%union): Remove unused members.
	Remove %tokens for command line options; add ones for input types.
	(command_line): Rules removed.
	(file): Instead of command line, recognize an
	input type indicator, then use the nonterminal for that type.
	(defsym_expr): New nonterminal from code formerly in command_line.
	* ldlex.h: Declare parser input type enum and variable.
	Don't declare parse_line.
	* ldlex.l: Remove unused variables.  Make some used ones static
	and comment them.
	(COMMAND): Start state and its rules removed.
	At start of yylex, return input state token if at start of input.
	(lex_redirect): Don't need to set yyout.
	(ldlex_command): Function removed.
	* ldmain.c (main): Instead of calling parse_line, set up the
	redirections and call yyparse directly.
	* ldmisc.c (vfinfo): If there's no input filename, print nothing, not
	"command line".
	* lexsup.c: Remove #if 0'd code.
	(parse_line): Function removed.
	(parse_args): Rewrite to use getopt_long_only.
	(set_default_dirlist): New function from code formerly in
	ldgram.y:command_line.
	(set_section_start): New function.
	* emultempl/generic.em, emultempl/gld960.em, emultempl/hppaelf.em,
	emultempl/lnk960.em, emultempl/m88kbcs.em: Don't enclose
	compiled-in link scripts in "{" and "}", as the grammar no longer
	wants them to be.
1994-02-25 03:26:25 +00:00
David MacKenzie
5bcb7f28e1 * ldlang.c, ldmain.c, ldmisc.c: Use bfd_get_error and
bfd_set_error and new error names.
1994-02-17 18:12:17 +00:00
David MacKenzie
52a8ebfe04 * emultempl/lnk960.em (append), emultempl/hppaosf.em
(hppaosf_finish): Call xmalloc, not ldmalloc.
	* ldmain.c (preserve_output): Function removed.
	(main): Do it here instead.
1994-02-05 12:00:15 +00:00
David MacKenzie
0b2f8d2edd * ldmisc.c (ldmalloc, xmalloc, ldrealloc, xrealloc): Functions
deleted; will use libiberty versions instead.
	* ldctor.c ldfile.c ldlang.c ldmain.c ldmisc.c ldmisc.h lexsup.c
	mri.c Makefile.in: Change callers.

	* ldmisc.c (vfinfo): Remove cleanup code.
	* ldmain.c (remove_output): Put it here (new function).
	(preserve_output): New function.
	(main): Register remove_output and preserve_output with atexit.
	* ldmain.c ldgram.y: Call xexit instead of exit.
	* ldmisc.h: Declare xexit.
1994-02-05 01:14:56 +00:00
David MacKenzie
7b40f2b169 * ldmain.c ldmain.h ldgram.y: If -v -V or --version was given,
exit successfully instead of complaining if no input files are
	given.
1994-01-27 20:49:21 +00:00
Stan Shebs
8594f56890 Tue Jan 25 13:19:41 1994 Stan Shebs (shebs@andros.cygnus.com)
* ldmain.c (main): Compute and display total execution time.
	* ld.texinfo (-stats): Document the option.
1994-01-25 21:30:00 +00:00
Ian Lance Taylor
5dad4c9728 * ldmain.c (reloc_overflow): Added name, reloc_name and addend
arguments.
1994-01-24 20:22:12 +00:00
Ian Lance Taylor
b9395be3af * ldmain.c (add_to_set): Add bitsize argument.
(constructor_callback): New function.
	(link_callbacks): Add constructor_callback.
	* ldctor.c (struct set_info): Add bitsize field.
	(ldctor_add_set_entry): Add bitsize argument.
	(ldctor_build_sets): Base the size of the elements of the set on
	the bitsize, rather than always using LONG.
	* ldctor.h (ldctor_add_set_entry): Add bitsize to declaration.
1994-01-06 20:04:26 +00:00
Ian Lance Taylor
9f6294075e More gcc lint. 1993-12-12 00:54:14 +00:00
Ian Lance Taylor
fcf276c495 Made many changes to eliminate gcc warnings. Made various
cosmetic changes, declared various things in header files, removed
	various extern declarations from .c files.  No substantive
	changes.
1993-12-11 22:55:55 +00:00
Ian Lance Taylor
973e421e67 * ldmain.c (enter_file_symbols): Removed duplicate tests of p. If
p is in a common section, make sure the BFD has a section of that
	name.
1993-11-19 19:29:49 +00:00
David MacKenzie
2a28d8b006 add -warn-common option 1993-08-03 22:47:28 +00:00
David MacKenzie
922018a10c remove dupliate include 1993-07-15 22:02:01 +00:00
David MacKenzie
bbd2521f26 source cleanups; fix finding scripts 1993-07-15 21:43:28 +00:00
David MacKenzie
cffdcde9e9 * ldfile.c (ldlang_open_file, ldfile_open_command_file),
main.c (main): Print the errno string in the error message.
1993-07-15 04:46:25 +00:00
David MacKenzie
f42084627b * ldmain.c (set_scripts_dir): Check . and <ld bin dir>/../lib for
ldscripts, as well as <ld bin dir> and SCRIPTDIR.
1993-07-13 00:54:45 +00:00
David MacKenzie
d723cd17d5 * ldlang.c (lang_process): Use sizeof instead of magic constant.
* ldmain.c (get_emulation, check_for_scripts_dir,
	set_scripts_dir):  New functions.
	(main): Call them.
1993-07-12 19:34:04 +00:00
David MacKenzie
ff76a7dbf3 Fix previous fix. 1993-07-03 02:18:12 +00:00
David MacKenzie
173a0c3d26 * ldmain.c (main): Don't add scriptdir to the lib search path.
* genscripts.sh: Put the scripts in the ldscripts directory, not
	emulations.
	* configure.in (ldscripts): Make, instead of emulations.
	* Makefile.in (scriptdir): Take off the "ld" part.
	(install, clean, distclean): Use ldscripts, not emulations.
	In tests, pass -L., not -Lemulations.
	(ldmain.o): Don't pass -DSCRIPTDIR=....
	* ldlang.c (lang_process): Add "ldscripts/" to the name of the
	default script file.
1993-07-03 02:01:03 +00:00
Steve Chamberlain
29f33467f2 Tue Mar 30 09:40:25 1993 Steve Chamberlain (sac@thepub.cygnus.com)
* ldindr.c (add_indirect): Keep more information in the alias
	symbol chain.
	* ldlang.c (wild_doit):  Don't inherit NEVER_LOAD section
	attribute from an input section.
	* ldmain.c (Q_enter_file_symbols): Common section is NEVER_LOAD by
	default. (Q_enter_file_symbos): Indirect symbols now are known by
	their section, not a special symbol flag.
	* ldsym.c (write_file_locals): Indirect symbols aren't local.
	(write_file_globals): Write the mapping for an indirect symbol.
	* relax.c (build_it): When forced to write a NEVER_LOAD section,
	fill it with zeros.
1993-03-30 17:49:00 +00:00
Ian Lance Taylor
f31cb329d5 Fri Jan 29 09:57:58 1993 Ian Lance Taylor (ian@cygnus.com)
* ldmain.c (subfile_wanted_p): If we already have a common
	definition of a symbol, don't necessarily pull in an object file
	that provides a non-common definition.
1993-01-29 19:47:56 +00:00
Ian Lance Taylor
8a045e502f Tue Jan 26 11:49:50 1993 Ian Lance Taylor (ian@cygnus.com)
* ldmain.c, ldsym.c: Use new bfd_is_com_section macro rather than
	checking for equality to bfd_com_section.
1993-01-26 19:56:17 +00:00
Steve Chamberlain
f3739bc349 Mon Oct 5 08:55:14 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* ldmain.c (linear_library): don't even think about processing
	an object file if it's already been done
1992-10-05 16:15:11 +00:00
Steve Chamberlain
be1627d309 Aliasing bug fixes 1992-07-02 00:53:14 +00:00
Steve Chamberlain
e47bfa6305 *** empty log message *** 1992-06-08 17:14:18 +00:00
Steve Chamberlain
b257477fa0 *** empty log message *** 1992-06-08 17:09:57 +00:00
Steve Chamberlain
a72f4e5f84 * ldfile.c: merge in VMS filename support
* ldmain.c (main): take out ./ from library path, and close file
	before unlinking. Make multiple defs of a symbol create an
	unexecable file.
	* ldmisc.c: fatal errosrs delete output file
1992-05-06 01:07:05 +00:00
Steve Chamberlain
bfbdc80f0a * ldver.c: Bumped version to 1.96 - new release, resync with the
bfd too #.
	* ldexp.c, ldlang.c: now build memory shape tree in obstacks
	rather than with raw malloc, makes it easier to track where memory
	is going.
	* ldsym.h, ldsym.c: create obstack for all global symbols too.
	* ldwrite.c (ldwrite): moved malloc so only used when needed.
	* sa29200-sc.sh: added support for .lit, data1 and data2 sections.
1992-05-04 23:38:42 +00:00
Steve Chamberlain
9d1fe8a410 New lexer.
New targets for h8/300 simulator and DOS
1992-04-05 01:47:16 +00:00
Steve Chamberlain
fe563ffeb7 * ldmain.c (Q_enter_file_symbols): now aliases work again 1992-03-06 15:00:57 +00:00
Steve Chamberlain
870f54b2c8 * ldgram.y: map -M behave in the same way as -Map (sets file name
to be "-".
	* ldsym.c, ldlang.c: remember that size of a section is dependent on
	whether or not relaxing has been done.
	* ldmain.c: don't open a map file if it doesn't have a name
	* relax.c: all the brains have moved into bfd.
	* ldwrite.c: ammend comment
1992-01-28 18:21:36 +00:00
Steve Chamberlain
ac5939079f Now compiles with gcc too. 1992-01-24 23:44:10 +00:00
Steve Chamberlain
2e2bf962db * Makefile.in: added relax, also made three stage go through a
partial link stage.
	* relax.c : added
	* config.h: if GNU960 defined, then default emulation mode is
	GLD960
	* ldexp.h, ldexp.c: map to file hooks
	* ldlang.c: map to file hooks
	* ldgram.y: added -Map -relax
	* ldlex.l: added -relax, -Map
	* ldmain.c: open map file
	* ldmisc.c: support for map file
	* ldwrite.c: new relax magic
1992-01-24 22:34:34 +00:00
Steve Chamberlain
c611e285bd Merging from VMS port. Doc to follow.. 1992-01-24 18:41:32 +00:00
Steve Chamberlain
ce4d59e25d Sun Nov 3 16:37:37 1991 Steve Chamberlain (steve at cygnus.com)
i386 aout changes from Bob Kukura
	* Makefile.in, config.h: added i386aout support
	* configure.in: fixed /h-{myhost} typo
	* ldgram.y: -MM now gives more boring map.
	* ldlang.c: now does D_PAGED flag the right way.
	* ldsym.c: -MM flags does the right thing.
1991-11-04 00:45:25 +00:00
John Gilmore
f177a611f1 Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:28:27 +00:00
Steve Chamberlain
3e4c643dc1 Added -N and fixed -n flags.
Changed name of h8 support
1991-10-05 00:36:45 +00:00
Steve Chamberlain
8101605119 Added new keyword 'CONSTRUCTORS'
Added N_WARNING handling
Added N_INDR handling
1991-08-01 23:29:23 +00:00
Steve Chamberlain
8c514453d0 *** empty log message *** 1991-05-14 17:33:03 +00:00
Steve Chamberlain
b63165349f *** empty log message *** 1991-05-03 23:52:48 +00:00
Steve Chamberlain
7685579456 *** empty log message *** 1991-04-17 02:13:13 +00:00
Steve Chamberlain
99fe455360 Merges from Intel.
Chrisb bug fixes.
1991-04-15 15:27:15 +00:00
Steve Chamberlain
1418c83b39 checkpoint before a merge 1991-04-14 03:22:42 +00:00
Steve Chamberlain
8cb5eb316c Brought up to sync with Intel again. 1991-03-22 23:02:38 +00:00
David Henkel-Wallace
2fa0b342a5 Initial revision 1991-03-21 21:29:06 +00:00