* ctor.c: Remove; obsolete.
authorIan Lance Taylor <ian@airs.com>
Mon, 12 Sep 1994 15:47:52 +0000 (15:47 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 12 Sep 1994 15:47:52 +0000 (15:47 +0000)
* Makefile.in: Rebuild dependencies.
(BFD_LIBS): Remove ctor.o.
(CFILES): Remove ctor.c.
* libbfd.h: Rebuild.

bfd/.Sanitize
bfd/ChangeLog
bfd/Makefile.in
bfd/ctor.c [deleted file]

index 1658f4ceff2b4924b64902c93d7a8a4c2884929a..0c88a70bf9cd08ca4711d0f4fd4ebbfb42ca0d0e 100644 (file)
@@ -105,7 +105,6 @@ cpu-sparc.c
 cpu-vax.c
 cpu-we32k.c
 cpu-z8k.c
-ctor.c
 demo64.c
 dep-in.sed
 doc
index a5d8fc754bb05286aaaaf724ded109f4011cbcfe..9c60291693bba7555667802cb582d434c38193f7 100644 (file)
@@ -1,3 +1,11 @@
+Mon Sep 12 11:43:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * ctor.c: Remove; obsolete.
+       * Makefile.in: Rebuild dependencies.
+       (BFD_LIBS): Remove ctor.o.
+       (CFILES): Remove ctor.c.
+       * libbfd.h: Rebuild.
+
 Mon Sep 12 01:58:47 1994  Jeff Law  (law@snake.cs.utah.edu)
 
        * elf32-hppa.c (elf32_hppa_relocate_section): If there was a link
index a207febf4d536b5419186b0aa726413397c24ac1..12c2a220970afaa3f57f4d33cc3a4babc43a2568 100644 (file)
@@ -83,7 +83,7 @@ BFD_H = bfd.h
 # need two copies of the executable, one to download and one for the
 # debugger).
 BFD_LIBS = \
-       archive.o archures.o bfd.o cache.o coffgen.o core.o ctor.o \
+       archive.o archures.o bfd.o cache.o coffgen.o core.o \
        format.o init.o libbfd.o opncls.o reloc.o \
        section.o syms.o targets.o hash.o linker.o \
        elf.o srec.o
@@ -138,6 +138,7 @@ BFD32_BACKENDS = \
        coff-u68k.o \
        coff-we32k.o \
        coff-z8k.o \
+       cofflink.o \
        ecoff.o \
        ecofflink.o \
        elf32-gen.o \
@@ -234,7 +235,7 @@ CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c \
         coff-i960.c srec.c tekhex.c oasys.c ieee.c aout0.c \
         ecoff.c ecofflink.c coff-m68k.c coff-u68k.c coff-apollo.c \
         coff-a29k.c coff-rs6000.c coff-sparc.c coffgen.c format.c \
-        section.c core.c syms.c stab-syms.c reloc.c init.c ctor.c \
+        section.c core.c syms.c stab-syms.c reloc.c init.c \
         coff-m88k.c coff-mips.c coff-sh.c trad-core.c cisco-core.c newsos3.c \
         i386aout.c i386linux.c netbsd386.c i386mach3.c i386os9k.c \
         bout.c aout-adobe.c coff-we32k.c \
@@ -250,7 +251,7 @@ CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c \
         hp300bsd.c hp300hpux.c \
         i386lynx.c cf-i386lynx.c m68klynx.c cf-m68klynx.c \
         sparclynx.c cf-sparclynx.c aix386-core.c hpux-core.c \
-        irix-core.c lynx-core.c osf-core.c hash.c linker.c
+        irix-core.c lynx-core.c osf-core.c hash.c linker.c cofflink.c
 
 HFILES = aout-target.h aoutf1.h aoutx.h coffcode.h \
         coffswap.h ecoffswap.h elf32-hppa.h elf32-target.h elf64-target.h \
@@ -539,9 +540,9 @@ targets.o: targets.c
 cache.o: cache.c
 archures.o: archures.c
 coff-i386.o: coff-i386.c $(INCDIR)/coff/i386.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 coff-go32.o: coff-go32.c $(INCDIR)/coff/i386.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 aout64.o: aout64.c aoutx.h $(INCDIR)/bfdlink.h libaout.h \
   $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
   $(INCDIR)/aout/ar.h
@@ -555,7 +556,7 @@ demo64.o: demo64.c aoutf1.h $(INCDIR)/aout/sun4.h libaout.h \
   $(INCDIR)/bfdlink.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h aout-target.h
 coff-i960.o: coff-i960.c $(INCDIR)/coff/i960.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 srec.o: srec.c
 tekhex.o: tekhex.c
 oasys.o: oasys.c $(INCDIR)/oasys.h liboasys.h
@@ -570,18 +571,22 @@ ecoff.o: ecoff.c $(INCDIR)/bfdlink.h $(INCDIR)/aout/ar.h \
 ecofflink.o: ecofflink.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h
 coff-m68k.o: coff-m68k.c $(INCDIR)/coff/m68k.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 coff-u68k.o: coff-u68k.c coff-m68k.c $(INCDIR)/coff/m68k.h \
-  $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 coff-apollo.o: coff-apollo.c $(INCDIR)/coff/apollo.h \
-  $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 coff-a29k.o: coff-a29k.c $(INCDIR)/coff/a29k.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 coff-rs6000.o: coff-rs6000.c $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/rs6000.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/rs6000.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 coff-sparc.o: coff-sparc.c $(INCDIR)/coff/sparc.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
-coffgen.o: coffgen.c $(INCDIR)/coff/internal.h libcoff.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
+coffgen.o: coffgen.c $(INCDIR)/coff/internal.h libcoff.h \
+  $(INCDIR)/bfdlink.h
 format.o: format.c
 section.o: section.c
 core.o: core.c
@@ -590,9 +595,8 @@ stab-syms.o: stab-syms.c libaout.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab.def
 reloc.o: reloc.c $(INCDIR)/bfdlink.h
 init.o: init.c
-ctor.o: ctor.c
 coff-m88k.o: coff-m88k.c $(INCDIR)/coff/m88k.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 coff-mips.o: coff-mips.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
   $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \
   $(INCDIR)/coff/mips.h libcoff.h libecoff.h coffswap.h \
@@ -623,7 +627,7 @@ bout.o: bout.c $(INCDIR)/bfdlink.h genlink.h $(INCDIR)/bout.h \
 aout-adobe.o: aout-adobe.c $(INCDIR)/aout/adobe.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def libaout.h $(INCDIR)/bfdlink.h
 coff-we32k.o: coff-we32k.c $(INCDIR)/coff/we32k.h $(INCDIR)/coff/internal.h \
-  libcoff.h coffcode.h coffswap.h
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 i386bsd.o: i386bsd.c libaout.h $(INCDIR)/bfdlink.h \
   aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
@@ -729,24 +733,29 @@ i386lynx.o: i386lynx.c libaout.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/aout/aout64.h aout-target.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
 cf-i386lynx.o: cf-i386lynx.c coff-i386.c $(INCDIR)/coff/i386.h \
-  $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 m68klynx.o: m68klynx.c libaout.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/aout/aout64.h aout-target.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
 cf-m68klynx.o: cf-m68klynx.c coff-m68k.c $(INCDIR)/coff/m68k.h \
-  $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 sparclynx.o: sparclynx.c $(INCDIR)/aout/sun4.h libaout.h \
   $(INCDIR)/bfdlink.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h aout-target.h
 cf-sparclynx.o: cf-sparclynx.c coff-sparc.c $(INCDIR)/coff/sparc.h \
-  $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
+  coffcode.h coffswap.h
 aix386-core.o: aix386-core.c $(INCDIR)/coff/i386.h \
-  $(INCDIR)/coff/internal.h libcoff.h
+  $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h
 hpux-core.o: hpux-core.c
 irix-core.o: irix-core.c
 lynx-core.o: lynx-core.c
 osf-core.o: osf-core.c
 hash.o: hash.c
 linker.o: linker.c $(INCDIR)/bfdlink.h genlink.h
+cofflink.o: cofflink.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
+  libcoff.h
 
 # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/bfd/ctor.c b/bfd/ctor.c
deleted file mode 100644 (file)
index 8a6e4e4..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/* BFD library support routines for constructors
-   Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
-
-   Hacked by Steve Chamberlain of Cygnus Support. With some help from
-   Judy Chamberlain too.
-
-
-This file is part of BFD, the Binary File Descriptor library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/*
-SECTION
-       Constructors
-
-       Classes in C++ have @dfn{constructors} and @dfn{destructors}.  These
-       are functions which are called automatically by the language
-       whenever data of a class is created or destroyed.  Class data
-       which is static may also be have a type which requires
-       `construction'; the contructor must be called before the data
-       can be referenced, so the contructor must be called before the
-       program begins. 
-
-       The common solution to this problem is for the compiler to
-       call a magic function as the first statement before <<main>>.
-       This magic function (often called <<__main>>) runs around
-       calling the constructors for all the things needing it.
-
-       With COFF, the compiler has a bargain with the linker et al.
-       All constructors are given strange names; for example,
-       <<__GLOBAL__$I$foo>> might be the label of a contructor for
-       the class @var{foo}.  The solution on unfortunate systems
-       (most System V machines) is to perform a partial link on all
-       the <<.o>> files, do an <<nm>> on the result, run <<awk>> or some
-       such over the result looking for strange <<__GLOBAL__$>>
-       symbols, generate a C program from this, compile it, and link
-       with the partially linked input. This process is usually
-       called <<collect>>. 
-
-       Some versions of <<a.out>> use something called the
-       <<set_vector>> mechanism.  The constructor symbols are output
-       from the compiler with a special stab code saying that they
-       are constructors, and the linker can deal with them directly. 
-
-       BFD allows applications (i.e., the linker) to deal with
-       constructor information independently of their external
-       implementation by providing a set of entry points for the
-       indiviual object back ends to call to maintain a database
-       of the contructor information.  The application can
-       interrogate the database to find out what it wants.  The
-       construction data essential for the linker to be able to
-       perform its job are: 
-
-       o asymbol -
-       The asymbol of the contructor entry point contains all the
-       information necessary to call the function. 
-
-       o table id -
-       The type of symbol, i.e., is it a constructor, a destructor or
-       something else someone dreamed up to make our lives difficult.
-
-       The constructor module takes this information and builds extra
-       sections attached to the BFDs which own the entry points.  It
-       creates these sections as if they were tables of pointers to
-       the entry points, and builds relocation entries to go with
-       them so that the tables can be relocated along with the data
-       they reference. 
-
-       These sections are marked with a special bit
-       (<<SEC_CONSTRUCTOR>>), which the linker notices and does with
-       what it wants.
-
-*/
-
-#include <bfd.h>
-#include <sysdep.h>
-#include <libbfd.h>
-
-
-
-/*
-INTERNAL_FUNCTION
-       bfd_constructor_entry 
-
-SYNOPSIS
-       boolean bfd_constructor_entry(bfd *abfd, 
-               asymbol **symbol_ptr_ptr,
-               CONST char*type);
-
-
-DESCRIPTION
-       @var{symbol_ptr_ptr} describes the
-       function to be called; @var{type} descibes the xtor type,
-       e.g., something like "CTOR" or "DTOR" would be fine.  @var{abfd}
-       is the BFD which owns the function.  Create a section
-       called "CTOR" or "DTOR" or whatever if the BFD doesn't already
-       have one, and grow a relocation table for the entry points as
-       they accumulate.
-
-       Return <<true>> if successful, <<false>> if out of memory.
-
-*/
-
-boolean
-bfd_constructor_entry (abfd, symbol_ptr_ptr, type)
-     bfd *abfd;
-     asymbol **symbol_ptr_ptr;
-     CONST char *type;
-{
-    /* Look up the section we're using to store the table in */
-    asection *rel_section = bfd_get_section_by_name (abfd, type);
-    if (rel_section == (asection *)NULL) {
-       rel_section = bfd_make_section (abfd, type);
-       rel_section->flags = SEC_CONSTRUCTOR;
-       rel_section->alignment_power = 2;
-    }
-
-    /* Create a relocation into the section which references the entry
-       point */
-   {
-       arelent_chain *reloc = (arelent_chain *)bfd_alloc(abfd,
-                                                        sizeof(arelent_chain));
-       if (!reloc)
-        {
-          bfd_set_error (bfd_error_no_memory);
-          return false;
-        }
-
-/*       reloc->relent.section = (asection *)NULL;*/
-       reloc->relent.addend = 0;
-
-       reloc->relent.sym_ptr_ptr = symbol_ptr_ptr;
-       reloc->next = rel_section->constructor_chain;
-       rel_section->constructor_chain = reloc;
-       reloc->relent.address = rel_section->_cooked_size;
-       /* ask the cpu which howto to use */
-       reloc->relent.howto = bfd_reloc_type_lookup(abfd, BFD_RELOC_CTOR);
-       rel_section->_cooked_size += sizeof(int *);
-       rel_section->reloc_count++;
-   }
-    return true;
-}