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.
[XXX not perfect since gotslot are allocated on a per-symbol basis but
not a per-symbol & addend tuple. This makes impossible to have separate
GOT entries to ___sF (stdin), ___sF+88 (stdout), and ___sF+176 (stderr)]
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.)
bfd.h is a generated file and may end up in the objdir, which might be
.../obj, might be .../obj.${MACHINE} (but what about crosscompilers?)
etc etc. It seems best to use the one installed in DESTDIR; I hope
a DESTDIR setting is required for crosstool builds.
Add argument to md_fix_jmpslot indicating whether this the first (i.e
tranfer) jmpslot or not. Add better support for VAX (the VAX can support
pure text code; let ld that advantage of it). Checking in verified and
working versions of rtld VAX support routines.