maintainers which implements gnu c++ exception dynsums while
preserving compatiblity with Irix5 linker. (by no longer identyifying
particular sections that appear inside the .dynsym section).
1. Change linkspec to not pass -nostdlib to binutils ld, since on mips,
ld parses "-nostdlib" as a set of short options which produce
nonworking binaries.
2. Turn off ASM_OUTPUT_DEF definition: the egcs iris6.h says that
our old definition (from gcc 2.7.2.2 iris5.h isnt really whats
wanted here.
3. Turn off SET_ASM_OP (which defaults to .set) to stop
dwarf2out.c from emitting debug(?) info for C++ using ".set",
since both gas and mips as use .set to control assembler
optimizations, not for equating labels. From iris6.h.
and nonzero -G values are incompatible with PIC.
4. Set default GVALUE (for -G) to 0; this target always produces PIC
by default, and on mips, PIC is incompatible with `small' segment.
5. Set TARGET_DEFAULT to enable "-mdebuga" to defeat
GO_IF_LEGITIMATE_ADDRESS "smarts". GO_IF_LEGITIMATE_ADDRESS pretends
that mips supports an address mode of constant + register.
For constants larger than 16 bits, that relies on assembler fixups
via $at. egcs 1.1 (expr.c delta 1.76) may break up those addresses
such that the backend cannot output them as offsets in load or store
instructions anymore; no other patterns match so egcs coredumps.
mips, which causes binutils-2.8.1 ld (also 2.9.1) to coredump due to
an unrecognized dynsym index.
add ".gcc_except_table" to the list of section names which can appear
in the .dynsym section of an elf-mips [irix5, sic] binary. Confirmed
to fix the coredump for both binutils 2.8.1 and 2.9.1 ld.
Patch from Castor Fu <castor@geocast.com>. Reported to bug-gnu-misc
with this patch, should appear in a future binutils release.
misfeatures with ELF on mips. Without this, gdb gets addresess in
shared-libraries wrong and reports `heuristic fencepost' error.
(cf. the special-case solib functions duplicated in irix5-nat.c.)
contained in the type. This was cc to die when initialize the
tetra long values on vax because it was trying to shift by -64.
This in turn was causing a reserved operand fault resulting in a SIGILL.