Commit Graph

16 Commits

Author SHA1 Message Date
Richard Henderson
71b012a810 * ld.h (args_type): Add gc_sections.
* ldgram.y (ldgram_had_keep, KEEP): New.
        (input_section_spec_no_keep): Rename from old input_section_spec.
        (input_section_spec): New.  Recognize KEEP.
        * ldlang.c (wild_section): Handle keep sections.
        (lang_gc_wild_section, lang_gc_wild_file, lang_gc_wild): New.
        (lang_gc_sections_1, lang_gc_sections): New.
        (lang_process): Invoke lang_gc_sections.
        (lang_add_wild): Add keep argument.  Update all callers.
        * ldlang.h (lang_wild_statement_struct): Add keep_sections.
        * ldlex.l (KEEP): Match it.
        * ldmain.c (main): Error on -r and --gc-sections.
        * lexsup.c: Add --gc-sections.

        * scripttempl/elf.sc: Merge .text.* etc sections appropriately.
        Mark startup sections with KEEP.
        * scripttempl/elfppc.sc: Likewise.

        * ld.texinfo: Update for --gc-sections and KEEP.
1998-07-02 02:52:31 +00:00
Ian Lance Taylor
26c7ca95b4 * ldlex.l: Recognize keyword SORT.
* ldgram.y (current_file): Change to struct wildcard_spec.
	(%union): Add new fields cname and wildcard.
	(wildcard_name, wildcard_spec): New nonterminals.
	(file_NAME_list): Use wildcard_spec.
	(input_section_spec): Change current_file usage.
	* ld.h (struct wildcard_spec): Define.
	* ldlang.h (lang_wild_statement_struct): Add new fields
	sections_sorted and filenames_sorted.
	(lang_add_wild): Update declaration.
	* ldlang.c (wild_sort): New static function.
	(wild_section): Use wild_sort.
	(print_wild_statement): Print sorting information.
	(lang_add_wild): Add new parameters sections_sorted and
	filenames_sorted.  Change all callers.
	* mri.c (mri_draw_tree): Update calls to lang_add_wild.
	* scripttempl/elf.sc: Sort .ctors.* and .dtors.* by section name.
	* scripttempl/elfd10v.sc: Likewise.
	* scripttempl/elfd30v.sc: Likewise.
	* scripttempl/elfppc.sc: Likewise.
1998-05-15 07:29:35 +00:00
Tom Tromey
8bc8f4bc00 * Many files: Added gettext invocations around user-visible
strings.
	* ld.h: Added gettext-related includes and defines.
	* ldmain.c: Call setlocale, bindtextdomain, textdomain.
	* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
	HAVE_LC_MESSAGES): Define.
	* configure.in: Call CY_GNU_GETTEXT.  Create po/Makefile.in and
	po/Makefile.  Use AM_PROG_LEX.
	(TDIRS): AC_SUBST early on, to avoid having value split when it
	happens to cross line 90 of the generated sed script.
	* Makefile.am (SUBDIRS): New macro.
	(POTFILES): Likewise.
	(po/POTFILES.in): New target.
	(ld_new_LDADD): Added INTLLIBS.
	(ld_new_DEPENDENCIES): Added INTLDEPS.
	* po/Make-in, po/POTFILES.in, po/gas.pot: New files.
1998-04-22 06:58:37 +00:00
Ian Lance Taylor
2ed9fe477a update copyright 1996-07-30 20:05:42 +00:00
Ian Lance Taylor
cd09553a9b * ld.h (args_type): Add cref field.
* lexsup.c (parse_args): Set command_line.cref.
	* ldmain.c (main): Check command_line.cref rather than
	link_info.notice_all.
	(notice): Likewise.
1996-07-30 18:49:54 +00:00
Ian Lance Taylor
6799c638e5 * ldlang.c (lang_size_sections): If _cooked_size is not 0, then
don't clobber it when not relaxing.

	* ld.h (ld_config_type): Remove traditional_format field.
	* ldmain.c (main): Use link_info.traditional_format rather than
	config.traditional_format.
	* ldlang.c (ldlang_open_output): Likewise.
	* lexsup.c (parse_args): Likewise.
	* emultempl/aix.em (gld${EMULATION_NAME}_parse_args): Likewise.
	* mpw-eppcmac.c (gldppcmacos_parse_args): Likewise.
1996-04-22 21:32:58 +00:00
Ken Raeburn
943fbd5bd5 fsf address update, but not in COPYING files 1995-07-07 22:49:42 +00:00
Ian Lance Taylor
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
Ian Lance Taylor
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
Ian Lance Taylor
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
David Edelsohn
73f5d5febb * ldlang.c (lang_size_sections, lang_common): ALIGN_N can't handle
types of different sizes (eg: 64 and 32 bits), so coerce.
* ld.h (ALIGN_N): Add warning about usage.
1993-10-15 09:29:32 +00:00
David Edelsohn
c10744770c * ld.h (BYTE_SIZE, SHORT_SIZE, LONG_SIZE): Define as suggested by
Steve.
1993-08-26 22:22:36 +00:00
Steve Chamberlain
b63165349f *** empty log message *** 1991-05-03 23:52:48 +00:00
Steve Chamberlain
5e83d38ef9 Removed extern declarations 1991-04-17 02:02:53 +00:00
Steve Chamberlain
1418c83b39 checkpoint before a merge 1991-04-14 03:22:42 +00:00
David Henkel-Wallace
2fa0b342a5 Initial revision 1991-03-21 21:29:06 +00:00