Commit Graph

45 Commits

Author SHA1 Message Date
Ian Lance Taylor
5868b1fe68 * 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.
1993-07-14 22:21:25 +00:00
Ian Lance Taylor
85051959f4 * 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.
1993-07-14 19:35:45 +00:00
Steve Chamberlain
115147fbb0 * config/obj-coffbfd.c (fill_section): Don't allow fills backwards.
* config/tc-sh (get_specific, md_convert_frag,
	md_estimate_size_before_relax): Add support for rest of opcodes.
1993-06-17 21:58:28 +00:00
Steve Chamberlain
ad86fa7047 * 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.
1993-06-04 23:03:00 +00:00
Ian Lance Taylor
9a7d824a26 * app.c (do_scrub_begin): Let line_comment_chars override
comment_chars.
	(do_scrub_next_char): If a line comment character is not at the
	start of a line, treat it as a comment character if it is one.
	For a CPP line comment use pseudo-op .appline rather than .line.
	* input-scrub.c (logical_input_line): Make int rather than
	unsigned.
	(input_scrub_push, input_scrub_begin): Initialize
	logical_input_line to -1 rather than 0.
	(bump_line_counters): Increment logical_input_line.
	(new_logical_line): If line_number is -2, decrement
	logical_input_line.
	(as_where): Use logical_input_line even if it is 0.
	* read.h (s_app_file prototype): Now takes an int argument.
	* read.c (potable): Make .appfile call s_app_file with 1.  New
	.appline pseudo-op calls s_app_line.
	(s_app_file): If .appfile, call new_logical_line with -2 to
	account for newline inserted by do_scrub_next_char.  If listing,
	call listing_source_file.
	(s_app_line): New function to handle fake pseudo-op .appline.
	* config/obj-coff.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/obj-coffbfd.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/tc-mips.c (s_file): Pass argument to s_app_file.
1993-05-27 19:29:38 +00:00
Ken Raeburn
b27caf27c8 PR fix for debug symbols referring to other symbols, then same name defined
as common.
(crawl_symbols): Don't clear sy_forward field.
(yank_symbols): Merge symbols only if sy_forward is null.
1993-05-05 20:32:12 +00:00
Steve Chamberlain
4a1bbbe75b Support for Hitachi SH 1993-04-27 01:32:09 +00:00
Ken Raeburn
c0f1bbb6d0 build file symbol fwd pointers properly, don't deref symbol #s as pointers 1993-03-30 15:22:27 +00:00
Steve Chamberlain
e02eaa5943 * config/obj-coffbfd.c (do_relocs_for): Fix bug where nrelocs
wasn't being stored into scnhdr.
	* config/obj-coffbfd.h: Add prototype of s_get_segment.
	* read.c (TC_START_LABEL): Default definition.
	(read_a_source_file): Use TC_START_LABEL macro to work out
	if a label has been seen.
1993-03-29 21:56:49 +00:00
Ian Lance Taylor
543d88e4fd * config/obj-coffbfd.c (fill_section): Don't set NOLOAD bit for
a29k .bss section; the mondfe program doesn't like it.
1993-03-29 20:58:34 +00:00
Ian Lance Taylor
61001d969d * config/obj-coffbfd.c (do_relocs_for): Remove a29k special case.
(fixup_segment): Add a29k special case; the linker is not prepared
	to see a segment offset here.
1993-03-25 22:09:27 +00:00
Ken Raeburn
155e7bc479 (do_relocs_for): Don't allocate storage or process relocs if there aren't any
relocs to process.  Avoids malloc/free bug on SCO too.
1993-03-23 13:34:55 +00:00
Ian Lance Taylor
a36f6645fb * config/obj-coffbfd.c (obj_coff_endef): Correct test for .bf
symbol.
1993-03-15 20:21:13 +00:00
Ken Raeburn
2492e118e3 SUB_SEGMENT_ALIGN now takes an argument. 1993-03-03 19:47:15 +00:00
Ian Lance Taylor
e63164f988 Thu Feb 11 09:20:37 1993 Ian Lance Taylor (ian@cygnus.com)
* config/obj-coffbfd.c (fill_section): Don't set vaddr here.
	(write_object_file): Set it here instead, so that fixup_segment
	can see the correct value.
1993-02-11 17:22:42 +00:00
Steve Chamberlain
033400ec8d * config/{h8500.mt, tc-h8500.c, tc-h8500.h, obj-coffbfd.c,
obj-coffbfd.h}: support for the H8/500
1993-02-04 20:47:48 +00:00
Ken Raeburn
eeeaa7780b whitespace/comment changes 1993-01-20 22:22:21 +00:00
Ian Lance Taylor
9a75dc1f76 A bunch of changes to COFF support. See the ChangeLog. 1992-12-30 21:39:51 +00:00
Steve Chamberlain
2cb0bdc75b lints 1992-12-15 22:49:55 +00:00
Ian Lance Taylor
016e0d4207 Sat Dec 12 15:26:34 1992 Ian Lance Taylor (ian@cygnus.com)
* listing.c: Call xmalloc, not malloc; don't declare malloc.

	* Changes to support SCO 3.2v4:
	* read.c (s_align_bytes, s_align_ptwo): If not SEG_DATA or
	SEG_BSS, fill with NOP_OPCODE.
	* config/i386coff.mt: Add opcode/i386.h to TARG_CPU_DEPENDENTS.
	* config/obj-coffbfd.c (do_relocs_for): Increment addr even if not
	using ZERO_BASED_SEGMENTS.
	(fill_section): If ZERO_BASED_SEGMENTS, set segment addresses, but
	never set segment address for SEG_E2 (.bss) and don't write out
	SEG_E2 contents.  Set .init and .fini sections to STYP_TEXT.
	(obj_coff_endef): Don't merge labels or symbols awaiting forward
	definitions, and don't merge tags with non-tags.  Check for .bf
	rather than just checking whether the second character is b and
	the third character is f.
	(obj_coff_val): gcc can generate values which we don't handle
	correctly; discard information for now, since it only affects the
	debugging information.
	(tag_find_or_name): Don't insert tags in the symbol table.
	(yank_symbols): Don't merge labels.
	(write_object_file): Don't define SUB_SEGMENT_ALIGN if it is
	already defined.  Fill subsegments with NOP_OPCODE, not 0.  Don't
	set segment address if ZERO_BASED_SEGMENTS.
	(obj_coff_section): Accept and ignore a trailing quoted string, as
	used in AT&T i386 syntax.
	(fixup_segment): Take segment as argument.  On the i386, adjust PC
	relative addends by the segment vaddr.
	* tc-i386.h: Define SUB_SEGMENT_ALIGN.
	* tc-a29k.h: Define ZERO_BASED_SEGMENTS.
	* tc-i386.c: (i386_operand): If I386COFF, accept any segment type.
1992-12-13 00:56:14 +00:00
Ken Raeburn
30d9fb5730 obj-coffbfd.c: include libcoff.h 1992-12-08 08:48:16 +00:00
Ken Raeburn
355afbcd8b Ran "indent", for GNU coding style; some code & comments still need fixup.
Removed some unneeded files.

obj-coff.c (obj_coff_endef): Use as_warn, not fprintf.
tc-m68k.c (md_assemble): 68000+68881 is okay -- could be emulating.
1992-11-23 20:42:33 +00:00
Ian Lance Taylor
587c4264e0 These changes clean things up a bit, and improve Solaris cross
support when using /opt/SUNWspro/SC2.0/acc.

Tue Nov 10 09:50:25 1992  Ian Lance Taylor  (ian@cygnus.com)

	* obj-coffbfd.c (fill_section): set STYP_NOLOAD bit for .bss
	section.

	* atof-ieee.c, atof-ns32k.c, tc-*.c: made EXP_CHARS, FLT_CHARS,
	comment_chars, line_comment_chars and line_seperator_chars
	consistently const, and always initialized them.  Included read.h.
1992-11-10 18:17:00 +00:00
Ian Lance Taylor
1045c20b4d Fri Oct 23 14:40:38 1992 Ian Lance Taylor (ian@cygnus.com)
* obj-coffbfd.c (write_object_file): check return value of
	bfd_close_all_done.
1992-10-23 21:42:04 +00:00
Ian Lance Taylor
6142210d1d Tue Oct 20 13:02:25 1992 Ian Lance Taylor (ian@cygnus.com)
* Support for i386-sysv.
	obj-coffbfd.c (do_relocs_for, write_object_file): set segment
	addresses to reasonable sizes.  New define ZERO_BASED_SEGMENTS can
	be used to set them all to zero as was done before.
	(fill_section): segment addresses now set in write_object_file.
	(fill_section): Don't set STYP_NOLOAD for .bss section.
	(fixup_segment): 386 uses strange common symbol format.
	tc-i386.c (tc_coff_fix2rtype): use R_DIR32, not R_RELLONG, for
	compatibility with SVR3.2 linker.
1992-10-20 20:10:34 +00:00
Steve Chamberlain
2f68cb548c * obj-coffbfd.c (write_object_file): don't fixup for the z8k
* tc-z8k.[ch]: lots of bug fixes
1992-09-29 19:25:33 +00:00
Sean Eric Fagan
b066f445bb Tue Sep 22 13:02:07 1992 Sean Eric Fagan (sef@cygnus.com)
* obj-coffbfd.c (do_relocs_for,fill_section): now allocate all
	sections starting from zero, rather than making them consecutive.
	This makes subsequent reloc calculations easier, esp if the
	object format doesn't understand addends. (obj_coff_lcomm): (maybe
	temporarily) allocate lcomm in .data rather than in .bss.  It
	seems that some tools can't cope with a non-zero sized bss
	before linkage.
1992-09-22 20:07:55 +00:00
Ian Lance Taylor
e41474b77d Sun Sep 13 20:29:39 1992 Ian Lance Taylor (ian@cygnus.com)
* obj-coffbfd.h: define WARN_SIGNED_OVERFLOW_WORD.
	obj-coffbfd.c (fixup_segment): check for signed .word overflow if
	WARN_SIGNED_OVERFLOW_WORD.
1992-09-14 05:25:56 +00:00
Ian Lance Taylor
76bf2d5d61 Sun Sep 13 20:29:39 1992 Ian Lance Taylor (ian@cygnus.com)
* obj-coffbfd.c (fixup_segment): fixed missing parens in
	expression checking for byte or word overflow.
1992-09-14 03:34:44 +00:00
Ian Lance Taylor
3ad9ec6a7b Wed Sep 9 11:10:24 1992 Ian Lance Taylor (ian@cygnus.com)
* tc-m68k.c (m68k_ip, m68k_ip_op, get_num, try_moto_index): merge
	 Motorola and MIT syntax; gas can now assemble either type of
	 file.
	tc-m68kmote.c, tc-m68kmote.h: removed now superfluous files.
	From Steve Chamberlain:
	m68kcoff.mt: for m68k COFF.
	obj-coffbfd.c: (fixup_mdeps) added
	 (size_section) removed bad sanity check
	 (fill_section) added rs_machine_dependent case
	 (write_object_file) call fixup_mdeps
	 (fixup_segment) set fx_subsy to 0.
	obj-coffbfd.h: define WORKING_DOT_WORD (too hard to support) and
	 handle m68k.
	tc-m68k.c, config/tc-m68k.h: added m68k COFF support and Motorala
	 pseudo ops.
1992-09-09 18:38:16 +00:00
Steve Chamberlain
163107a143 Support for the Z8k 1992-08-25 22:12:54 +00:00
Steve Chamberlain
f264b1f575 *** empty log message *** 1992-07-07 00:11:55 +00:00
Steve Chamberlain
c58dbabf26 * obj-coffbfd.c: use is a synonym for section, (do_relocs_for):
calc the base of relocs correctly.
	* tc-a29k.c (parse_operand): allow expressions to be in any section.
1992-05-05 01:59:04 +00:00
Steve Chamberlain
b38479171a Added "sect" as synonym for "section" 1992-05-05 00:51:50 +00:00
Steve Chamberlain
d752f749c8 Align lcomm addresses 1992-05-02 02:34:21 +00:00
Steve Chamberlain
5373c4396a H8 bitrot fixes 1992-02-27 03:37:37 +00:00
Steve Chamberlain
c593cf412b * app.c: MRI compatibility - allow single quote to start a string.
* as.c: fix typo recently introduced.
	* as.h : Don't include aout/reloc.h - it's not right for COFF!
	* expr.c: Much rewriting, to accomodate MRI syntax for
	expressions. Also easier to read now.
	* listing.c: Put back defuns
	* read.c: modified to accept MRI syntax, put back listing pseudo
	ops so that an assembler built with NO_LISTING ignores list ops
	rather than pukes.
	* write.c, write.h: fixs - only keep a reloc type in a fix if the target
	machine is a SPARC or a 29K.
	* config/obj-aout.c: added s_sect pseudo op
	* config/obj-coffbfd.c: lints, set the filehdr flags right and
	fill in the timestamp.
	* config/obj-coffbfd.h: Since we don't include aout/reloc.h
	anymore, define all the relocs which the tc-<x> bit will use so we
	can translate from them to the coff types.
	* config/tc-a29k.c: reloc_type isn't ane enum any more
	* config/tc-m68k.c: Added NO_RELOC definition.

Now compiles for sparc aout, 68k aout (MRI and MIT syntax),
29k coff.

So far works as replacement for sparc and 68k /bin/as.
1992-02-22 20:45:24 +00:00
K. Richard Pixley
542e1629fd fighting bitrot in a major way 1992-02-17 15:54:49 +00:00
K. Richard Pixley
0117086004 All files over ~5 lines get copylefted. All copylefted files get
copylefted 1992.
1992-02-13 09:49:39 +00:00
K. Richard Pixley
a39116f1c9 White space and comments only. The devo tree prior to this delta is
tagged as "vanilla" for your convenience.

There are also some comment changes.
1992-02-13 08:33:54 +00:00
Steve Chamberlain
ebf137d5cd * as.c: added new option -ad for hll listings without debug info
* listing.c,listing.h: support for new listings, and more for forgiving
	when lied to about where linenumbers are.
	* config/obj-coffbfd.c (do_linenos_for): relocate line numbers
	correctly.
1992-02-06 20:09:39 +00:00
Steve Chamberlain
9ce31b6601 obj-coff* now copes with C mingled listings
tc-h8300.c: better error messages
1992-01-28 03:43:23 +00:00
Steve Chamberlain
32e4477444 * config/obj-coffbfd.c: lint
* config/tc-h8300.c, config/tc-h8300.h: Too Many bug fixes
	* config/tc-m68k.h, config/tc-sparc.h: Override default
	listing options to give better effect.
1992-01-08 19:39:50 +00:00
Steve Chamberlain
410e67eb21 * config/obj-coffbfd.c: lint, don't fixup relocs if H8300, use
tc_reloc_mangle to prepare relocation if one available
	* config/tc-h8300.h: added tc_reloc_mangle routine
1991-12-12 02:17:22 +00:00
Steve Chamberlain
db40ba149d Initial revision 1991-12-12 00:53:23 +00:00