David MacKenzie
ae9c800701
* emulparams/i386mach.sh (NONPAGED_TEXT_START_ADDR): Don't include
...
exec header offset, since the exec header isn't loaded.
(PAGE_SIZE, SEGMENT_SIZE): Agree with bfd/i386mach3.c.
1993-12-31 21:13:03 +00:00
David MacKenzie
4156620964
minor fixes
1993-12-31 21:08:12 +00:00
Ian Lance Taylor
93b135859d
Removed files that are no longer used by the rewritten linker.
1993-12-30 19:57:49 +00:00
Ian Lance Taylor
4a6afc88bb
A major rewrite to move the bulk of the linker into BFD so that
...
more efficient backend code can be written for specific object
files.
* lderror.c, lderror.h, ldindr.c, ldindr.h, ldsym.c, ldsym.h,
ldwarn.c, ldwarn.h, relax.c, relax.h: Removed.
* ldctor.c, ldctor.h: Complete rewrite.
* ldwrite.c, ldwrite.h: Complete rewrite.
* ld.h (strip_symbols_type, strip_symbols): Removed. Use
link_info.strip instead. Changed all uses.
(discard_locals_type, discard_locals): Removed. Use
link_info.discard instead. Changed all uses.
(ld_config_type): Removed relocateable_output field; use
link_info.relocateable instead; changed all uses. Added stats
field.
(set_asymbol_chain, get_asymbol_chain, get_loader_symbol,
set_loader_symbol): Removed.
* ldexp.h (node_class): Added etree_rel.
(etree_type): Added rel field.
* ldexp.c (exp_print_token): Bracketed table initialization.
(exp_relop): New function.
(fold_name): Use linker hash table rather than ldsym functions.
(exp_fold_tree): Likewise. Also, handle etree_rel case.
(exp_print_tree): Handle etree_rel.
* ldgram.y (strip_symbols, discard_locals): Removed.
(OPTION_stats, OPTION_no_keep_memory): New tokens. Handle them.
(REL): New token. Does not appear in grammar, but needed for
expression code.
(file): Don't call lang_final; it's called by main anyhow.
* ldlex.l: Accept -stats and -no-keep-memory options.
* ldlang.h (fill_type): Make unsigned int, not unsigned short.
* ldlang.c: Consistently use fill_type for fill argument.
(lang_init_script_file, script_file): Removed.
(create_object_symbols): Removed. Use
link_info.create_object_symbols_section instead. Changed all
uses.
(lang_add_keepsyms_file): Removed.
(lookup_name): Call bfd_link_add_symbols instead of
ldmain_open_file_read_symbol.
(wild): Don't iterate over script_file.
(open_output): Create link hash table.
(lang_place_undefineds): Rewrote.
(lang_size_sections): Handle relaxing (doesn't work yet).
(lang_relocate_globals): Removed.
(lang_finish): Use link hash table rather than ldsym functions.
(lang_common): Rewrote.
(lang_one_common): New function.
(ldlang_add_file): Add file to link_info.input_bfds list. Set
usrdata.
(create_symbol): Removed.
(lang_process): Don't call lang_init_script_file. Call
ldctor_build_sets rather than find_constructors. Don't call
lang_relocate_globals.
(lang_abs_symbol_at_beginning_of): Rewrote.
(lang_abs_symbol_at_end_of): Rewrote.
* ldmain.c (had_y): Removed.
(lprefix, lprefix_len): Removed; use link_info fields instead.
Changed all uses.
(multiple_def_count, commons_pending, undefined_global_sym_count,
total_symbols_seen, total_files_seen): Removed.
(link_callbacks, link_info): New variables.
(main): Initialize link_info. Don't call init_bfd_error_vector or
ldsym_init. Don't set now unused variables. Handle -stats.
(get_emulation): Removed obsolete and nonfunctional GNU960 code.
(add_ysym): Rewrote.
(read_entry_symbols, refize, enter_global_ref, enter_file_symbols,
search_library, gnu960_check_format, decode_library_subfile,
linear_library, symdef_library, clear_syms, subfile_wanted_p):
Removed.
(add_keepsyms_file, add_archive_element, multiple_definition,
multiple_common, add_to_set, warning_callback, undefined_symbol,
reloc_overflow, reloc_dangerous, unattached_reloc, notice_ysym):
New functions.
* ldmisc.c (vfinfo): Accept a string for %T, not a symbol. Don't
require symbols for %C; look them up instead.
* emultempl/hppaosf.em: Pass link_info to
hppa_look_for_stubs_in_section.
* Makefile.in: Rebuilt dependencies.
(CFILES): Removed lderror.c, ldindr.c, ldsym.c, ldwarn.c, and
relax.c.
(HFILES): Removed lderror.h, ldindr.h, ldsym.h, ldwarn.h, and
relax.h.
(EMULATION_OFILES): Depend on bfdlink.h, ldmain.h, ldexp.h,
ldlang.h and ldctor.h.
* Makefile.in (ldlex.c): Don't depend on ldgram.h. Remove
declarations of free and malloc from flex output. Change malloc
to ldmalloc in flex output.
1993-12-30 19:51:41 +00:00
Mark Eichin
f2f824ae57
* config/i386-linux.mt: delete ".sh" from genscripts argument
...
(change made to genscripts on July 21...)
This is all it took for linux-native ld to build. It isn't necessarily useful,
particularly as gcc is still configured to pass -m486 and -dll-verbose, which
this ld doesn't parse...
1993-12-27 19:39:55 +00:00
Jeff Law
93df4ec5fe
* ldmain.c (lprefix): Change default from a char to a string
...
with only one character.
(lprefix_len): Set default to one.
* ldmain.h (lprefix_len): Declare.
* ldsym.c (write_file_locals): Use strncmp rather than a character
comparison for lprefix.
* emultmpl/m88kbcs.em (before_parse): Set lprefix and lprefix_len
correctly.
* emultmpl/hppaosf.em: Include ldexp.h.
(before_parse): Set lprefix and lprefix_len correctly.
1993-12-17 05:21:33 +00:00
Ian Lance Taylor
553b002162
* ldlex.h: Don't declare yywrap if it is a macro.
...
* ldlex.l: Include sysdep.h.
1993-12-14 22:34:41 +00:00
Ian Lance Taylor
498fbd3c56
* ldlang.c (lang_for_each_statement_worker,
...
lang_for_each_statement): Forgot to use PARAMS.
1993-12-14 22:20:35 +00:00
Ian Lance Taylor
1400cdc51d
* Makefile.in: Added .PHONY targets where appropriate. Added some
...
comments. Also:
(gcclibdir, version): Removed unused variables.
(DEP): New variable, set to mkdep.
(ALL_CFLAGS): New variable. Used in .c.o target.
(CFILES, HFILES, GENERATED_CFILES, GENERATED_HFILES): New
variables.
(HEADERS, MANSOURCES, LDCSOURCES, GENERATED_SOURCES,
GENERATED_HEADERS, LDSOURCES, BFD_SOURCES, SOURCES): Removed
mostly obsolete variables. Adjusted remaining uses.
(DEF_EMUL): Removed variable.
(ldmain.o): Handle undefined EMUL error correctly.
(ldemul-list.h): Depend on config.status rather than Makefile.
Create via temporary file.
(ver960.c, roll, make): Removed obsolete targets.
(.dep, .dep1, dep.sed, dep, dep-in): New targets. Used to rebuild
dependencies.
1993-12-13 19:46:45 +00:00
Ian Lance Taylor
f80837391e
New file used for rebuilding dependencies.
1993-12-13 19:37:22 +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
2c6635a46f
* ldlang.c (lang_process): Ifdef out final call to
...
lang_size_sections again (reverting change of Nove 2), since it
breaks the Sun4 linker.
1993-12-11 22:46:15 +00:00
Ian Lance Taylor
8e964b071d
* ldgram.y (OPTION_Oval): New token.
...
(command_line_option): Accept and ignore it.
* ldlex.l (<COMMAND>): Handle -On where n is a number.
1993-12-02 00:25:48 +00:00
Ken Raeburn
d05ac46bc6
* configure.in: Group targets by CPU. Merge some m68k target entries with
...
different CPU specs that use the same ld_target values.
* configure.in: Add sparc*-*-coff.
* config/coff-sparc.mt, emulparams/coff_sparc.sh: New files.
* Makefile.in (ALL_EMULATIONS): Add em_coff_sparc.o.
(em_coff_sparc.c): Add dependencies and build rules.
1993-12-01 22:14:05 +00:00
Ken Raeburn
9acba7e204
New file for bare sparc-coff support.
1993-12-01 22:12:20 +00:00
Ian Lance Taylor
f651733a12
* ldgram.y (OPTION_call_shared, OPTION_non_shared): New tokens.
...
(command_line_option): Accept and ignore them (for now).
* ldlex.l (<COMMAND>): Handle -non_shared and -call_shared.
1993-12-01 17:22:03 +00:00
Ian Lance Taylor
2332114c71
* configure.in (mips*-sgi-irix5*): New target. Use mipsb-elf32.
...
* emulparams/elf32mipsb.sh (DATA_ADDR): Define.
(OTHER_READONLY_SECTIONS): Define for .reginfo.
(EXECUTABLE_SYMBOLS): Define for _DYNAMIC_LINK.
* scripttempl/elf.sc: Use EXECUTABLE_SYMBOLS when not relocating.
Move OTHER_READONLY_SECTIONS after all the other readonly
sections. Don't use DATA_ADDR twice.
1993-11-19 19:31:51 +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
Sean Eric Fagan
b4a79a1600
Use sun4sol2 for a target of sparc-netware.
1993-11-17 22:20:44 +00:00
Stan Shebs
dd3f0e5b7d
More correct m68k LynxOS support
1993-11-12 00:37:00 +00:00
David Henkel-Wallace
b11b3aceb2
netware target support.
1993-11-08 14:28:46 +00:00
David MacKenzie
2ccb88c0d6
correct mach3 values
1993-11-06 05:51:14 +00:00
Ken Raeburn
1a9f0c717f
adjusting repository after cvs mixup
1993-11-05 20:35:15 +00:00
Ken Raeburn
87ce76559c
First cut at sanitization, doc files, &c for gas/binutils releases
1993-11-05 19:21:35 +00:00
Ken Raeburn
4ecfad7942
Fix up dependencies and rules for ld.dvi, ld.info.
1993-11-04 00:09:39 +00:00
Ken Raeburn
3c1af24dd5
* Makefile.in (distclean): Don't get rid of dvi or info files.
1993-11-03 23:09:24 +00:00
David MacKenzie
3c292c5a46
make -o override OUTPUT
1993-11-03 21:19:18 +00:00
Roland Pesch
8920addc82
Fixed minor typo ("host" sb "target" in discussion of GNUTARGET).
...
To my shame, this was reported 28 aug 92 by Jonathan Ryshpan, and lost
in my mail pile til now.
1993-11-03 00:09:34 +00:00
Jeff Law
f1f6b5e9cf
* scripttempl/hppaosf.sc: (___stack_zero, etext, _etext,
...
edata, _edata, end): Add definitions of these symbols.
(__end): Remove definition of this symbol.
(__data_start): Move definition of this symbol.
1993-11-02 23:59:24 +00:00
Jeff Law
5f62613e11
* emultempl/hppaosf.em: Various fixes and support for linker stub
...
generation.
(hppaosf_finish, hppaosf_search_for_padding_statements,
hppaosf_create_output_section_statements): New functions in
support of linker stub generation.
(ld_hppaosf_emulation): Redefine to include new
emulation-specific routines.
1993-11-02 23:55:58 +00:00
Jeff Law
9d9d72fcf5
* emultempl/hppaosf.em: Various fixes and support for linker stub
...
generation.
(hppaosf_finish, hppaosf_search_for_padding_statements,
hppaosf_create_output_section_statements): New functions in
support of linker stub generation.
(ld_hppaosf_emulation): Redefine to include new
emulation-specific routines.
1993-11-02 23:54:04 +00:00
Jeff Law
97fbbaca20
* ldlang.c (lang_process): Re-enable last call lang_size_sections.
...
Pass abs_output_section rather than NULL to avoid invalidating
absolute symbols.
1993-11-02 23:47:41 +00:00
Stan Shebs
278d569a2a
Keep Lynx file
1993-11-01 19:27:15 +00:00
Stan Shebs
9798d9bf47
Keep Sparc file
1993-11-01 19:25:39 +00:00
David MacKenzie
46cc3ed169
mach 386 changes
1993-10-29 19:30:11 +00:00
David MacKenzie
4fda44fe17
test
1993-10-29 19:15:57 +00:00
Ian Lance Taylor
c3b34cfd3b
* ld.h (flag_is_*): Removed macros.
...
* ldmain.c (enter_global_ref), ldsym.c (write_file_locals):
Consistently check the BFD symbol flags directly, rather than
using file_is_* macros.
1993-10-29 19:02:26 +00:00
Stan Shebs
1ffcbc2511
Sparc COFF support
1993-10-29 02:39:41 +00:00
Stan Shebs
7b95fe96ef
Sparc Lynx support
1993-10-29 02:39:07 +00:00
David MacKenzie
da08e9b96c
clarify reason for -sort-common
1993-10-29 00:30:51 +00:00
Ian Lance Taylor
d17eb3db0e
* Makefile.in: Add dependency for $(EMULATION_OFILES).
1993-10-28 18:09:20 +00:00
Ian Lance Taylor
db4b5ad081
* relax.c (write_relax): Check return value of bfd_seclet_link.
1993-10-25 20:10:35 +00:00
Ken Raeburn
2fe6619ee0
* ldlang.c (delete_output_file_on_failure): New variable.
...
(open_output): Set it after bfd open succeeds.
* ldmisc.c (vfinfo): Test it.
Changes from Peter Hoogenboom, hoogen@cs.utah.edu:
* ldsym.c (write_file_locals): Set the BSF_FILE flag for object symbols.
* ldemul.c: Support was added to allow emulation-specific processing to occur.
This support was added primarily for linker stub generation in the elf32-hppa
gld.
(ldemul_finish, ldemul_create_output_section_statements): New functions.
* ldemul.h: Support was added to allow emulation-specific processing to occur.
(As described above.) Added finish and create_output_section_statements fields
to ld_emulation_xfer_struct structure.
* ldlang.c: Add calls to emulation-specific routines.
(lang_process): Add call to ldemul_create_output_section_statements function.
(lang_process): Add call to a emulation-specific routine (and
some processing after the call).
1993-10-25 16:35:23 +00:00
Ian Lance Taylor
1c4b3cda62
* configure.in (alpha-*-osf*): New target; use alpha.mt.
...
* Makefile.in (ALL_EMULATIONS): Added em_alpha.o.
(em_alpha.c): New target; use alpha.sh and alpha.sc.
* config/alphaosf.mh (NATIVE_LIB_DIRS, HOSTING_CRT0): Define.
* config/alpha.mt: New file.
* emulparams/alpha.sh: New file.
* scripttempl/alpha.sc: New file.
1993-10-19 19:55:52 +00:00
Ian Lance Taylor
42f9673d8b
New files for Alpha linker.
1993-10-19 19:52:33 +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
Ian Lance Taylor
98b5caadf3
* ldmain.c (enter_global_ref): Just ignore any weak symbol for
...
which we already have a definition, rather than checking in
several different places whether the symbol is weak.
1993-10-13 20:04:30 +00:00
Ian Lance Taylor
a71da76017
* configure.in (mips-*-elf*): New target; use mipsb-elf32.
...
* scripttempl/elf.sc: Only use OTHER_READONLY_SECTIONS and
OTHER_READWRITE_SECTIONS if relocating. Shell variables are not
expanded within them.
* config/mipsb-elf32.mt: New file.
* emulparams/elf32mipb.sh: New file.
* Makefile.in (em_elf32mipb.c): New target.
1993-10-12 21:46:52 +00:00
Ian Lance Taylor
f1d043f50f
elf32mipb.sh: New emulation parameter file for big endian MIPS ELF.
1993-10-12 21:36:05 +00:00