(tc_frob_file): Define to call pa_check_eof.
* config/tc-hppa.c (pa_check_current_space_and_subspace): New
function to verify the current space and subspace are reasonable.
Call for the appropriate pseudo-ops and before instruction parsing.
(pa_check_eof): New function to verify enter/exit and proc/procend
pairs match at EOF.
(pa_code): Simplify.
* config/obj-som.c: Delete #if 0 code.
offset within the current subspace along with updating the
alignment of the subspace itself.
(pa_subspace): Default alignment to one byte rathern than zero
bytes to avoid setting alignment to log2(0).
(md_pseudo_table): Use pa_alignment for .align.
definition.
(tc_frob_symbol): Make this condition on OBJ_SOM or OBJ_ELF. For
ELF, subtract out the symbol->section->vma for non-common symbols.
* gas/testsuite/gas/hppa/unsorted/unsorted.exp (importbug): Tweak
to match current expected ELF output.
* gas/testsuite/gas/hppa/reloc/reloc.exp
(do_plabel_relocation_test, do_r_no_reloc): Likewise.
* configure.in: Put AC_DEFINE(sparcv9) on its own line, so that the shell
variable settings associated with it are permanent. For CPUs requiring
bfd_gas=yes, select it based on CPU only, not individual target names. Handle
m68k-hp-hpux*, not just -hpux.
* config/tc-z8k.c (tc_coff_symbol_emit_hook): Add dummy argument to match
prototype in obj-coff.h.
* configure.in: Skip tests for defining WANT_FOPEN_BIN and IBM_COMPILER_SUX.
* acconfig.h: Deleted them.
* configure, conf.in: Rebuild with autoconf 2.0.
* config/go32.cfg, config/vms-conf.h: Updated.
* config/tc-m68k.c (md_apply_fix_2, md_convert_frag_1): Always use
IBM_COMPILER_SUX version of code, with comments indicating why.
* listing.c (file_info): Use text mode when opening file for read. Use "r"
directly, no macro.
* input-file.c (input_file_open): Don't use FOPEN_RT, just use "r".
* read.c (s_include): Ditto.
* output-file.c (output_file_create): Try both "wb" and "w", don't bother with
FOPEN_* macros.
* as.h: Don't include fopen-*.h.
* config/alpha-opcode.h: Make "ret" with no operands equivalent to "ret
zero,(ra)", to match OSF1 and to be consistent with both one-operand forms.
Patches from DJ Delorie:
* as.h (alloca): undef alloca before defining it just in case
* config/go32.cfg: new file for autoconf values
* config/te-go32.h: new file
* configure.bat: new for autoconf
* config/tc-i386.c (md_assemble): Fix typo in GOTPC check; had = for ==.
* configure.in: If target_frag doesn't exist, use /dev/null.
* as.c (parse_args): For non-VMS systems, re-add `v' to std_shortopts. Add
"verbose" to list of long options.
* write.c (adjust_reloc_syms): When generating an absolute section symbol as a
placeholder, don't mark it as used in a relocation entry, here.
* Makefile.in (comparison): Compare using makefile code from gcc, stripped down
to discard subdir stuff and adapted to give a non-zero exit status if either
file differs.
(md_begin): Don't mips_cpu if it was already set.
(md_parse_option): For -mipsN, don't set mips_cpu if it was
already set. For -mcpu=, just set mips_cpu, not mips_isa.
(s_elf_section): New static function.
* ecoff.c (ecoff_build_symbols): Don't abort if we don't recognize
the section when setting the storage class; default to sc_Data.
(define_some_regs): Add new special register names defined on the
29040.
(parse_operand): Add argument opt. If non-zero, don't warn about
a missing operand.
(machine_ip): If handling argument type 'I', pass opt as non-zero
to parse_operand. Handle new optional operand type 'I'.
(md_undefined_symbol): Handle special register names (srNN).
rather than explicitly adding the frag address.
* config/obj-coff.c (coff_frob_symbol): Add a zero entry to mark
the end of the line numbers; this replaces the zero entry which
used to be added by coff_add_linesym, removed Oct 7.
(coff_adjust_section_syms): Ignore sections with no seginfo.
Update the RS/6000 assembler for recent gas changes.
ChangeLog ecoff.c read.c
* ecoff.c (ecoff_generate_asm_lineno): check if
current_stabs_filename is NULL before strcmp.
* read.c (read_a_source_file): fxi a bug in generate_asm_lineno
checking.
(ppc_stabx): Set sy_tc.within of a C_STSYM symbol to
ppc_current_block. Don't move around any stab symbol, just those
for common symbols.
(ppc_bs): Set ppc_current_block.
(ppc_es): Clear ppc_current_block.
(ppc_frob_symbol): Set the value of a C_STSYM symbol to the offset
from the csect of the enclosing block.
PR 5658.
(S_SET_DESC, S_GET_OTHER, S_GET_TYPE, S_GET_DESC): Likewise.
(obj_attach_unwind_info): Do not define. Not needed anymore.
* config/tc-hppa.c: Delete whitespace at EOL.
(struct hppa_fix_struct): Delete fx_unwind field and all references.
(fix_new_hppa): Last arg is now a pointer to an int. Do not
call obj_attach_unwind_info anymore. For SOM R_ENTRY and R_EXIT
fixups, store 32bits of unwind information in the fx_addnumber
field of the fixup.
(md_assemble, pa_entry, process_exit, pa_procend): For SOM R_ENTRY
and R_EXIT fixups, pass a NULL pointer to fix_new_hppa, and a
pointer to 32 bits of unwind info.
(tc_gen_reloc): For SOM R_ENTRY and R_EXIT fixups, set the symbol
pointer to the dummy symbol; set the addend field to fx_addnumber.
(pa_comm, pa_equ, pa_type_args, pa_import): Use bfd_XXX_section_ptr
rather than &bfd_XXX_section.
* config/obj-coff.c (do_relocs_for): If TC_KEEP_FX_OFFSET
is defined, put the tx_offset into the r_offset.
* config/tc-sh.c (line_comment_chars): Add #
(tc_reloc_mangle): Deleted.
* config/tc-sh.h (TC_KEEP_FX_OFFSET): Define.
(TC_RELOC_MANGLE): Delete.
handling of program_transform_name.
* configure.in: Test for "unlink" and "delete", define USE_DELETE_FOR_UNLINK if
only the latter is found. Not expected to be triggered on UNIX/POSIX systems.
* acconfig.h (USE_DELETE_FOR_UNLINK): Undef here, provide comments.
Update for autoconf 1.118:
* gdbinit.in: New file, created from old .gdbinit.
* .gdbinit: Deleted.
* aclocal.m4 (GAS_GDBINIT): Deleted.
* configure.in: Don't use it. Instead, generate .gdbinit from gdbinit.in.
Don't substitute cpu_type, obj_format, emulation, atof. Switched order of
AC_LINK_FILES arguments. Use AC_PREREQ to ensure that older versions of
autoconf aren't used.
* Makefile.in: Added @configure_input@ line.
(configure): Deleted rule.
[regenerated conf.in, configure]
(s_mips_globl): New static function; needed for Irix 5 support.
* ecoff.c (ecoff_build_symbols): If BSF_FUNCTION is set for an
external symbol with no type, set the type to st_Proc rather than
st_Global. Don't set the index of an external st_Proc or
st_StaticProc symbol unless it is also a local symbol.
ChangeLog read.h read.c ecoff.h ecoff.c
* read.h : ditto.
* read.c (read_a_source_file): if no file when inst is read, set
generate_asm_lineno to true.
* ecoff.h : change name to generate_asm_lineno and add function
ecoff_no_current_file.
* ecoff.c : change name to generate_asm_lineno.
* ecoff.c (ecoff_generate_asm_lineno) : new function, to generate
ecoff style line for asm file.
* aclocal.m4 (GAS_CHECK_DECL_NEEDED, GAS_WORKING_ASSERT): New macros.
* configure.in: Use them. Use AC_ARG_PROGRAM (now provided by autoconf)
instead of my hacked-up AC_PROGRAM_TRANSFORM_NAME. Move test for CROSS_COMPILE
just before AC_FUNC_ALLOCA, and emit a message to try to ease confusion about
autoconf's "cross-compiling" message.
* acconfig.h (NEED_DECLARATION_MALLOC, NEED_DECLARATION_FREE,
NEED_DECLARATION_ERRNO): Renamed from NEED_*_DECLARATION.
* configure, conf.in: Regenerated.
(insns_since_cache_access): New static variable.
(md_begin): Set mips_cpu as well as mips_isa.
(append_insn): If mips_cpu is 4600, require four nop instructions
between an instruction which accesses the cache and certain CACHE
instructions. Keep track of the number of instructions seen since
an instruction which accesses the cache.
(md_parse_option): Set mips_cpu as well as mips_isa.
PR 5433.
(alloca): Replace alloca-conf.h inclusion with code recommended in autoconf
documentation. Include config.h first.
Makefile.in (INCLUDES): Deleted last patch (using -I..).
* aclocal.m4 (AC_OUTPUT_LINKS): Deleted redefinition, since autoconf 1.109 has
this fixed.
* configure.in: Don't change quote characters around AC_MSG_ERROR invocation.
Don't use AC_HEADER_STDC, since it requires running a program. Cache
NEED_*_DECLARATION values.
* configure, conf.in: Regenerated with a modified autoconf 1.109.
(struct frag): Add some comments about the ns32k-specific fields and why
they're here.
(SIZEOF_STRUCT_FRAG): Cast addresses to char*, not int.
(flag_print_statistics): Declare.
* as.c (parse_args): Set flag_print_statistics instead of statistics_flag.
Options array is now const. Added new option "dump-config"; if specified,
print TARGET_ALIAS, TARGET_CANONICAL, TARGET_CPU, TARGET_OBJ_FORMAT, and
TARGET_FORMAT, if defined.
(main): Change test to check flag_print_statistics.
(statistics_flag): Deleted.
* acconfig.h, aclocal.m4: New files.
* configure.in: Rewritten (except for some target-specific code) for autoconf.
* conf.in, configure: New files, generated from the above.
* Makefile.in: Changed magic sequence indicating insertion of makefile
fragments.
(VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions from
configure.
(LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h.
(config.status, configure): Rewrite rules.
(config-stamp): Depend on conf. Skip variables that configure is now
substituting itself.
(*.o dependencies): Deleted host.h.
(distclean, realclean): Don't delete host.h.
* as.c: Don't include stdio.h, string.h, sys/types.h. Include signal.h after
as.h.
* as.h: Include alloca-conf.h first. Include ctype.h, string.h, strings.h,
stdlib.h, unistd.h, sys/types.h, fopen-bin.h, fopen-same.h, as suggested by
autoconf test results.
[BROKEN_ASSERT]: Don't include assert.h.
(strdup): Declare.
(volatile, const): Define if not __STDC__ and not already defined.
(malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare.
(free) [NEED_FREE_DECLARATION]: Declare.
* gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H). Don't include host.h.
(malloc) [NEED_MALLOC_DECLARATION]: Declare.
* messages.c: Include as.h first. Include errno.h only if HAVE_ERRNO_H. If
HAVE_VARARGS_H and not __STDC__, undefine HAVE_STDARG_H. Set NO_STDARG and
NO_VARARGS as appropriate.
* doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Use
autoconf @-substitutions.
(in_range): New function, tests whether a value can fit in an N-bit field.
(build_mem, build_operate_n): New functions for constructing opcode values.
(emit_sll_n, emit_ldah_num, emit_addq_r, emit_lda_n): New functions for
emitting single instructions, no longer requiring a recursive call to
md_assemble.
(emit_add64): New function for expanding a REG:=REG+CONST operation into
one or more instructions, to handle wide constants.
(clear_insn): New variable.
(md_begin): Fill it in with zeros and BFD_RELOC_NONE values.
(alpha_ip): Use it to initialize local variable insns.
(alpha_ip, label "immediate" and cases 'P', 'G'): Use emit_add64 for
calculations.
with native MIPS assembler.
* configure.in (mips-*-irix*): Don't set emulation.
* config/te-irix.h: Remove.
With these changes, gas works with mips-tfile.
haven't seen any input files yet.
* config/tc-alpha.c (md_begin): Just call symbol_create, rather
than calling symbol_new and then removing the symbol from the
list.
With these changes, Alpha gas will work with mips-tfile.
* as.c (main): Move a inside the #if 0 block which uses it.
* ecoff.c (current_stabs_filename): Make const.
* frags.h (frag_align_pattern): Declare.
* gasp.c (new_file): Cast isp to long, and use %ld to print it.
* config/tc-alpha.h (md_operand): Add cast to void.
(alpha_do_align): Declare argument types.
(tc_get_register): Declare.
(alpha_frob_ecoff_data): Declare.
* config/tc-alpha.c: Include <ctype.h>.
(s_mask): Don't declare; does not exist.
(line_comment_chars): Remove /* from descriptive comment.
(tc_get_register): Remove unused local reg.
(tc_gen_reloc): Don't bother to compare unsigned to zero.
(s_base): Correct warning to actually print register number.
(md_begin): Remove unused locals retval, lose, and i.
(alpha_fix_adjustable): Move default case inside switch to avoid
warning.
(load_symbol_address): Remove unused locals reloc_addr, p, sym,
and addend.
(emit_byte_manip_r): Declare types for all arguments.
(emit_extract_r, emit_insert_r, emit_mask_r): Likewise.
(emit_sign_extend, emit_bis_r, s_proc): Likewise.
(alpha_ip): Use sprint_value to print offsetT value. Remove
unused local size. Remove unused label get_macro.
(alpha_do_align): Make fill const.
(md_apply_fix): Remove unused label check_zov.
* config/te-ppcnw.h: New file to support Power-PC/Netware
configurations. Currently, it just enables the use of backslash
escapes in string directives.
* as.h: If FOPEN_WB is not defined, do the right thing in a go32
environment.
Mon Jul 11 11:34:52 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* config/tc-h8300.c (pint): New function for handling varying
size of int pseudo op.
* doc/as.texinfo: Fix typo describing .h8300h pseduop.
(md_parse_option) [NO_V9]: Complain if v9 was selected.
(md_show_usage): Derive architecture list in usage message from
architecture_pname array.
(cypress): Macro deleted.
(op_hash): Don't initialize.
(s_common): Use bfd_und_section_ptr instead of bfd_und_section.
(BSR): New function.
(sparc_ip): Use it for right-shift operations of 32 bits or more.
(sparc_ip): Implement new operand type 'x'.
* config/tc-i960.h (TC_COFF_SET_MACHINE): New macro. Calls tc_headers_hook.
* config/tc-i960.c (targ_has_iclass): Use I_CX | I_CX2 where I_CX was used
previously.
(tc_headers_hook): If I_CX2 is found, set flags to F_I960CA.
* config/tc-i960.c (po_hash): Declaration deleted.
(next_object_file_charP): Ditto.
(regnames, aregs, coj): Now const.
(parse_memop): Static array def_scale now const.
(md_begin): Cast away const when passing hash routines addresses of values in
regnames or aregs.
(md_longopts): Added "link-relax" and "no-relax" hyphenated forms. Continue to
accept one-word forms.
(struct tabentry, arch_tab): Moved to top level from inside md_parse_option.
Now const.
(md_show_usage): Use arch_tab to generate usage message. Print hyphenated
forms of relax options.
* config/tc-i960.h (DEFINE_I960_AOUT, TC_S_IS_*, TC_S_*_SYSPROC,
TC_S_FORCE_TO_*): Moved from here...
* config/tc-i960.c: ... to here. Changed DEFINE_I960_AOUT stuff to test
OBJ_AOUT and OBJ_BOUT directly.
* config/tc-i960.h (CTRL, COBR, COJ, REG, MEM*, FBRA, CALLJ, M1-M3, REG_OPC,
R_*, SFR, LIT, FP, OP, R, RS, RL, RSL, F, {R,F}{,L}{2,4}, M, SFR_OK, LIT_OK,
FP_OK, REG_ALIGN, MEMOP, I_*): Macros deleted.
* config/tc-i960.c (ARCH_XL): Define.
(arch_tab): Include XL.
(targ_has_sfr, targ_has_iclass): Handle XL.
(tc_headers_hook): Set flags to F_I960XL for i960XL.
* config/obj-coff.h: Moved common includes and TARGET_FORMAT definitions
together.
(WORKING_DOT_WORD, WARN_SIGNED_OVERFLOW_WORD, OBJ_COFF_OMIT_OPTIONAL_HEADER,
BFD_HEADERS, BFD) [!BFD_ASSEMBLER]: Moved these definitions to the start of the
file, before the includes.
(SYMBOLS_NEED_BACKPOINTERS, OBJ_COFF_MAX_AUXENTRIES): Always define these.
(S_GET_ZEROES): Deleted.
(S_SET_ZEROES): Moved to obj-coff.c.
* config/obj-coff.c (obj_coff_* psuedo-op fns): Deleted forward declarations.
(obj_pseudo_table): Moved to one version end of file, conditionalized
internally.
(stack typedef, stack_init, stack_delete, stack_push, stack_pop, tag_hash,
tag_init, tag_insert, tag_find, tag_find_or_make): Moved to one combined
version at top of file, unconditional. Deleted forward declarations.
(s_get_name): Moved one copy of declarations to start of file.
(def_symbol_in_progress): Ditto. Don't initialize.
(S_SET_ZEROES): Moved here from obj-coff.h.
(write_object_file): If TC_COFF_SET_MACHINE is defined, call it on the file
headers.
* config/obj-coff.c (seg_info_off_by_4): Now const and static.
(SEG_INFO_FROM_SEG_NUMBER): Unused macro deleted.
(previous_file_symbol, def_symbol_in_progress, symbol_externP,
symbol_extern_lastP, last_functionP) [!BFD_ASSEMBLER]: Don't bother explicitly
initializing to zero value.
* config/obj-coff.c (fixup_segment) [TC_I960]: Use SF_GET_BALNAME and
SF_GET_CALLNAME instead of the TC_S_IS_ versions.
(md_parse_option): Clear cpu field of current_architecture before
setting a new cpu type. Clear no_68881 for m68881 or m68882.
Clear no_68851 for m68851.
* symbols.c (symbol_create): New function, most of the guts of the old
symbol_new function.
(symbol_new): Now just checks symbol_table_frozen, calls symbol_create, and
enters the symbol into the symbol table.
* subsegs.c (section_symbol): If EMIT_SECTION_SYMBOLS is not true, and the
symbol table is frozen, call symbol_create instead of symbol_new.
* symbols.h (symbol_create, symbol_table_frozen): Declare.
* symbols.c (symbol_clear_list_pointers): Always a function now.
* struc-symbol.h (symbol_clear_list_pointers): Deleted macro version.
* symbols.c (debug_verify_symchain): New macro, defined to be
verify_symbol_chain or a cast to void, depending on DEBUG_SYMS.
(many functions): Invoke debug_verify_symchain unconditionally.
read.c ecoff.h ecoff.c ChangeLog
* read.c (read_a_source_file): ditto.
* ecoff.h: change calling interface of
ecoff_generate_asm_line_stab.
* ecoff.c (add_file): record of filename to handle case of include
files, also change default built-in type from int to void for
asm file.
* ecoff.c (ecoff_generate_asm_line_stab): handle case of include
files.
read.c read.h ecoff.c ecoff.h ChangeLog
* read.c (read_a_source_file): generate line stabs for asm file.
* read.h: add extern generate_asm_line_stab.
* ecoff.h : add prototype for ecoff_generate_asm_line_stab().
* ecoff.c (add_file): if there's no filename provided, set switch
to generate line stabs for .s file.
* ecoff.c (add_procedure): add stabs symbol for .ent directive.
* ecoff.c (generate_ecoff_stab): creates an artificial stabs.
* ecoff.c (generate_asm_line_stab): generate a artifitial label
for each line and generate a stabn for the line.
alternate base specifier.
(do_aif, do_aelse): Only enable output if expression is true and previous
level was on.
(chartype_init): Add BASEBIT chartype.
(process_pseudo_op): Notice nesteed AIFs.
based on contents of imm_expr and offset_expr, rather than
mips_pic. For M_LI_DD, decide how to handle it based on segment
name of offset_expr, rather than mips_pic.
(mips_ip): If g_switch_value < 4, use immediate values for 'l'.
If g_switch_value < 8, use .rdata rather than .lit for 'L'.
(subseg_change): Store seg_info for bfd_abs_section_ptr in
abs_seg_info, and store seg_info for bfd_und_section_ptr in
und_seg_info.
(subseg_get): Likewise. Also, don't set output_section if it is
already set.
(seg_info): Define as function.
* subsegs.h (seg_info): Declare as function rather than defining
as macro.
* write.c (relax_and_size_seg): Call seg_info rather than
bfd_get_section_userdata.
* read.c (pseudo_set): Only preserve external bit for OBJ_AOUT and
OBJ_BOUT if not BFD_ASSEMBLER.
* config/aout_gnu.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB):
Define as in ../include/aout/aout64.h.
* config/obj-aout.h (OBJ_SYMFIELD_TYPE): If not BFD_ASSEMBLER,
define as char.
(S_GET_WEAK, S_SET_WEAK): Define if not BFD_ASSEMBLER.
* config/obj-aout.c (obj_pseudo_table): Add "weak".
(obj_emit_symbols): Adjust type of weak symbols.
(obj_aout_weak): New static function.
(macro): Correct M_LI_SS SVR4_PIC/EMBEDDED_PIC case. After M_LI_D
or M_L_DOB or label dob, force a new frag to avoid getting
confused in tc_gen_reloc.
(mips_ip): Use RDATA_SECTION_NAME, not .rdata.
(s_change_sec): Likewise.
going through md_number_to_chars. This permits handling symbolic
arguments when the size is larger than sizeof (valueT), if
TC_CONS_FIX_NEW is prepared to handle the case (as it is on MIPS).
(parse_args): Code moved from main.
Recognize --help and --version.
* config/tc-ns32k.h: Define TC_NS32K.
* doc/as.texinfo: Document all of the target-independent command
line options.
throughout code.
(is_complex): Delete definition and support for complex relocation
types.
(tc_gen_reloc): Delete special unwind crud for ELF. Simplify and
rewrite ELF code based on 94-02-02 PA ELF draft spec.
(pa_build_unwind_subspace): Use standard PARISC_DIR32 relocs for
the unwind descriptors.
table if it's already been set in the output bfd.
(symbol_begin) [! EMIT_SECTION_SYMBOLS] [RELOC_REQUIRES_SYMBOL]: Don't use
bfd_abs_section.symbol for gas absolute symbol.
BFD_ASSEMBLER.
* subsegs.c (subseg_change): Initialize fix_tail field.
(subseg_get): Likewise.
* write.c (frags_chained): New static variable.
(fix_new_internal): If frags_chained is set, use fix_root and
fix_tail from seg_info (now_seg), rather than frchain_now.
(chain_frchains_together_1): Set fix_tail field.
(chain_frchains_together): Set frags_chained.
with the preceding instruction even if .set nobopt has been seen.
.set nobopt actually controls whether to bring up an instruction
from the branch target, which gas does not currently support.
BFD_ASSEMBLER is not defined, and all conditionals relating to such code. No
such targets remain.
Fixes for stabs-in-coff:
* config/obj-coff.c: Include subsegs.h.
(coff_frob_section): New function.
(obj_coff_init_stab_section): New function.
* config/obj-coff.h (obj_coff_init_stab_section, coff_frob_section): Declare.
(obj_frob_section): New macro; uses coff_frob_section.
(INIT_STAB_SECTION): New macro; uses obj_coff_init_stab_section.
defaults for defined, private, and spnum fields for the
$TEXT$ and $PRIVATE$ spaces. Do not clobber spnum. Do
not reset the segment if just updating a space.
(pa_spaces_begin): Set BFD section flags for all built-in
subspaces.
(add_procedure): Set first_proc_ptr if it hasn't been set.
(ecoff_build_lineno): If the first procedure does not start at
address zero, insert a dummy line to compensate.
* configure.in: Set ALL_OBJ_DEPS in output Makefile.
Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu> (Charles Bailey):
* vmsconf.sh: In generated file, get ".obj" suffix right, build source files
from other directories into objects in the current directory, and specify PSECT
attributes explicitly to linker. Also added missing label.
* Makefile.in (stamp-mk.com): Reference new variable VMS_OTHER_OBJS for list of
non-local object files, instead of listing them here.
(VMS_OTHER_OBJS): New variable, added more libiberty files.
* make-gas.com: Regenerated.
* config/ho-vms.h (unlink): Define as delete.
* config-gas.com: Fix quoting on TARGET_CANONICAL definition. Delete files
before creating them.
* subsegs.c (subsegs_begin): Call memset with args in the correct
order.
(subseg_get): Clear newly allocated seginfo, set its pointer slots
to NULL instead of 0.
Fixes a problem observed in sparc-lynx progressive.
macro_build for nori case.
(SWITCH_TABLE): Define.
(mips_force_relocation): Force a relocation for a switch table
entry.
(md_apply_fix): Write switch table entry value into file.
(tc_gen_reloc): Use BFD_RELOC_GPREL32 for a switch table entry,
and set the addend to the difference between the reloc address and
the subtrahend.
(elf_tc_make_sections): Likewise.
(hppa_tc_make_sections, hppa_tc_symbol): Delete extern decls.
* config/tc-hppa.c (hppa_tc_make_sections): Delete function.
(hppa_tc_symbol): Likewise.
* config/obj-elf.c (elf_frob_file): Delete elf_tc_symbol and
elf_tc_make_sections stuff. It was there to support PA braindamage
which has been fixed, and in the case of elf_tc_make_sections is
redundant with elf_tc_final_processing.
embedded PIC code, accept the difference between two local symbols
as being constant.
(mips_force_relocation): Only force a reloc to be generated for a
PC relative fixup.
(md_apply_fix): For BFD_RELOC_32 and BFD_RELOC_LO16, put the fixup
value into the file if the fixup will not generate a reloc.
flag rather than signedp field. Only permit extended range if
PPC_OPERAND_SIGNOPT flag is set and assembling in 32 bit mode.
Based on patch from David Edelsohn (edelsohn@npac.syr.edu).
(ppc_arch): Check for PPC_OPCODE_PPC before PPC_OPCODE_POWER.
(md_begin): If an instruction has a size specific flag set, only
add it if we are assembling that size.
branch with an instruction that uses $at, in case the branch is
later expanded.
(macro): If EMBEDDED_PIC, case M_JAL_A may use $at.
(md_pcrel_from): If not OBJ_AOUT, return 4 for an undefined symbol
to make it pcrel_offset.
(tc_gen_reloc): If not OBJ_AOUT, set the reloc addend to
reloc->address; another gruesome hack to get gas reloc handling to
do the right thing.
(T12): New macro.
(emit_insn): New function.
(md_assemble): Call it.
(alpha_force_relocation): Handle BFD_RELOC_26, for call_pal instructions.
(lituse_pending): New variable. Set by anything that generates a LITERAL
reloc, cleared by anything that generates a LITUSE reloc, tested by code that
might want to emit a LITUSE reloc.
(emit_unaligned_io): New function. Currently calls md_assemble, but it should
eventually be converted to generate the insn itself and call emit_insn directly.
(emit_load_unal, emit_store_unal, emit_byte_manip_r, emit_extract_r,
emit_insert_r, emit_mask_r, emit_sign_extend, emit_bis_r): Likewise.
(alpha_ip, case 'I'): Handle with BFD_RELOC_23.
(alpha_ip, label get_macro): Don't emit the final instruction if the opcode is
zero.
(alpha_ip, case 'B', subcase 'd'): New case, for subword and unaligned memory
access macros.
(md_apply_fix): Handle BFD_RELOC_26. Generate an error message if the value
can't be resolved.
(mips_pic): Change from int to enum mips_pic_level. Change all
uses (0 becomes NO_PIC, 2 becomes SVR4_PIC).
(load_address): Handle EMBEDDED_PIC.
(macro): Handle EMBEDDED_PIC in all PIC cases.
(md_parse_option): Accept -membedded-pic to use EMBEDDED_PIC. If
OBJ_ELF, accept -KPIC and -call_shared to use SVR4_PIC and accept
-non_shared to use NO_PIC (this is how the Irix 5 assembler
works). Do not permit -G with SVR4_PIC.
(s_abicalls): Warn if -G was used, and force -G 0.
(tc_gen_reloc): Set reloc->addend to 0 for a PC relative reloc for
anything but a.out, not just for ELF. For ECOFF, don't generate a
BFD_RELOC_16_PCREL_S2 reloc unless using EMBEDDED_PIC.
is called.
(dump_section_relocs): Note whether a symbol is a section symbol or not.
(adjust_reloc_syms): For now, always supply an absolute symbol for fixups
without symbols but not yet `done'. Use section_symbol to get the symbol,
instead of going directly for abs_symbol.
(write_relocs) [DEBUG4]: Abort if any symbol referred to by a reloc is not a
section symbol and is not in the symbol table.
(set_symtab): New function, broken out from write_object_file. Counts symbol
table instead of relying on an earlier count.
(write_object_file): Call set_symtab, but do it after potentially invoking the
*_frob_file macros. Don't bother counting symbols. Call symbol_remove,
instead of expanding it in place. Moved the conditionalized `object_file_size'
declaration down to conditionalized block where it's used. When using the
absolute symbol for a fixup without a symbol, set sy_used_in_reloc.
(write_object_file) [BFD_ASSEMBLER]: Call section_symbol to get the correct
symbol for the absolute section.
BFD_ASSEMBLER; I think all such targets that are supported will be matched by
real CPU-OS combinations earlier in the case statement.
(targets *-*-coff*, *-sysv*, *-*-sco*, *-*-sysv32): Deleted. Made some
comments about the dpx2 configuration, but left it disabled, since it couldn't
be reached before.
(target a29k-amd-ebmonold): Deleted.
* configure.in: If cpu is powerpc*, use ppc.
(ppc-*-sysv4*): Use object format elf.
* config/tc-ppc.h: Only declare a number of things if OBJ_COFF is
defined.
(TARGET_ARCH): Make it call ppc_arch.
(ppc_arch): Declare.
(TARGET_FORMAT): Set based on OBJ_COFF or OBJ_ELF.
(NO_STRING_ESCAPES): Define.
(LOCAL_LABEL, FAKE_LABEL_NAME): Define for OBJ_ELF.
* config/tc-ppc.c: Only define a number of functions of OBJ_COFF
is defined.
(md_pseudo_table): Most pseudo-ops are OBJ_COFF specific. Added
OBJ_COFF specific "bi" and "ei".
(md_parse_option): Fix handling of -u. Make -m601 set
PPC_OPCODE_601. If OBJ_ELF, accept -V and -Q.
(ppc_set_cpu): New function.
(ppc_arch): New function.
(md_begin): Call ppc_set_cpu.
(ppc_insert_operand): For a signed operand accept an unsigned
value, for IBM compatibility.
(ppc_byte): Don't call stringer for strings; instead, treat two
double quotes as a single double quote.
(ppc_comm): Set sy_tc.output for a .lcomm symbol.
(ppc_biei): New function.
(ppc_tc): If not OBJ_COFF, ignore first argument.
(ppc_fix_adjustable): Call as_bad_where, not as_bad.
(ppc_is_toc_sym): New function.
(md_apply_fix): Use ppc_is_toc_sym. Handle BFD_RELOC_16 and
BFD_RELOC_8.
* config/obj-coffbfd.c (obj_coff_init_stab_section): Use memset
instead of memcpy to zero the initial stab symbol, duh.
* config/obj-elf.c (obj_elf_init_stab_section): Ditto.
* config/obj-som.c (obj_som_init_stab_section): Ditto.
* config/obj-coffbfd.c (obj_coff_init_stab_section): Zero the
initial stab symbol after allocating it.
* config/obj-elf.c (obj_elf_init_stab_section): Ditto.
This fixes a critical bug observed in Q4 for Lynx.
ecoff_undefined.
(ecoff_frob_symbol): Don't check ecoff_undefined.
(ecoff_build_symbols): Get size of an undefined symbol from
sym->ecoff_extern_size, not S_GET_VALUE (sym).
declare if BFD_ASSEMBLER.
(stack_pop): Correct test for stack underflow.
(obj_coff_endef, obj_coff_dim, obj_coff_line, obj_coff_size,
obj_coff_scl, obj_coff_tag, obj_coff_type, obj_coff_val): Declare
type of ignored argument to avoid gcc warning.
(align): Removed unused function.
with explicitly marked stabs through BFD: if a symbol marked
N_UNDF | N_EXT is in the absolute section, move it to the
undefined section; move a symbol marked N_INDR into
bfd_ind_section and set the BSF_INDIRECT flag.