* Removed sy_forward and replaced it with an undefined expression
[deliverable/binutils-gdb.git] / gas / ChangeLog
index b5175aafb883400c452b40ece6d76819ecfc1c59..87b2827cbe3bd5daf7e9c68e048aaa70322b947e 100644 (file)
@@ -1,3 +1,424 @@
+Wed Jul 14 15:09:32 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+       * Removed sy_forward and replaced it with an undefined expression
+       as the value of a symbol.
+       * struc-symbol.h (struct symbol): Removed sy_forward field.  Added
+       sy_resolved and sy_resolving single bit fields.
+       * symbols.c (symbol_new): Don't initialize sy_forward field.
+       (resolve_symbol_value): New function to adjust symbol value by
+       fragment address, using recursion to resolve forward symbols.
+       * symbols.h: Added prototype for new function.
+       * read.c (pseudo_set): Set symbolP->sy_value to an undefined
+       expression rather than setting symbolP->sy_forward.
+       * write.c (write_object_file): Use resolve_symbol_value on
+       symbols, keeping the common case (the old behaviour) inline.
+       * config/obj-aout.c (obj_aout_frob_symbol): Removed sy_forward
+       handling (subsumed by write.c change).
+       * config/obj-coff.c, config/obj-coffbfd.c (obj_coff_val): Set
+       sy_value rather than sy_forward.
+       * config/obj-coffbfd.c (obj_coff_endef, yank_symbols): Check
+       expression segment rather than sy_forward.
+       (yank_symbols): Use resolve_symbol_value.
+       (crawl_symbols): Removed extra pass over symbols.
+       * config/obj-aout.c, config/obj-bout.c, config/obj-coff.c,
+       config/obj-vms.c (obj_crawl_symbol_chain): Removed extra pass over
+       symbols which handled sy_forward; use resolve_symbol_value
+       instead.
+       * config/obj-coff.h, config/obj-coffbfd.h (obj_frob_forward_symbol):
+       Define.
+       * config/obj-elf.c (obj_elf_stab_generic): Check expression
+       segment rather than sy_forward.
+       * config/obj-vms.c (VMS_Check_For_Main): Don't initialize
+       sy_forward; do initialize sy_resolved and sy_resolving.
+       * config/tc-hppa.h (STAB_FIXUP): Use sy_value, not sy_forward.
+
+       * Changes to keep a full expression as the value of a symbol, not
+       just a longword:
+       * struc-symbol.h: New field sy_value.
+       * as.h: Include expr.h before struc-symbol.h.
+       * expr.h: Use struct symbol rather than symbolS.
+       * symbols.c (S_GET_VALUE, S_SET_VALUE): Rewrote to retrieve value
+       of sy_value field; compile unconditionally, not just if
+       BFD_ASSEMBLER.
+       * symbols.h: Compile S_{SG}ET_VALUE prototypes unconditionally.
+       * write.c (write_object_file): Set BFD symbol value to gas symbol
+       value.
+       * config/obj-aout.h, config/obj-bout.h, config/obj-coff.h,
+       config/obj-coffbfd.h, config/obj-generic.h, config/obj-vms.h
+       (S_GET_VALUE, S_SET_VALUE): Removed macro definitions.
+       * config/obj-ieee.c (S_GET_VALUE, S_SET_VALUE): Removed.
+       * config/obj-coff.h, obj-coffbfd.h: Rewrote several macros to use
+       S_GET_VALUE rather than ost_entry.n_value.
+       * config/obj-aout.c (obj_symbol_to_chars), config/obj-bout.c
+       (obj_symbol_to_chars), config/obj-coff.c (obj_symbol_to_chars),
+       config/obj-coffbfd.c (symbol_to_chars): Get value to write out
+       using S_GET_VALUE--don't assume it is already set.
+       * config/obj-ieee.c (do_symbols): Set BFD symbol value to gas
+       symbol value.
+       * config/obj-vms.c (various): Don't assign directly to
+       S_GET_VALUE; use S_SET_VALUE instead.
+
+Wed Jul 14 09:35:23 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+       * configure.in: Recognize h8300h.
+
+Tue Jul 13 12:09:44 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
+
+       * config/tc-h8500.c (line_comment_chars): Add hash.
+       (parse_exp, skip_colonthing, build_bytes): Add support for
+       R_H8500_HIGH16 relocation type.
+
+Mon Jul 12 11:15:34 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
+
+       * config/obj-elf.c (obj_elf_section): Allow `@' to introduce an
+       attribute name.  Handle `execinstr' attribute.
+
+Mon Jul 12 07:22:28 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * config/tc-mips.c (mips_ip): Don't warn on 'i' or 'j' mismatch if
+       there is another alternative for the instruction.
+
+Fri Jul  9 17:31:34 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+
+       * doc/as.texinfo: updates for H8/300H
+
+Thu Jul  8 14:41:43 1993  Mark Eichin  (eichin@cygnus.com)
+
+       * config/tc-i960.c (md_create_short_jump, md_create_long_jump,
+       md_number_to_chars, md_section_align): Adjusted to use valueT,
+       addressT, to match tc.h.
+
+Thu Jul  8 14:15:05 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+       * config/tc-sparc.c (s_common): Revamp to handle both syntaxes,
+       independent of format.
+
+Thu Jul  8 07:25:25 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+       * config/tc-h8300.h (TC_CONS_RELOC): Use R_RELLONG if h8/300h.
+
+Wed Jul  7 18:11:07 1993  david d `zoo' zuhn  (zoo at rtl.cygnus.com)
+
+       * configure.in: define CROSS=-DCROSS_COMPILE if it is a cross
+       build; also recognize h8300-*-coff
+
+Wed Jul  7 10:21:24 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * symbols.c (fb_label_instance, fb_label_instance_inc): Don't dump
+       core just because somebody uses a label before it is defined.
+
+       * config/mips-opcode.h: Moved to opcode/mips.h.
+       * config/tc-mips.c: Include opcode/mips.h rather than
+       mips-opcode.h.
+       (append_insn): An extra NOP is only needed after instructions
+       which set HI or LO, not after instructions which read it.
+       (macro_build, mips_ip): Support new 'E', 'G' and 'B' arguments.
+       (macro): cfc1 and ctc1 now take "t,G" rather than "t,d".
+       * config/tc-mips.h (struct mips_opcode): Don't define.
+       * config/mips-big.mt, config/mips-lit.mt (TARG_CPU_DEPENDENTS):
+       Set to $(srcdir)/../include/opcode/mips.h.
+
+       Get the MIPS assembler up to speed with other gas changes:
+
+       * config/obj-ecoff.c (ecoff_set_vma, ecoff_frob_symbol):
+       Removed; don't change the symbol value.
+       (ecoff_build_symbols, ecoff_build_procs, ecoff_frob_file): Use
+       bfd_asymbol_value rather than S_GET_VALUE to include section
+       vma in symbol value.
+       (ecoff_frob_file): Ignore BSF_SECTION_SYM symbols, since ECOFF
+       doesn't output them.  Set the vma of sections.
+       * config/obj-ecoff.h: Don't define obj_frob_symbol.
+       * config/tc-mips.c (tc_gen_reloc): Adjustment by section vma is no
+       longer necessary.
+       (various): use valueT rather than long.
+
+Wed Jul  7 08:33:30 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+       * as.h (valueT): Typedef moved here.
+       * struc-symbol.h (valueT): ...from here.
+       * write.c (write_object_file): Locals from_addr, to_addr,
+       table_addr are now addressT.  Supply prototype for bfd_alloc for
+       now.
+       (fixup_segment): Local add_number is now valueT.  Correct some
+       range-checking bugs.
+       (relax_align): Type `int' should be sufficient for the exponent.
+       (fix_new): Argument offset is type offsetT.  Locals size and
+       newsize are type valueT.
+       * write.h (struct fix): Fields fx_offset and fx_addnumber are now
+       type valueT.
+       (fix_new): Fix prototype.
+       * symbols.c (symbol_new): Symbol value is type valueT.
+       (S_SET_VALUE, S_GET_VALUE): Likewise.
+       (S_IS_*): Specify int return type explicitly.
+       * symbols.h (symbol_new, S_GET_VALUE, S_SET_VALUE): Fixed
+       prototypes.
+       * read.c (s_comm): Values read are type valueT.
+       * expr.h (expressionS): Field X_add_number is an offsetT.
+       * tc.h (md_create_long_jump, md_create_short_jump,
+       md_section_align): Addresses are now type addressT.
+       (md_number_to_chars, md_apply_fix): Pass value as valueT.
+       * config/tc-i386.c (md_create_short_jump, md_create_long_jump,
+       md_number_to_chars, md_section_align): Adjusted.
+       * config/tc-sparc.c (sparc_ip): Initialize `len' variable to make
+       gcc shut up.
+       (md_create_short_jump, md_create_long_jump, md_number_to_chars,
+       md_section_align): Adjusted.
+
+       * config/tc-sparc.c (s_reserve): Permit use for other than a.out
+       format.
+       (s_common): Handle Solaris-2 version.
+
+       * config/ho-generic.h (free): Returns void if __STDC__.
+
+       * config/obj-elf.h (obj_elf_frob_symbol, elf_frob_file,
+       elf_file_symbol): Declare.
+
+       * expr.c (floating_constant, integer_constant): Now return void.
+
+Thu Jul  1 12:13:43 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * configure.in: Match on sparc*-fujitsu-none rather than
+       sparclite*-fujitsu-none.
+
+Wed Jun 30 11:12:02 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * read.c (cons): Conditionalize parsing of expression.  Move
+       putting value into object file into separate function.  Separate
+       out MRI and WANT_BITFIELDS cases into separate functions.
+       (emit_expr): New function to write data into object file.
+       Conditionalize on TC_CONS_FIX_NEW and TC_CONS_RELOC rather than on
+       processor types.
+       (parse_bitfield_cons): New function to parse bitfield expressions
+       as used by i960 assemblers.  Only compiled if
+       BITFIELD_CONS_EXPRESSIONS is defined.
+       (parse_mri_cons): New function to parse MRI style strings.  Only
+       compiled if MRI is defined.
+       (parse_repeat_cons): New function to parse repeat counts.  Only
+       compiled if REPEAT_CONS_EXPRESSIONS is defined.
+       * read.h (emit_expr): Added declaration of new function.
+       * config/tc-a29k.h (TC_CONS_RELOC): Define to be RELOC_32.
+       * config/tc-h8300.h (TC_CONS_RELOC): Define to be R_RELWORD.
+       * config/tc-hppa.c (parse_cons_expression_hppa): New function to
+       parse a HPPA expression, rather than special case in cons
+       function.
+       (cons_fix_new_hppa): New function to emit an HPPA fixup, rather
+       than special case in emit_expr function.
+       * config/tc-hppa.h (TC_PARSE_CONS_EXPRESSION, TC_CONS_FIX_NEW):
+       Define to use new functions from tc-hppa.c.
+       * config/tc-i960.h (BITFIELD_CONS_EXPRESSIONS): Define.
+       (WANT_BITFIELDS): Removed; now obsolete.
+       * config/tc-mips.h (REPEAT_CONS_EXPRESSIONS): Define.
+       * config/tc-ns32k.c (cons_fix_new_ns32k): New function to emit an
+       NS32K fixup, rather than special case in emit_expr function.
+       * config/tc-ns32k.h (TC_CONS_FIX_NEW): Define to be
+       cons_fix_new_ns32k.  Also use PARAMS rather than checking
+       __STDC__.
+       * config/tc-sparc.h (TC_CONS_RELOC): Define to RELOC_32.
+
+       * write.c (relax_and_size_seg, adjust_reloc_syms, write_contents):
+       Don't core dump if gas has no information about a section.
+
+Wed Jun 30 06:21:27 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+       * write.c (relax_and_size_seg): Always fully process a section.
+       Section size is last frag's (vm)address plus its size.  If no
+       relocations are present, force SEC_RELOC flag clear.
+       (dump_section_relocs): New debugging routine.
+       (adjust_reloc_syms): New routine, broken out from write_contents.
+       Don't adjust relocs that are already relative to section symbol.
+       Look for obj_fix_adjustable macro to know what else to skip,
+       instead of obj_write_symbol.  Look for section symbol stored in
+       section information.
+       (write_object_file): Map adjust_reloc_syms over all sections.
+       (write_contents): Clear SEC_RELOC flag if no relocations are
+       found.
+
+       * as.h (__PTR_TO_INT, __INT_TO_PTR): New versions for Saber, to
+       keep it quiet.
+
+       * write.c (remove_subsegs): Don't define for BFD_ASSEMBLER.
+
+Fri Jun 25 14:42:53 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
+
+       * Makefile.in (all, dvi, info, install-info, clean-info): do not
+         echo recursion lines.
+         (install-info, clean-info): collapse into the dvi and info rule.
+
+Fri Jun 25 03:43:06 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
+
+       * as.h (strstr): Disable declaration for now.
+       (fprint_value, sprint_value): Declare.
+
+       * subsegs.c (subseg_new_rest): Use memset to clear new frag.
+       (subseg_new) [BFD_ASSEMBLER]: Initialize all seginfo fields.
+
+       * expr.c (expr_part): Made sanity checks a.out-specific.
+       (expr): Disabled sanity checks.
+
+       * subsegs.h (segment_info_type) [BFD_ASSEMBLER]: Add field for
+       section symbol.
+       * subsegs.c (subseg_change): Initialize section symbol pointer
+       when setting up a new section.
+
+       * symbols.c (symbol_new) [BFD_ASSEMBLER]: Point BFD symbol's udata
+       field back at gas symbol structure.
+
+       * symbols.c (colon): Cast obstack_next_free value to char* before
+       doing arithmetic on it.
+       * subsegs.c (subseg_new_rest): Likewise.
+       * as.h (frag_now_fix): Likewise.
+
+       * config/obj-elf.c (elf_file_symbol): Use subseg_new instead of
+       calling bfd_make_section_old_way directly, and call subseg_set
+       instead of subseg_change.  Now returns void.
+       (obj_elf_write_symbol): Only check local symbols for now.
+       (elf_stab_symbol): Now static and void, and disabled until it
+       works completely.
+       (obj_elf_size): For expression values, fail silently for now.
+       (obj_symbol_new_hook): Do nothing.
+
+       * config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_SPARC_WDISP22
+       relocation.
+       (s_local) [OBJ_ELF]: New function.
+       (md_pseudo_table) [OBJ_ELF]: Call it for "local".
+       (s_common): Rearrange to handle Solaris .common pseudo, which may
+       sometimes use bss space instead of common.
+       * config/obj-elf.h (TARGET_SYMBOL_FIELDS): Add new `local' field.
+
+Thu Jun 24 16:33:53 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+       * configure.in: set host config to hpux for hppa*-hp-hpux
+
+Thu Jun 24 13:35:06 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
+
+       * app.c (app_pop, app_push): Fix bug reported by Chris Arthur.
+
+Tue Jun 22 01:04:23 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
+
+       * subsegs.c (subseg_new): Don't special-case a.out -R flag here.
+       * config/obj-aout.c (s_sect): Do it here.
+
+       * as.h (BAD_CASE): Don't make some lame compilers think we want
+       substitution inside strings.
+
+       * as.c (print_version_id): New function, split off from main.
+       (main): Call it.
+       * config/tc-sparc.c (md_parse_option) [OBJ_ELF]: Print version id
+       for -V.  Ignore -Q and -s options for now.
+
+Mon Jun 21 17:37:59 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+       * Makefile.in: make installation & builds work again for crosses
+
+Sun Jun 20 18:18:26 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)
+
+       * listing.c (list_symbol_table): Rewrite to print wide (>32 bits)
+       symbol values correctly.
+
+       * write.c (write_object_file): Deleted unused variables.
+       (fixup_segment): Use sprint_value.
+
+       * messages.c (sprint_value, fprint_value): New routines.
+
+       * config/obj-elf.c (elf_stab_symbol): Now returns void.
+       (obj_elf_stab_generic): Fix typo in logic.
+
+       * Makefile.in (INCLUDES): Look in ../bfd for bfd.h.
+
+       * as.h (addressT, offsetT): New types, using BFD types if
+       available.
+       (relax_addressT, struct frag): Use them.
+       * struc-symbol.h (valueT, struct broken_word): Likewise.
+
+       * as.h (subseg_new) [BFD_ASSEMBLER]: Name argument is const.
+       * subsegs.c (subseg_new) [BFD_ASSEMBLER]: Name argument is const.
+
+Thu Jun 17 16:53:56 1993  david d `zoo' zuhn (zoo@cygnus.com)
+       
+       * Makefile.in: canonicalize install.sh; for use within
+       this directory (and subdirs)
+
+Sun Jun 20 02:34:04 1993  Ashley Saulsbury (ans@sics.se)
+
+       * m88k-opcode.h : fixed tiny tiny mistake - xcr was incorrectly
+       specified, should have both S1 and S2 fields identical
+       If only finding the problem was as fast as fixing the bug !!!!
+
+Tue Jun 15 16:01:57 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+       * write.c (write_contents): Do write out non-loadable sections.
+       Debug sections can fall in this category.
+
+       * read.c (s_app_file): Call elf_file_symbol for ELF files.
+       * config/obj-elf.c (elf_file_symbol): New function.
+
+       * config/obj-elf.c (elf_stab_symbol_string): Renamed from pa_...,
+       added argument to specify section base name.
+       (obj_elf_stab_generic): Renamed from ..._stab.  New argument
+       specifies section base name.
+       (obj_elf_stab): New function, calls obj_elf_stab_generic with
+       ".stab" as section base name.
+       (obj_elf_xstab): New function, calls obj_elf_stab_generic.
+       (obj_elf_type): Handle "object".  Use bitwise-or to merge in
+       symbol flags rather than simply replacing, so global/local flags
+       are preserved.
+       (obj_elf_ident): Rewrite.
+
+Tue Jun 15 17:03:25 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+       * Makefile.in: remove parentdir support; use INSTALL_XFORM
+
+Wed Jun  9 11:26:07 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * config/tc-i386.c (md_pseudo_table): .align uses a power of two
+       for any a.out target, not just Linux and 386BSD.
+       * config/tc-i386.h (DOT_LABEL_PREFIX): Do not define for any a.out
+       target.
+
+Mon Jun  7 13:33:19 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+       * config/tc-m88k.c: Don't include flonum.h, md.h, m88k.h.  They
+       don't exist or duplicate other inclusions.
+
+       * config/tc-vax.h (NO_RELOC): Define.
+
+Sat Jun  5 19:32:52 1993  Torbjorn Granlund  (tege@nada.kth.se)
+
+       * gas/config/m88k-opcode.h (m88k_opcodes): Add 88110 instructions.
+       * gas/config/tc-m88k.c (get_reg): New arg reg_prefix.  Compare first
+       char to reg_prefix instead of to 'r'.
+       (calcop): Change calls to get_reg.
+       (calcop): Handle new case 'x' to set reg_prefix.
+       (calcop): Set reg_prefix to 'r' after each call to get_reg.
+       (cmpslot): Add 88110 conditions.
+
+       * gas/config/m88k-opcode.h: Swap cases for "rot" for consistency.
+
+       * gas/config/tc-m88k.c (get_bf): Always restore input_line_pointer
+       before returning.
+
+       * gas/config/m88k-opcode.h (m88k_opcodes): Make equal mnemonics
+       adjacent; mov.s and mov.d swapped.
+       (m88k_opcodes): Fix typo `r2' -> `2'.
+
+Fri Jun  4 15:59:31 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
+
+       * config/h8300.c: Support for H8/300-H opcodes.
+
+       * config/obj-coffbfd.c (w_strings): String table length is 4
+       bytes, no matter what the host int size is.
+
+       * configure.in (alpha-*-osf*): New.
+
+Fri Jun  4 07:51:18 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * configure.in (mips-*-ecoffl*): New target; use ecoff and
+       mips-lit.
+       (mips-*-ecoff*): Added trailing '*'.
+
+       * config/obj-ecoff.c (ecoff_build_procs): Force the adr of the
+       first FDR in a file to be zero.
+
 Thu Jun  3 14:09:59 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
 
        * Makefile.in (VERSION): Jump to 2.1.4.
This page took 0.027954 seconds and 4 git commands to generate.