mri.o, relax.o): Indicate dependence on ldgram.h.
* ld.h (strip_symbols_type): Add value STRIP_SOME.
* ldgram.y (OPTION_RETAIN_SYMBOLS_FILE): New terminal token.
(lang_add_keepsyms_file): New function.
* ldlex.l: Handle "-retain-symbols-file".
* ldsym.c (keepsyms_file, kept_syms): New vars.
(process_keepsyms): New functihon; reads file, marks symbols for saving.
(write_file_locals): File symbols should always be kept.
(ldsym_write): Warn about "-retain-symbols-file" overriding "-S" and "-s".
Process retain-symbols file before setting symtab.
* ldsym.h (SYM_KEEP): New flag for ldsym_type flags.
(keepsyms_file, kept_syms): Declare them.
* ldmain.c (main): Non-fatal errors should still cause non-zero exit status
even with -r.
Added initial support for the z8k
* z8ksim.em, z8ksim.sc-sh, z8ksim.sh: new files
* configure.in, Makefile.in: modified to reflect above
* ldlang.c (lang_check): when linking conflicting architectures,
make the output file reflect at least one of the bad inputs.
please let me know, or plug them in yourself.
Wed Sep 9 11:52:58 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in, m68kcoff.sh, m68kcoff.sc-sh, config/m68k-coff.mt:
added m68k-coff emulation mode, stolen from a29k emulation.
Almost certainly wrong, but perhaps better than sun3.
please let me know, or plug them in yourself.
Wed Sep 9 11:52:58 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in, m68kcoff.sh, m68kcoff.sc-sh, config/m68k-coff.mt:
added m68k-coff emulation mode, stolen from a29k emulation.
Almost certainly wrong, but perhaps better than sun3.
Also fixed an error message in configure.in so that it started with
'***' like the other error messages do.
gld960.em, h8300hms.em, h8300xray.em, lnk960.em, st2000.em,
vanilla.em: Rename all (generated) ld__*.c files to em_.c.
This is one character shorter, and lets people build on
SVR3 system. (ld__h8300xray.[co] was the killer there;
h8300xray.sc-sh is also overlong, but seems harmless.)
Based on a patch from Jonathan Ryshpan <hitachi!amito!jon>.
* Makefile.in (clean): Fix typo mostclean -> mostlyclean.
* configure.in: Add host isc.
abs_output_section is what is required.
* ldwrite.c (ldwrite): use malloc to allocate the largest space
used, and pass that down.
* relax.c,relax.h (write_relaxnorel): use the passed malloc area rather
than alloca.
Tue Aug 18 13:41:36 1992 Ian Lance Taylor (ian@cygnus.com)
* configure.in: accept all m68K family members.
* Makefile.in: always create installation directories.
(1) reflect current name of linker (now "ld", not "gld");
(2) fill in missing portion of a reference to full manual;
(3) fix old random typo spotted while proofing above.
chars in filenames
* ldexp.c (exp_unop): pass down abs_output_section - now can have
unary -ve constants.
* ldlang.c (lang_finish): warn when an entry symbol supplied on
the command line can't be found.
* ldlang.c (lang_output_section_statement_lookup): initilize new
field. (wild_doit): if new field is not set, then stop output
section from being loadable.
(lang_enter_output_section_statement): set the field from the
NOLOAD keyword
* ldgram.y: new synax for NOLOAD. Removes a shift/reduce too.
* h8300hms.sc-sh, h8300hms.em: get -r right.
(size_input_section): maintain the delta information.
* ldlang.h: add new field to struct to contain delta info.
* relax.c (relax_section): complain if input not relaxable.
* ldlex.l : add '_', ',' and '$' to chars which can appear at the
start of a filename
* ldexp.c: lint
* ldlang.c(open_output): set the target arch and machine as soon
as we can. (lang_size_sections): use new macros for setting vma
* ldwrite.c: lint
of YACC (since it is not longer used in the Makefile).
Remove HOSTING_* definitions that are subsumed by the
ones added to Makefile.in. Removed most definitions of CC.
* config/{sparc,news,hp300bsd,decstation}.mh: Removed;
These are no longer needed.
rules, since these are used when building a distribution.
* Makefile.in (ldlex.c): Don't re-direct output, since that
leaves a bogus output files if it fails.
* ldexp.c, ldlang.c, ldmain.c: reflect this
* ldver.c: bump version to 1.97.1
* ldindr.c (add_indirect): when an edict declaring an indirect
symbol is found, make sure that any ideas about the symbol being
common are changed if it now known to be defined.
* ldmain.c (linear_library): complain once if archive isn't
ranlibbed.
* ldlang.h, ldlang.c: make room for and initialize the complain
once field.
* 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
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.
magic to converts scripts, since that is now handled
by genscripts.sh and the *.sc-sh scipt generators.
* config.h: Remove a bunch of macros defining emulations
and targets. This becomes one less file to edit when
adding emulations or targets.
* ldemul.h (struct ld_emulation_xfer_struct): Add
emulation_name and target_name fields.
* ldemul.c, ldemul.h: Define some default functions used
by most emulations (and remove from the *.em scripts).
* ldemul.c (ldemul_choose_target): Search the new
ld_emulations array using a loop (instead of a hardwired
nested if statement).
Define the ld_emulation from the automatically-geenrated
ldemul-list.h. This means you no longer have to edit ldemul.c
to add a new emulation.
* ldmain.c: Replace {GLD,LNK}960_EMULATION_NAME by
their expansions, since the former no longer exist.
* PORTING: A very rough first draft of a porting guide.
to EMUL=foo. (The GLDFOO_EMULATION_NAMEs have bee removed.)
* config/mh-foo: Rename LDEMULATION names as appropriate
(usually 'gldfoo' -> plain 'foo').
is to use shell scripts to generate everything.
* Each emulation is defined by a short shell script with
extension *.sh that specifies the emulation-specific
parameters (such as the name of the *.sh-sc and *.em
files to use).
* genscript.sh is the master shell script used to generate
an emulation. It is passed various argument, including
the name a the emulation-speciic *.sh file that it
"sources" to set variables to emulation-specifc parameters.
is to use shell scripts to generate everything.
* generic.em replaces ldtemplate.
* Other *.em files replace various *.c files.
A *.em file is a shell script that generates the corresponding
ld__*.c file that implements an emulation. This is usually
a straight 'cat' of a here-document, possibly with substitutions.
* Script files (*.sc) are places by *.sc-sh scripts.
Again, these are simple shell scripts that 'cat'
here-documents, usually with some substitutions.
The output a *.sc-sh is a script file.
* ldmain.c: quit using exit
* *.sc: use *(COMMON) rather than [COMMON]
* ldlex.l, lexsup.c: much thinking moved from .l and put into .c,
to allow preprocessing of .l file.
* Makefile.in: New ldlex.l mangling
* ldexp.c (fold_binary): perform expressions with % and / in
integer.
* ldfile.c (open_a): open archives on VMS in a special way
* lderror.c: forgot to check in from a long while ago
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
(2) restructure machine dependencies into separate chapter
(3) replace pretty, but quick to become obsolete, graph of BFD platforms
vs architectures with extended excerpt from (and ref to ) objdump -i.
* ldfile.c: include ctype.h
* ldmain.c: include the requried prototype headers
* ldwrite.c: get_reloc_upper_bound has been renamed
bfd_get_reloc_upper_bound
* Makefile.in: punt "fundamental" mode because it breaks my emacs
macros. install using INSTALL_PROGRAM and INSTALL_DATA. remove
spaces following hyphens, bsd make can't cope. added
standards.text support and made it look like all the other
makefiles.
* configure.in: configure now runs entirely in objdir so make file
existence checks against ${srcdir}. Mark this directory as
target dependent.
Thu Dec 5 22:46:16 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* Makefile.in: idestdir and ddestdir go away. Added copyrights
and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
and mandir now keyed off datadir by default.
parameter, a format, and an arg pointer, and rename it to
vfinfo(). Write info() in terms of new vfinfo().
New einfo() is the same as info(), except it writes to stderr.
* ldemul.c, ldexp.c, ldlang.c, ldlnk960.c, ldmain.c, ldwrite.c,
ldmisc.c: Replace "error" calls to info() by new einfo().
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.
* ldtemplate: Add (yet another) script to get for -n or -N
options. (These need different alignment than ZMAGIC files.)
* Makefile.in: Add stuff for new foo.xn scripts.
These are generated by replacing "ALIGN(0x...00)" by ".".
by default. Don't the WP_TEXT and D_PAGED flags of
output_bfd here; it's too late, so set it when output_bfd
is created (in ldlang.c). Also fix setting of EXEC_P flag
* ldlang.c (ldlang_open_output): Set output_bfd->flags here.
* ldlang.c: Remove some duplicate extern declarations.
* ldgram.y: Fixes to -N and -n options.
* Makefile.in: Recognize upper case letters in sed script
to remove assignments from script files.
* ldtemplate: Don't assukme that -N or -n options
imply use of -r script.
* mkscript.c: Tweaking to correctly handle \n and \\ in input.