1915 Commits

Author SHA1 Message Date
mhitch
b2b8303852 C++ support changes:
Generate .ctors and .dtors sections which contain the contructor and
deconstructor function addresses.

Use .init and .fini sections to call the functions to call those functions.

Include the crtbegin and crtend object files which perform those calls.
1998-11-06 04:33:43 +00:00
jonathan
9348758e57 GNU gprof does not support mips targets (lacks MD files.) 1998-11-05 04:14:56 +00:00
jonathan
6d127dfb63 Revert previous patch. Replace with patch from Cygnus binutils
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).
1998-11-01 22:01:14 +00:00
jonathan
7431d9c704 Fixup last line of previous revision (editor buffer mishap?) 1998-10-31 12:52:34 +00:00
jonathan
fe7810c7dc egcs-1.1 netbsd/mips config fixes:
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.
1998-10-31 12:07:01 +00:00
matt
6b48270d7f Add a "new" reloc since tells ld that the DISP32 can become a GLOB_DAT. 1998-10-31 09:45:55 +00:00
matt
ce394ac326 Add hook to convert some DISP32 relocs to BASREL through a GOT entry.
[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)]
1998-10-31 09:04:29 +00:00
matt
931b784473 Remove reference to unused include file. 1998-10-31 08:59:58 +00:00
matt
64f4491c2e Add a hook for converting "normal" DISP32 relocs that refer to data symbols
in a shared object to BASEREL relocs through a GOT entry.
1998-10-31 08:56:24 +00:00
jonathan
35721185e0 gcc uses "mips" as the config subdirectory and arch-dependent filename
(eg config/mips/mips.md) for all mips targets, irrespective of
endian-ness or int size.  Update Makefile to match.
XXX sparc64, others?
1998-10-31 02:16:38 +00:00
jonathan
945f042426 egcs-1.1 emits .gcc_exception_table sections for C++ exception info on
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.
1998-10-31 01:55:24 +00:00
jonathan
0244692638 patch solib.c from gdb 4.16 to work around non-relocation and
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.)
1998-10-30 06:33:00 +00:00
matt
d7585142e2 Include VAX instruction disassembly support into bfd. (XXX case[lbw] still
needs to be done.)
1998-10-29 17:31:10 +00:00
matt
87cd4ef9e6 More PIC fixes. 1998-10-28 15:56:20 +00:00
matt
ba7ad80c79 Fix cut&paste error. 1998-10-28 15:54:46 +00:00
matt
540ce132a7 Many fixes. Produes correct code now for strtoq.c and gawk. 1998-10-28 15:53:24 +00:00
matt
b185a88969 In non-BFD assemblers on NetBSD, use the NetBSD method of indicating
weak variables.
1998-10-25 00:26:36 +00:00
kristerw
a2030d670f Revert last change, since it treats external SIZE symbols as
weak undefined symbols. The problem it tried to solve is
actually a bug in non bfd gas.new.

Fixes PR port-i386/6351 from Bernd Ernesti.
1998-10-24 21:07:15 +00:00
matt
8f7b610683 More fixes and optimizations for VAX shared library support. Including
one that makes vfork work.
1998-10-23 00:51:36 +00:00
matt
42ba16dee7 Make the BINDER debug messages a bit more useful (print index and jmpslot
address too).
1998-10-23 00:44:44 +00:00
matt
bbd553f2e6 Eliminate more RRS text warnings. Fix a few fatal_insns with g++. 1998-10-21 06:39:55 +00:00
matt
6ee7d63576 It seems that gas.new has new types to indicate weakness
of symbols.  Adapt our ld to it.
1998-10-21 06:13:08 +00:00
matt
89f233dee8 Not all architecures are IEEE math. Don't define IEEE_drem on VAX. 1998-10-20 18:11:04 +00:00
kleink
069e8a5d77 GC empty `FILES' section. 1998-10-20 16:46:15 +00:00
matt
b472384710 Another small PIC bug fix. 1998-10-20 15:36:48 +00:00
matt
85da69cb36 More PIC bug fixes. 1998-10-20 14:58:44 +00:00
matt
d57a728bc2 If trying to covert operand to indirect and it already is
indirect, complain with a fatal error.
1998-10-19 23:35:07 +00:00
ross
a029e1e7ca Also descend into ld/ldconfig even for ld.new platforms. 1998-10-19 07:06:51 +00:00
ross
af935fa530 Even if we are a MACHINE_ARCH that builds ld.new, descend anyway into
ld/rtld & ld/ld.so so the man pages are installed.
1998-10-19 06:53:24 +00:00
ross
9883e3833c Descend into gprof if ${OBJECT_FMT} == "ELF". 1998-10-19 04:18:15 +00:00
ross
56fc9f5a6c Do some g/c and add -I${DESTDIR}/usr/include/bfd. The problem is that
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.
1998-10-19 04:15:10 +00:00
matt
baff1e8043 Switch the NetBSD/vax over to gas.new 1998-10-19 03:12:50 +00:00
matt
4f1a79cfbd Back out change to md_make_gotreloc which added 4 arguement of got_t *.
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.
1998-10-19 03:09:31 +00:00
matt
40b1bb9563 A large number of changes to enable PIC support and shared libraries
for NetBSD/vax.
1998-10-19 03:01:52 +00:00
matt
f94bc8f4df Add AUX_LABEL (need for VAX JSB/JMP "jmp" slots). 1998-10-19 00:30:57 +00:00
ragge
01921e4c4b TARGET_PAGE_SIZE should be 4k. 1998-10-18 08:48:59 +00:00
matt
c04e8d03ca Fix bug where "calls x, *foo" went through PLT, not GOT. 1998-10-18 06:54:13 +00:00
matt
058ca7f5d6 Add PIC mode support. Note that most of the support for PIC mode on
the VAX is inside gas.  There are cooperative changes in gcc/egcs and
ld as well.
1998-10-17 18:55:23 +00:00
matt
6178b5ccd0 Add a M_VAX (old 1K MID) for gas. 1998-10-17 18:49:50 +00:00
matt
d3b202ace6 Add a type label (needed for VAX assembly). 1998-10-17 18:49:09 +00:00
matt
25f52e1ec4 Add VAX support to gas.new. 1998-10-17 18:26:10 +00:00
itohy
102d06b78c 1. The 1st arg of sprintf() shall be nul terminated
(The C specification can read as such and our implementation of sprintf()
issues strlen() to the arg).
2. Eliminate memory leaks.
1998-10-17 17:14:01 +00:00
itohy
9d79a50f6a Correct return value of md_midcompat(). 1998-10-17 17:08:21 +00:00
tv
57d34f92e8 Set MAX_OFILE_ALIGNMENT to 32 as suggested by <chas@cmf.nrl.navy.mil> in
PR port-m68k/6308.  Since m68k's can access doubles fine on a 32-bit
boundary, this does not need to be 64.
1998-10-16 20:07:15 +00:00
tv
cacab8b6b5 Define __arm__ in CPP_PREDEFINES as on other ARM OS's. Suggested by
<rearnsha@arm.com>.
1998-10-16 19:50:46 +00:00
tv
e1ceba9eb2 Split the .NOPATH workaround into each cc1 Makefile, as f771 also uses
Makefile.cc1 and has a real parse.c....
1998-10-14 20:46:35 +00:00
scottr
153523c847 Revert last; this breaks compatibility with gcc-2.7.x-compiled
code.
1998-10-14 18:28:16 +00:00
tv
a2335d74f8 One of the tabs somehow got transformed into spaces. 1998-10-14 16:58:18 +00:00
tv
d6fc439bd1 Forcibly remove the "generated" files in gnu/dist automatically so they
will not interfere with a build.
1998-10-14 16:55:52 +00:00
tv
216cff3633 Revert <sys/param.h> workaround as approved by matt. 1998-10-14 16:53:43 +00:00