Commit Graph

146 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
b4c61dc900 From Jason Merrill <jason@cygnus.com>:
* ldlang.c (wild_sort): Correct order of sort.
	* scripttempl/elf.sc: Put *crtbegin.o before other .ctors and
	.dtors.
	* scripttempl/elfd10v.sc: Likewise.
start-sanitize-d30v
	* scripttempl/elfd30v.sc: Likewise.
end-sanitize-d30v
	* scripttempl/elfppc.sc: Likewise.
1998-05-18 20:21:22 +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
Ian Lance Taylor
e33bfde75c fix sanitization for gettext changes 1998-04-22 16:18:07 +00:00
Ian Lance Taylor
9216fffaef * scripttempl/pe.sc: Only include .idata\$[0-7] in .idata when
relocating.
1998-03-25 16:35:13 +00:00
Geoffrey Noer
155d9cc48a Thu Mar 19 14:54:45 1998 Geoffrey Noer <noer@cygnus.com>
* scripttempl/pe.sc: The Cygwin32 library uses a .data$nocopy
        section to avoid copying certain data on fork.  The linker used to
        include this between __data_start__ and __data_end__, but that
        breaks building the cygwin32 dll.  The fix is to rename the
        section ".data_cygwin_nocopy" and explictly include it after
        __data_end__.
1998-03-19 23:04:54 +00:00
Ian Lance Taylor
cdf91fe451 Mon Feb 2 19:34:54 1998 Steve Haworth <steve@pm.cse.rmit.EDU.AU>
Add tms320c30 support:
	* configure.tgt (tic30-*-*aout*, tic30-*-*coff*): New targets.
	* emulparams/tic30aout.sh: New file.
	* emulparams/tic30coff.sh: New file.
	* scripttempl/tic30aout.sc: New file.
	* scripttempl/tic30coff.sc: New file.
	* Makefile.am (ALL_EMULATIONS): Add etic30aout.o and
	etic30coff.o.
	(etic30aout.c, etic30coff.c): New targets.
	* Makefile.in: Rebuild.
1998-02-03 00:37:20 +00:00
Ian Lance Taylor
93ed82b0c7 Fri Jan 30 19:15:17 1998 Geoff Keating <geoffk@ozemail.com.au>
* scripttempl/elfppc.sc: Put .dynsbss in .sbss.
1998-01-31 00:16:44 +00:00
Michael Meissner
03ab605af6 Link in .eh_section into data section 1998-01-01 20:00:36 +00:00
Nick Clifton
cd66558c07 Renamed v850eq -> v850ea 1997-12-12 19:05:07 +00:00
Michael Meissner
27be012212 Change order slightly 1997-12-09 23:35:35 +00:00
Michael Meissner
b0f764345d Add configurability to d30v 1997-12-09 20:37:00 +00:00
Ian Lance Taylor
a12e621548 * scripttempl/pe.sc: Put .stab and .stabstr sections at end. 1997-10-15 18:53:18 +00:00
Nick Clifton
2e6fa283b4 Added support for the call table data area. 1997-09-17 23:45:41 +00:00
Ian Lance Taylor
4602e5f401 Mon Jun 16 19:18:21 1997 Geoff Keating <geoffk@ozemail.com.au>
* scripttempl/elfppc.sc: Correct .rela.sdata entries.

	* scripttempl/elfppc.sc: Put the PLT between the small and large
	BSS segments.
	* emulparams/elf32ppc.sh (TEXT_START_ADDR): The ABI says `A
	program base of 0x02000000 is recommended...' because otherwise
	shared libraries are less efficient.  We use 0x01800000 because
	otherwise it's impossible to branch to location 0, for instance if
	you have an undefined weak symbol.
1997-06-16 23:21:18 +00:00
Ian Lance Taylor
94d8217d65 * scripttempl/pe.sc: Add zeroes after .idata$3 to mark the end of
the import list.
1997-06-07 03:48:00 +00:00
Ian Lance Taylor
1a7f2a866e * scripttempl/elfmips.sc: Remove.
* scripttempl/elf.sc: Set ENTRY based on target.  Permit
	TEXT_DYNAMIC to control .dynamic segment.  Permit
	SHLIB_TEXT_START_ADDR to set start of shared object.  Support
	INITIAL_READONLY_SECTIONS.  Put .stub in .text.  Only put
	.gnu.linkonce.t* in .text when relocating.  Support
	OTHER_TEXT_SECTIONS.  Support SHLIB_DATA_ADDR as well as
	DATA_ADDR.  Support OTHER_GOT_SYMBOLS and OTHER_GOT_SECTIONS.
	* emulparams/elf32b4300.sh (SCRIPT_NAME): Set to elf.
	(DATA_ADDR): Don't set.
	(INITIAL_READONLY_SECTIONS): Rename from OTHER_READONLY_SECTIONS.
	(OTHER_TEXT_SECTIONS): Set.
	(OTHER_GOT_SECTIONS): Rename from OTHER_READWRITE_SECTIONS.
	(MACHINE): Set to empty string.
	* emulparams/elf32l4300.sh: Likewise.
	* emulparams/elf32ebmip.sh: Likewise.
	* emulparams/elf32elmip.sh: Likewise.
	* emulparams/elf32bmip.sh: Likewise.  Also:
	(TEXT_DYNAMIC): Set.
	* emulparams/elf32lmips.sh: Likewise.
	* Makefile.in (eelf32bmips.c): Depend upon elf.sc rather than
	elfmips.sc.
	(eelf32ebmips.c, eelf32elmips.c, eelf32lmip.c): Likewise.
1997-05-13 03:30:20 +00:00
Ian Lance Taylor
3d046499bc Mon May 12 11:11:06 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* scripttempl/elf.sc: Don't align the data segment on the next 8
	byte boundary, instead let the linker use whatever the individual
	sections require.
1997-05-12 15:12:12 +00:00
Michael Meissner
df184f82b2 Fix name of constructors/destructors 1997-05-02 19:57:12 +00:00
Ian Lance Taylor
d7450eb7ee revert Alpha/OpenBSD patches 1997-04-30 16:18:37 +00:00
Ian Lance Taylor
40f96c6fe5 Fri Apr 18 11:54:43 1997 Niklas Hallqvist <niklas@appli.se>
* Makefile.in (ALL_EMULATIONS): Add ealphabsd.o.
	(ealphabsd.c): New rule.
	* configure.host (alpha-*-bsd): New target.
	* configure.tgt (alpha-*-bsd): New target.
	* emulparams/alphabsd.sh: New file for *BSD/alpha.
	* scripttempl/alphabsd.sc: New file for *BSD/alpha.
1997-04-18 15:57:37 +00:00
Ian Lance Taylor
de386cf61f fix comment 1997-03-28 19:27:51 +00:00
Ian Lance Taylor
2adb092c95 * scripttempl/elfmips.sc: Change handling of data area when
generating a shared library to not skip a large block of memory.
	From Per Fogelstrom <pefo@cvs.openbsd.org>.
1997-03-15 02:31:01 +00:00
Angela Marie Thomas
94b569d255 oops... always keep d10v stuff 1997-02-27 08:18:39 +00:00
Martin Hunt
232e870207 Fri Feb 21 17:37:51 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* Makefile.in (ed30velf.c): New target.
	* configure.tgt (d30v-*-*): New target.
	* emulparams/d30velf.sh: New file.
	* scripttempl/elfd30v.sc: New file.
1997-02-22 01:42:27 +00:00
Ian Lance Taylor
e7886d4ba1 * scripttempl/elfmips.sc: When relocating, put .mips16.fn.* and
.mips16.call.* in .text.
1997-02-11 20:34:57 +00:00
Fred Fish
11effa691a * emulparams/tic80coff.sh: New (dummy) file for TIc80.
* scripttempl/tic80coff.sc: New (dummy) file for TIc80.
	* Makefile.in (etic80coff.c): Add target and rule to build it.
	* configure.tgt (tic80-*-coff): Set targ_emul to tic80coff.
1997-02-10 01:17:14 +00:00
Ian Lance Taylor
f5f212fb56 * scripttempl/elf.sc: Put linkonce reloc section in other
appropriate reloc sections.
	* scripttempl/elfmips.sc: Add linkonce support.
	* scripttempl/elfppc.sc: Likewise.
1997-01-27 17:39:24 +00:00
Ian Lance Taylor
093427533c * configure.tgt (mips*el-*-linux*, mips*-*-linux*): New targets.
* scripttempl/elfmips.sc: Use __start as the entry address for
	mips*-*-linux*.
1997-01-02 23:15:34 +00:00
Michael Meissner
c43452b052 Add .tbyte and .tbss sections 1996-12-30 18:57:36 +00:00
Michael Meissner
93f8f531b0 Make __{e,g}p correctly start relative to the beginning of the section; Cleanup 1996-12-13 20:37:35 +00:00
Jason Merrill
264677bbe1 * scripttempl/{elfd10v.sc,elfmips.sc,elfppc.sc,v850.sc}: Likewise. 1996-11-27 11:29:23 +00:00
Stan Shebs
de61c9e1f3 Fix sanitization of D10V script template 1996-11-01 02:14:43 +00:00
Ian Lance Taylor
aa9b7dedc8 handle v850.sc 1996-10-28 23:48:06 +00:00
Jeff Law
4ad9452c46 * scriptempl/v850.sc (zdata): Make sure this stays
in lo-memory.
zda testing.
1996-10-23 22:18:55 +00:00
Jeff Law
5549ebeda0 * scripttempl/v850.sc (__ep): Put it at the start
of the tda section.
v850.
1996-10-23 03:19:16 +00:00
Jeff Law
06c5b0fc96 * scriptempl/v850.sc: Move all "normal" sections into
the external memory region (0x100000 - 0x200000).
So plumhall works again (hopefully).
1996-10-22 17:45:57 +00:00
Michael Meissner
36cf21ce53 Make d10v .text start at 0x10000 1996-10-21 21:26:59 +00:00
Jeff Law
b502879f75 * scripttempl/v850.sc (__gp, __ep): Define. 1996-10-18 18:59:45 +00:00
Jeff Law
c23b6a6bc9 * scripttempl/v850.sc (.zdata): Add this before .text.
(.sdata): Also include .rosdata as part of the .sdata.
        (.tdata): Include this just before .sdata.
1996-10-17 20:48:42 +00:00
Jeff Law
2b8cd389ae * emulparms/v850.sh (SCRIPT_NAME): Use "v850" not "elf".
* scripttempl/v850.sc: Wrap script with a "cat << EOF".
Problems with last night's changes.
1996-10-17 16:58:31 +00:00
Jeff Law
d27d34c382 * scripttempl/v850.sc: New linker script for the V850.
* Makefile.in: Use it.
1996-10-17 05:10:52 +00:00
Jason Merrill
9193c60b55 Sun Oct 6 22:35:36 1996 Jason Merrill <jason@yorick.cygnus.com>
* scripttempl/elf{,mips,ppc}.sc: Add DWARF 2 sections.
1996-10-07 05:36:57 +00:00
Ian Lance Taylor
4fc7ca82bf * scripttempl/elfmips.sc: Handle CREATE_SHLIB the same way that
elf.sc does, so that glibc works better.
1996-10-01 22:31:27 +00:00
Ian Lance Taylor
df6b92ed1b * scripttempl/armcoff.sc: For -N or -n, don't align .data. From
Chris Hadley <Christopher.Hadley@cl.cam.ac.uk>
1996-09-16 21:56:33 +00:00
Ian Lance Taylor
18f0961ed9 * scripttempl/elf.sc: Put .gnu.linkonce* sections in .text. 1996-08-21 18:27:28 +00:00
Jeff Law
cce8528df9 No longer sanitize away h8s stuff. 1996-07-05 18:54:28 +00:00
Michael Meissner
edcfb9db65 Do not do PROVIDE of _GLOBAL_OFFSET_TABLE_ 1996-06-24 22:57:16 +00:00
Jeff Law
71415be57c * scripttempl/h8300s.sc: New file for H8/S.
* emulpararms/h8300s.sh: New file for H8/S.
        * Makefile.in (ALL_EMULATIONS): Add H8/S.
        (e_h8300s.c): Add dependencies.
        * configure.tgt: Add H8/S to targ_extra_emuls.
H8/S linker stuff.  Sanitized until status of this code is known.
1996-06-18 22:55:30 +00:00
Jim Wilson
f98286385f Kill r16/rce/acp stuff. 1996-06-08 03:52:13 +00:00