Wed Apr 7 20:18:10 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) * doc/as.texinfo: converted conditional markup to use new Texinfo facilities, avoiding m4. * doc/as-all.texinfo, all.m4, pretex.m4: deleted. * doc/Makefile.in: recast doc configuration to use a link to an included texinfo file. * doc/all.texi: settings for generic form of documentation. Tue Apr 6 11:56:21 1993 Ian Lance Taylor (ian@cygnus.com) * read.c (cons): Zero out frag when creating reloc. Mon Apr 5 09:41:58 1993 Ian Lance Taylor (ian@cygnus.com) * config/tc-mips.c (gp_reference): Certain magic symbols can never be referenced off the GP register. * app.c (do_scrub_next_char): Handle states 9 and 10 correctly when dealing with characters of type LEX_IS_TWOCHAR_COMMENT_1ST, LEX_IS_STRINGQUOTE, and LEX_IS_ONECHAR_QUOTE. * config/te-irix.h: New file; irix needs a different LOCAL_LABEL definition from other MIPS targets. * configure.in (mips-*-irix): Use emulation irix. Sun Apr 4 15:21:09 1993 Steve Chamberlain (sac@thepub.cygnus.com) * config/tc-h8500.c: Get relax size of branch instructions right, (get_operand): Parse @sp+ correctly. Fri Apr 2 08:54:57 1993 Ian Lance Taylor (ian@cygnus.com) * config/tc-mips.h (LOCAL_LABEL): Treat any label starting with '$' as local, for any object file format. * config/tc-mips.c (macro): Optimizations to branching code and a couple of bug fixes from ralphc@pyrps5.eng.pyramid.com (Ralph Campbell). * config/ho-irix.h: New file; if not gcc, define BROKEN_ASSERT. * configure.in (mips-sgi-irix*): Set gas_host to irix. Wed Mar 31 17:53:54 1993 Ian Lance Taylor (ian@cygnus.com) * subsegs.c (subseg_new): Set output_section of new section. * as.c (perform_an_assemly_pass): Don't set output_section here. * expr.c (expr_part, expr): Turn off section assertions for ECOFF, since it has additional sections. * read.c (s_lcomm): For MIPS ECOFF, put small objects in .sbss, not bss_section. * config/obj-ecoff.h (TARGET_SYMBOL_FIELDS): Added ecoff_undefined field. * config/obj-ecoff.c (obj_symbol_new_hook): Initialize ecoff_undefined field. (add_file): If using stabs, just output a stabs symbol rather than creating a new fdr. (obj_ecoff_begin, obj_ecoff_bend): Ignore line number by reading it with get_absolute_expression, rather than skipping it by hand. (obj_ecoff_loc): If using stabs, just output a stabs symbol rather than ECOFF line number information. (obj_ecoff_stab): Accept non-zero values for stabs line number. (ecoff_build_symbols): Set ifilesym correctly. Set storage class to small, undefined and/or readonly sections if appropriate. Don't output symbol names containing \001 characters. (ecoff_frob_file): Make sure at least one fdr is output. * config/tc-mips.h: Define TC_MIPS. * config/tc-mips.c (g_switch_value): New static variable. (md_assemble): Set gp size of output BFD. (gp_reference): New function; returns 1 if expression can be accesssed via gp. Always returns 0 if not using ECOFF. (macro_build): Convert BFD_RELOC_LO16 to BFD_RELOC_MIPS_GPREL if possible. (macro): Generate sequences using gp if possible. (md_parse_option): Ignore -EL and -EB. Parse -G. (md_apply_fix): Added BFD_RELOC_MIPS_GPREL to ignored case. (s_change_sec): Handle .rdata and .sdata for ECOFF. (s_extern): Mark symbol as external. Set ecoff_undefined field. Tue Mar 30 10:11:41 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * output-file.c (output_file_create): Don't call as_perror for filename rejected by application. * as.c (main) [BFD_ASSEMBLER]: If errors occur, close and unlink the output file. * doc/as.texinfo: Don't use @value in node names for the moment; references don't appear to work right. * as.h (const, volatile): Put these definitions back, and use them. * doc/as.texinfo: First pass at using new texinfo features -- variables, conditional tests. Far from complete. Mon Mar 29 16:05:40 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * read.c: Temporary hack to handle some 64-bit constants. This should be redone later. (target_big_endian): Declare. (big_cons): If it's set, reverse order of bytes being copied. * config/tc-sparc.c (md_begin): Set target_big_endian. * read.c (s_ignore): Delete declaration of is_end_of_line. * config/obj-coffbfd.c (yank_symbols): Build list of file symbol forward pointers properly. Mon Mar 29 13:47:33 1993 Steve Chamberlain (sac@thepub.cygnus.com) * 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. Mon Mar 29 12:56:56 1993 Ian Lance Taylor (ian@cygnus.com) * configure.in: Set BFDDEF and BFDLIB at the top of Makefile, not the bottom (make expands variables in dependencies when the dependencies are read, not when they are used). * config/obj-coffbfd.c (fill_section): Don't set NOLOAD bit for a29k .bss section; the mondfe program doesn't like it. Sun Mar 28 08:12:53 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) * config/tc-m68k.c: Use PARAMS macro, and use CONST instead of const. (current_architecture): Don't need initializer. Fri Mar 26 08:12:48 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * doc/none.m4: Define Z8000. * doc/Makefile.in (as-*.texinfo): Refer to $(srcdir). Remove the texinfo file before recreating it. (TEXI2DVI): Need to set TEXINPUTS if "make as.dvi" is to work in this directory. (srcdir): Delete second, bogus definition. (as.info): Look for as-*.texinfo in current directory rather than in $(srcdir). (as.dvi): Ditto. (dvi): New rule. * doc/configure.in: Create links to all as-*.texinfo files in the source directory, if that's not the current directory. * configure.in (per-host): Accept MIPS host with BSD version number. (per-target): Classify i486 as i386. Use generic cpu_type instead of target_cpu in selecting format etc. * app.c (do_scrub_next_char): Use .appfile, not .app-file. * read.c (potable): Change .app-file to .appfile. * config/ho-decstatn.h: Renamed from ho-decstation.h. * configure.in: Adjusted. * config/obj-bfd-sunos.*: Unused; deleted. * Makefile.in (version.c, vers-stamp): Deleted. (config.h): Define GAS_VERSION. * as.c (version_string): Deleted declaration. (main): Look for GAS_VERSION instead. * doc/as.texinfo: Updated description of -a* (listing) options, and describe how to pass them through from gcc. * config/obj-coffbfd.c (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. * as.h: Move local include files below system include files, to avoid some redefinition complaints on some systems. (const, volatile): Don't need these conditionally defined if we use CONST and VOLATILE from ansidecl.h. (seg_name): Use CONST, not const. Fri Mar 26 10:22:04 1993 Ian Lance Taylor (ian@cygnus.com) * config/tc-mips.c: Reindented to GNU standards. Thu Mar 25 08:59:14 1993 Ian Lance Taylor (ian@cygnus.com) * 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. * app.c (do_scrub_next_char): Added new state, 10, modifying state 9 to only keep a space in between identifier characters. Wed Mar 24 02:16:22 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com) * Makefile.in: add dvi target; as-$(config).texinfo might live in srcdir, might be in objdir. * doc/Makefile.in: dvi depends on as.dvi Mon Mar 22 23:59:13 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in: add installcheck target Mon Mar 22 10:19:00 1993 Ian Lance Taylor (ian@cygnus.com) * config/tc-mips.c (macro): Use $AT for any floating point load. Sat Mar 20 12:50:51 1993 Ken Raeburn (raeburn@urth.cygnus.com) * config/tc-m68k.c (m68k_ip): For operand type 'M', reject bignums, but don't emit error message. Fri Mar 19 21:02:19 1993 Jim Wilson (wilson@sphagnum.cygnus.com) * Makefile.in (targ-cpu.o): Depend on config.h. Wed Mar 17 16:44:06 1993 Ian Lance Taylor (ian@cygnus.com) * app.c (do_scrub_next_char): Added new state, 9, to avoid dropping a space immediately following an identifier. * expr.c, write.c: Rewrote assert expressions to not use multiple lines; I don't think that can be done portably. * config/tc-mips.c (macro): Use $AT if target register is zero in load instruction, which it can be for a floating point load. Mon Mar 15 12:17:28 1993 Ian Lance Taylor (ian@cygnus.com) * write.c (write_contents): Compute the relocs before writing out the section contents. * config/obj-ecoff.h, config/obj-ecoff.c: Numerous changes to get symbol table and values right. * config/tc-mips.h (LOCAL_LABEL): If OBJ_ECOFF, any label starting with $L is local. * config/tc-mips.c (tc_gen_reloc): If OBJ_ECOFF, adjust the addend by the section vma. * config/z8k.mt (TARG_CPU_DEPENDENTS): The relevant file is z8k-opc.h, not z8k.h. * config/obj-coffbfd.c (obj_coff_endef): Correct test for .bf symbol. Fri Mar 12 18:33:36 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * configure.in: recognize sparc-sun-solaris2* instead of -solaris2 Fri Mar 12 12:00:07 1993 Ian Lance Taylor (ian@cygnus.com) * expr.c, write.c: Ultrix native 4.2 cc requires assert condition to be on a single line. Thu Mar 11 17:56:22 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * Makefile.in (config.h): Create file, writing out definitions of target cpu, alias, and canonical name. (ALL_CFLAGS): No longer define TARGET_CPU. * Makefile.in (check): Print a message, instead of quitting silently. * as.c (main): Don't catch any signals, for now. * version.c: Deleted. * Makefile.in: Generate it, putting in only the version number itself. (VERSION): New variable. * as.c: Include config.h. (main): Reformatted version string. Include target alias. Don't print if not requested (i.e., unknown -v argument). * as.c (stralloc): Deleted. (main): Call strdup instead. * configure.in: Handle all 68300 series chips. * config/tc-m68k.c: Include config.h. (md_assemble): Assume TARGET_CPU is defined. Accept some 68300 series cpus as defaults. (md_parse_option): Accept some m68300 series CPUs as defaults. Wed Mar 10 17:41:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * as.c (EXIT_SUCCESS, EXIT_FAILURE): Define to normal values if not already defined. (main, got_sig): Use them. * config/ho-vms.h (EXIT_SUCCESS, EXIT_FAILURE): Reverse default values. Tue Mar 9 07:40:06 1993 Ian Lance Taylor (ian@cygnus.com) * config/obj-ecoff.c, config/obj-ecoff.h: Preliminary ECOFF support. * config/tc-mips.h (TARGET_FORMAT): Define based on OBJ_AOUT vs. OBJ_ECOFF as well as TARGET_BYTES_*_ENDIAN. (struct loc, struct proc, struct file): Moved to tc-mips.c within #ifndef OBJ_ECOFF block, since ECOFF uses different versions. * config/tc-mips.c: Rearranged for ECOFF support. Added prototypes for all static functions. Moved existing minimal debugging format support info #ifndef OBJ_ECOFF blocks. (macro_build_lui): Eliminated sign_extend argument, because ECOFF does not support a non sign extended high 16 bits reloc. Adjusted all callers accordingly. (tc_get_register): Renamed from get_register, and made non-static. * config/mips-big.mt, config/mips-lit.mt: New files. Define TARGET_BYTES_BIG_ENDIAN and TARGET_BYTES_LITTLE_ENDIAN, respectively. * configure.in (mips-*-bsd*): Use gas_target mips-lit. (mips-*-ultrix*, mips-*-irix*, mips-*-ecoff): New targets, using obj_format ecoff and gas_target mips-lit or mips-big. Tue Mar 9 07:43:01 1993 Ken Raeburn (raeburn@cygnus.com) * version.c: Bump to version 2.0.1. Tue Mar 9 07:40:06 1993 Ian Lance Taylor (ian@cygnus.com) * write.c (chain_frchains_together): Check that seg_info (section) is not NULL. (write_object_file): Call obj_frob_file after setting the symbols, not before. Tue Mar 9 00:00:00 1993 Ken Raeburn (raeburn@cygnus.com) * Version 2.0 released. Mon Mar 8 14:57:10 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/tc-i386.h (TC_COUNT_RELOC): Look for fx_addsy only. Fri Mar 5 09:05:55 1993 Ian Lance Taylor (ian@cygnus.com) * read.h: Define stringer here. read.c, config/obj-ieee.c, config/obj-tcm88k.c: Not any of these places. Thu Mar 4 11:52:23 1993 Steve Chamberlain (sac@thepub.cygnus.com) * read.c (s_space): Multiply repeat count by mult, not fill. Thu Mar 4 05:20:42 1993 Ken Raeburn (raeburn@cygnus.com) * read.c: Include ctype.h. Wed Mar 3 10:41:46 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) Patches from Eric Youngdale: * make-gas.com: Find obstack.obj if it's not in the current directory. * read.c (s_ignore): Don't declare is_end_of_line. It's redundant, and triggers a VMS gcc compiler bug. * write.c (write_object_file): Macro SUB_SEGMENT_ALIGN now takes current segment as an argument. (Ignored in all cases but VMS.) All callers and definitions changed. Tue Mar 2 11:56:19 1993 Ian Lance Taylor (ian@cygnus.com) * listing.c: Cleaned up a bit, added prototypes, made NO_LISTING case compile again. Tue Mar 2 08:53:34 1993 Ken Raeburn (raeburn@cygnus.com) * config/tc-m68k.c (isbyte): Accept all values from -255 to +255, so "~0x80" won't be rejected. * config/obj-elf.c: No longer include elf/reloc.h. (obj_elf_section): Set SEC_READONLY and SEC_CODE for text section. (obj_elf_stab, obj_elf_desc): Deleted do-nothing and commented-out routines. (obj_elf_xstab): New routine. (obj_elf_set_size): Call as_warn, not fprintf. Pass desired argument to s_ignore. Put "#if 0" around unused code. (obj_pseudo_table): Use s_ignore instead of do-nothing routines. Call elf_xstabs for .stabs and .xstabs operators. * config/tc-sparc.h (TARGET_FORMAT) [OBJ_ELF]: Now "elf32-sparc". * write.c (relax_and_size_seg): Set SEC_RELOC only if fixups are present. * configure.in: mips-bsd configuration was missing format spec. Should use aout. * Makefile.in (Makefile): Depends on configure.in. * config/tc-mips.c (append_insn): Don't check for alignment of frag in memory; alignment of instructions in section is a separate matter. * config/tc-mips.c (macro_build_lui): Fix some assumptions of ANSI C availability. * listing.h: Always provide function declarations, not macros, so pcc won't lose. Tue Mar 2 00:50:43 1993 John Gilmore (gnu@cygnus.com) * CONTRIBUTORS: Update Gilmore entry. Wed Feb 24 14:58:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * frags.c (frag_init): New function. (zero_address_frag, bss_address_frag): Now initialized at run time. * as.c (main): Call frag_init. Wed Feb 24 10:32:42 1993 Ian Lance Taylor (ian@cygnus.com) * app.c (do_scrub_next_char): In LEX_IS_LINE_COMMENT_START case: Don't unget ch2 if we didn't get it. Wed Feb 24 04:14:07 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) * doc/Makefile.in (TEXIDIR): Updated for new layout. * config/tc-sparc.c (s_common): Add support for ELF version. (tc_gen_reloc) [BFD_ASSEMBLER]: New function. * config/tc-sparc.h (TARGET_ARCH, TARGET_FORMAT) [BFD_ASSEMBLER]: New macros. (md_convert_frag): New macro. * config/tc-m68k.c (m68k_ip): For PC-relative addressing of a symbol, fix the offset so "+2" isn't required. * config/tc-i960.c (line_comment_chars, line_separator_chars): Define as common/bss. (op_hash, reg_hash, areg_hash, iclasses_seen, br_cnt): Default C initializers are sufficient. * config/obj-aout.h [BFD_ASSEMBLER]: Include libaout.h from bfd. (TARGET_FORMAT) [BFD_ASSEMBLER]: Default to "a.out". (S_SET_*, S_GET_*, obj_frob_symbol) [BFD_ASSEMBLER]: New macros. (S_SET_TYPE) [!BFD_ASSEMBLER]: New macro. * config/obj-aout.c: Use PARAMS macro for declarations. Remove "IGNORE_DEBUG" conditional, since both branches are identical. Use S_SET_TYPE, S_GET_TYPE, and S_GET_DESC instead of directly referencing symbol structure members. (obj_aout_frob_symbol) [BFD_ASSEMBLER]: New function. * as.h (struct frag): Reordered a couple of fields for better packing. * write.c (record_alignment) [BFD_ASSEMBLER]: Record it in the section info. (write_contents) [BFD_ASSEMBLER]: New function. (write_object_file) [BFD_ASSEMBLER]: Always handle -R here. Call fix_new with BFD_RELOC_NONE instead of 0 or NO_RELOC. Call obj_frob_file, obj_frob_symbol, tc_frob_symbol if defined. (fixup_segment): Make sure common-section symbols get treated the same as undefined symbols. (fix_new) [BFD_ASSEMBLER]: Argument r_type is of type bfd_reloc_code_real_type. Use seg_fix_{root,tail}P derived from section info. * write.h (fix_new): Update prototype. * tc.h (md_operand, md_convert_frag, tc_headers_hook, md_section_align, md_undefined_symbol): Don't provide prototypes if these are defined as macros. (md_convert_frag) [BFD_ASSEMBLER]: BFD version needs bfd and section passed. * symbols.c (symbol_new): Argument NAME is now pointer to const. Simplified STRIP_UNDERSCORE code. Remove assumptions about null pointers in freshly allocated storage. [BFD_ASSEMBLER]: Get new BFD symbol. (colon): Display other/desc fields of redefined symbol only if S_GET_OTHER and S_GET_DESC are defined. (symbol_make): Argument NAME is now pointer to const. (symbol_find, symbol_find_base): Likewise. (S_IS_*, S_GET_*, S_SET_*) [BFD_ASSEMBLER]: New functions. * symbols.h: Fix prototypes for new const arguments. Add prototypes for BFD_ASSEMBLER S_* functions. * subsegs.c (subseg_change) [BFD_ASSEMBLER]: BFD version of code for changing to an existing section. (subseg_new_rest) [BFD_ASSEMBLER]: Split off from subseg_new, called by subseg_new and subseg_set. (subseg_new) [BFD_ASSEMBLER]: Rewritten to change to new section, given section name and subseg number. (subseg_set) [BFD_ASSEMBLER]: New function; change to a possibly new section/subsection. * read.c: Don't include ctype.h. (cons) [BFD_ASSEMBLER]: For undefined symbols, use BFD_RELOC_32 for now; should be machine-dependent. * configure.in: Accept *-*-elf and *-*-solaris* as ELF format targets, forcing BFD use. Wed Feb 17 18:59:03 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/tc-sparc.c: Use PARAMS macro for static function declarations. Use BFD_RELOC_ macros everywhere, with compatibility macros declared for non-BFD mode. (struct sparc_it) [BFD_ASSEMBLER]: Use bfd_reloc_code_real_type instead of enum reloc_type. (emit_sparc_reloc): Commented-out function deleted. (md_convert_frag): Deleted. (tc_aout_pre_write_hook): Don't define for BFD_ASSEMBLER. (md_apply_fix): Changed calling sequence (conditionally) for BFD version. * config/tc-sparc.h (md_convert_frag): New macro. * config/obj-aout.c (obj_aout_stab): Refer to undefined_section, not SEG_UNKNOWN. Use S_SET_TYPE, S_GET_TYPE, S_GET_DESC instead of referencing fields directly. * write.c (cvt_frag_to_fill): New function; extracted from write_object_file. (write_object_file) [! BFD_ASSEMBLER]: Call it. (relax_and_size_seg) [BFD_ASSEMBLER]: New function; relax section and set its size and flags. * struc-symbol.h (struct symbol) [BFD_ASSEMBLER]: Replace some fields with BFD equivalents. Turn on back-pointers, and add target-specific fields at end. 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. Mon Feb 8 13:56:17 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * write.c (write_object_file): Check for errors and warnings and bail out before processing contents. (chain_frchains_together_1): New function, does most of the work of remove_subsegs. (chain_frchains_together) [BFD_ASSEMBLER]: New function. (remove_subsegs) [! BFD]: Call it. (write_object_file) [BFD_ASSEMBLER]: Converted to use BFD structures and routines. * config/obj-elf.*: New files. * config/mips.mt, config/rs6000.mt: Deleted. * config/h8300.mt: Don't specify compiler here. * config/z8k.mt: The z8k code depends on the z8k opcode table, not the h8300 one. * config/tc-z8k.h: Comment fix. * write.c: Reordered some functions for better inlining. (fixup_segment): Linkrelax code is no longer conditional on TC_I960. Thu Feb 4 12:45:16 1993 Steve Chamberlain (sac@thepub.cygnus.com) * config/{h8500.mt, tc-h8500.c, tc-h8500.h, obj-coffbfd.c, obj-coffbfd.h}: support for the H8/500 Wed Feb 3 19:28:18 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/obj-vms.h (SUB_SEGMENT_ALIGN): Define VMS version here. * write.c (write_object_file): Not here. (fix_new): Initialize fx_addnumber. * listing.c: Don't include target-cpu.h explicitly, since as.h includes it. Thu Jan 28 00:35:40 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) * write.h [BFD_ASSEMBLER]: Don't declare next_object_file_charP, *_fix_root, *_fix_tail, seg_fix_rootP, seg_fix_tailP. (struct fix): Reordered fields for compactness and efficiency. Converted some logical fields to 1-bit fields. * config/obj-aout.h: Use PARAMS. [BFD_ASSEMBLER]: Don't define/declare AOUT_MACHTYPE, seg_N_TYPE, N_TYPE_seg, DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE. * read.c: Don't include listing.h; as.h includes it. Removed DONTDEF code. [BFD_ASSEMBLER]: Include subsegs.h. (old_buffer, new_broken_words): Default initialization is sufficient. * output-file.c [BFD_ASSEMBLER]: Include bfd.h, default TARGET_MACH to 0, define stdoutput. (output_file_create) [BFD_ASSEMBLER]: Call bfd_perror on failure. Call bfd_set_arch_mach. (output_file_close) [BFD_ASSEMBLER]: Call bfd_close, not bfd_close_all_done. Call bfd_perror on failure. (output_file_append) [BFD_ASSEMBLER]: Don't define. * config/m68kcoff.mt (LOCAL_LOADLIBES): Delete definition. * subsegs.h (segment_info_type): Always define. Omit field scnhdr if not MANY_SEGMENTS. Define new field bfd_section if BFD_ASSEMBLER. (seg_info): New macro. * expr.c, input-scrub.c: Use PARAMS macro. Deleted unused variables, and some irrelevant comments. * Makefile.in (ALL_CFLAGS): Include $(BFDDEF). (LIBS): Include $(BFDLIB). Don't bother with $(CLIB). * configure.in: Permit --with-bfd-assembler now, with a warning. Variable need_bfd is now a boolean, as is new variable bfd_gas. Set BFDDEF and BFDLIB in Makefile when appropriate. * as.c: Removed "#ifdef DONTDEF" and "#ifdef comment" code. (main): Refer to flag_always_generate_output instead of flagseen['Z']. * as.c (main) [BFD_ASSEMBLER]: Open output bfd. (*_section) [BFD_ASSEMBLER]: Define them. (perform_an_assembly_pass) [BFD_ASSEMBLER]: Initialize them, and set section flags when appropriate. * as.h (SEG_NORMAL) [BFD_ASSEMBLER]: Require that the specified section is not absolute, undefined, or an assembler internal one. (absolute_section, undefined_section): Always define. * expr.c, read.c, symbols.c: Refer to *_section, not SEG_*; break switch statements into if-else trees. * symbols.c [MANY_SEGMENTS]: Deleted redundant definitions of SEG_BSS and SEG_DATA. * as.h (frag_now_fix): New macro. * symbols.c (colon): Use it. Wed Jan 27 21:43:53 PST 1993 Ralph Campbell (ralphc@pyramid.com) * config/tc-mips.c: Added mips support for mips-dec-bsd. * config/tc-mips.h: Added mips support for mips-dec-bsd. * config/ho-mipsbsd.h: Added mips support for mips-dec-bsd. * config/mips-opcode.h: Added mips support for mips-dec-bsd. * configure.in: Added mips support for mips-dec-bsd. * atof-generic.c: Define TRUE and FALSE if not defined. Thu Jan 21 12:48:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * version.c: Bumped version number to 1.93.05. Wed Jan 20 17:11:53 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/obj-coff.c (obj_emit_relocations): Don't use #elif. (obj_emit_lineno): Don't need return at end of void function. (obj_symbol_new_hook): Ditto. * config/tc-m68k.c: Removed some unused code. (tc_aout_fix_to_chars): Array nbytes_r_length is now const. * config/tc-m68k.h (TC_COUNT_RELOC): Don't emit reloc if only offset field is set. Fri Jan 8 05:44:49 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/tc-sparc.c (architecture_requested, warn_on_bump, md_relax_table): Use default zero initialization. (s_reserve): Since SEG_E2 is equivalent to SEG_BSS, just use the latter, instead of selecting with preprocessor conditionals. Thu Jan 7 08:58:21 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * configure.in: recognise all sparclite variants Thu Jan 7 05:25:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * read.c (s_data) [!BFD_ASSEMBLER]: Fix typo in 4 Jan change -- accidentally changed to use subseg_change where it should have been subseg_new. Tue Jan 5 08:42:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * expr.c (operand): If character other than comma or newline is a logical end-of-line character, use the newline case. From Eric Youngdale: (operand): Set X_add_number field for floating-point numbers. (operand): Treat zero byte as end-of-operand. * configure.in (per-target): Look for with_bfd_assembler option. For now, only accept "no", until the merge is done. Merged changes from Eric Youngdale (youngdale@v6550c.nrl.navy.mil): * as.c, flonum-konst.c, hex-value.c, input-file.c, version.c, config/obj-aout.h, config/obj-vms.c: VMS -> HO_VMS. * read.c: Finish conversion to S_* macros in the VMS only parts of the program. Add "const" modifier to hex_value. * as.c, read.c, symbols.c, write.c: Change "ifdef VMS" to "ifdef OBJ_VMS". * expr.c: Add "const" modifier to hex_value. * symbols.c: Finish conversion to S_* macros in the VMS only parts of the program. Add "const" modifier to md_[long,short]_jump_size. Remove declaration of const_flag (which will be declared in obj-vms.h). * write.c: Add "const" modifier to md_[long,short]_jump_size. Fix arguments to VMS_write_object_file. * config-gas.com: New file. Script for VMS systems to set up the configuration to build gas for VMS, and create config.status. * make-gas.com: Redone to work with new scheme. * obj-vms.c: Patch to fix bug where we were not correctly parsing the stabs directives. * obj-vms.c: Define macros COPY_LONG and COPY_SHORT which will swap bytes if needed on a big endian system. Use throughout as needed. * obj-vms.c (obj_aout_stab): Add code to generate listing file. * obj-vms.c (VMS_typedef_parse): Add alias to correctly handle certain types of malformed stabs. Change parsing algorithm so that we are more certain of having all of the information that we need on hand. * obj-vms.c (final_forward_reference): New function, used to help resolve the data types of as many struct elements as possible when some part of the struct is not fully defined by the compiler. * obj-vms.c (VMS_LSYM_Parse): Correctly handle case of continuation stabs directives. * obj-vms.c (VMS_write_object_file): Define all vtable psects as symbols as well in the object file. Look for external functions that start with "__vt.", and turn them into variables, since the g++ compiler is incapable of doing this. * tc-vax.c: Add '1' option for backward compatibility with older GCC versions. * bignum-copy.c (bignum_copy): Fix bug where we pad with zeroes. * input-scrub.c (as_where): Fix bug where as would crash if we did not have the name of the source file yet. * config/ho-vms.h: define HO_VMS, not HO_VAX. Mon Jan 4 05:17:26 1993 Ken Raeburn (raeburn@cygnus.com) * read.c (s_data): Always use "data_section", since it'll map to SEG_DATA or SEG_E1 if needed. (s_lcomm): Likewise with bss_section. (s_fill): Use memset, not bzero. Thu Dec 31 04:29:27 1992 Ken Raeburn (raeburn@kr-pc.cygnus.com) * read.c: Deleted some code under "#ifdef DONTDEF" that was for handling GDB symbol table data. * config/obj-aout.h (segment_name): Delete definition. (seg_name): Delete declaration. * config/obj-bout.h (segment_name, seg_name): Ditto. * config/obj-vms.h (segment_name, seg_name): Ditto. * config/obj-coff.h (segment_name): Ditto. * config/obj-coffbfd.h (segment_name): Ditto. * Changes for BFD_ASSEMBLER: * obj.h (obj_crawl_symbol_chain): Declare only if not BFD_ASSEMBLER. (obj_header_append, obj_pre_write_hook): Ditto. * as.h (stdoutput): New var, defined only if BFD_ASSEMBLER. (segT) [BFD_ASSEMBLER]: New typedef for "asection *". (segment_name) If BFD_ASSEMBLER, look up BFD section name; otherwise, use seg_name array. (seg_name): Declare only if not BFD_ASSEMBLER. (section_alignment): Declare only if not BFD_ASSEMBLER. (big_section, reg_section, pass1_section, diff_section, absent_section, text_section, data_section, bss_section): If BFD_ASSEMBLER, declare as variables; otherwise, declare as macros, mapping to segT enum values. (tc_aout_fix_to_chars, next_object_file_charP): Force parse errors if these are used or defined, if BFD_ASSEMBLER. (subseg_set, subseg_new) [BFD_ASSEMBLER]: Functionality of old subseg_new split into two functions. (SEG_NORMAL): For BFD_ASSEMBLER, always return true, for now. * as.h (volatile): Don't define if already defined. (had_errors, had_warnings): Provide prototypes for ANSI C even if NO_STDARG. (as_bad, as_fatal, as_tsktsk, as_warn): For GNU C version 2, declare with format attribute for -Wformat checking. Wed Dec 30 10:18:57 1992 Ian Lance Taylor (ian@cygnus.com) * app.c, config/tc-*.c: Don't include read.h, since it is already included by as.h. * These are based on patches from Minh Tran-le . * configure.in (i[34]86-ibm-aix*): Accept i486 for host. Use obj_format coffbfd and gas_target i386coff for target. (i[34]86-*-isc*): New host (uses sysv). * config/i386aix.mt: Removed (no longer used). * config/mh-i386aix (RANLIB): Use true rather than /bin/true. (MINUS_G): Removed. (LDFLAGS): Added, defined as -shlib. * config/te-i386aix.h (REVERSE_SORT_RELOCS): Undefine. * config/te-sco386.h (LOCAL_LABEL): Don't define. (DOT_LABEL_PREFIX): Define. * expr.c (operand): If DOT_LABEL_PREFIX, use .L0\001 as a label name rather than L0\001. * read.c (s_lcomm): Make a frag in SEG_BSS rather than using local_bss_counter. * symbols.c, symbols.h (local_bss_counter): Removed. * write.c (write_object_file): bss no longer uses local_bss_counter. Pass correct data and bss size to VMS_write_object_file. * config/obj-vms.c (VMS_write_object_file): Accept bss size as argument, rather than using local_bss_counter. * config/tc-m88k.c (s_bss): Don't use local_bss_counter. * config/tc-sparc.c (s_reserve): Don't use local_bss_counter. * config/obj-coffbfd.c (had_lineno, had_reloc): Removed. (size_section): Restored sanity check. (do_relocs_for): Base section address on s_paddr rather than computing it. Adjust a29k R_IHIHALF special case to account for section paddr (used to require paddr to be zero). If there are no reclos, set s_relptr to 0. Set relocation size in object_headers. (fill_section): Always set s_vaddr here, removing ZERO_BASED_SEGMENTS case. Force s_scnptr for bss to 0. Don't set NOLOAD for i386 .bss, because it confuses the SVR3 native linker. Set STYP_INFO for .comment. (coff_header_append): Use object headers and H_{SET,GET}_* macros. Make aouthdr writing depend on OBJ_COFF_OMIT_OPTIONAL_HEADER. (crawl_symbols): Handle 8 character section name correctly. Use H_{SET,GET}_* macros. (do_linenos_for): Set lineno size in object_headers. (write_object_file): Use H_{SET,GET}_* macros. Don't bother to set s_vaddr here. If string_byte_count remains 4, set it back to 0, and only write strings out if there are some. Call fill_section before do_relocs_for and do_linenos_for. (obj_coff_section): Handle optional quoted second argument giving section characteristics. (obj_coff_bss): Added to handle .bss. (obj_coff_ident): Added to handle .ident (puts string in .comment section). (obj_coff_lcomm): Put common symbols in .bss, not .data. (fixup_mdeps): Change to segment. Call frag_wane after md_convert_frag. (fixup_segment): Explicitly check S_IS_COMMON before making 386 adjustment (already happened only for common symbols, but this is clearer). * config/obj-coffbfd.h (OBJ_COFF_OMIT_OPTIONAL_HEADER): Define. * config/tc-i386.c (s_bss): Don't use if I386COFF. (md_pseudo_table): Ignore .optim and .noopt. (tc_coff_sizemachdep): New function. * config/tc-i386.h (REVERSE_SORT_RELOCS): Undef, for SVR3 compatibility. (LOCAL_LABEL): Removed definition. (DOT_LABEL_PREFIX): Defined. Mon Dec 28 10:32:05 1992 Ken Raeburn (raeburn@cygnus.com) * app.c (app_push): Use memcpy, not bcopy. (do_scrub_next_char): For \", return " not '. (symbol_chars): Now const. * expr.c (operand): If not LOCAL_LABELS_FB, don't look for "0f" and "0b". If LOCAL_LABELS_DOLLAR, check for "0$". * config/obj-coff.h: Don't use #elif. * config/ho-sunos.h: Don't include sys/stdtypes.h; 4.0.3 doesn't have it. (Reported by Noah Friedman, friedman@gnu.ai.mit.edu.) Wed Dec 16 12:12:33 1992 Ian Lance Taylor (ian@cygnus.com) * write.c, obj-ieee.c: don't define SUB_SEGMENT_ALIGN if it is already defined. Tue Dec 15 12:40:11 1992 Steve Chamberlain (sac@thepub.cygnus.com) * app.c (do_scrub_begin): allow single quote strings if so configured. * config/*z8k*: checkpoint Sun Dec 13 00:04:38 1992 Ian Lance Taylor (ian@cygnus.com) * read.c (read_a_source_file): avoid calling xmalloc (0). 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. Tue Dec 8 00:06:48 1992 Ken Raeburn (raeburn@rtl.cygnus.com) * config/obj-coffbfd.c: Include libcoff.h. * version.c: Now version 1.93. Mon Dec 7 00:39:09 1992 Ken Raeburn (raeburn@cygnus.com) * config/tc-i386.c (md_pseudo_table): For 386bsd and linux, do power-of-two alignment for .align. * as.h: If BROKEN_ASSERT, just redefine `assert' to be trivial, and leave everything else alone. Fri Dec 4 16:58:42 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * Makefile.in (as.new): Don't bother saving as.old. * write.c: Conditionalize on OBJ_VMS, not VMS. (magic_number_for_object_file): Don't define if OBJ_VMS. * config/obj-vms.c: Changes for traditional C. Thu Dec 3 01:24:07 1992 Ken Raeburn (raeburn@kr-pc.cygnus.com) * config/ho-generic.h (malloc, realloc): Declare. * Lots of comment/whitespace changes. * write.h (struct fix): Some fields reordered, narrowed. * read.c (MASK_CHAR): Define using C types, not magic number. * as.c, input-file.c: Deleted some unused code. * app.c, as.h: Doc fix. * flonum-konst.c, flonum-mult.c: Include ansidecl.h. * as.h (xmalloc): Argument is long. * xmalloc.c (error): Remove declaration; as.h takes care of it. * doc/as.texinfo: Regrouped documentation of some command-line options. Updated options documentation for m68k. Some minor wording/punctuation changes. Mon Nov 30 11:42:11 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * configure.in: Accept target OS "vms". * symbols.c: Merged ANSI and non-ANSI function decls, using PARAMS macro. * xmalloc.c: Just include as.h, don't bother trying to figure out other header files. * strstr.c, strerror.c: Deleted. * Makefile.in: Deleted references. * config/tc-ns32k.c: Don't include header file for string declarations; leave that to ho-*.h. Fri Nov 27 04:11:36 1992 Ken Raeburn (raeburn at cambridge-laptop.cygnus.com) * config/coff_gnu.h [TC_I860]: Guesses for reloc type values, imported from FSF sources. * messages.c (strerror): Declare unconditionally. * as.h: Delete alloca and register definitions. * config/atof-ieee.c (mask): Now const. * obstack.c, obstack.h: Deleted. * as.h (flag_readonly_data_in_text): New flag. * as.c (main): Set it for -R. * as.h (flag_suppress_warnings): New flag. * as.c (main): Set it for -W. * messages.c (as_warn): Check it instead of flagseen['W']. * as.h (flag_always_generate_output): New flag. * as.c (main): Set it for -Z. * config/tc-sparc.h: Define NEED_FX_R_TYPE. * config/tc-a29k.h: Ditto. * write.h (struct fix): Don't conditionalize fx_r_type field on TC macros. * as.h: Merged ANSI and non-ANSI function decls, using PARAMS macro. * bignum.h, expr.h, flonum.h, frags.h, input-file.h, listing.h, obj.h, output-file.h, read.h, struc-symbol.h, symbols.h, tc.h, write.h: Likewise. * read.c: Likewise. * xmalloc.c: Conditionalize on HAVE_MALLOC_H, not USG. Fold in xrealloc from xrealloc.c. * xrealloc.c: Deleted. * Makefile.in (REAL_SOURCES, OBJS): Adjusted. * configure.in: For host CPU a29k, rs6000, vax, consider using bsd or vms ho- files. * config/ho-sysv.h (setbuffer, HO_USG): Deleted. * config/atof-ieee.c (atof_ieee): Exponent field isn't a pointer; don't initialize it with NULL. * config/ho-vax.h (M_VAX): Deleted; was unused. * README-vms, config/ho-vms.h, config/obj-vms.c, config/obj-vms.h: New files imported from FSF version, contributed by Eric Youngdale. * README-vms-dbg, config/vms: Deleted. * ChangeLog, config/ChangeLog: Merged. * config/*tahoe*, configure.in: Tahoe support brought in from FSF version. * input-file.c (input_file_open): Eliminate call to setvbuf. [USG] (setbuffer): Deleted macro. Mon Nov 23 11:00:16 1992 Ken Raeburn (raeburn@cygnus.com) * all files: Whitespace changes for GNU indentation style, done by GNU `indent'. Some cleanup still needed, especially of comments. * configure.in: No te-386bsd.h file exists; don't try to use it. * obj-coff.c (obj_coff_endef): Use as_warn, not fprintf. * tc-m68k.c (md_assemble): Don't complain about 68000 with 68881; could be doing emulation. Thu Nov 19 11:47:19 1992 Steve Chamberlain (sac@thepub.cygnus.com) z8000 documentation * doc/Makefile.in, doc/all.m4, doc/as-all.texinfo, doc/as.texinfo: all modified. Tue Nov 10 09:49:24 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in (as.o, obj-format.o): added dependency on subsegs.h. * subsegs.h: add extern to segment_info declaration. * read.h: added extern declarations for comment_chars, line_comment_chars, and line_separator_chars. read.c, app.c: removed definitions of comment_chars, line_comment_chars, and line_separator_chars. * tc-m68k.c (m68k_reg_parse): If REGISTER_PREFIX isn't defined, still accept (but don't require) OPTIONAL_REGISTER_PREFIX before the register name. (insert_reg): put REGISTER_PREFIX before register names before putting them in the symbol table. * tc-m68k.h (OPTIONAL_REGISTER_PREFIX): Define to be "%", if not M68KCOFF. * 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. Thu Nov 5 17:55:41 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * tc-sparc.c (sparc_ip): Add code to flag error if an absolute constant will not fit in an immediate field. (md_apply_fix, RELOC_BASE13 case): Check for relocation overflow. Wed Nov 4 07:50:46 1992 Ken Raeburn (raeburn@cygnus.com) * obj-coff.c (callj_table): Delete global variable. (obj_emit_relocations): Define it locally here, and only if TC_I960 is defined. * tc-m68k.c (m68k_reg_parse): Underscore is part of a symbol name. (m68k_ip): Don't warn about bignum used as float bit-pattern. * obj-coff.c: Replaced ANSI and non-ANSI function declarations with a single set using PARAMS macro. * tc-i960.c (tc_bout_fix_to_chars): Bit-field fixups want a length of 2. * tc-i960.c: Missed a couple of 0->NO_RELOC conversions. * tc-i960.h (N_BALNAME, N_CALLNAME): Define as char-type values, so widening works consistently. Wed Oct 28 08:52:34 1992 Ken Raeburn (raeburn@cygnus.com) * version.c: Put conditional "const" before version_string, not before dummy function for VMS. Now version 1.91.03. * app.c (do_scrub_next_char): Need double-\ before `000' to show printed rep of null character. 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. Tue Oct 20 12:18:08 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. * configure.in: i386-sysv and i386-sco use coffbfd. * app.c (do_scrub_next_char): discard whitespace after a label. Sat Oct 10 12:33:45 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * configure.in: differentiate between SunOS 4 and Solaris2 for Sun4 hosts, use the sysv configuration for solaris2 Mon Oct 5 09:28:57 1992 Steve Chamberlain (sac@thepub.cygnus.com) fix i960+non-bfd coff bit rot. * obj-coff.c (c_dot_file_symbol, obj_coff_ln, obj_coff_line): support for C source listings. (obj_coff_endef): look in the right part of the symbol for the symbol name * tc-m68k.c (get_num): make it work for all segments, not just the first three. Mon Oct 5 03:30:36 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) * configure.in: recognize i386-*-bsd emulation. Thu Oct 1 23:05:12 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * configure.in: use the cpu-vendor-os triple for host and target Tue Sep 29 12:22:52 1992 Steve Chamberlain (sac@thepub.cygnus.com) * obj-coffbfd.c (write_object_file): don't fixup for the z8k * tc-z8k.c: lots of bug fixes Tue Sep 29 10:51:55 1992 Ian Lance Taylor (ian@cygnus.com) * tc-i960.h, tc-i960.c: avoid the ANSI preprocessor addition #elif, since it is not supported by old compilers. ho-rs6000.h, tc-m68k.c: the native RS/6000 compiler miscompiles a couple of expressions in tc-m68k.c. Mon Sep 28 21:18:24 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * read.c (cons): If NO_RELOC is defined, use it. * tc-i960.c (get_cdisp): Use NO_RELOC, not 0, in call to fix_new. Fri Sep 25 18:18:52 1992 Ian Lance Taylor (ian@cygnus.com) * tc-m68k.h: if M68KCOFF, define DOT_LABEL_PREFIX (to require local labels to start with a .) and set REGISTER_PREFIX to %. tc-m68k.c (m68k_reg_parse): accept REGISTER_PREFIX if defined. Fri Sep 25 17:53:43 1992 John Gilmore (gnu@cygnus.com) * messages.c: Comment changes. Fri Sep 25 14:12:58 1992 Ken Raeburn (raeburn@kyriath.cygnus.com) * as.h: Test if __STDC__ is defined only, don't test its value. * messages.c: If __STDC__ is not defined, define NO_STDARG. Thu Sep 24 12:42:32 1992 Brendan Kehoe (brendan@rtl.cygnus.com) * listing.c (debugging_pseudo): Add stabs and stabn as things to ignore. 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. Tue Sep 22 15:10:51 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * tc-m68k.c: Replace "enum m68k_architecture" with "int" throughout. That enum no longer means what we thought it meant. * tc-m68k.c (md_assemble, md_parse_option): Handle new "-mno-688[58]1" options. * tc-m68k.c: Added CPU32 support. Fri Sep 18 08:02:18 1992 Steve Chamberlain (sac@thepub.cygnus.com) * tc-m68k.c (m68k_ip): An(disp) is not pc relative. Tue Sep 15 17:25:05 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * Makefile.in (as.new): Remove dependence on LOCAL_LOADLIBES. Change LIBDEPS dependence to LIBS. Tue Sep 15 15:32:02 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in (install): if $(tooldir) exists, install as in $(tooldir)/bin. Sun Sep 13 20:30:10 1992 Ian Lance Taylor (ian@cygnus.com) * Added WARN_SIGNED_OVERFLOW_WORD define to give an error if any .word is < -32768 or > 32767. The -J flag causes the error to be ignored. This is to catch over-sized switches generated by gcc on systems which don't support the broken .word hack. as.c (main): permit -J if WARN_SIGNED_OVERFLOW_WORD. write.c (fixup_segment): check for signed .word overflow if WARN_SIGNED_OVERFLOW_WORD. * write.c (fixup_segment): fixed missing parens in expression checking for byte or word overflow. * obj-coffbfd.h: define WARN_SIGNED_OVERFLOW_WORD. obj-coffbfd.c (fixup_segment): check for signed .word overflow if WARN_SIGNED_OVERFLOW_WORD. * obj-coffbfd.c (fixup_segment): fixed missing parens in expression checking for byte or word overflow. Fri Sep 11 10:21:04 1992 Steve Chamberlain (sac@thepub.cygnus.com) Support for i386 coff * obj-coffbfd.h : added stuff * tc-i386.c (tc_coff_fix2rtype): new function * tc-i386.h : new coff defines Thu Sep 10 09:23:15 1992 Ian Lance Taylor (ian@cygnus.com) * input-scrub.c (input_scrub_push): call input_file_begin, not input_scrub_begin. messages.c (as_perror): print ": " between the passed in error and the strerror, like perror does. Wed Sep 9 11:06:25 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in: use gas_target instead of modifying target_cpu. From Steve Chamberlain: Makefile.in: Handle m68*-*-coff*. read.c, read.h: add mult argument to s_space * 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. Tue Sep 8 17:10:58 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * Makefile.in (LIBS): Include opcode library. Fri Sep 4 18:20:56 1992 Ken Raeburn (raeburn@cygnus.com) * config/tc-m68k.c (get_num, case SEG_BIG): If only small integers including zero are accepted, pass +0.0. Sun Aug 30 21:24:46 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in: map "as" through program_transform_name when installing. * doc/Makefile.in: map "as" through program_transform_name when installing. Sat Aug 29 12:11:12 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * Makefile.in (as.new): Depend on LOCAL_LOADLIBES. Fri Aug 28 16:25:22 1992 Ian Lance Taylor (ian@cygnus.com) * obj-bout.h, obj-bout.c (obj_header_append, obj_symbol_to_chars), tc-i960.c (md_ri_to_chars): Always output bout object file in little endian byte order (used to use endianness of host). Tue Aug 25 15:50:48 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * config/tc-m68k.c (init_table): Now const. Always include 68851 data, so that "bc" is available to 68040 cache instructions. Added "tt0", "tt1", and 68ec030 variants. (md_assemble): Complain if 68000 (only) and 68881 are specified. (enum _register): Added TT0, TT1. (m68k_ip, cases '3' and 't'): Handle new operand type codes. Pass line number correctly in "internal error" messages. Don't print architecture-mismatch message for operand errors. From Colin Smith (colin@wrs.com): * config/tc-m68k.c (m68k_ip, case '_'): Use addword twice rather than install_operand. Tue Aug 25 15:13:48 1992 Steve Chamberlain (sac@thepub.cygnus.com) * listing.c (buffer_line): rewind to the start of include files, they might be included twice. * z8k.c, z8k.h, z8k.mt: z8000 support stuff Mon Aug 24 12:45:43 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in: defined TARGET_CPU for C code so that it can choose one element of a family. * tc-m68k.c: use TARGET_CPU to choose default cpu type. * te-generic.h: default to LOCAL_LABELS_DOLLAR and LOCAL_LABELS_FB so that we can assemble hand-written libgcc code. Fri Aug 21 14:38:44 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) * messages.c (as_warn): Use fputs, not fprintf, with a buffer that has already been formatted (but may still contain %-characters). (as_bad): Likewise. Wed Aug 19 11:20:59 1992 Ian Lance Taylor (ian@cygnus.com) * tc-m68k.c, tc-m68kmote.c: the cas2 instruction is supposed to be written with indirection on the last two operands, which can be either data or address registers. Added a new operand type 'r' which accepts either register type. Added '(' to notend stuff in tc-m68kmote.c to accept (a0):(a2) in cas2 instruction. Wed Aug 19 09:25:09 1992 Ken Raeburn (raeburn@cygnus.com) * as.h (enum _relax_state): Start off at one, not zero, to better catch uninitialized-variable errors. (linkrelax): Declare new variable. * messages.c (warning_count, error_count): Default initializer is sufficient. * write.c: Merged some declarations, using PARMS macro. (text_frag_root, data_frag_root, bss_frag_root, text_last_frag, data_last_frag): No longer static. (write_object_file, case rs_align or rs_org): If HANDLE_ALIGN is defined, call it. Change segments before calling fixup_segment. (relax_align): If linkrelax, provide extra padding. * obj-bout.c (obj_emit_relocations): Emit alignment relocs despite their not having symbols associated. * tc-i960.c (norelax, instrument_branches): Default initializer is sufficient. (linkrelax): Delete variable definition. (mem_fmt): Call fix_new with NO_RELOC. (tc_bout_fix_to_chars): Handle alignment relocs. (i960_handle_align): New function. * tc-i960.h (linkrelax): Delete declaration. (HANDLE_ALIGN): New macro; calls i960_handle_align. (NEED_FX_R_TYPE, NO_RELOC): New macros. Tue Aug 18 14:59:21 1992 Ken Raeburn (raeburn@cygnus.com) * config/sparc.mt: New file. Grab sparc opcode table from bfd library. Tue Aug 18 14:16:38 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in: always create installation directories. Removed MINUS_G, set CFLAGS to default to -g, added FLAGS_TO_PASS, passed FLAGS_TO_PASS to recursive makes. * doc/Makefile.in: always create installation directories. Mon Aug 17 15:09:56 1992 Steve Chamberlain (sac@thepub.cygnus.com) * input-scrub.c (input_scrub_pop, input_scrub_push): memcpy was being used with args swapped, causing occasional lossage when refilling buffers after an include file. Mon Aug 17 13:18:51 1992 Ken Raeburn (raeburn@cygnus.com) * messages.c (as_tsktsk): Use correct ANSI form for stdarg version. Discard bogus DONTDEF version. (as_warn, as_bad, as_fatal): Likewise. Fri Aug 14 18:31:14 1992 Ken Raeburn (raeburn@cygnus.com) * config/tc-m68k.c (m68k_ip): If instruction is invalid for the selected architecture, print a message saying so and listing what processors support it, rather than saying "operands mismatch". Thu Aug 13 13:53:19 1992 Ken Raeburn (raeburn@cygnus.com) * as.h [BROKEN_ASSERT]: If defined, turn off all assertion checks. * config/ho-rs6000.h (M_RS6000): Don't define it. (free): Declare it. (BROKEN_ASSERT): Define it if not __STDC__. Tue Aug 11 12:58:14 1992 Ken Raeburn (raeburn@cygnus.com) * sparc.mt: New file. Mon Aug 10 14:37:08 1992 Per Bothner (bothner@cygnus.com) * tc-m68k.c: ".align N" means align to N-byte boundary *only* if TN_SUN3; otherwise align to 2**N-byte bounary. Thu Aug 6 12:10:39 1992 Steve Chamberlain (sac@thepub.cygnus.com) * read.c (s_fill): make the .fill size clamped error a warn and fix bug where 0's were always placed. * config/tc-h8300.c: if a :8 is seen after an operand, fill top two bytes of any constant with 0xff: Wed Aug 5 12:02:40 1992 Steve Chamberlain (sac@thepub.cygnus.com) * config/tc-m68k.c (md_pseudo_table): fix the .align thing the right way; for just the 68k. Sun 3 .align is nbytes, not ptwo. Wed Aug 5 01:54:34 1992 John Gilmore (gnu at cygnus.com) * tc-m68k.c (try_index): Error if index scaling specified and assembling for an older CPU than a 68020. Sat Aug 1 19:10:13 1992 Ken Raeburn (raeburn@cygnus.com) * config/tc-sparc.c (tc_aout_fix_to_chars): If pc-relative, take fx_offset into account. Fri Jul 31 21:53:28 1992 Ken Raeburn (raeburn@cygnus.com) * configure.in (mips host): Accept "ultrix" with version number. * expr.c (floating_constant): Separate "=-" to avoid confusing ancient or broken compilers. * config/tc-m68k.c (m68k_ip): Mismatch error could also indicate processor/opcode mismatch, so reword the error message. (md_assemble): If no CPU has been set (even if FPU/PMMU characteristics have been), default to 68020. Don't need extra quotes around error string. Fri Jul 31 12:26:34 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * read.c (potable): Revert sac's incorrect change made Jul 13. Align really is supposed to be ptwo not nbytes. Mon Jul 20 02:51:59 1992 D. V. Henkel-Wallace (gumby@cygnus.com) * Makefile.in: _Do_ include libiberty. (from sef) Fri Jul 17 15:15:28 1992 Ken Raeburn (raeburn@cygnus.com) * expr.c (integer_constant): Handle "0f" and "0b" label references properly. Thu Jul 16 08:20:17 1992 Steve Chamberlain (sac@thepub.cygnus.com) * write.c (fixup_segment): if relaxing, don't do anything. * config/obj-bout.[ch] : maintain the a_relaxable file header info * config/tc-i960.c: new option -linkrelax Mon Jul 13 14:11:36 1992 Steve Chamberlain (sac@thepub.cygnus.com) * expr.c (expr): allow SEG_BSS in expressions * read.c (potable): align should be nbytes, not ptwo! * write.c (write_object_file): extra glue for new bss attributes (relax_segment): SEG_BSS is ok now * config/tc-m68k.c (m68k_ip_op): can now parse more @( modes Mon Jul 6 17:09:32 1992 Steve Chamberlain (sac@cygnus.com) * obj-coffbfd.c (fill_section): mark .lit sections as STYP_LIT Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com) * configure.in: recognize m680x0 as having sun3 emulation mode for vxworks environment. Tue Jun 30 20:25:54 1992 D. V. Henkel-Wallace (gumby@cygnus.com) * Makefile.in: Add program_suffix (parallel to program_prefix) Wed Jun 24 10:57:54 1992 Steve Chamberlain (sac@thepub.cygnus.com) * app.c (process_escape): new function to handle escapes the right way, (do_scrub_next_char): use new function * cond.c (s_ifdef): do ifdef/ifndef right * read.c (s_fill): make the , expressions optional like the doc says * config/tc-h8300.[ch]: better warnings Tue Jun 9 07:54:54 1992 Steve Chamberlain (sac@thepub.cygnus.com) * subsegs.c (subsegs_begin): create bss0_frchainP in the same was as data0_frchainP * write.c (write_object_file): various changes to handle data in the BSS segment in much the same was as stuff in the DATA segment. * tc-m68k.c (m68kip): Fix typo so that only arch's >=68020 do pcrel data stuff. (md_estimate_size_before_relax): when relaxing a 68010 bxx into a bra+6 jmpxx, put the bytes of the jmp opcode into the right place. (s_bss): Don't put .bss stuff into SEG_DATA, put it into SEG_BSS Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com) * expr.c(expr): allow SEG_REGISTER in expressions. * read.c(pseudo_set): register expressions can be the source of a set. * subsegs.c (subseg_new): Now -R forces all changes to SEG_DATA to goto SEG_TEXT (if a.out) * write.c (write_object_file): If a.out don't use the old way for -R. * config/obj-a.out (s_sect): complain if the user tries to use a subsegment with a value which might interfere with out -R hackery. * config/tc-m68k.c (m68k_reg_parse): lookup names in symbol table rather than use ugly if tree. (init_regtable): insert register names into symbol table. Tue Jun 2 16:47:09 1992 Steve Chamberlain (sac@cygnus.com) * write.c (write_object_file): keep the fix_tail clean, which fixes a bug in -R where relocations were being lost. Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com) * configure.in: recognize m680x0 as having sun3 emulation mode for vxworks environment. Sun May 31 05:33:00 1992 david d `zoo' zuhn (zoo@cygnus.com) * configure.in: recognize m680x0 as an m68k Thu May 28 11:22:02 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * configure.in: Recognize sparclite as a sparc variant. * tc-sparc.c: Use new ARCHITECTURES_CONFLICT_P macro. Mention new -Asparclite flag. Tue May 26 16:47:56 1992 Steve Chamberlain (sac@thepub.cygnus.com) * config/tc-a29k.c: lint * listing.c, expr.c: patches from Andrew Smith Thu May 14 17:22:48 1992 K. Richard Pixley (rich@rtl.cygnus.com) * doc/Makefile.in: use m4 rather than gm4. Mon May 4 18:56:19 1992 Steve Chamberlain (sac@thepub.cygnus.com) * 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. Mon Apr 27 13:13:31 1992 K. Richard Pixley (rich@cygnus.com) * as.c, write.c: use -K rather than -k for the broken word warning option. Tue Apr 21 13:35:30 1992 K. Richard Pixley (rich@cygnus.com) * Makefile.in: do not print recursion lines. Wed Apr 15 21:19:31 1992 K. Richard Pixley (rich@rtl.cygnus.com) * Makefile.in: the tooldir copy of gas goes directly in tooldir. Tue Apr 14 14:50:22 1992 Ken Raeburn (Raeburn@Cygnus.COM) * write.c (write_object_file): For b.out format, round up section start addresses to match required alignment. Thu Apr 9 05:45:29 1992 Ken Raeburn (Raeburn@Cygnus.COM) * Makefile.in (install): Install into $(tooldir)/bin, since that's where gcc looks for it. Tue Apr 7 15:12:15 1992 Sean Eric Fagan (sef@cygnus.com) * Makefile.in: Changed some lines to be less confusing for some makes. * input-file.c: Conditionalize on _IOFBF, not VMS. * read.c, write.c: Change a series of ifdef/elif to ifdef/else/ifdef etc. Fri Mar 27 12:21:16 1992 K. Richard Pixley (rich@cygnus.com) * symbols.c (fb_label_init): fix sizeof to memset. Fri Mar 13 15:45:44 1992 K. Richard Pixley (rich@cygnus.com) * Makefile.in: install the man page. * Makefile.in: pass down MAKEINFO explicitly on info. * doc/Makefile.in: use $(MAKEINFO) not makeinfo. Fri Mar 13 08:03:03 1992 Steve Chamberlain (sac@thepub.cygnus.com) * flonum-const.c: renamed flonum-konst.c to stop dos name conflict. Thu Mar 12 04:42:38 1992 K. Richard Pixley (rich@cygnus.com) * tc-m68k.h, te-sun3.h: moved LOCAL_LABELS_FB definition from tc-m68k.h to te-sun3.h. Wed Mar 11 23:32:42 1992 K. Richard Pixley (rich@cygnus.com) * configure.in: vxworks68 gets te-sun3.h. * expr.c: remove limitation that local_labels_dollar or local_labels_fb must be < 10. * symbols.c: remove local_labels_dollar, replace with a function interface for a sparse array. All users adjusted. * te-sun3.h: add LOCAL_LABELS_DOLLAR. Sat Mar 7 00:06:25 1992 K. Richard Pixley (rich@rtl.cygnus.com) * doc/Makefile.in: commented out line for building as-all.texinfo. This is temporary. * doc/as.texinfo, doc/as-all.texinfo: added menu item hooks. Fri Mar 6 21:57:18 1992 K. Richard Pixley (rich@cygnus.com) * Makefile.in: added check target. Tue Mar 3 15:45:56 1992 K. Richard Pixley (rich@rtl.cygnus.com) * Makefile.in: added tooldir and program_prefix. Sun Mar 1 04:43:19 1992 Michael Tiemann (tiemann@cygnus.com) * write.{c,h} (fix_new): Make these declarations consistent. Sat Feb 29 13:59:10 1992 Michael Tiemann (tiemann@cygnus.com) * Makefile.in (strerror.o): Add rule so that broken Sun make can work in subdirs. Wed Feb 26 19:26:28 1992 Steve Chamberlain (sac at thepub.cygnus.com) * read.c, obj-coffbfd.c : fix h8300 specific bit rot * expr.c (operand): if can't work out what sort of operand it is, then look through FLT_CHARS for a hint. Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com) * Makefile.in, configure.in: removed traces of namesubdir, -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced copyrights to '92, changed some from Cygnus to FSF. * doc/Makefile.in, doc/configure.in: removed traces of namesubdir, -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced copyrights to '92, changed some from Cygnus to FSF. Tue Feb 25 14:17:15 1992 Steve Chamberlain (sac at rtl.cygnus.com) * expr.c: If an expression is single comma, then return with SEG_ABSENT rather than an error - since the sparc front end does really strange things with things like fbge,a * as.h: include bfd.h if using many sections * expr.c: LOCAL_LABELS_FB had been changed to lower case - so local labels didn't work. * listing.c (list_symbol_table): don't core dump when there's no symbol there. * write.c, write.h: call fix_new with the right number of args on the H8. * config/tc-h8300.[ch] : fix bugs reported by HMSI, and make errors nices Sat Feb 22 12:26:28 1992 Steve Chamberlain (sac at rtl.cygnus.com) * 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- 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. Fri Feb 21 06:21:07 1992 K. Richard Pixley (rich@rtl.cygnus.com) * Makefile.in: put header files before C source for TAGS; remove references to non-existent syscalls.h. * read.c, write.c subsegs.c: back out the .bss changes. * obj-aout.c: do not include stab.gnu.h if NO_LISTING. * tc-i860.c, a.out.gnu.h: move i860 relocs to a proper place. * a.out.h: removed. Fri Feb 21 01:08:48 1992 Minh Tran-Le (TRANLE@INTELLICORP.COM) * symbols.c (local_label_name): symbols now start with ^A. * read.c, subsegs.c, write.c obj-coff.c: added handling of `.bss` pseudo op for unitialized data. The new gcc (1.37.9x) generate these sections. .align: will use NOP_OPCODE or 0 for padding. This is just for being nice to the disassembler. * expr.c (operand): changed to generate local label "\001L0" starting with a ^A so that it is recognized as a local label. * as.c (perform_an_assembly_pass): zero bss_fix_root, too. * tc-i386.c: tc-i386.c: added handling of the following opcodes: i/o opcodes - inb, inw, outb and outw. string manipulation with att syntax - scmp, slod, smov, ssca, ssto. * obj-coff.c: (for aix386) Moved the symbols .text, .data and .bss to just after .file . In obj_crawl_symbol_chain() where it tries to put the external symbols apart, with the condition: (!S_IS_DEFINED(symbolP) && !S_IS_DEBUG(symbolP) && !SF_GET_STATICS(symbolP)) it was moving too many symbols out. So I switch it back to the condition: (S_GET_STORAGE_CLASS(symbolP) == C_EXT && !SF_GET_FUNCTION(symbolP)) In obj_emit_relocations() added the conditional on KEEP_RELOC_INFO so that we don't use the F_RELFLG which make the linker complain that somebody has stripped the relocation info. Also, the AIX ld program require that the relocation table is sorted by r_vaddr like the standard ATT assembler does. [he also changed the sizeof(struct ...)'s into the coff style FOOSZ macros. I'm not sure this is right, but I can't remember why. xoxorich.] Fri Feb 21 01:08:48 1992 K. Richard Pixley (rich@cygnus.com) * Makefile.in, configure.in, doc: use the doc. Build it, install it, clean it, etc. Tue Feb 18 02:21:25 1992 K. Richard Pixley (rich at cygnus.com) * read.c: white space and comments only. * configure.in: use the new atof-ns32.c for ns32k. * write.c: comment change only. * tc-m88k.[hc]: pulled in from hack's unfinished work. These aren't yet integrated. * tc-i860.[hc]: blew off the dust. Something must still be done about conflicting relocation types. * tc-ns32k.c: Replaced previous tc_aout_fix_to_chars stub with the real thing. * tc-i960.c, tc-sparc.c: white space and comments only. * tc-a29k.h: delete duplicate macro definition. * new file atof-ns32k.c copied from hack's last unreleased gas. Mon Feb 17 07:51:06 1992 K. Richard Pixley (rich at cygnus.com) * config/tc-ns32k.c: actually make tc_aout_fix_to_chars work rather than abort. * nearly everything. flush ChangeLog, package as gas-1.92.1. ChangeLog's prior to this are sketchy at best. I have logs. They just aren't ChangeLogs.