Replace string variables with a filename completer with
add_setshow_optional_filename_cmd.
* solib.c, symfile.c: Update.
* cli/cli-setshow.c: Do not tidle expand the file.
Mark Kettenis [Sun, 20 Feb 2005 01:19:24 +0000 (01:19 +0000)]
* value.h (value_contents_equal): New prototype.
* value.c (value_contents_equal): New function.
* varobj.c: Include "exceptions.h" and "gdb_assert.h". Don't
include <math.h>.
(varobj_set_value): Initialize error to zero.
(varobj_update): Rename error2 to error and initialize it to zero.
Slightly change the wording of some comments.
(my_value_equal): Reimplement using TRY_CATCH and
value_contents_equal.
Thiemo Seufer [Fri, 18 Feb 2005 22:12:53 +0000 (22:12 +0000)]
/gas/ChangeLog
* config/tc-mips.c (macro_build_ldst_constoffset): Fail on $at
uses after .set noat.
(load_address): Likewise.
(macro): Likewise. Don't try to avoid $at use by sacrificing
the target register before it is stored, it won't work.
/gas/testsuite/ChangeLog
* gas/mips/noat-1.s, gas/mips/noat-1.d, gas/mips/noat-2.s,
gas/mips/noat2.l, gas/mips/noat-3.s, gas/mips/noat-3.l,
gas/mips/noat-4.s, gas/mips/noat-4.l, gas/mips/noat-5.s,
gas/mips/noat-5.l, gas/mips/noat-6.s, gas/mips/noat-6.l,
gas/mips/noat-7.s, gas/mips/noat-7.l: New files, testcases for
.set noat in macro expansions.
* gas/mips/mips.exp: Run new testcases.
* gas/mips/rol-hw.d, gas/mips/rol-hw.l, gas/mips/rol.d,
gas/mips/rol.l, gas/mips/rol.s, gas/mips/rol64-hw.d,
gas/mips/rol64-hw.l, gas/mips/rol64.d, gas/mips/rol64.l,
gas/mips/rol64.s, gas/mips/uld2-eb.d, gas/mips/uld2-el.d,
gas/mips/uld2.l, gas/mips/uld2.s, gas/mips/ulh2-eb.d,
gas/mips/ulh2-el.d, gas/mips/ulh2.l, gas/mips/ulh2.s,
gas/mips/ulw2-eb-ilocks.d, gas/mips/ulw2-eb.d,
gas/mips/ulw2-el-ilocks.d, gas/mips/ulw2-el.d, gas/mips/ulw2.l,
gas/mips/ulw2.s: Don't try to test .set noat.
Alan Modra [Fri, 18 Feb 2005 01:55:16 +0000 (01:55 +0000)]
* ld-scripts/align2a.d: Don't assume anything about section
padding or alignment, or max page size. Allow 64-bit addresses.
* ld-scripts/align2b.d: Likewise.
Zack Weinberg [Thu, 17 Feb 2005 20:57:01 +0000 (20:57 +0000)]
* ldexp.c (assigning_to_dot): New global flag.
(fold_name): If assigning_to_dot is true, object immediately to
an undefined symbol.
(exp_fold_tree): Set and clear assigning_to_dot around the
recursive call to exp_fold_tree to process the right-hand side
of an assignment to the location counter.
testsuite:
* ld-scripts/align.exp: Rename existing "ALIGN" test to "align1".
Add dump tests "align2a", "align2b", "align2c".
* ld-scripts/align2.t, ld-scripts/align2a.s, ld-scripts/align2a.d
* ld-scripts/align2b.s, ld-scripts/align2b.d
* ld-scripts/align2c.s, ld-scripts/align2c.d: New files.
Alexandre Oliva [Thu, 17 Feb 2005 17:11:01 +0000 (17:11 +0000)]
bfd/ChangeLog:
* elf32-frv.c (elf32_frv_relocate_section): Remove warning from
uninitialized check_segment[1] in TLSMOFF case.
Reported by Alan Modra.
(elf32_frv_relocate_section): Improve errors and warnings.
ld/testsuite/ChangeLog:
* ld-frv/fdpic-static-6.d: Update.
* ld-frv/fdpic*.d: Remove explicit -mfdpic from #as. Update
spelling of errors and warnings.
Alan Modra [Thu, 17 Feb 2005 12:59:59 +0000 (12:59 +0000)]
* deflex.l (YY_NO_UNPUT): Define.
* rclex.l (YY_NO_UNPUT): Define.
* rcparse.y (null_unichar): New static var.
(res_null_text): Use it rather than attempting to init from wchar_t.
* windres.c: Include assert.h and time.h before getopt.h.
Include config.h and unistd.h too.
* config/tc-ia64.c (ia64_parse_name): Don't advance 'name' when
parsing inN, locN, outN. Set 'idx' to offset register number starts
at. Don't handle numbers with leading zeroes or beyond 95. Remove
pointless cast.
Thiemo Seufer [Wed, 16 Feb 2005 15:49:13 +0000 (15:49 +0000)]
* config/tc-mips.c (load_address): Fix formatting.
(macro): Don't use AT if .set noat is in effect. Fix formatting.
Catch macros which are unexpandable without AT. Remove duplicate
zeroing of used_at.
(macro2): Remove duplicate zeroing of used_at.
Mark Mitchell [Wed, 16 Feb 2005 07:49:26 +0000 (07:49 +0000)]
* configure.in (AC_CHECK_FUNCS): Add glob.
* configure: Regenerated.
* emultempl/elf32.em (<glob.h>): Do not include if HAVE_GLOB is
not defined.
(gld${EMULATION_NAME}_parse_ld_so_conf_include): Do not use glob
if HAVE_GLOB is not defined.
Alan Modra [Wed, 16 Feb 2005 02:20:13 +0000 (02:20 +0000)]
bfd/
* elf64-ppc.c (ppc64_elf_edit_toc): Skip toc if size is zero.
Skip toc reloc adjust if reloc_count is zero.
ld/
* emultempl/ppc64elf.em (ppc_create_output_section_statements): Make
an error creating fake bfd fatal.
(ppc_before_allocation): Continue on after errors.
(gld${EMULATION_NAME}_finish): Likewise.
* elf32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
(elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
(elf_mips16_gprel_howto): Likewise. Redefine src_mask and
dst_mask.
(mips16_gprel_reloc): Remove bit shuffling; call
_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
and _bfd_mips16_elf_reloc_shuffle() instead.
(mips16_reloc_map): New reloc map for MIPS16 relocs.
(bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
relocs.
(mips_elf32_rtype_to_howto): Fetch MIPS16 howtos from
elf_mips16_howto_table_rel.
* elf64-mips.c (mips16_elf64_howto_table_rel): New array for
MIPS16 REL reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16
relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
(elf_mips16_jump_howto): Move into mips16_elf64_howto_table_rel.
(elf_mips16_gprel_howto): Likewise. Redefine src_mask and
dst_mask.
(mips16_elf64_howto_table_rela): New array for MIPS16 RELA
reloc howtos. Add R_MIPS16_26, R_MIPS16_GPREL, R_MIPS16_HI16 and
R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16
placeholders.
(mips16_gprel_reloc): Remove bit shuffling; call
_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
and _bfd_mips16_elf_reloc_shuffle() instead.
(mips16_reloc_map): New reloc map for MIPS16 relocs.
(bfd_elf64_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
relocs.
(mips_elf64_rtype_to_howto): Fetch MIPS16 howtos from
mips16_elf64_howto_table_rela or mips16_elf64_howto_table_rel.
* elfn32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
REL reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
(elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
(elf_mips16_gprel_howto): Likewise. Redefine src_mask and
dst_mask.
(mips16_gprel_reloc): Remove bit shuffling; call
_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
and _bfd_mips16_elf_reloc_shuffle() instead.
(mips16_reloc_map): New reloc map for MIPS16 relocs.
(bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
relocs.
(mips_elf_n32_rtype_to_howto): Fetch MIPS16 howtos from
elf_mips16_howto_table_rela or elf_mips16_howto_table_rel.
* elfxx-mips.c (_bfd_mips16_elf_reloc_unshuffle): New function to
handle bit shuffling for MIPS16 relocs.
(_bfd_mips16_elf_reloc_shuffle): Likewise.
(_bfd_mips_elf_lo16_reloc): Use _bfd_mips16_elf_reloc_unshuffle()
and _bfd_mips16_elf_reloc_shuffle().
(_bfd_mips_elf_generic_reloc): Likewise.
(mips_elf_calculate_relocation): Likewise. Handle R_MIPS16_HI16
and R_MIPS16_LO16.
(mips_elf_obtain_contents): Remove bit shuffling.
(mips_elf_perform_relocation): Likewise; call
_bfd_mips16_elf_reloc_unshuffle() and _bfd_mips16_elf_reloc_shuffle()
instead.
(_bfd_mips_elf_relocate_section): Likewise. Handle R_MIPS16_HI16
and R_MIPS16_LO16.
* elfxx-mips.h (_bfd_mips16_elf_reloc_unshuffle): Declare.
(_bfd_mips16_elf_reloc_shuffle): Likewise.
* reloc.c (BFD_RELOC_MIPS16_HI16): New reloc.
(BFD_RELOC_MIPS16_HI16_S): Likewise.
(BFD_RELOC_MIPS16_LO16): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* config/tc-mips.c (reloc_needs_lo_p): Handle
BFD_RELOC_MIPS16_HI16_S.
(fixup_has_matching_lo_p): Handle BFD_RELOC_MIPS16_LO16.
(append_insn): Add BFD_RELOC_MIPS16_GPREL, BFD_RELOC_MIPS16_HI16_S
and BFD_RELOC_MIPS16_LO16 to relocs to suppress overflow
complaints on.
(mips16_ip): Resolve BFD_RELOC_MIPS16_HI16_S,
BFD_RELOC_MIPS16_HI16 and BFD_RELOC_MIPS16_LO16 for constants.
Call my_getSmallExpression() to parse percent operators.
(percent_op_match, mips_percent_op): Separate definitions.
(mips16_percent_op): Define percent operators for the MIPS16 mode.
(parse_relocation): Handle the MIPS16 mode using
mips16_percent_op.
(md_apply_fix3): Handle BFD_RELOC_MIPS16_HI16,
BFD_RELOC_MIPS16_HI16_S and BFD_RELOC_MIPS16_LO16.
* gas/mips/mips16-hilo.d: New test for the R_MIPS16_HI16 and
R_MIPS16_LO16 relocs.
* gas/mips/mips16-hilo-n32.d: Likewise, for the n32 ABI.
* gas/mips/mips16-hilo.s: Source for the new tests.
* gas/mips/mips.exp: Run the new tests.
* ld-mips-elf/mips16-hilo.d: New test for the R_MIPS16_HI16 and
R_MIPS16_LO16 relocs.
* ld-mips-elf/mips16-hilo-n32.d: Likewise, for the n32 ABI.
* ld-mips-elf/mips16-hilo.s: Auxiliary source for the new tests.
* ld-mips-elf/mips-elf.exp: Run the new tests.
* config/tc-ia64.c (md_apply_fix3): Call ia64_gen_real_reloc_type
instead of explicitly dealing with the translation; exclude
relocations that are already pcrel, however.
* config/tc-ia64.c: Include limits.h (if available).
(gr_values[0]): Set path to INT_MAX.
(dot_reg_val): Don't allow changing value of r0. Limit range of
general registers at r127.
(specify_resource): Default resource index is -1. Don't set resource
index (in case IA64_RS_RSE) without setting the specific flag.
(note_register_values): Check operand is O_constant before tracking
input value of moves. Add tracking for dep.z with constant inputs.
(print_dependency): Resource index of specific resource may be zero.
(check_dependencies): Likewise.
* gas/ia64/dv-raw-err.s: Don't use r0 or f0 as output operand.
* gas/ia64/dv-waw-err.s: Likewise.
* gas/ia64/reg-err.[ls]: New.
* gas/ia64/ia64.exp: Run new test.
* config/tc-ia64.c (ia64_gen_real_reloc_type): Define and initialize
new variables type, suffix, and width. Handle
BFD_RELOC_IA64_DIR(32|64)[LM]SB in FUNC_LT_FPTR_RELATIVE case.
Handle BFD_RELOC_IA64_DIR64[LM]SB in FUNC_TP_RELATIVE case. Add
FUNC_DTP_MODULE case. Handle BFD_RELOC_IA64_DIR32[LM]SB in
FUNC_DTP_RELATIVE case. Return incoming relocation type if
BFD_RELOC_IA64_IPLT[LM]SB in FUNC_IPLT_RELOC case. Generate warning
if unable to translate relocation type, using the new variables.
* elfxx-ia64.c (elfNN_ia64_relax_section): Allow relax
backward branch in the same section.
(elfNN_ia64_relocate_section): Inform users that the input
section is too big to relax br instruction when overflow
happens to R_IA64_PCREL21B, R_IA64_PCREL21BI, R_IA64_PCREL21M
and R_IA64_PCREL21F.
* config/tc-ia64.c (md_parse_option): Handle -xnone and -xdebugn.
(md_show_usage): Add -xnone, -xdebugn, and -xdebugx. Relocate default
indicator.
(ia64_init): Set md.detect_dv.
(ia64_start_line): New static variable warned. Warn only once when
encountering explicit stops in automatic mode.
* doc/c-ia64.texi: Describe -xnone, -xdebugn, and -xdebugx.
* NEWS: Mention new default mode.
* config/tc-ia64.c (dot_rot): Add comment that name strings should
be freed when wiping out previous state. Canonicalize names before
use. Free name string when detecting redefinition.
(dot_pred_rel): Call generic expression parser to process arguments.
Handle O_register case for individual predicates and O_subtract for
ranges.
(ia64_parse_name): Canonicalize name before looking it up in dynamic
register hash.
(ia64_canonicalize_symbol_name): Strip off all trailing # characters.
Warn if multiple found, issue error if resulting symbol name has zero
length.
(dot_alias): Canonicalize name before use.