54 Commits

Author SHA1 Message Date
809ee7e036 * ld.h (ld_config_type): Add new field warn_once.
* ldmain.c (undefined_symbol): Handle -warn-once.
	* lexsup.c (parse_args): Recognize -warn-once.
	* ld.texinfo (Options): Document -warn-once.
	* ld.1: Likewise.
PR 4456.
1994-09-14 22:27:16 +00:00
cc23cc69c5 * ldmisc.c (vfinfo): Handle %D as %C, but never print the function
name.  For %C, print the function name on a separate line, to keep
	the length of error messages under control.
	* ldmain.c (multiple_definition): Use %D for ``first defined
	here.''
	(undefined_symbol): Use %D for ``more undefined references
	follow''.
PR 3770.
1994-09-14 17:08:37 +00:00
64887de2ee * lexsup.c (parse_args): Add -shared to longopts, and handle it.
* ldmain.c (main): Initialize link_info.shared to false.  Give
	error if link_info.relocateable and link_info.shared are both set.
1994-06-16 19:32:07 +00:00
cbbf960822 * ldmain.c (get_emulation): Ignore -m486 for Linux compatibility.
* lexsup.c (parse_args): Ignore -qmagic for Linux compatibility.
1994-06-15 21:04:21 +00:00
7fb9ca5fc2 Let the user change the dynamic linker used by ELF code.
* ld.h (args_type): Add new field interpreter.
	* lexsup.c (parse_args): Add dynamic-linker to longopts, and
	handle it.
	* ldmain.c (main): Initialize command_line.interpreter to NULL.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Get
	the ELF backend to return the .interp section.  If
	command_line.interpreter is not NULL, set the contents of .interp
	to it.
	* ld.texinfo: Mention -dynamic-linker.
1994-06-15 20:46:43 +00:00
c96386c4d8 * ld.h (ld_config_type): Add new field traditional_format.
* lexsup.c (parse_args): Add traditional_format to longopts, and
	handle it.
	* ldmain.c (main): Initialize config.traditional_format to false.
	* ldlang.c (ldlang_open_output): Set BFD_TRADITIONAL_FORMAT in BFD
	flags of output_bfd according to config.traditional_format.
	* ld.texinfo: Document -traditional-format.
1994-06-15 06:01:45 +00:00
0cd82d00da * ldfile.h (search_dirs_type): Move from ldfile.c, and add cmdline
field.
	(search_head): Declare.
	(ldfile_add_library_path): Add new cmdline argument in prototype.
	* ldfile.c (search_head): Make non-static.
	(search_dirs_type): Move to ldfile.h.
	(ldfile_add_library_path): Accept cmdline argument, and save it.
	* lexsup.c (parse_args): Pass true for new cmdline argument of
	ldfile_add_library_path.
	(set_default_dirlist): Likewise.
	* ldmain.c (check_for_scripts_dir): Pass false for new cmdline
	argument of ldfile_add_library_path.
	* ldgram.y (ifile_p1): Likewise.
1994-06-02 21:30:57 +00:00
210c52ac91 * ldlang.h (lang_input_statement_type): Remove fields subfiles,
total_size, superfile and chain.
	* ldfile.c (open_a): Don't clear search_dirs_flag.
	(ldfile_open_file): Don't try to open superfile.  Assert that file
	has not already been opened.
	* ldlang.c (new_afile): Don't initialize superfile.
	* ldmain.c (add_archive_element): Don't initialize subfiles or
	chain or superfile.  Initialize search_dirs_flag to false.
1994-06-01 18:28:26 +00:00
2a9fa50cd8 Add support for ELF shared libraries.
* ld.h (ld_config_type): Add field dynamic_link.
	* ldmain.c (main): Initialize config.dynamic_link to false.  Warn
	on attempts to use -r with -relax, -call_shared or -s.
	* lexsup.c (longopts): Separate OPTION_CALL_SHARED from
	OPTION_NON_SHARED.  Add OPTION_IGNORE.  Adjust macro values
	accordingly.  Add "dy" and "non_shared" options.  Change "Qy" to
	OPTION_IGNORE for now.  Handle OPTION_CALL_SHARED and
	OPTION_NON_SHARED by setting dynamic_link field accordingly.
	Handle OPTION_IGNORE by ignoring it.  Clear dynamic_link field for
	-r and -Ur.
	* ldfile.c (ldfile_open_file): If config.dynamic_link is true, try
	opening a file with a .so extension first.
	* emultempl/elf32.em: New file.
	* emulparams/elf32_sparc.sh (TEXT_START_ADDR): Change to 0x10000.
	(NONPAGED_TEXT_START_ADDR): Likewise.
	(TEMPLATE_NAME): Define as elf32.
	(DATA_PLT): Define.
	* emulparams/elf_i386.sh (TEMPLATE_NAME): Define as elf32.
	* scripttempl/elf.sc: Add placement for new dynamic sections.
	Don't use CREATE_OBJECT_SYMBOLS.  Define _etext, _edata and _end
	outside of any section.  Don't use ALIGN(8); just let one section
	VMA follow another.  Put .dynbss in .bss.  Don't mention debugging
	sections; they'll be handled correctly anyhow.
	* Makefile.in (eelf_i386.c): Depend upon elf32.em, not generic.em.
1994-05-19 18:25:10 +00:00
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
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
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
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
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
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
5dad4c9728 * ldmain.c (reloc_overflow): Added name, reloc_name and addend
arguments.
1994-01-24 20:22:12 +00:00
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
9f6294075e More gcc lint. 1993-12-12 00:54:14 +00:00
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
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
2a28d8b006 add -warn-common option 1993-08-03 22:47:28 +00:00
922018a10c remove dupliate include 1993-07-15 22:02:01 +00:00
bbd2521f26 source cleanups; fix finding scripts 1993-07-15 21:43:28 +00:00
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
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
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
ff76a7dbf3 Fix previous fix. 1993-07-03 02:18:12 +00:00
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
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
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
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
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
be1627d309 Aliasing bug fixes 1992-07-02 00:53:14 +00:00
e47bfa6305 *** empty log message *** 1992-06-08 17:14:18 +00:00
b257477fa0 *** empty log message *** 1992-06-08 17:09:57 +00:00
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
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
9d1fe8a410 New lexer.
New targets for h8/300 simulator and DOS
1992-04-05 01:47:16 +00:00
fe563ffeb7 * ldmain.c (Q_enter_file_symbols): now aliases work again 1992-03-06 15:00:57 +00:00
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
ac5939079f Now compiles with gcc too. 1992-01-24 23:44:10 +00:00
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
c611e285bd Merging from VMS port. Doc to follow.. 1992-01-24 18:41:32 +00:00
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
f177a611f1 Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:28:27 +00:00
3e4c643dc1 Added -N and fixed -n flags.
Changed name of h8 support
1991-10-05 00:36:45 +00:00
8101605119 Added new keyword 'CONSTRUCTORS'
Added N_WARNING handling
Added N_INDR handling
1991-08-01 23:29:23 +00:00
8c514453d0 *** empty log message *** 1991-05-14 17:33:03 +00:00
b63165349f *** empty log message *** 1991-05-03 23:52:48 +00:00
7685579456 *** empty log message *** 1991-04-17 02:13:13 +00:00