Ian Lance Taylor [Thu, 15 Feb 1996 22:43:59 +0000 (22:43 +0000)]
* configure.in: Don't get CC from the host Makefile fragment if we
can find gcc in PATH, or if this is a Canadian Cross. Move the
Solaris test for /usr/ucb/cc to the post target script, just after
the compiler sanity test.
Ian Lance Taylor [Thu, 15 Feb 1996 22:05:32 +0000 (22:05 +0000)]
* configure.in: Call AC_PROG_CC before configure.host. Don't
substitute CFLAGS.
* configure: Rebuild.
* configure.host: Don't set information which autoconf should
figure out, namely CC, CFLAGS, LDFLAGS, AR, and RANLIB.
* Makefile.in (CFLAGS): Set to -g, not @CFLAGS@.
Ian Lance Taylor [Thu, 15 Feb 1996 21:32:43 +0000 (21:32 +0000)]
* configure.in: Call AC_PROG_CC before configure.host.
* configure: Rebuild.
* configure.host: Remove go32 host, since it should no longer be
necessary. Don't set CC for romp host.
Ian Lance Taylor [Thu, 15 Feb 1996 19:00:54 +0000 (19:00 +0000)]
* configure: Set and substitute RPATH_ENVVAR.
* configure: Rebuild.
* Makefile.in (RPATH_ENVVAR): New variable.
(check): Use $(RPATH_ENVVAR) rather than LD_LIBRARY_PATH.
Fred Fish [Thu, 15 Feb 1996 19:00:34 +0000 (19:00 +0000)]
* config/unix-gdb.exp: Default timeout in UNIX case to 30 seconds, up
from dejagnu's apparent default of 10 seconds, which gives random results
when running the tests over NFS on moderately loaded systems.
* lib/gdb.exp (gdb_run_cmd): Add "(timeout)" in timeout case.
Ian Lance Taylor [Thu, 15 Feb 1996 19:00:07 +0000 (19:00 +0000)]
* configure.in: Substitute RPATH_ENVVAR.
* configure: Rebuild.
* configure.host: Set RPATH_ENVVAR.
* Makefile.in (RPATH_ENVVAR): New variable.
(check): Use $(RPATH_ENVVAR) rather than LD_LIBRARY_PATH.
Ian Lance Taylor [Thu, 15 Feb 1996 18:57:34 +0000 (18:57 +0000)]
* configure.in: Substitute RPATH_ENVVAR.
* configure: Rebuild.
* Makefile.in (RPATH_ENVVAR): New variable.
(check): Use $(RPATH_ENVVAR) rather than LD_LIBRARY_PATH.
* Makefile.in ($(srcdir)/bfd-in2.h): Rename target from bfd-in2.h.
($(srcdir)/libbfd.h): Rename from libbfd.h.
($(srcdir)/libcoff.h): Rename from libcoff.h.
* i386-dis.c (onebyte_has_modrm): New static array.
(twobyte_has_modrm): New static array.
(print_insn_i386): Only fetch the mod/reg/rm byte if it is needed.
* configure.in: Redo emulation handling so that each emulation
searches the correct tool directory, based on the target alias.
For example, "configure --enable-targets=m68k-coff i386-linux"
will search /usr/local/i386-linux/lib for linux and
/usr/local/m68k-coff/lib for m68k-coff.
* configure: Rebuild.
* configure.tgt: Add special tdir settings for Linux.
* Makefile.in: Add @TDIRS@. Pass "$(tdir_EMUL)" to ${GENSCRIPTS}
for each eEMUL.c target.
* genscripts.sh: Accept specific alias as 9th argument, and use it
in LIB_PATH.
Ian Lance Taylor [Wed, 14 Feb 1996 23:13:13 +0000 (23:13 +0000)]
From Alan Modra <[email protected]>:
* configure.in: Remove duplicate setting of cpu_type. Check
whether opcodes library is required for on all targets, not just
primary one.
* configure: Rebuild.
* ieee.c (ieee_write_expression): Only use an R variable for a
local symbol. Don't output a zero offset. Handle a zero address.
(SRC_MASK, PCREL_OFFSET): Define based on KEEPMINUSPCININST.
(rel32_howto, rel16_howto, rel8_howto): Use SRC_MASK and
PCREL_OFFSET.
(parse_expression): Don't try to handle multiple occurrences of a
P variable. Handle I variables differently from X variables. Fix
the order of minus expressions.
(ieee_slurp_external_symbols): Generate an I variable for an NN
record. Fix handling of ATI and ATX records.
(ieee_slurp_sections): Only set minimal section attributes.
Adjust them later, based on the section contents.
(ieee_object_p): Read in the file until just after the ME record.
Call ieee_slurp_section_data to set the section flags.
(do_one): Add iterations parameter. Only repeat the first load
item. Set the section and file reloc flags.
(ieee_slurp_section_data): Set section flags. Pass iterations to
do_one.
(ieee_canonicalize_reloc): Handle I variables.
(do_with_relocs): Only emit relocation size when necessary.
Increase MAXRUN to 127. Change ov to be assigned, and take
src_mask and pcrel_offset into account.
(ieee_write_data_part): Skip sections that are not loaded.
(ieee_write_external_part): Don't output optional last entry of WX
records.
(ieee_write_me_part): Make setting of me_record neater.
(ieee_generic_stat_arch_elt): Get the size of an archive element.
* read.c (s_mri_sect): Don't return '\0' in type. Set all
appropriate flags in BFD section.
* configure.in (m68k-*-psos*): New target.
* configure: Rebuild.
* config/te-psos.h: New file.
* config/tc-m68k.c (comment_chars): Don't include '#' if TE_PSOS
is defined.
Ian Lance Taylor [Wed, 14 Feb 1996 18:51:35 +0000 (18:51 +0000)]
* gas/mips/jal-xgot.d, gas/mips/la-xgot.d: New tests.
* gas/mips/lb-xgot.d, gas/mips/ld-xgot.d: New tests.
* gas/mips/lif-xgot.d, gas/mips/ulh-xgot.d: New tests.
* gas/mips/mips.exp: Run new tests if svr4pic.
Ian Lance Taylor [Wed, 14 Feb 1996 18:49:27 +0000 (18:49 +0000)]
* config/tc-mips.c (mips_big_got): New static variable.
(s_extern): Don't declare.
(reg_needs_delay): New static function.
(macro_build): Permit GOT/CALL_HI/LO relocs.
(macro_build_lui): If place is not NULL, use the number in the
expression.
(load_address): Handle mips_big_got case.
(macro): Handle mips_big_got for M_LA_AB, M_JAL_A, and load and
store macros.
(OPTION_XGOT): Define.
(md_longopts): Add "xgot" if OBJ_ELF.
(md_parse_option): Handle -xgot.
(md_show_usage): Mention -xgot.
(md_apply_fix): Permit GOT/CALL_HI/LO relocs.
(tc_gen_reloc): Handle GOT/CALL_HI/LO relocs.
* i386msdos.c: Remove some #if 0 code.
(msdos_write_object_contents): Don't include empty sections in the
size computation, regardless of their address.
Ian Lance Taylor [Tue, 13 Feb 1996 19:37:40 +0000 (19:37 +0000)]
* ieee.c (get_symbol): Set the section to bfd_abs_section.
(do_with_relocs): If EXEC_P is set and there are no relocs, use a
simple number for the section address, rather than an expression.
Limit the number of bytes between relocs to MAXRUN.
(ieee_write_me_part): Set me_record to the file offset after the
start address.
(ieee_write_processor): New static function.
(ieee_write_object_contents): Use ieee_write_processor.
Ian Lance Taylor [Tue, 13 Feb 1996 19:05:38 +0000 (19:05 +0000)]
* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Warn if
it looks like we might be linking in two different versions of the
same shared library. Based on a patch from H J Lu <[email protected]>.
Ian Lance Taylor [Tue, 13 Feb 1996 00:20:13 +0000 (00:20 +0000)]
* read.c (potable): Add "mri" and ".mri".
(s_mri): New function.
* read.h (s_mri): Declare.
* app.c (scrub_m68k_mri): New static variable.
(mri_pseudo): New static variable.
(do_scrub_begin): Add m68k_mri parameter. Use it rather than
flag_m68k_mri. Initialize scrub_m68k_mri.
(mri_state, mri_last_ch): New static variables.
(struct app_save): Add scrub_m68k_mri, mri_state, and mri_last_ch
fields.
(app_push): Save new fields.
(app_pop): Restore new fields.
(do_scrub_chars): Check scrub_m68k_mri rather than flag_mri_mri.
If TC_M68K, use a trivial state machine to look for occurrences of
the .mri pseudo-op, and change the mode appropriately.
* as.h (do_scrub_begin): Update prototype.
* input-scrub.c (input_scrub_begin): Pass flag_m68k_mri to
do_scrub_begin.
* config/tc-m68k.c (reg_prefix_optional_seen): New static
variable.
(m68k_mri_mode_change): New function.
(md_parse_option): Set reg_prefix_optional_seen.
* config/tc-m68k.h (m68k_mri_mode_change): Declare.
(MRI_MODE_CHANGE): Define.
* doc/as.texinfo: Document .mri pseudo-op.
Fred Fish [Mon, 12 Feb 1996 21:03:12 +0000 (21:03 +0000)]
* f-lang.c (allocate_saved_bf_node, allocate_saved_function_node,
allocate_saved_f77_common_node, allocate_common_entry_node,
add_common_block): Use xmalloc rather than malloc, some of which
were unchecked.
* gnu-regex.c: At same point as other gdb specific changes
#undef malloc and then #define it to xmalloc.
* ch-exp.c (growbuf_by_size): Use xmalloc/xrealloc rather than
bare unchecked calls to malloc/realloc.
* stabsread.c (dbx_lookup_type): Use xmalloc rather than bare
unchecked call to malloc.
Support for OBJ_ELF on m68k, mostly inside #ifdef OBJ_ELF:
* config/m68k-parse.h (enum pic_relocation): Define.
(struct m68k_exp): Add pic_reloc field.
* config/tc-m68k.h (TC_RELOC_RTSYM_LOC_FIXUP): Define.
(tc_fix_adjustable): Define to call tc_m68k_fix_adjustable.
(NO_RELOC): Define to BFD_RELOC_NONE if BFD_ASSEMBLER, to zero
otherwise.
* config/tc-m68k.c: Delete definition of NO_RELOC.
(struct m68k_it): Add pic_reloc field.
(add_fix): Copy over pic_reloc field.
(md_pseudo_table): Interpret .align parameter as byte count.
(mote_pseudo_table): Likewise.
(tc_m68k_fix_adjustable): New function.
(get_reloc_code): New function.
(md_assemble): Use it as last argument to fix_new_exp.
(md_apply_fix_2): For a relocation against a symbol don't put the
addend into the data.
(tc_gen_reloc): Different addend computation for OBJ_ELF.
(m68k_ip): Don't relax an operand that requires pic relocation.
(md_begin): Align .text, .data and .bss on 4 byte boundary by
default.
* write.c (fixup_segment): Don't add symbol value to addend if
TC_M68K and OBJ_ELF.
* config/m68k-parse.y (yylex): Handle @PLTPC, etc.
(motorola_operand): Add rule for `(zapc, EXPR)'.
Ian Lance Taylor [Mon, 12 Feb 1996 19:41:47 +0000 (19:41 +0000)]
* ieee.c: Extensive changes to write code to put types in the
global type block when possible, to output ranges for all memory
occupied by the module, and to improve efficiency.
Ian Lance Taylor [Mon, 12 Feb 1996 19:41:09 +0000 (19:41 +0000)]
* debug.c (struct debug_handle): Remove class_mark field. Add
id_list and compare_list fields.
(struct debug_class_id): Define.
(struct debug_type_compare_list): Define.
(debug_write): Initialize info->id_list
(debug_write_name): Remove reference to info->class_mark.
(debug_write_type): Get id for all structs and classes. Simplify
test for whether struct has already been written.
(debug_write_class_type): Get id for all classes. Simplify test
for whether class has already been written.
(debug_write_block): Don't write out blocks other than the top
level block if they have no local variables.
(debug_set_class_id): New static function.
(debug_type_samep): New static function.
(debug_class_type_samep): New static function.
* prdbg.c (pr_start_struct_type): Always print id.
(pr_start_class_type): Likewise.
(pr_tag_type): Likewise.
* read.c (potable): Pass negative numbers for new .balign[wl] and
.p2align[wl] pseudo-ops.
(s_align_bytes): Treat a negative argument as specifying the fill
length.
(s_align_ptwo): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): For a R_68K_RELATIVE
relocation put the addend both in the reloc entry and the data.
(elf_m68k_finish_dynamic_symbol): Likewise. Mask out marker in
GOT offset value.
* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, resolve
a R_68K_PCxx reloc against a defined global symbol directly.
(elf_m68k_check_relocs): Don't count such a reloc.
* elf32-m68k.c (elf_m68k_check_relocs): Don't record a symbol with
a PLTxx reloc as dynamic. Disallow PLTxxO reloc against a local
symbol for now, otherwise always record the symbol as dynamic.
(elf_m68k_adjust_dynamic_symbol): If a symbol with a PLTxx reloc
is not referenced by a dynamic object, and we are not making a
shared object, then don't make a PLT entry. If we do make a PLT
entry, make sure the symbol has been recorded as dynamic.
* read.c (potable): Add balignw, balignl, p2alignw, and p2alignl.
(do_align): Take new len parameter. Change all callers. Pass it
to md_do_align.
(s_align_bytes): Arg now indicates the length of the fill pattern.
(s_align_ptwo): Likewise.
* config/obj-coff.c (write_object_file): Pass length to
md_do_align.
* config/tc-i386.h (md_do_align): Take new len parameter.
* config/tc-m88k.h (md_do_align): Likewise.
* config/tc-m88k.c (m88k_do_align): Likewise.
* config/tc-sh.h (md_do_align): Likewise.
* config/tc-sh.c (sh_do_align): Likewise.
* doc/as.texinfo: Document new pseudo-ops.
* config/obj-coff.c (fixup_mdeps): Divide offset by fr_var, as is
done in cvt_frag_to_fill.
PR 8974.
Stu Grossman [Wed, 7 Feb 1996 19:35:38 +0000 (19:35 +0000)]
* symtab.c (gdb_mangle_name): Change opname var to be const to
match return val of cplus_mangle_name.
* i960-tdep.c: Change arg types of next_insn to match callers.
* config/tc-m68k.c (struct m68k_cpu): Add alias field.
(archs): Initialize new field.
(m68k_ip): Don't list alias names when listing CPUs which support
an instruction.
* as.c (main): Call parse_args before read_begin.
* app.c (do_scrub_chars): If flag_m68k_mri, don't put a dot in
front of generated pseudo-ops.
* read.c (potable): Ignore "name".
(s_app_file): Permit a single quote after the string, since one
may appear in m68k MRI mode.
* configure.in: Check for --enable-shared. Substitute new
variables BFDLIB and OPCODES.
* configure: Rebuild.
* Makefile.in (BFDLIB): Set to @BFDLIB@.
(OPCODES): Set to @OPCODES@.
* configure.in: Check for --enable-shared. If linking against
shared BFD and opcodes, fix library name on SunOS, and try to set
-rpath reasonably.
* configure: Rebuild.
* configure.in: Don't set CC. Look for --enable-shared. Set
BFDLIB and HLDFLAGS and substitute them.
* configure: Rebuild.
* Makefile.in (LIBS): Use @BFDLIB@.
(HLDFLAGS): New variable.
(gprof): Use $(HLDFLAGS).