Commit graph

92 commits

Author SHA1 Message Date
DJ Delorie
6952c60277 * emultempl/pe.em (gld_i386pe_parse_args): Conditionalize call to
pe_dll_add_excludes
1998-11-24 00:24:06 +00:00
Nick Clifton
715e7aadec fix for arm-pe linker testsuite failures - only define an entry symbol if one has been specified. 1998-11-23 22:38:48 +00:00
DJ Delorie
3feaa5aff8 * emultempl/pe.em (gld_i386pe_after_open): call
pe_process_import_defs
	* pe-dll.c (pe_dll_generate_def_file): calculate BASE from
	pe_data, only print if actually set.  Print version only if
	set.
	(save_relocs): save relocs for both input and output.
	(make_one): support internal/external different names.
	(pe_dll_generate_implib): support new make_one
	(pe_process_import_defs): new function; handles IMPORT
	directives in .def files.
1998-11-23 19:47:31 +00:00
DJ Delorie
d3ca9a538c * emultempl/pe.em (gld_i386_finish): generate import library
* deffile.h: add hint member.
* pe-dll.c (pe_dll_generate_implib): New function with helpers;
generates the import library directly from the export table.
(fill_edata): remember the actual hint for the import library.
1998-11-17 03:18:06 +00:00
DJ Delorie
e2586bc8de * pe-dll.c (process_def_file): properly note undefined exported
symbols, clean up old code.
	(pe_dll_generate_def_file): don't crash if pe_def_file is NULL
	* emultempl/pe.em (gld_i386_parse_args): add
 	(en/dis)able-stdcall-fixups
	(pe_fixup_stdcalls): warn about stdcall fixups
	(gld_i386_unrecognized_file): make exported symbols undefs so that
 	archive members get pulled in
1998-11-10 22:57:13 +00:00
DJ Delorie
854d50bd51 * emultempl/pe.em (gld_i386_list_options): list dll-specific options. 1998-11-09 22:58:45 +00:00
DJ Delorie
eb8061bf35 * pe-dll.c: New file; direct support for PE DLLs
* deffile.h: New file; direct support for PE DLLs
	* deffilep.y: New file; direct support for PE DLLs
	* emultempl/pe.em: add direct support for PE DLLs
	* configure.tgt: allow target-specific extra files
	* configure.in: allow target-specific extra files
	* ldlang.c (lang_add_assignment): return the assignment so that
 	one can change the value later based on the object files (pe-dll
 	DEF files do this)
	* ldint.texinfo: add section for emulation walkthrough
1998-11-09 21:51:51 +00:00
Catherine Moore
4be26f9d58 add armelf.em to things to keep. 1998-08-27 20:39:21 +00:00
Ian Lance Taylor
bd163c91c6 mention directory when looking for sanitize 1998-08-20 21:54:07 +00:00
Catherine Moore
fbb99e9a4d Add armelf. 1998-08-13 23:12:52 +00:00
Richard Henderson
d51be0a936 * configure.tgt (i?86-*-beos{pe,elf,}*): Recognize.
* Makefile.am (ei386beos.o): New.
        * emulparams/i386beos.sh: New file.
        * emultempl/beos.em, scripttempl/i386beos.sc: New file.
1998-07-14 22:40:17 +00:00
Ian Lance Taylor
7617a82283 * scripttempl/pe.sc: Use SORT to sort sections appropriately.
* emultempl/pe.em (sort_by_file_name): Remove.
	(sort_by_section_name): Remove.
	(sort_sections_1, sort_sections): Remove.
	(gld_${EMULATION_NAME}_before_allocation): Don't call
	sort_sections.
	(hold_section, hold_section_name): New static variables.
	(hold_use, hold_text, hold_rdata, hold_data, hold_bss): Likewise.
	(gld_${EMULATION_NAME}_place_orphan): Rewrite.  Look for a good
	place to put the section.  Align the section.  Sort the input
	sections by name.
	(gld_${EMULATION_NAME}_place_section): New static function.
1998-07-03 21:52:58 +00:00
Ian Lance Taylor
5b6ca067a8 * emultempl/pe.em (set_pe_subsystem): Don't call
ldlang_add_undef.
	(gld_${EMULATION_NAME}_after_parse): New static function.
	(ld_${EMULATION_NAME}_emulation): Use new after_parse function
	rather than after_parse_default.
1998-07-03 18:40:38 +00:00
Doug Evans
bf86ea82b3 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set vma to 0
for .DVP.overlay.*.
1998-06-05 22:58:06 +00:00
Nick Clifton
3535c3c044 Add interworking support for arm-pe/thumb-pe targets. 1998-03-26 00:00:54 +00:00
Nick Clifton
796daf208f Add armcoff.em to list of kept files. 1997-12-16 09:32:47 +00:00
Ian Lance Taylor
9ae9e58254 * emultempl/m88kbcs.em: Remove.
* emulparams/m88kbcs.sh (TEMPLATE_NAME): Don't set.
	* Makefile.in (em88kbcs.c): Depend upon generic.em rather than
	m88kbcs.em.
1997-02-28 04:17:50 +00:00
Ian Lance Taylor
e87b950c8e * emultempl/sunos.em: Include <ctype.h>.
(gld${EMULATION_NAME}_find_so): Skip the directory name when
	searching for ".so.".
	(gld${EMULATION_NAME}_search_dir): Make sure that the library name
	has a version number, and that only version numbers follow .so.
1997-01-30 16:33:36 +00:00
Ian Lance Taylor
d0d5edba84 * emultempl/gld960c.em: Include <ctype.h>.
(gld960_set_output_arch): Get the machine type from the -A option
	if there is one, rather than always using core.
PR 11255.
1996-12-12 22:06:51 +00:00
Ian Lance Taylor
12436407d1 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
use hold_rel unless SEC_ALLOC is set for the reloc section.
	(gld${EMULATION_NAME}_place_section): Only set hold_rel if
	SEC_ALLOC is set.
PR 11174.
1996-12-05 18:47:22 +00:00
Ian Lance Taylor
d0d63887aa * emultempl/pe.em (set_pe_subsystem): When setting the subsystem
to windows, set the entry point.
1996-10-09 03:27:41 +00:00
Geoffrey Noer
417fe276e3 Wed Oct 2 23:45:25 1996 Geoffrey Noer <noer@cygnus.com>
* emultmpl/pe.em: increase size of stack reserve to 0x2000000
        (necessary in order to compile parse.c in gcc sources under NT)
1996-10-03 06:55:39 +00:00
Ian Lance Taylor
888b0b2fa0 Mon Jul 15 11:49:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Round
 	the value of __start_SECNAME to the alignment required by the
 	section to be placed.
1996-07-15 15:58:00 +00:00
David Edelsohn
fe6e29571a * ldlang.c (wild_doit): Don't copy over SEC_LINK_{ONCE,DUPLICATES}
if final link.
	* emultempl/pe.em (sfunc): Renamed to sort_by_file_name.
	(sort_by_section_name, sort_sections_1): New functions.
	(sort_sections): Only sort by file name sections in .idata.
	Add "Grouped Sections" support.
	(gld${EMULATION_NAME}_place_orphan): Rewrite to support Grouped
	Sections.
	(gld${EMULATION_NAME}_place_section): Delete.
	* scripttempl/pe.sc (.text,.data,.rdata): Add *(.foo\$).
	(.CRT,.rsrc): Rewrite to use Grouped Section support.
1996-05-22 19:09:32 +00:00
David Edelsohn
a1613b5f35 * scripttempl/pe.em (gld${EMULATION_NAME}_place_orphan): New function.
(gld${EMULATION_NAME}_place_section): New function.
	(hold_{section,use,text,rdata,data}): New static locals.
	(ld_${EMULATION_NAME}_emulation): Update orphan field.
1996-05-07 17:58:43 +00:00
Ian Lance Taylor
6cc7365e2b * emultempl/elf32.em (gld${EMULATION_NAME}_check_ld_so_conf): New
static function, if ${host} = ${target}.
	(gld${EMULATION_NAME}_after_open): Call check_ld_so_conf to find a
	needed shared library if ${host} = $[target}.
1996-04-05 21:22:31 +00:00
Ian Lance Taylor
169df8d594 * emultempl/elf32.em (gld${EMULATION_NAME}_check_needed): Check
the SONAME if it is available.
	(gld${EMULATION_NAME}_stat_needed): Use the SONAME, not the
	filename, when checking for conflicting library versions.  Don't
	assume that the suffix is only numbers and dots.
1996-02-19 17:40:42 +00:00
Ian Lance Taylor
db3bfcd64c * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Strip
`:foo' from ${ARCH}.
1996-02-14 16:10:18 +00:00
Ian Lance Taylor
625489271d * emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Warn if
it looks like we might be linking in two different versions of the
	same shared library.  Based on a patch from H J Lu <hjl@zoom.com>.
1996-02-13 19:05:38 +00:00
Ian Lance Taylor
0bc9a7d2fb * emultempl/sunos.em (gld${EMULATION_NAME}_before_allocation):
Don't make a shared library because of an undefined reference to
	__GLOBAL_OFFSET_TABLE_.
1996-01-15 22:38:22 +00:00
Steve Chamberlain
d42799374f * emultempl/pe.em (gld_${EMULATION_NAME}_before_allocation):
sort using right pointer.
1996-01-05 22:09:43 +00:00
Ian Lance Taylor
67cf67787d * emultempl/aix.em (gld${EMULATION_NAME}_after_open): Only set
relocateable before calling ldctor_build_sets if the output file
	is in an XCOFF format.
1995-12-19 22:36:03 +00:00
Ian Lance Taylor
97121c41e9 * emultempl/aix.em (gld${EMULATION_NAME}_before_allocation): Add
new local variable special_sections, and pass it to
	size_dynamic_sections.  Look through the results, and move the
	sections around in the mapping so that they are defined correctly.
1995-11-09 18:11:03 +00:00
Ian Lance Taylor
2a80ec10a8 * emultempl/aix.em: Include ldgram.h.
(gld${EMULATION_NAME}_parse_args): Handle -pD and -pT, as used on
	AIX 4.1.
	* Makefile.in ($(EMULATION_OFILES)): Depend upon ldgram.h.
1995-11-01 16:46:19 +00:00
Ian Lance Taylor
d29120d2ff really make import_file static 1995-10-31 20:28:25 +00:00
Ian Lance Taylor
5666490bee * emultempl/aix.em (export_files): Remove.
(import_files): Make static.
	(struct export_symbol_list): Define.
	(export_symbols): New static variable.
	(gld${EMULATION_NAME}_parse_args): Handle an initial -b option
	correctly.  Call read_file for an export file.
	(gld${EMULATION_NAME}_before_allocation): Call
	bfd_xcoff_export_symbol for each export symbol, rather than
	calling read_file for each export file.
	(gld${EMULATION_NAME}_read_file): For an export file, make the
	exported symbols undefined, and store them on the export_symbols
	list.
1995-10-31 17:39:55 +00:00
Steve Chamberlain
2543860d19 Sat Oct 28 00:10:03 1995 steve chamberlain <sac@slash.cygnus.com>
* emultempl/pe.em (gld_${EMULATION_NAME}_parse_args):
	Don't hang if last option is unrecognised.
	(gld_${EMULATION_NAME}_set_symbols): Insert created
	symbols into ABS output section.
1995-10-28 07:26:10 +00:00
Ian Lance Taylor
cf79773cb1 * emultempl/aix.em: Include ldctor.h.
(gld${EMULATION_NAME}_after_open): New static function.
	(gld${EMULATION_NAME}_before_allocation): Call find_relocs.
	(gld${EMULATION_NAME}_find_relocs): New static function.
	(gld${EMULATION_NAME}_find_exp_assignment): New static function.
	(ld_${EMULATION_NAME}_emulation): Use new after_open function.
	* scripttempl/aix.sc: Use CONSTRUCTORS in .data.
	* ldctor.c (struct set_info): Move definition into ldctor.h.
	(struct set_element): Likewise.
	(sets): Make non-static.
	(ldctor_add_set_entry): Add name parameter.  Save it in the new
	set element.
	(ldctor_build_sets): Avoid being called twice.  Pass set element
	name to lang_add_reloc.
	* ldctor.h (struct set_info): Move definition here from ldctor.c.
	(struct set_element): Likewise.  Add new field name.
	(sets): Declare.
	(ldctor_add_set_entry): Declare new name parameter.
	* ldwrite.c (build_link_order): Don't insist that either name or
	section be NULL in a lang_reloc_statement.
	* ldmain.c (add_to_set): Pass NULL to ldctor_add_new_set_entry for
	new name parameter.
	(constructor_callback): Pass name to ldctor_add_new_set_entry for
	new name parameter.
1995-10-27 22:21:43 +00:00
Ian Lance Taylor
c7c8b500b9 * emultempl/aix.em (gld${EMULATION_NAME}_parse_args): Treat
-static as a synonym for -bnso.
1995-10-27 01:59:30 +00:00
Ian Lance Taylor
1764521ffe tweak option handling 1995-10-25 17:37:35 +00:00
Ian Lance Taylor
57fc1e90b7 * emultempl/aix.em: Add support for various AIX linker options,
for AIX import and export files, and for AIX shared objects.
	* scripttempl/aix.sc: Add .pad.  Put .ds just before the TOC.
1995-10-25 15:49:27 +00:00
Ian Lance Taylor
235c6a672f * emultempl/sunos.em (gld${EMULATION_NAME}_find_so): Move
directory searching code into gld${EMULATION_NAME}_search_dir.
	(gld${EMULATION_NAME}_search_dir): New static function, extracted
	from gld${EMULATION_NAME}_find_so.
	(global_needed, global_found): New static variables.
	(gld${EMULATION_NAME}_after_open): New static function.
	(gld${EMULATION_NAME}_search_needed): New static function.
	(gld${EMULATION_NAME}_try_needed): New static function.
	(gld${EMULATION_NAME}_check_needed): New static function.
	(ld_${EMULATION_NAME}_emulation): Use new after_open function.
	* ld.texinfo, ld.1: Mention -rpath-link on SunOS.
1995-10-17 22:36:25 +00:00
Ian Lance Taylor
b5f076d4aa * configure.tgt (powerpc-*-aix*): New target; use aixppc.
(rs6000-*-aix*): New target; use aixrs6.
	* emulparams/aixppc.sh, emulparams/aixrs6.sh: New files.
	* emultempl/aix.em: New file.
	* scripttempl/aix.sc: New file.
	* Makefile.in (ALL_EMULATIONS): Add eaixppc.o and eaixrs6.o.
	(eaixppc.c, eaixrs6.c): New targets.
1995-10-16 23:19:04 +00:00
Ian Lance Taylor
776f259038 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
bother searching for needed libraries unless doing a final link.
1995-10-07 21:09:57 +00:00
Ian Lance Taylor
8055e7a883 * emultempl/elf32.em (global_stat): New file static variable.
(gld${EMULATION_NAME}_try_needed): Call stat_needed to make sure
	that the file has not already been included under another name.
	(gld${EMULATION_NAME}_stat_needed): New static function.
1995-10-02 17:59:14 +00:00
Ian Lance Taylor
5753006bf0 * lexsup.c (parse_args): Handle -assert.
* emulparams/sun4.sh (GENERATE_SHLIB_SCRIPT): Define.
	* emultempl/sunos.em (gld${EMULATION_NAME}_get_script): Use the
	shared library script when appropriate.
	* scripttempl/aout.sc: If CREATE_SHLIB is set, start the .text
	section at SIZEOF_HEADERS.
1995-09-28 16:36:34 +00:00
Ian Lance Taylor
57aa2887e8 Revert Linux directory searching: it turns out that Linux no longer
uses it.
1995-09-11 15:04:49 +00:00
Ian Lance Taylor
ed753c2049 Add Linux style directory searching.
* configure.tgt: Add i386lelf to targ_extra_emuls for
	i[345]86-*-linuxaout* and i[345]86-*-linuxoldld.  For
	i[345]86-*-linux*, set targ_emul to i386lelf, and add elf_i386 to
	targ_extra_emuls.
	* emulparams/i386lelf.sh: New file, a copy of elf_i386.sh.
	* emultempl/elf32.em: If TARGET_IS_i386lelf, use autoconf
	recommended mechanism to define DIR and struct dirent.
	(libcmp): New static function use only when TARGET_IS_i386lelf.
	(gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
	* Makefile.in (ALL_EMULATIONS): Add ei386lelf.o
	(ei386lelf.c): New target.
1995-09-08 23:37:45 +00:00
Ian Lance Taylor
b8345a37ac * configure.in: Call AC_HEADER_DIRENT.
* configure, config.in: Rebuild.
	* emultempl/sunos.em: Use autoconf recommend mechanism to define
	DIR and struct dirent.
1995-09-08 21:11:40 +00:00
Ian Lance Taylor
d66c832b59 * configure.in: Rewrite to use autoconf.
* configure.host: New file.
	* configure.tgt: New file.
	* aclocal.m4: New file.
	* configure: New file, built by autoconf.
	* acconfig.h: New file.
	* config.h.in: New file, built by autoheader.
	* sysdep.h: New file.
	* ld.h: Incorporate old contents of config.h.
	* config.h: Remove.
	* Makefile.in: Various changes for new configure script.  Also:
	(CC_FOR_BUILD): Remove.
	(ldmain.o): Don't bother to ensure that EMUL is non-empty.
	(dep.sed): Use @SRCDIR@, not @srcdir@.
	* dep-in.sed: Use @SRCDIR@, not @srcdir@.
	* genscripts.sh: Create ldscripts if it does not exist.
	* ldemul.c, lexsup.c, mpw-emipsidt.c: Don't include "config.h".
	* mpw-esh.c, emultemp/*.em: Likewise.
	* ldmain.c: Likewise.  Include <ctype.h>.  Don't try to set
	HAVE_SBRK here.
	* config/*.mt, config/*.mh: Remove.
1995-09-06 18:58:05 +00:00