aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rwxr-xr-xld/Makefile201
-rw-r--r--ld/PORTING152
-rwxr-xr-xld/config.sub446
-rwxr-xr-xld/config/OSE68.mt1
-rwxr-xr-xld/config/decstation.mh1
-rwxr-xr-xld/config/h-i386v3
-rwxr-xr-xld/config/h-m68kv3
-rwxr-xr-xld/config/hmake-dec31002
-rwxr-xr-xld/config/hmake-dgux9
-rwxr-xr-xld/config/hmake-rtbsd7
-rwxr-xr-xld/config/hmake-sun39
-rwxr-xr-xld/config/hmake-sun48
-rwxr-xr-xld/config/hmake-sun4-648
-rwxr-xr-xld/config/hp300bsd.mh8
-rw-r--r--ld/config/hp9000.mh4
-rwxr-xr-xld/config/news.mh8
-rwxr-xr-xld/config/sparc.mh7
-rwxr-xr-xld/config/tmake-coff-a29k1
-rwxr-xr-xld/config/tmake-m88k-bcs1
-rwxr-xr-xld/config/tmake-sun41
-rwxr-xr-xld/configdos.bat6
-rw-r--r--ld/cplus-dem.c1370
-rw-r--r--ld/descrip.mms83
-rwxr-xr-xld/ebmon29k.sc27
-rw-r--r--ld/gld.11044
-rwxr-xr-xld/h8300hds.c135
-rwxr-xr-xld/h8300hds.sc22
-rwxr-xr-xld/h8300hms.c135
-rwxr-xr-xld/h8300hms.sc30
-rwxr-xr-xld/i386aout.c159
-rwxr-xr-xld/i386aout.sc25
-rwxr-xr-xld/ld-emul.c135
-rwxr-xr-xld/ld-gld-Ur.script31
-rwxr-xr-xld/ld-gld-r.script20
-rwxr-xr-xld/ld-gld.c145
-rwxr-xr-xld/ld-gld.script28
-rwxr-xr-xld/ld-gld68k-Ur.script21
-rwxr-xr-xld/ld-gld68k-r.script22
-rwxr-xr-xld/ld-gld68k.c143
-rwxr-xr-xld/ld-gld68k.script28
-rwxr-xr-xld/ld-gld960.c171
-rwxr-xr-xld/ld-gld960.script23
-rwxr-xr-xld/ld-gldm88kbcs-Ur.script31
-rwxr-xr-xld/ld-gldm88kbcs-r.script20
-rwxr-xr-xld/ld-gldm88kbcs.c141
-rwxr-xr-xld/ld-gldm88kbcs.script36
-rwxr-xr-xld/ld-lnk960-r.script17
-rwxr-xr-xld/ld-lnk960.c288
-rwxr-xr-xld/ld-lnk960.script21
-rwxr-xr-xld/ld-vanilla.c124
-rwxr-xr-xld/ld.tex1014
-rwxr-xr-xld/ldgld.c145
-rwxr-xr-xld/ldgld.sc30
-rwxr-xr-xld/ldgld.script30
-rwxr-xr-xld/ldgld68k.c143
-rwxr-xr-xld/ldgld68k.sc30
-rwxr-xr-xld/ldgld68k.script28
-rwxr-xr-xld/ldgld68kUr.sc21
-rwxr-xr-xld/ldgld68kUr.script21
-rwxr-xr-xld/ldgld68kr.sc22
-rwxr-xr-xld/ldgld68kr.script22
-rwxr-xr-xld/ldgld960.c169
-rwxr-xr-xld/ldgld960.sc23
-rwxr-xr-xld/ldgld960.script23
-rwxr-xr-xld/ldgldUr.sc24
-rwxr-xr-xld/ldgldUr.script24
-rwxr-xr-xld/ldglda29k.c144
-rwxr-xr-xld/ldglda29k.sc38
-rwxr-xr-xld/ldglda29k.script38
-rwxr-xr-xld/ldglda29kUr.sc32
-rwxr-xr-xld/ldglda29kUr.script32
-rwxr-xr-xld/ldglda29kr.sc32
-rwxr-xr-xld/ldglda29kr.script32
-rwxr-xr-xld/ldgldi386v.c144
-rwxr-xr-xld/ldgldi386v.sc26
-rwxr-xr-xld/ldgldi386vUr.sc26
-rwxr-xr-xld/ldgldi386vr.sc26
-rwxr-xr-xld/ldgldm68kv.c144
-rwxr-xr-xld/ldgldm68kv.sc24
-rwxr-xr-xld/ldgldm68kvUr.sc24
-rwxr-xr-xld/ldgldm68kvr.sc24
-rwxr-xr-xld/ldgldm88kbcs.c142
-rwxr-xr-xld/ldgldm88kbcs.sc40
-rwxr-xr-xld/ldgldm88kbcs.script40
-rwxr-xr-xld/ldgldm88kbcsUr.sc31
-rwxr-xr-xld/ldgldm88kbcsUr.script31
-rwxr-xr-xld/ldgldm88kbcsr.sc20
-rwxr-xr-xld/ldgldm88kbcsr.script20
-rwxr-xr-xld/ldgldr.sc20
-rwxr-xr-xld/ldgldr.script20
-rwxr-xr-xld/ldlnk960.c287
-rwxr-xr-xld/ldlnk960.sc21
-rwxr-xr-xld/ldlnk960.script21
-rwxr-xr-xld/ldlnk960r.sc17
-rwxr-xr-xld/ldlnk960r.script17
-rwxr-xr-xld/ldm88k.c142
-rwxr-xr-xld/ldm88k.sc52
-rwxr-xr-xld/ldm88kUr.sc31
-rwxr-xr-xld/ldm88kr.sc20
-rwxr-xr-xld/ldtemplate159
-rwxr-xr-xld/ldvanilla.c118
-rwxr-xr-xld/makefile.dos527
-rwxr-xr-xld/news.sc30
-rwxr-xr-xld/saber80
104 files changed, 0 insertions, 9802 deletions
diff --git a/ld/Makefile b/ld/Makefile
deleted file mode 100755
index a565bbf..0000000
--- a/ld/Makefile
+++ /dev/null
@@ -1,201 +0,0 @@
-#
-# Makefile for ld version 2
-#
-# $Id$
-#
-srcdir=../common
-VPATH=../common
-BASEDIR = ../..
-HOSTDIR = ../$(HOST)/
-INCLUDE = $(srcdir)/$(BASEDIR)/include-cygnus
-INCLUDES = -I. -I$(srcdir) -I$(INCLUDE)
-DEBUG = -g
-
-
-#__sun3__#EXTRA_DEF=-DHOST_SYS=SUN3_SYS
-#__sun4__#EXTRA_DEF=-DHOST_SYS=SUN4_SYS
-#__dgux__#EXTRA_DEF=-DHOST_SYS=DGUX_SYS
-
-CFLAGS = $(INCLUDES) $(EXTRA_DEF) $(DEBUG)
-LINTFLAGS = $(INCLUDES) $(EXTRA_DEF)
-
-.SUFFIXES: .y
-
-.y.o:
- yacc -tvd $<
- mv y.tab.c ldgram.tab.c
- $(CC) -c $(CFLAGS) ldgram.tab.c
- mv ldgram.tab.o ldgram.o
-
-
-# go directly to ld.new in case this ld isn't capable of
-# linking native object on this host. It can be renamed on
-# install.
-PROGS = $(HOSTDIR)/ld.new
-
-# for self hosting
-GNUTARGET=a.out-generic-big
-LDEMULATION=gld
-BFDLIB=$(srcdir)/$(BASEDIR)/bfd/$(HOST)/libbfd.a
-
-OBJS= ldgram.o ldlex.o ldlang.o ldmain.o ldwrite.o ldexp.o ld-lnk960.o ld-gld68k.o \
- ld-gld.o ld-gld960.o ld-emul.o ldversion.o ldmisc.o ldsym.o ldfile.o
-
-HEADERS=config.h ldmain.h ldmain.h ldmisc.h ldsym.h ldlang.h ldexp.h \
- ldlex.h ldwrite.h ldversion.h ld-emul.h ldfile.h ldgram.h ld.h
-
-MANSOURCES=ld.tex
-
-LDCSOURCES=ldlang.c ldmain.c ldwrite.c ld-lnk960.c ld-gld.c ld-gld68k.c \
- ld-gld960.c ld-emul.c ldversion.c ldmisc.c ldexp.c ldsym.c ldfile.c
-
-GENERATED_SOURCES=ldgram.tab.c ldlex.c ldgram.tab.h y.tab.h
-GENERATED_HEADERS=ldgram.tab.h
-
-LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l
-
-BFDSOURCES=../../bfd/common/*.c
-
-SOURCES= $(LDSOURCES) $(BFDSOURCES)
-LINTSOURCES= $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES)
-
-all: Makefile $(PROGS)
-
-
-
-$(BFDLIB): $(BFDSOURCES)
- (cd ../bfd; make)
-
-$(PROGS): $(OBJS) $(BFDLIB)
-# (cd ../bfd; make)
-# LDEMULATION=gld; export LDEMULATION; GNUTARGET=a.out-generic-big;./ldok -format a.out-generic-big -o ld /lib/crt0.o $(OBJS) $(BFDLIB) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
-# gld -o ld /lib/crt0.o $(OBJS) $(BFDLIB) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
- $(CC) -Bstatic -o ld.new $(OBJS) $(BFDLIB)
-
-
-ld1: ld
- gcc -v -B./ -o ld1 $(OBJS) $(BFDLIB)
-
-ld2: ld1
- mv ld1 ld
- gcc -v -B./ -o ld2 $(OBJS) $(BFDLIB)
-
-ld3: ld2
- mv ld2 ld
- gcc -v -B./ -o ld3 $(OBJS) $(BFDLIB)
-
-ld.dvi:ld.tex
- tex ld.tex
-
-ldgram.o: ldgram.y
-ldgram.tab.h:ldgram.y
- cp y.tab.h ldgram.tab.h
-
-ldlex.c: ldlex.l ldgram.tab.h
-ldlex.o: ldlex.c ldgram.tab.h
-
-ldmain.o: ldmain.c
-ldversion.o: ldversion.c
-ldfile.o: ldfile.c
-ldwrite.o: ldwrite.c
-ldlang.o: ldlang.c ldgram.tab.h
-ld-gld.o: ld-gld.c
-ld-gld68k.o: ld-gld68k.c
-ld-gld960.o: ld-gld960.c
-ld-emul.o: ld-emul.c
-ld-lnk960.o: ld-lnk960.c
-ldexp.o: ldexp.c ldgram.tab.h
-ldmisc.o: ldmisc.c
-ldsym.o: ldsym.c
-
-clean:
- - rm -f $(OBJS) $(GENERATED_SOURCES) $(GENERATED_HEADERS)
- - rm -f ld ld1 ld2 ld3 ld.new
-
-
-lintlog:$(SOURCES) Makefile
- $(LINT) -abhxzn $(LINTFLAGS) $(LINTSOURCES) \
-| grep -v "pointer casts may be troublesome" \
-| grep -v "possible pointer alignment problem" \
-| grep -v "ignore" \
-| grep -v "conversion from long may lose accuracy" \
-| grep -v "warning: constant argument to NOT" \
-| grep -v "enumeration type clash, operator CAST" \
-| grep -v "warning: constant in conditional context"\
-| grep -v "archive\.c"
-
-
-tags TAGS:$(SOURCES) $(HEADERS)
- etags -t $(SOURCES) $(HEADERS)
-
-release:
- (cd /4/steve/ld; tar cf - $(LDSOURCES) $(HEADERS) $(MANSOURCES)) | tar xf -
-
-objdump:objdump.c
-
-install: $(PROGS)
- rm -f $G960BASE/bin/$(PROGS)
- cp $(PROGS) $$G960BASE/bin/gld960c
-
-#-----------------------------------------------------------------------------
-# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
-#
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#-----------------------------------------------------------------------------
-
-ver960.c: FORCE
- rm -f ver960.c
- echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
-
-
-# This target should be invoked before building a new release.
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#
-roll:
- @V=`cat VERSION` ; \
- MAJ=`sed 's/\..*//' VERSION` ; \
- MIN=`sed 's/.*\.//' VERSION` ; \
- V=$$MAJ.`expr $$MIN + 1` ; \
- rm -f VERSION ; \
- echo $$V >VERSION ; \
- echo Version $$V
-
-# Dummy target to force execution of dependent targets.
-#
-.force:
-FORCE:
-
-# Target to uncomment host-specific lines in this makefile. Such lines must
-# have the following string beginning in column 1: #__<hostname>__#
-# Original Makefile is backed up as 'Makefile.old'.
-#
-# Invoke with: make make HOST=xxx
-#
-make:
- -@if test $(HOST)x = x ; then \
- echo 'Specify "make make HOST=???"'; \
- exit 1; \
- fi ; \
- grep -s "^#The next line was generated by 'make make'" Makefile; \
- if test $$? = 0 ; then \
- echo "Makefile has already been processed with 'make make'";\
- exit 1; \
- fi ; \
- mv -f Makefile Makefile.old; \
- echo "#The next line was generated by 'make make'" >Makefile ; \
- echo "HOST=$(HOST)" >>Makefile ; \
- echo >>Makefile ; \
- sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile
-
-#
-
-Makefile: ../common/Makefile
- mv Makefile Makefile.backup
- cp ../common/Makefile .
- $(MAKE) "HOST=$(HOST)" make
-
-### Local Variables: ***
-### mode:fundamental ***
-### page-delimiter: "^# " ***
-### End: ***
-### end of file
diff --git a/ld/PORTING b/ld/PORTING
deleted file mode 100644
index 8f4125c..0000000
--- a/ld/PORTING
+++ /dev/null
@@ -1,152 +0,0 @@
- Preliminary Notes on Porting GNU ld
- -----------------------------------
-
-Before porting ld itself, you will need to port the BFD library;
-see ../bfd/PORTING.
-
-The 'host' is the system a tool runs *on*.
-The 'target' is the system a tool runs *for*, i.e.
-a tool can read/write the binaries of the target.
-Most often, host==target, but ld supports cross-linking
-(and to some extent the same ld binary can be used a linker
-for multiple target rachitectures).
-
-Porting to a new host
----------------------
-Pick a name for your host. Call that <host>.
-You need to create the file config/mh-<host>.
-
-Porting to a new target
------------------------
-Pick a name for your target. Call that <target>.
-You need to create at least config/mt-<target>.
-It should contain
- EMUL=<emulation>
-An <emulation> controls the "personality" of ld,
-such as the default linker script. Usually, the
-<emulation> will have teh same name as the <target>,
-and you will need to create a new <emulation> (see below).
-
-You will also need to edit Makefile.in and possible configure.in.
-To see how to do that, search for existing examples (e.g. sun3,
-sun4, hp300bsd).
-
-Porting to a new emulation target
----------------------------------
-Pick a name for your target. Call that <emulation>.
-Usually, <emulation> and <target> are the same.
-You need to create at least <emulation>.sh.
-You will also need to edit Makefile.in,
-To see how to do that, search for existing examples.
-
-The file <emulation>.sh defines a set of parameter that
-are used to generate the emulation. Its syntax is that
-of a (Bourne) shell script, and it is "sourced" by genscripts.sh.
-
-Writing <emulation.sh>
-----------------------
-
-Usually, <emulation>.sh contains:
- EMULATION_NAME=<emulation>
- SCRIPT_NAME=<script>
- OUTPUT_FORMAT="<target-name>"
- TEXT_START_ADDR=<text_start_addr>
- PAGE_SIZE=<page_size>
- SEGMENT_SIZE=<segment_size> # If different from PAGE_SIZE.
- ARCH=<arch>
-
-<target-name>
- Matches the 'filename' field of the bfd_target you want
- to use. (This is a string, and currently the first field.)
- For an a.out target, <target-name> matches the TARGETNAME
- defined in ../bfd/<target>.c.
-
-<arch>
- The architecture: e.g. m68k, sparc, ...
-
-<script>
- The file <script>.sc-sh is a shell script which when
- eveluated (by genscripts.sh) writes a linker script
- file to standard output. You may need to write a new
- script. If you use the a.out format or something
- similar, you can probably set
- SCRIPT_NAME=aout
-
-<text_start_addr>
-<page_size>
-<segment_size>
- These set the shell variables TEXT_START_ADDR, PAGE_SIZE,
- and SEGEMNT_SIZE for use by <script>.sc-sh.
- If your script doesn't use these variables, you
- don't have to define the variables,
- For emulations using a.out files, you can get these
- values from ../bfd/<target>c.
-
-In some cases, you may need more more definitions.
-For example, if you can't use generic.em,
-you may need to add:
- TEMPLATE_NAME=<emulation>
-and write your own <emulation>.em file.
-
-Writing a new <script>.sc-sh
-----------------------------
-
-You may need to write a new script file for your emulation.
-
-Your script can use the shell variable LD_FLAG, which has the value:
-LD_FLAG= when building a script to be used by default
-LD_FLAG=n when building a script to be used for ld -n
-LD_FLAG=N when building a script to be used for ld -N
-LD_FLAG=r when building a script to be used for ld -r
-LD_FLAG=u when building a script to be used for ld -Ur
-
-The variable RELOCATING is only set if relocation is happening
-(i.e. unless the linker is invoked with -r).
-Thus your script should has an action ACTION
-that should only be done when relocating,
-express that as:
- ${RELOCATING+ ACTION}
-In general, this is the case for most assignments, which should look like:
- ${RELOCATING+ _end = .}
-
-Also, you should assign absolute addresses to sections only
-when relocating, so:
- .text ${RELOCATING+ ${TEXT_START_ADDR}}:
-
-The forms:
- .section { ... } > section
-should be:
- .section { ... } > ${RELOCATING+ section}
-
-RELOCATING is set except when LD_FLAG=r or LD_FLAG=u.
-CONSTRUCTING is set except when LD_FLAG=u.
-
-Alignment of the data segments is controlled by the variables
-DATA_ALIGNMENT_ (note trailing underscore), DATA_ALIGNMENT_n,
-DATA_ALIGNMENT_N, DATA_ALIGNMENT_r, or DTA_ALIGNMENT_u
-depending on LD_FLAGS's value.
-Normally, the default value works (this is "ALIGN(${SEGMENT_SIZE})"
-for the _n, and __ (default) variants; "." for the _N, variant;
-and "" for the _r and _u variants).
-
-Handling -n and -N style binaries in your linker script
--------------------------------------------------------
-
-The -n linker flag requests the linker to create a binary
-with a write-protected text segment, but not demand-pagable (NMAGIC).
-Sunos starts the text segment for demand-paged binaries at 0x2020
-and other binaries at 0x2000, since the exec header (0x20 bytes)
-is paged in with the text. Some other Unix variants do the same.
-
-In that case, the <emulation.sh> should define:
-
-NONPAGED_TEXT_START_ADDR
- The text start address to use when linking with -n or -N flags.
-
-For example, on a sun4:
- TEXT_START_ADDR=0x2020
- NONPAGED_TEXT_START_ADDR=0x2000
-
-The -N linker flag requests the linker to create a binary
-without a write-protected text segment (NMAGIC).
-This is like -n, except that the data segment needs not be page-aligned.
diff --git a/ld/config.sub b/ld/config.sub
deleted file mode 100755
index dac9ab8..0000000
--- a/ld/config.sub
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/bin/sh
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration (e.g. a typo).
-
-# Please email any bugs, comments, and/or additions to this file to:
-# configure@cygnus.com
-
-# decode aliases into canonical names
-
-case "$1" in
-# cpu alone is a valid alias for cpu-none-none.
-vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc | ns32k \
- | alliant | arm | c1 | c2 | mips | pyramid | tron | a29k \
- | romp | rs6000 | i960 | h8300)
- cpu=$1
- vendor=none
- os=none
- ;;
-altos | altos3068)
- cpu=m68k
- vendor=altos
- os=sysv # maybe?
- ;;
-altosgas)
- cpu=m68k
- vendor=altos
- os=gas
- ;;
-am29k)
- cpu=a29k
- vendor=none
- os=bsd
- ;;
-amdahl)
- cpu=580
- vendor=amdahl
- os=uts
- ;;
-amigados)
- cpu=m68k
- vendor=cbm
- os=amigados # Native AmigaDOS
- ;;
-amigaunix | amix)
- cpu=m68k
- vendor=cbm
- os=svr4 # System V Release 4 (svr4 is an industry recognized acronym)
- ;;
-apollo68)
- cpu=m68k
- vendor=apollo
- os=sysv # maybe?
- ;;
-balance)
- cpu=ns32k
- vendor=sequent
- os=dynix
- ;;
-convex-c1)
- cpu=c1
- vendor=convex
- os=sysv # maybe?
- ;;
-convex-c2)
- cpu=c2
- vendor=convex
- os=sysv # maybe?
- ;;
-cray | ymp)
- cpu=ymp
- vendor=cray
- os=unicos
- ;;
-cray2)
- cpu=cray2
- vendor=cray
- os=unicos
- ;;
-dec3100 | decstatn | decstation | decstation-3100 | pmax | pmin)
- cpu=mips
- vendor=dec
- os=ultrix
- ;;
-delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- cpu=m68k
- vendor=motorola
- os=sysv # maybe?
- ;;
-
-delta88)
- cpu=m88k
- vendor=motorola
- os=m88kbcs
- ;;
-
-gmicro)
- cpu=tron
- vendor=gmicro
- os=sysv # maybe?
- ;;
-
-h8300hds)
- cpu=h8300
- vendor=hitachi
- os=hds
- ;;
-
-# start-sanitize-v9
-hal-32 | hal32)
- cpu=sparc64
- vendor=hal
- os=hal32
- ;;
-hal-64 | hal64)
- cpu=sparc64
- vendor=hal
- os=hal64
- ;;
-sparc64)
- cpu=sparc64
- vendor=sun
- os=v9
- ;;
-sparc64-v7 | sparc64v7)
- cpu=sparc64
- vendor=sun
- os=v7
- ;;
-# end-sanitize-v9
-hp300bsd)
- cpu=m68k
- vendor=hp
- os=bsd
- ;;
-hp300hpux | hpux | hp9k3[2-9][0-9])
- cpu=m68k
- vendor=hp
- os=hpux
- ;;
-hp9k31[0-9] | hp9k2[0-9][0-9])
- cpu=m68000
- vendor=hp
- os=hpux
- ;;
-i386sco)
- cpu=i386
- vendor=sco
- os=sysv # maybe?
- ;;
-i386v)
- cpu=i386
- vendor=none
- os=sysv
- ;;
-i386v32)
- cpu=i386
- vendor=none
- os=sysv32
- ;;
-iris | iris4d)
- cpu=mips
- vendor=sgi
- os=irix # maybe?
- ;;
-
-dpx2)
- vendor=bull
- cpu=m68k
- os=sysv
- ;;
-isi | isi68)
- cpu=m68k
- vendor=isi
- os=sysv # maybe?
- ;;
-littlemips)
- cpu=mips
- vendor=little
- os=bsd
- ;;
-magnum | m3230)
- cpu=mips
- vendor=mips
- os=sysv # maybe?
- ;;
-merlin)
- cpu=ns32k
- vendor=utek
- os=sysv # maybe?
- ;;
-miniframe)
- cpu=m68000
- vendor=convergent
- os=sysv # maybe?
- ;;
-mmax)
- cpu=ns32k
- vendor=encore
- os=sysv # maybe?
- ;;
-news | news700 | news800 | news900)
- cpu=m68k
- vendor=sony
- os=newsos3 # Based on bsd-4.3
- ;;
-news1000)
- cpu=m68030
- vendor=sony
- os=newsos3 # ?
- ;;
-news-3600 | bigmips | risc-news)
- cpu=mips
- vendor=sony
- os=newsos4 # Presumably?
- ;;
-next)
- cpu=m68k
- vendor=next
- os=sysv # maybe?
- ;;
-nindy960)
- cpu=i960
- vendor=intel
- os=nindy
- ;;
-none)
- cpu=none
- vendor=none
- os=none
- ;;
-np1)
- cpu=np1
- vendor=gould
- os=sysv # maybe?
- ;;
-rtpc)
- cpu=romp
- vendor=ibm
- os=aix # maybe?
- ;;
-pbd)
- cpu=sparc
- vendor=unicom
- os=sysv
- ;;
-pn)
- cpu=pn
- vendor=gould
- os=sysv # maybe?
- ;;
-ps2)
- cpu=i386
- vendor=ibm
- os=sysv # maybe?
- ;;
-sun2)
- cpu=m68000
- vendor=sun
- os=sunos4
- ;;
-sun2os3)
- cpu=m68000
- vendor=sun
- os=sunos3
- ;;
-sun2os4)
- cpu=m68000
- vendor=sun
- os=sunos4
- ;;
-sun3)
- cpu=m68k
- vendor=sun
- os=sunos4
- ;;
-sun3os3)
- cpu=m68k
- vendor=sun
- os=sunos3
- ;;
-sun3os4)
- cpu=m68k
- vendor=sun
- os=sunos4
- ;;
-sun386 | roadrunner | sun386i)
- cpu=i386
- vendor=sun
- os=sunos
- ;;
-sun4)
- cpu=sparc
- vendor=sun
- os=sunos4
- ;;
-sun4os3)
- cpu=sparc
- vendor=sun
- os=sunos3
- ;;
-sun4os4)
- cpu=sparc
- vendor=sun
- os=sunos4
- ;;
-symmetry)
- cpu=i386
- vendor=sequent
- os=dynix
- ;;
-tower | tower-32)
- cpu=m68k
- vendor=ncr
- os=sysv # maybe?
- ;;
-ultra3)
- cpu=a29k
- vendor=nyu
- os=sym1
- ;;
-umax)
- cpu=ns32k
- vendor=encore
- os=sysv # maybe?
- ;;
-unixpc | safari | pc7300 | 3b1 | 7300 | 7300-att | att-7300)
- cpu=m68k
- vendor=att
- os=sysv # maybe?
- ;;
-vax-dec)
- cpu=vax
- vendor=dec
- os=ultrix # maybe?
- ;;
-vxworks68)
- cpu=m68k
- vendor=wrs
- os=vxworks
- ;;
-vxworks960)
- cpu=i960
- vendor=wrs
- os=vxworks
- ;;
-xmp)
- cpu=xmp
- vendor=cray
- os=unicos
- ;;
-# not an alias. parse what we expect to be a canonical name.
-*)
- cpu=`echo $1 | sed 's/-.*$//'`
-
- if [ "${cpu}" = "$1" ] ; then
- # no vendor so this is an invalid name.
- echo '***' No vendor: configuration \`$1\' not recognized 1>&2
- exit 1
- else
- # parse out vendor
- rest=`echo $1 | sed "s/${cpu}-//"`
- vendor=`echo ${rest} | sed 's/-.*$//'`
-
- if [ "${vendor}" = "${rest}" ] ; then
- # a missing os is acceptable
- os=none
- else
- os=`echo ${rest} | sed "s/${vendor}-//"`
- fi
- fi
- ;;
-esac
-
-# At this point we should have three parts of a canonical name in cpu,
-# vendor, and os.
-
-# verify that the cpu is known.
-
-case "${cpu}" in
-none | vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc \
- | ns32k | alliant | arm | c1 | c2 | mips | pyramid | tron \
- | a29k | romp | rs6000 | i960 | xmp | ymp | cray2 | 580 | h8300)
- ;;
-
-# start-sanitize-v9
-sparc64) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid cpu \`${cpu}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# verify that the vendor is known.
-
-case "${vendor}" in
- altos | amdahl | aout | apollo | att | bcs | bout |\
- cbm | convergent | convex | coff | cray | dec | encore |\
- gould | hitachi | intel | isi | hp | ibm | little | mips | motorola |\
- ncr | next | none | nyu | sco | sequent | sgi | sony | sun |\
- unicom | utek | wrs | bull ) ;;
-
-# start-sanitize-v9
-hal) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid vendor \`${vendor}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# verify that the os is known, if it exists.
-
-case "${os}" in
-aix* | aout | bout | bsd* | coff | ctix* | dynix* | esix* | hpux* \
- | hds | irix* | isc* | kern | mach* | newsos* | nindy* | none \
- | osf* | sco* | sunos* | sysv* | ultrix* | unos* | v88r* \
- | vms* | vxworks* | sym[1-9]* | unicos* | uts | svr4 \
- | amigados)
- ;;
-
-# start-sanitize-v9
-hal32 | hal64 | v7 | v9) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid os \`${os}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-echo ${cpu}-${vendor}-${os}
diff --git a/ld/config/OSE68.mt b/ld/config/OSE68.mt
deleted file mode 100755
index 6d50298..0000000
--- a/ld/config/OSE68.mt
+++ /dev/null
@@ -1 +0,0 @@
-EMUL=sun3
diff --git a/ld/config/decstation.mh b/ld/config/decstation.mh
deleted file mode 100755
index 8b2da6f..0000000
--- a/ld/config/decstation.mh
+++ /dev/null
@@ -1 +0,0 @@
-YACC=yacc -vd
diff --git a/ld/config/h-i386v b/ld/config/h-i386v
deleted file mode 100755
index 35d9e95..0000000
--- a/ld/config/h-i386v
+++ /dev/null
@@ -1,3 +0,0 @@
-# $Id$
-
-HDEFINES=-DHOST_SYS=i386_SYSV_SYS
diff --git a/ld/config/h-m68kv b/ld/config/h-m68kv
deleted file mode 100755
index b71c6d6..0000000
--- a/ld/config/h-m68kv
+++ /dev/null
@@ -1,3 +0,0 @@
-# $Id$
-
-HDEFINES=-DHOST_SYS=M68K_SYSV_SYS
diff --git a/ld/config/hmake-dec3100 b/ld/config/hmake-dec3100
deleted file mode 100755
index 4a17e63..0000000
--- a/ld/config/hmake-dec3100
+++ /dev/null
@@ -1,2 +0,0 @@
-HDEFINES=-DHOST_SYS=DEC3100_SYS
-YACC=yacc -vd
diff --git a/ld/config/hmake-dgux b/ld/config/hmake-dgux
deleted file mode 100755
index 9c4e9bc..0000000
--- a/ld/config/hmake-dgux
+++ /dev/null
@@ -1,9 +0,0 @@
-HDEFINES = -DHOST_SYS=DGUX_SYS -D__using_DGUX
-
-CC = gcc -Wall -ansi
-YACC=yacc -tvd
-
-HOSTING_CRT0=/lib/crt0.o -X
-HOSTING_LIBS=/usr/sde/m88kbcs/lib/libc.a
-HOSTING_EMU=LDEMULATION=gldm88kbcs; export LDEMULATION
-
diff --git a/ld/config/hmake-rtbsd b/ld/config/hmake-rtbsd
deleted file mode 100755
index 7d2ff5a..0000000
--- a/ld/config/hmake-rtbsd
+++ /dev/null
@@ -1,7 +0,0 @@
-# The IBM RT/PC has only been supported as a host in a cross-development
-# environment. If you don't have gcc, I was able to get 'hc -Hnocpp -ma'
-# to compile most of the modules, but didn't try running anything.
-YACC = yacc -d
-HDEFINES = -DHOST_SYS=RTBSD_SYS -DNO_VARARGS
-LDFLAGS =
-CC=gcc # hc/pcc just can't cut it
diff --git a/ld/config/hmake-sun3 b/ld/config/hmake-sun3
deleted file mode 100755
index 5922ac1..0000000
--- a/ld/config/hmake-sun3
+++ /dev/null
@@ -1,9 +0,0 @@
-CDEFINES=-DHOST_SYS=SUN3_SYS
-#CC=gcc -ansi -Wall
-CC=cc
-YACC=yacc -d
-
-
-HOSTING_CRT0=/usr/lib/crt0.o /usr/lib/Fcrt1.o -L/usr/lib/fsoft.o
-HOSTING_LIBS=-lc
-HOSTING_EMU=LDEMULATION=gld68k; export LDEMULATION
diff --git a/ld/config/hmake-sun4 b/ld/config/hmake-sun4
deleted file mode 100755
index b53bfde..0000000
--- a/ld/config/hmake-sun4
+++ /dev/null
@@ -1,8 +0,0 @@
-HDEFINES=-DHOST_SYS=SUN4_SYS
-YACC=yacc -tvd
-#CC=gcc -Wall -ansi
-#stuff for self hosting
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=/limbo/latest/=sun4/lib/gcc/sparc/1.93/gnulib -lc
-HOSTING_EMU=LDEMULATION=gld; export LDEMULATION
-
diff --git a/ld/config/hmake-sun4-64 b/ld/config/hmake-sun4-64
deleted file mode 100755
index 92f74ad..0000000
--- a/ld/config/hmake-sun4-64
+++ /dev/null
@@ -1,8 +0,0 @@
-HDEFINES=-DHOST_SYS=SUN4_SYS -DHOST_64_BIT="long long"
-YACC=yacc -tvd
-CC=/usr/latest/bin/gcc -Wall -ansi
-#stuff for self hosting
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=/limbo/latest/=sun4/lib/gcc/sparc/1.93/gnulib -lc
-HOSTING_EMU=LDEMULATION=gld; export LDEMULATION
-
diff --git a/ld/config/hp300bsd.mh b/ld/config/hp300bsd.mh
deleted file mode 100755
index 496728b..0000000
--- a/ld/config/hp300bsd.mh
+++ /dev/null
@@ -1,8 +0,0 @@
-#CC=gcc -ansi -Wall
-CC=cc
-YACC=yacc -d
-
-
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=-lc
-HOSTING_EMU=LDEMULATION=hp300bsd; export LDEMULATION
diff --git a/ld/config/hp9000.mh b/ld/config/hp9000.mh
deleted file mode 100644
index 529ea8e..0000000
--- a/ld/config/hp9000.mh
+++ /dev/null
@@ -1,4 +0,0 @@
-# If compiling with -O on the HP 9000/300 running HP/UX, you must
-# specify -Wp,-P to avoid a stupid compiler bug.
-# Ian Taylor, David Henkel-Wallace, Cygnus Support
-# CFLAGS = +O1000 -Wp,-P
diff --git a/ld/config/news.mh b/ld/config/news.mh
deleted file mode 100755
index 085fb13..0000000
--- a/ld/config/news.mh
+++ /dev/null
@@ -1,8 +0,0 @@
-#CC=gcc -ansi -Wall
-CC=cc
-YACC=yacc -d
-
-
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=-lc
-HOSTING_EMU=LDEMULATION=news; export LDEMULATION
diff --git a/ld/config/sparc.mh b/ld/config/sparc.mh
deleted file mode 100755
index 3cf3518..0000000
--- a/ld/config/sparc.mh
+++ /dev/null
@@ -1,7 +0,0 @@
-YACC=yacc -tvd
-#CC=gcc -Wall -ansi
-#stuff for self hosting
-HOSTING_CRT0=/lib/crt0.o
-HOSTING_LIBS=`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else echo $(libdir)/libgcc.a; fi` -lc
-HOSTING_EMU=LDEMULATION=sun4; export LDEMULATION
-
diff --git a/ld/config/tmake-coff-a29k b/ld/config/tmake-coff-a29k
deleted file mode 100755
index 5c55415..0000000
--- a/ld/config/tmake-coff-a29k
+++ /dev/null
@@ -1 +0,0 @@
-TDEFINES = -DDEFAULT_EMULATION=GLD29K_EMULATION_NAME
diff --git a/ld/config/tmake-m88k-bcs b/ld/config/tmake-m88k-bcs
deleted file mode 100755
index 94e8c66..0000000
--- a/ld/config/tmake-m88k-bcs
+++ /dev/null
@@ -1 +0,0 @@
-TDEFINES = -DDEFAULT_EMULATION=GLDM88KBCS_EMULATION_NAME
diff --git a/ld/config/tmake-sun4 b/ld/config/tmake-sun4
deleted file mode 100755
index d68947e..0000000
--- a/ld/config/tmake-sun4
+++ /dev/null
@@ -1 +0,0 @@
-TDEFINES = -DDEFAULT_EMULATION=GLD_EMULATION_NAME
diff --git a/ld/configdos.bat b/ld/configdos.bat
deleted file mode 100755
index 2702dd0..0000000
--- a/ld/configdos.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-@echo Configuring binutils for H8/300, hosted on MS-DOS
-
-copy ..\bfd\hosts\h-go32.h sysdep.h
-
-copy makefile.dos makefile
diff --git a/ld/cplus-dem.c b/ld/cplus-dem.c
deleted file mode 100644
index f4d1d84..0000000
--- a/ld/cplus-dem.c
+++ /dev/null
@@ -1,1370 +0,0 @@
-/* Demangler for GNU C++
- Copyright 1989, 1991 Free Software Foundation, Inc.
- written by James Clark (jjc@jclark.uucp)
-
- 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, 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. */
-
-/* This is for g++ 1.95.03 (November 13 verison). */
-
-/* This file exports one function
-
- char *cplus_demangle (const char *name, int mode)
-
- If NAME is a mangled function name produced by GNU C++, then
- a pointer to a malloced string giving a C++ representation
- of the name will be returned; otherwise NULL will be returned.
- It is the caller's responsibility to free the string which
- is returned.
-
- If MODE > 0, then ANSI qualifiers such as `const' and `void' are output.
- Otherwise they are not.
- If MODE >= 0, parameters are emitted; otherwise not.
-
- For example,
-
- cplus_demangle ("foo__1Ai", 0) => "A::foo(int)"
- cplus_demangle ("foo__1Ai", 1) => "A::foo(int)"
- cplus_demangle ("foo__1Ai", -1) => "A::foo"
-
- cplus_demangle ("foo__1Afe", 0) => "A::foo(float,...)"
- cplus_demangle ("foo__1Afe", 1) => "A::foo(float,...)"
- cplus_demangle ("foo__1Afe", -1) => "A::foo"
-
- This file imports xmalloc and xrealloc, which are like malloc and
- realloc except that they generate a fatal error if there is no
- available memory. */
-
-/* define this if names don't start with _ */
-/* #define nounderscore 1 */
-#include <ansidecl.h>
-#include <sysdep.h>
-
-#define xmalloc ldmalloc
-#define xrealloc ldrealloc
-
-#if 0
-/* GDB-specific, FIXME. */
-#include "defs.h"
-#endif
-
-#ifdef PARAMS
-#undef PARAMS
-#endif
-#define PARAMS(x) EXFUN(,x)
-
-/* This is '$' on systems where the assembler can deal with that.
- Where the assembler can't, it's '.' (but on many systems '.' is
- used for other things). */
-#if !defined (CPLUS_MARKER)
-#define CPLUS_MARKER '$'
-#endif
-
-#ifndef __STDC__
-#define const
-#endif
-
-#ifdef __STDC__
-extern char *cplus_demangle (const char *type, int mode);
-#else
-extern char *cplus_demangle ();
-#endif
-
-
-static char **typevec = 0;
-static int ntypes = 0;
-static int typevec_size = 0;
-
-const static struct optable {
- const char *in;
- const char *out;
- int ansi;
-} optable[] = {
- "nw", " new", 1, /* new (1.92, ansi) */
- "dl", " delete", 1, /* new (1.92, ansi) */
- "new", " new", 0, /* old (1.91, and 1.x) */
- "delete", " delete", 0, /* old (1.91, and 1.x) */
- "as", "=", 1, /* ansi */
- "ne", "!=", 1, /* old, ansi */
- "eq", "==", 1, /* old, ansi */
- "ge", ">=", 1, /* old, ansi */
- "gt", ">", 1, /* old, ansi */
- "le", "<=", 1, /* old, ansi */
- "lt", "<", 1, /* old, ansi */
- "plus", "+", 0, /* old */
- "pl", "+", 1, /* ansi */
- "apl", "+=", 1, /* ansi */
- "minus", "-", 0, /* old */
- "mi", "-", 1, /* ansi */
- "ami", "-=", 1, /* ansi */
- "mult", "*", 0, /* old */
- "ml", "*", 1, /* ansi */
- "aml", "*=", 1, /* ansi */
- "convert", "+", 0, /* old (unary +) */
- "negate", "-", 0, /* old (unary -) */
- "trunc_mod", "%", 0, /* old */
- "md", "%", 1, /* ansi */
- "amd", "%=", 1, /* ansi */
- "trunc_div", "/", 0, /* old */
- "dv", "/", 1, /* ansi */
- "adv", "/=", 1, /* ansi */
- "truth_andif", "&&", 0, /* old */
- "aa", "&&", 1, /* ansi */
- "truth_orif", "||", 0, /* old */
- "oo", "||", 1, /* ansi */
- "truth_not", "!", 0, /* old */
- "nt", "!", 1, /* ansi */
- "postincrement", "++", 0, /* old */
- "pp", "++", 1, /* ansi */
- "postdecrement", "--", 0, /* old */
- "mm", "--", 1, /* ansi */
- "bit_ior", "|", 0, /* old */
- "or", "|", 1, /* ansi */
- "aor", "|=", 1, /* ansi */
- "bit_xor", "^", 0, /* old */
- "er", "^", 1, /* ansi */
- "aer", "^=", 1, /* ansi */
- "bit_and", "&", 0, /* old */
- "ad", "&", 1, /* ansi */
- "aad", "&=", 1, /* ansi */
- "bit_not", "~", 0, /* old */
- "co", "~", 1, /* ansi */
- "call", "()", 0, /* old */
- "cl", "()", 1, /* ansi */
- "alshift", "<<", 0, /* old */
- "ls", "<<", 1, /* ansi */
- "als", "<<=", 1, /* ansi */
- "arshift", ">>", 0, /* old */
- "rs", ">>", 1, /* ansi */
- "ars", ">>=", 1, /* ansi */
- "component", "->", 0, /* old */
- "rf", "->", 1, /* ansi */
- "indirect", "*", 0, /* old */
- "method_call", "->()", 0, /* old */
- "addr", "&", 0, /* old (unary &) */
- "array", "[]", 0, /* old */
- "vc", "[]", 1, /* ansi */
- "compound", ",", 0, /* old */
- "cm", ",", 1, /* ansi */
- "cond", "?:", 0, /* old */
- "cn", "?:", 1, /* psuedo-ansi */
- "max", ">?", 0, /* old */
- "mx", ">?", 1, /* psuedo-ansi */
- "min", "<?", 0, /* old */
- "mn", "<?", 1, /* psuedo-ansi */
- "nop", "", 0, /* old (for operator=) */
-};
-
-/* Beware: these aren't '\0' terminated. */
-
-typedef struct string {
- char *b; /* pointer to start of string */
- char *p; /* pointer after last character */
- char *e; /* pointer after end of allocated space */
-} string;
-
-static void
-string_need PARAMS ((string *, int));
-
-static void
-string_delete PARAMS ((string *));
-
-static void
-string_init PARAMS ((string *));
-
-static void
-string_clear PARAMS ((string *));
-
-static int
-string_empty PARAMS ((string *));
-
-static void
-string_append PARAMS ((string *, const char *));
-
-static void
-string_appends PARAMS ((string *, string *));
-
-static void
-string_appendn PARAMS ((string *, const char *, int));
-
-static void
-string_prepend PARAMS ((string *, const char *));
-
-static void
-string_prependn PARAMS ((string *, const char *, int));
-
-static int
-get_count PARAMS ((const char **, int *));
-
-static int
-do_args PARAMS ((const char **, string *, int));
-
-static int
-do_type PARAMS ((const char **, string *, int));
-
-static int
-do_arg PARAMS ((const char **, string *, int));
-
-static void
-munge_function_name PARAMS ((string *, int));
-
-static void
-remember_type PARAMS ((const char *, int));
-
-#if 0
-static void
-string_prepends PARAMS ((string *, string *));
-#endif
-
-
-/* Takes operator name as e.g. "++" and returns mangled
- operator name (e.g. "postincrement_expr"), or NULL if not found.
-
- If ARG_MODE == 1, return the ANSI name;
- if ARG_MODE == 0 return the old GNU name. */
-char *
-cplus_mangle_opname (opname, arg_mode)
- char *opname;
- int arg_mode;
-{
- int i, len = strlen (opname);
-
- if (arg_mode != 0 && arg_mode != 1)
- einfo ("%P%F: invalid arg_mode");
-
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- if (strlen (optable[i].out) == len
- && arg_mode == optable[i].ansi
- && memcmp (optable[i].out, opname, len) == 0)
- return (char *)optable[i].in;
- }
- return 0;
-}
-
-char *
-cplus_demangle (type, arg_mode)
- const char *type;
- int arg_mode;
-{
- string decl;
- int n;
- int success = 0;
- int constructor = 0;
- int destructor = 0;
- int static_type = 0;
- int const_flag = 0;
- int i;
- const char *p;
-#ifndef LONGERNAMES
- const char *premangle;
-#endif
-
-# define print_ansi_qualifiers (arg_mode > 0)
-# define print_arg_types (arg_mode >= 0)
-
- if (type == NULL || *type == '\0')
- return NULL;
-#ifndef nounderscore
- if (*type++ != '_')
- return NULL;
-#endif
- p = type;
- while (*p != '\0' && !(*p == '_' && p[1] == '_'))
- p++;
- if (*p == '\0')
- {
- /* destructor */
- if (type[0] == '_' && type[1] == CPLUS_MARKER && type[2] == '_')
- {
- int n;
- char *tem;
-
- type += 3; /* Get past _$_ at front. */
- while (isdigit (*type))
- /* If there are digits at the front, it's because
- of new 2.0 name mangling. Just skip them. */
- type++;
-
- n = strlen (type)*2 + 3 + 2 + 1;
- tem = (char *) xmalloc (n);
- strcpy (tem, type);
- strcat (tem, "::~");
- strcat (tem, type);
- if (print_arg_types)
- strcat (tem, "()");
- return tem;
- }
- /* static data member */
- if (*type != '_' && (p = strchr (type, CPLUS_MARKER)) != NULL)
- {
- int n = strlen (type) + 2;
- char *tem = (char *) xmalloc (n);
- memcpy (tem, type, p - type);
- strcpy (tem + (p - type), "::");
- strcpy (tem + (p - type) + 2, p + 1);
- return tem;
- }
- /* virtual table "_vt$" */
- if (type[0] == '_' && type[1] == 'v' && type[2] == 't' && type[3] == CPLUS_MARKER)
- {
- int n = strlen (type + 4) + 14 + 1;
- char *tem = (char *) xmalloc (n);
- strcpy (tem, type + 4);
- strcat (tem, " virtual table");
- return tem;
- }
- return NULL;
- }
-
- string_init (&decl);
-
- if (static_type)
- {
- if (!isdigit (p[0]) && ('t' != p[0]))
- {
- string_delete (&decl);
- return NULL;
- }
- }
- else if (p == type)
- {
- if (!isdigit (p[2]) && ('t' != p[2]))
- {
- p += 1;
- while (*p != '\0' && !(*p == '_' && p[1] == '_'))
- p++;
- string_appendn (&decl, type, p - type);
- string_need (&decl, 1);
- *(decl.p) = '\0';
- munge_function_name (&decl, 1);
- if (decl.b[0] == '_')
- {
- string_delete (&decl);
- return NULL;
- }
- else
- p += 2;
- }
- else
- {
- constructor = 1;
- p += 2;
- }
- }
- else
- {
- string_appendn (&decl, type, p - type);
- string_need (&decl, 1);
- *(decl.p) = '\0';
- munge_function_name (&decl, arg_mode);
- p += 2;
- }
-
-#ifndef LONGERNAMES
- premangle = p;
-#endif
- switch (*p)
- {
- case 'C':
- /* a const member function */
- if (!isdigit (p[1]))
- {
- string_delete (&decl);
- return NULL;
- }
- p += 1;
- const_flag = 1;
- /* fall through */
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- n = 0;
- do
- {
- n *= 10;
- n += *p - '0';
- p += 1;
- }
- while (isdigit (*p));
- if (strlen (p) < n)
- {
- string_delete (&decl);
- return NULL;
- }
- if (constructor || destructor)
- {
- string_appendn (&decl, p, n);
- string_append (&decl, "::");
- if (destructor)
- string_append(&decl, "~");
- string_appendn (&decl, p, n);
- }
- else
- {
- string_prepend (&decl, "::");
- string_prependn (&decl, p, n);
- }
- p += n;
-#ifndef LONGERNAMES
- remember_type (premangle, p - premangle);
-#endif
- if (static_type)
- {
- string_append(&decl, p+1);
- p += strlen(p);
- success = 1;
- }
- else
- success = do_args (&p, &decl, arg_mode);
- if (const_flag && print_arg_types)
- string_append (&decl, " const");
- break;
- case 'F':
- p += 1;
- success = do_args (&p, &decl, arg_mode);
- break;
- /* template additions */
- case 't':
- p += 1;
- {
- int r, i;
- int non_empty = 0;
- string tname;
- string trawname;
-
- string temp;
- int need_comma = 0;
-
- string_init(&tname);
- string_init(&trawname);
-
- /* get template name */
- if (!get_count (&p, &r))
- return 0;
- string_appendn (&tname, p, r);
- string_appendn (&trawname, p, r);
- string_appendn (&trawname, "", 1);
- p += r;
- string_append (&tname, "<");
- /* get size of template parameter list */
- if (!get_count (&p, &r))
- return 0;
- for (i = 0; i < r; i++)
- {
- if (need_comma)
- string_append (&tname, ", ");
- /* Z for type parameters */
- if (*p == 'Z')
- {
- p += 1;
-
- success = do_type (&p, &temp, arg_mode);
- string_appendn (&temp, "", 1);
- if (success)
- string_append (&tname, temp.b);
- string_delete(&temp);
- if (!success)
- break;
- }
- /* otherwise, value parameter */
- else
- {
- const char *old_p = p;
- int is_pointer = 0;
- int is_real = 0;
- int is_integral = 0;
- int done = 0;
-
- success = do_type (&p, &temp, arg_mode);
- string_appendn (&temp, "", 1);
- if (success)
- string_append (&tname, temp.b);
- string_delete(&temp);
- if (!success)
- break;
- string_append (&tname, "=");
- while (*old_p && !done)
- {
- switch (*old_p)
- {
- case 'P':
- case 'R':
- done = is_pointer = 1;
- break;
- case 'C': /* const */
- case 'U': /* unsigned */
- case 'V': /* volatile */
- case 'F': /* function */
- case 'M': /* member function */
- case 'O': /* ??? */
- old_p++;
- continue;
- case 'Q': /* repetition of following */
- case 'T': /* remembered type */
- abort();
- break;
- case 'v': /* void */
- abort();
- break;
- case 'x': /* long long */
- case 'l': /* long */
- case 'i': /* int */
- case 's': /* short */
- case 'c': /* char */
- done = is_integral = 1;
- break;
- case 'r': /* long double */
- case 'd': /* double */
- case 'f': /* float */
- done = is_real = 1;
- break;
- default:
- abort();
- }
- }
- if (is_integral)
- {
- if (*p == 'm')
- {
- string_appendn (&tname, "-", 1);
- p++;
- }
- while (isdigit (*p))
- {
- string_appendn (&tname, p, 1);
- p++;
- }
- }
- else if (is_real)
- {
- if (*p == 'm')
- {
- string_appendn (&tname, "-", 1);
- p++;
- }
- while (isdigit (*p))
- {
- string_appendn (&tname, p, 1);
- p++;
- }
- if (*p == '.') /* fraction */
- {
- string_appendn (&tname, ".", 1);
- p++;
- while (isdigit (*p))
- {
- string_appendn (&tname, p, 1);
- p++;
- }
- }
- if (*p == 'e') /* exponent */
- {
- string_appendn (&tname, "e", 1);
- p++;
- while (isdigit (*p))
- {
- string_appendn (&tname, p, 1);
- p++;
- }
- }
- }
- else if (is_pointer)
- {
- int symbol_len;
-
- if (!get_count (&p, &symbol_len))
- {
- success = 0;
- break;
- }
- string_appendn (&tname, p, symbol_len);
- p += symbol_len;
- }
- }
- need_comma = 1;
- }
- string_append (&tname, ">::");
- if (destructor)
- string_append(&tname, "~");
- if (constructor || destructor) {
- string_append (&tname, trawname.b);
- }
- string_delete(&trawname);
-
- if (!success) {
- string_delete(&tname);
- return 0;
- }
- string_prepend (&decl, tname.b);
- string_delete(&tname);
-
- if (static_type)
- {
- string_append(&decl, p+1);
- p += strlen(p);
- success = 1;
- }
- else
- success = do_args (&p, &decl, arg_mode);
- break;
- }
- }
-
- for (i = 0; i < ntypes; i++)
- if (typevec[i] != NULL)
- free (typevec[i]);
- ntypes = 0;
- if (typevec != NULL)
- {
- free ((char *)typevec);
- typevec = NULL;
- typevec_size = 0;
- }
-
- if (success)
- {
- string_appendn (&decl, "", 1);
- return decl.b;
- }
- else
- {
- string_delete (&decl);
- return NULL;
- }
-}
-
-static int
-get_count (type, count)
- const char **type;
- int *count;
-{
- if (!isdigit (**type))
- return 0;
- *count = **type - '0';
- *type += 1;
- /* see flush_repeats in cplus-method.c */
- if (isdigit (**type))
- {
- const char *p = *type;
- int n = *count;
- do
- {
- n *= 10;
- n += *p - '0';
- p += 1;
- }
- while (isdigit (*p));
- if (*p == '_')
- {
- *type = p + 1;
- *count = n;
- }
- }
- return 1;
-}
-
-/* result will be initialised here; it will be freed on failure */
-
-static int
-do_type (type, result, arg_mode)
- const char **type;
- string *result;
- int arg_mode;
-{
- int n;
- int done;
- int non_empty = 0;
- int success;
- string decl;
- const char *remembered_type;
-
- string_init (&decl);
- string_init (result);
-
- done = 0;
- success = 1;
- while (success && !done)
- {
- int member;
- switch (**type)
- {
- case 'Q':
- n = (*type)[1] - '0';
- if (n < 0 || n > 9)
- success = 0;
- *type += 2;
- while (n-- > 0)
- do_type (type, result, arg_mode);
- break;
-
- case 'P':
- *type += 1;
- string_prepend (&decl, "*");
- break;
-
- case 'R':
- *type += 1;
- string_prepend (&decl, "&");
- break;
-
- case 'T':
- *type += 1;
- if (!get_count (type, &n) || n >= ntypes)
- success = 0;
- else
- {
- remembered_type = typevec[n];
- type = &remembered_type;
- }
- break;
-
- case 'F':
- *type += 1;
- if (!string_empty (&decl) && decl.b[0] == '*')
- {
- string_prepend (&decl, "(");
- string_append (&decl, ")");
- }
- if (!do_args (type, &decl, arg_mode) || **type != '_')
- success = 0;
- else
- *type += 1;
- break;
-
- case 'M':
- case 'O':
- {
- int constp = 0;
- int volatilep = 0;
-
- member = **type == 'M';
- *type += 1;
- if (!isdigit (**type))
- {
- success = 0;
- break;
- }
- n = 0;
- do
- {
- n *= 10;
- n += **type - '0';
- *type += 1;
- }
- while (isdigit (**type));
- if (strlen (*type) < n)
- {
- success = 0;
- break;
- }
- string_append (&decl, ")");
- string_prepend (&decl, "::");
- string_prependn (&decl, *type, n);
- string_prepend (&decl, "(");
- *type += n;
- if (member)
- {
- if (**type == 'C')
- {
- *type += 1;
- constp = 1;
- }
- if (**type == 'V')
- {
- *type += 1;
- volatilep = 1;
- }
- if (*(*type)++ != 'F')
- {
- success = 0;
- break;
- }
- }
- if ((member && !do_args (type, &decl, arg_mode)) || **type != '_')
- {
- success = 0;
- break;
- }
- *type += 1;
- if (! print_ansi_qualifiers)
- break;
- if (constp)
- {
- if (non_empty)
- string_append (&decl, " ");
- else
- non_empty = 1;
- string_append (&decl, "const");
- }
- if (volatilep)
- {
- if (non_empty)
- string_append (&decl, " ");
- else
- non_empty = 1;
- string_append (&decl, "volatile");
- }
- break;
- }
-
- case 'C':
- if ((*type)[1] == 'P')
- {
- *type += 1;
- if (print_ansi_qualifiers)
- {
- if (!string_empty (&decl))
- string_prepend (&decl, " ");
- string_prepend (&decl, "const");
- }
- break;
- }
-
- /* fall through */
- default:
- done = 1;
- break;
- }
- }
-
- done = 0;
- non_empty = 0;
- while (success && !done)
- {
- switch (**type)
- {
- case 'C':
- *type += 1;
- if (print_ansi_qualifiers)
- {
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "const");
- }
- break;
- case 'U':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "unsigned");
- break;
- case 'V':
- *type += 1;
- if (print_ansi_qualifiers)
- {
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "volatile");
- }
- break;
- default:
- done = 1;
- break;
- }
- }
-
- if (success)
- switch (**type)
- {
- case '\0':
- case '_':
- break;
- case 'v':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "void");
- break;
- case 'x':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "long long");
- break;
- case 'l':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "long");
- break;
- case 'i':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "int");
- break;
- case 's':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "short");
- break;
- case 'c':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "char");
- break;
- case 'r':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "long double");
- break;
- case 'd':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "double");
- break;
- case 'f':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "float");
- break;
- case 'G':
- *type += 1;
- if (!isdigit (**type))
- {
- success = 0;
- break;
- }
- /* fall through */
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- n = 0;
- do
- {
- n *= 10;
- n += **type - '0';
- *type += 1;
- }
- while (isdigit (**type));
- if (strlen (*type) < n)
- {
- success = 0;
- break;
- }
- if (non_empty)
- string_append (result, " ");
- string_appendn (result, *type, n);
- *type += n;
- break;
- default:
- success = 0;
- break;
- }
-
- if (success)
- {
- if (!string_empty (&decl))
- {
- string_append (result, " ");
- string_appends (result, &decl);
- }
- string_delete (&decl);
- return 1;
- }
- else
- {
- string_delete (&decl);
- string_delete (result);
- return 0;
- }
-}
-
-/* `result' will be initialised in do_type; it will be freed on failure */
-
-static int
-do_arg (type, result, arg_mode)
- const char **type;
- string *result;
- int arg_mode;
-{
- const char *start = *type;
-
- if (!do_type (type, result, arg_mode))
- return 0;
- remember_type (start, *type - start);
- return 1;
-}
-
-static void
-remember_type (start, len)
- const char *start;
- int len;
-{
- char *tem;
-
- if (ntypes >= typevec_size)
- {
- if (typevec_size == 0)
- {
- typevec_size = 3;
- typevec = (char **) xmalloc (sizeof (char*)*typevec_size);
- }
- else
- {
- typevec_size *= 2;
- typevec = (char **) xrealloc ((char *)typevec, sizeof (char*)*typevec_size);
- }
- }
- tem = (char *) xmalloc (len + 1);
- memcpy (tem, start, len);
- tem[len] = '\0';
- typevec[ntypes++] = tem;
-}
-
-/* `decl' must be already initialised, usually non-empty;
- it won't be freed on failure */
-
-static int
-do_args (type, decl, arg_mode)
- const char **type;
- string *decl;
- int arg_mode;
-{
- string arg;
- int need_comma = 0;
-
- if (print_arg_types)
- string_append (decl, "(");
-
- while (**type != '_' && **type != '\0' && **type != 'e' && **type != 'v')
- {
- if (**type == 'N')
- {
- int r;
- int t;
- *type += 1;
- if (!get_count (type, &r) || !get_count (type, &t) || t >= ntypes)
- return 0;
- while (--r >= 0)
- {
- const char *tem = typevec[t];
- if (need_comma && print_arg_types)
- string_append (decl, ", ");
- if (!do_arg (&tem, &arg, arg_mode))
- return 0;
- if (print_arg_types)
- string_appends (decl, &arg);
- string_delete (&arg);
- need_comma = 1;
- }
- }
- else
- {
- if (need_comma & print_arg_types)
- string_append (decl, ", ");
- if (!do_arg (type, &arg, arg_mode))
- return 0;
- if (print_arg_types)
- string_appends (decl, &arg);
- string_delete (&arg);
- need_comma = 1;
- }
- }
-
- if (**type == 'v')
- *type += 1;
- else if (**type == 'e')
- {
- *type += 1;
- if (print_arg_types)
- {
- if (need_comma)
- string_append (decl, ",");
- string_append (decl, "...");
- }
- }
-
- if (print_arg_types)
- string_append (decl, ")");
- return 1;
-}
-
-static void
-munge_function_name (name, arg_mode)
- string *name;
- int arg_mode;
-{
- if (string_empty (name))
- return;
-
- if (name->p - name->b >= 3
- && name->b[0] == 'o' && name->b[1] == 'p' && name->b[2] == CPLUS_MARKER)
- {
- int i;
- /* see if it's an assignment expression */
- if (name->p - name->b >= 10 /* op$assign_ */
- && memcmp (name->b + 3, "assign_", 7) == 0)
- {
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- int len = name->p - name->b - 10;
- if (strlen (optable[i].in) == len
- && memcmp (optable[i].in, name->b + 10, len) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- string_append (name, "=");
- return;
- }
- }
- }
- else
- {
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- int len = name->p - name->b - 3;
- if (strlen (optable[i].in) == len
- && memcmp (optable[i].in, name->b + 3, len) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- return;
- }
- }
- }
- return;
- }
- else if (name->p - name->b >= 5 && memcmp (name->b, "type$", 5) == 0)
- {
- /* type conversion operator */
- string type;
- const char *tem = name->b + 5;
- if (do_type (&tem, &type, arg_mode))
- {
- string_clear (name);
- string_append (name, "operator ");
- string_appends (name, &type);
- string_delete (&type);
- return;
- }
- }
- /* ANSI. */
- else if (name->b[2] == 'o' && name->b[3] == 'p')
- {
- /* type conversion operator. */
- string type;
- const char *tem = name->b + 4;
- if (do_type (&tem, &type, arg_mode))
- {
- string_clear (name);
- string_append (name, "operator ");
- string_appends (name, &type);
- string_delete (&type);
- return;
- }
- }
- else if (name->b[0] == '_' && name->b[1] == '_'
- && name->b[2] >= 'a' && name->b[2] <= 'z'
- && name->b[3] >= 'a' && name->b[3] <= 'z')
- {
- int i;
-
- if (name->b[4] == '\0')
- {
- /* Operator. */
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- if (strlen (optable[i].in) == 2
- && memcmp (optable[i].in, name->b + 2, 2) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- return;
- }
- }
- }
- else
- {
- if (name->b[2] != 'a' || name->b[5] != '\0')
- return;
- /* Assignment. */
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- if (strlen (optable[i].in) == 3
- && memcmp (optable[i].in, name->b + 2, 3) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- return;
- }
- }
- }
- }
-}
-
-/* a mini string-handling package */
-
-static void
-string_need (s, n)
- string *s;
- int n;
-{
- if (s->b == NULL)
- {
- if (n < 32)
- n = 32;
- s->p = s->b = (char *) xmalloc (n);
- s->e = s->b + n;
- }
- else if (s->e - s->p < n)
- {
- int tem = s->p - s->b;
- n += tem;
- n *= 2;
- s->b = (char *) xrealloc (s->b, n);
- s->p = s->b + tem;
- s->e = s->b + n;
- }
-}
-
-static void
-string_delete (s)
- string *s;
-{
- if (s->b != NULL)
- {
- free (s->b);
- s->b = s->e = s->p = NULL;
- }
-}
-
-static void
-string_init (s)
- string *s;
-{
- s->b = s->p = s->e = NULL;
-}
-
-static void
-string_clear (s)
- string *s;
-{
- s->p = s->b;
-}
-
-static int
-string_empty (s)
- string *s;
-{
- return s->b == s->p;
-}
-
-static void
-string_append (p, s)
- string *p;
- const char *s;
-{
- int n;
- if (s == NULL || *s == '\0')
- return;
- n = strlen (s);
- string_need (p, n);
- memcpy (p->p, s, n);
- p->p += n;
-}
-
-static void
-string_appends (p, s)
- string *p, *s;
-{
- int n;
- if (s->b == s->p)
- return;
- n = s->p - s->b;
- string_need (p, n);
- memcpy (p->p, s->b, n);
- p->p += n;
-}
-
-static void
-string_appendn (p, s, n)
- string *p;
- const char *s;
- int n;
-{
- if (n == 0)
- return;
- string_need (p, n);
- memcpy (p->p, s, n);
- p->p += n;
-}
-
-static void
-string_prepend (p, s)
- string *p;
- const char *s;
-{
- if (s == NULL || *s == '\0')
- return;
- string_prependn (p, s, strlen (s));
-}
-
-#if 0
-static void
-string_prepends (p, s)
- string *p, *s;
-{
- if (s->b == s->p)
- return;
- string_prependn (p, s->b, s->p - s->b);
-}
-#endif
-
-static void
-string_prependn (p, s, n)
- string *p;
- const char *s;
- int n;
-{
- char *q;
-
- if (n == 0)
- return;
- string_need (p, n);
- for (q = p->p - 1; q >= p->b; q--)
- q[n] = q[0];
- memcpy (p->b, s, n);
- p->p += n;
-}
diff --git a/ld/descrip.mms b/ld/descrip.mms
deleted file mode 100644
index e9487d1..0000000
--- a/ld/descrip.mms
+++ /dev/null
@@ -1,83 +0,0 @@
-# mms file to build vms-i960 ld
-# sac@cygnus.com
-
-.FIRST
- @[-.deci960]define-gnu
-
-
-CC = gcc
-CFLAGS = /define=(VMS, LNK960_LITTLE) /cc1_options="-mvaxc-alignment" /inc=([],[-.include],[-.bfd], [-.include.aout])
-
-all : ld.exe
- copy descrip.mms all
-
-BFD_OBJ = [-.bfd]archive.obj, -
- [-.bfd]coff-i960.obj, -
- [-.bfd]format.obj, -
- [-.bfd]reloc.obj, -
- [-.bfd]archures.obj, -
- [-.bfd]core.obj, -
- [-.bfd]init.obj, -
- [-.bfd]section.obj, -
- [-.bfd]bfd.obj, -
- [-.bfd]cpu-i960.obj, -
- [-.bfd]libbfd.obj, -
- [-.bfd]srec.obj, -
- [-.bfd]cache.obj, -
- [-.bfd]ctor.obj, -
- [-.bfd]opncls.obj, -
- [-.bfd]targets.obj, -
- [-.bfd]syms.obj,-
- [-.bfd]seclet.obj
-
-LIBIBERTY_OBJ = -
-[]bzero.obj, getopt1.obj,obstack.obj,[-.libiberty]bcopy.obj,-
-[-.libiberty]getopt.obj,[-.libiberty]index.obj,[-.libiberty]strdup.obj,alloca.obj
-
-LD_OBJ = -
-cplus-dem.obj, -
-ld__a29k.obj, -
-ld__ebmon29k.obj, -
-ld__gld960.obj, -
-ld__go32.obj, -
-ld__h8300hms.obj, -
-ld__h8300xray.obj, -
-ld__hp300bsd.obj, -
-ld__i386aout.obj, -
-ld__lnk960.obj, -
-ld__m88kbcs.obj, -
-ld__news.obj, -
-ld__st2000.obj, -
-ld__sun3.obj, -
-ld__sun4.obj, -
-ld__vanilla.obj, -
-ldctor.obj, -
-ldemul.obj, -
-lderror.obj, -
-ldexp.obj, -
-ldfile.obj, -
-ldgram.obj, -
-ldindr.obj, -
-ldlang.obj, -
-ldlex.obj, -
-ldmain.obj, -
-ldsym.obj, -
-ldver.obj, -
-ldwarn.obj, -
-ldmisc.obj,-
-ldwrite.obj, -
-lexsup.obj, -
-mri.obj, -
-relax.obj
-
-
-LIBS=$(BFD_OBJ), $(LIBIBERTY_OBJ)
-
-ld.exe : $(LD_OBJ)
- copy [-.libiberty]bzero.obj []
- copy [-.libiberty]getopt1.obj []
- copy [-.libiberty]obstack.obj []
- $(LINK)/exe=ld.exe $(LD_OBJ), $(LIBS)
-
-
-
diff --git a/ld/ebmon29k.sc b/ld/ebmon29k.sc
deleted file mode 100755
index da1a76a..0000000
--- a/ld/ebmon29k.sc
+++ /dev/null
@@ -1,27 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-ENTRY(start)
-
-SECTIONS {
- .text 0x8000 :
- {
- *(.text);
- _etext = . ;
- }
- .data 0x80002000 :
- {
- *(.data);
- *(.mstack);
- *(.shbss);
- *(.rstack);
- *(.mstack);
- CONSTRUCTORS
- }
- .bss . :
- {
-
- *(COMMON)
- *(.bss);
- _end = .;
- }
-
-}
diff --git a/ld/gld.1 b/ld/gld.1
deleted file mode 100644
index 2579063..0000000
--- a/ld/gld.1
+++ /dev/null
@@ -1,1044 +0,0 @@
-.\" Copyright (c) 1991, 1992 Free Software Foundation
-.\" See section COPYING for conditions for redistribution
-.TH gld 1 "23 January 1992" "cygnus support" "GNU Development Tools"
-.de BP
-.sp
-.ti \-.2i
-\(**
-..
-
-.SH NAME
-gld \- the GNU linker
-
-.SH SYNOPSIS
-.hy 0
-.na
-.TP
-.B gld
-.RB "[\|" \-o "
-.I output\c
-\&\|] \c
-.I objfiles\c
-\&.\|.\|.
-.br
-.RB "[\|" \-A\c
-.I architecture\c
-\&\|]
-.RB "[\|" "\-b\ "\c
-.I input-format\c
-\&\|]
-.RB "[\|" \-Bstatic "\|]"
-.RB "[\|" "\-c\ "\c
-.I commandfile\c
-\&\|]
-.RB "[\|" \-d | \-dc | \-dp\c
-\|]
-.br
-.RB "[\|" "\-defsym\ "\c
-.I symbol\c
-\& = \c
-.I expression\c
-\&\|]
-.RB "[\|" "\-e\ "\c
-.I entry\c
-\&\|]
-.RB "[\|" \-F "\|]"
-.RB "[\|" "\-F\ "\c
-.I format\c
-\&\|]
-.RB "[\|" "\-format\ "\c
-.I input-format\c
-\&\|]
-.RB "[\|" \-g "\|]"
-.RB "[\|" \-i "\|]"
-.RB "[\|" \-l\c
-.I ar\c
-\&\|]
-.RB "[\|" \-L\c
-.I searchdir\c
-\&\|]
-.RB "[\|" \-M | \-m "\|]"
-.RB "[\|" \-n | \-N "\|]"
-.RB "[\|" \-noinhibit-exec "\|]"
-.RB "[\|" "\-R\ "\c
-.I filename\c
-\&\|]
-.RB "[\|" \-relax "\|]"
-.RB "[\|" \-r | \-Ur "\|]"
-.RB "[\|" \-S "\|]"
-.RB "[\|" \-s "\|]"
-.RB "[\|" "\-T\ "\c
-.I commandfile\c
-\&\|]
-.RB "[\|" "\-Ttext\ "\c
-.I textorg\c
-\&\|]
-.RB "[\|" "\-Tdata\ "\c
-.I dataorg\c
-\&\|]
-.RB "[\|" "\-Tbss\ "\c
-.I bssorg\c
-\&\|]
-.RB "[\|" \-t "\|]"
-.RB "[\|" "\-u\ "\c
-.I sym\c
-\&]
-.RB "[\|" \-v "\|]"
-.RB "[\|" \-X "\|]"
-.RB "[\|" \-x "\|]"
-.RB "[\|" { \c
-.I script\c
-.BR } "\|]"
-.ad b
-.hy 1
-.SH DESCRIPTION
-\c
-.B gld\c
-\& combines a number of object and archive files, relocates
-their data and ties up symbol references. Often the last step in
-building a new compiled program to run is a call to \c
-.B gld\c
-\&.
-
-\c
-.B gld\c
-\& accepts Linker Command Language files
-to provide explicit and total control over the linking process.
-This man page does not describe the command language; see the `\|\c
-.B ld\c
-\|' entry in `\|\c
-.B info\c
-\|', or the manual
-.I
-gld: the GNU linker
-\&, for full details on the command language and on other aspects of
-the GNU linker.
-
-This version of \c
-.B gld\c
-\& uses the general purpose BFD libraries
-to operate on object files. This allows \c
-.B gld\c
-\& to read, combine, and
-write object files in many different formats\(em\&for example, COFF or
-\c
-.B a.out\c
-\&. Different formats may be linked together to produce any
-available kind of object file. You can use `\|\c
-.B objdump \-i\c
-\|' to get a list of formats supported on various architectures; see
-.BR objdump ( 1 ).
-
-Aside from its flexibility, the GNU linker is more helpful than other
-linkers in providing diagnostic information. Many linkers abandon
-execution immediately upon encountering an error; whenever possible,
-\c
-.B gld\c
-\& continues executing, allowing you to identify other errors
-(or, in some cases, to get an output file in spite of the error).
-
-The GNU linker \c
-.B gld\c
-\& is meant to cover a broad range of situations,
-and to be as compatible as possible with other linkers. As a result,
-you have many choices to control its behavior through the command line,
-and through environment variables.
-
-.SH OPTIONS
-The plethora of command-line options may seem intimidating, but in
-actual practice few of them are used in any particular context.
-For instance, a frequent use of \c
-.B gld\c
-\& is to link standard Unix
-object files on a standard, supported Unix system. On such a system, to
-link a file \c
-.B hello.o\c
-\&:
-.sp
-.br
-$\ gld\ \-o\ output\ /lib/crt0.o\ hello.o\ \-lc
-.br
-.sp
-This tells \c
-.B gld\c
-\& to produce a file called \c
-.B output\c
-\& as the
-result of linking the file \c
-.B /lib/crt0.o\c
-\& with \c
-.B hello.o\c
-\& and
-the library \c
-.B libc.a\c
-\& which will come from the standard search
-directories.
-
-The command-line options to \c
-.B gld\c
-\& may be specified in any order, and
-may be repeated at will. For the most part, repeating an option with a
-different argument will either have no further effect, or override prior
-occurrences (those further to the left on the command line) of an
-option.
-
-The exceptions\(em\&which may meaningfully be used more than once\(em\&are
-\c
-.B \-A\c
-\&, \c
-.B \-b\c
-\& (or its synonym \c
-.B \-format\c
-\&), \c
-.B \-defsym\c
-\&,
-\c
-.B \-L\c
-\&, \c
-.B \-l\c
-\&, \c
-.B \-R\c
-\&, and \c
-.B \-u\c
-\&.
-
-The list of object files to be linked together, shown as \c
-.I objfiles\c
-\&,
-may follow, precede, or be mixed in with command-line options; save that
-an \c
-.I objfiles\c
-\& argument may not be placed between an option flag and
-its argument.
-
-Usually the linker is invoked with at least one object file, but other
-forms of binary input files can also be specified with \c
-.B \-l\c
-\&,
-\c
-.B \-R\c
-\&, and the script command language. If \c
-.I no\c
-\& binary input
-files at all are specified, the linker does not produce any output, and
-issues the message `\|\c
-.B No input files\c
-\|'.
-
-Option arguments must either follow the option letter without intervening
-whitespace, or be given as separate arguments immediately following the
-option that requires them.
-
-.TP
-.IR "objfiles" .\|.\|.
-The object files \c
-.I objfiles\c
-\& to be linked.
-
-.TP
-.BI "-A" "architecture"\c
-\&
-In the current release of \c
-.B gld\c
-\&, this option is useful only for the
-Intel 960 family of architectures. In that \c
-.B gld\c
-\& configuration, the
-\c
-.I architecture\c
-\& argument is one of the two-letter names identifying
-members of the 960 family; the option specifies the desired output
-target, and warns of any incompatible instructions in the input files.
-It also modifies the linker's search strategy for archive libraries, to
-support the use of libraries specific to each particular
-architecture, by including in the search loop names suffixed with the
-string identifying the architecture.
-
-For example, if your \c
-.B gld\c
-\& command line included `\|\c
-.B \-ACA\c
-\|' as
-well as `\|\c
-.B \-ltry\c
-\|', the linker would look (in its built-in search
-paths, and in any paths you specify with \c
-.B \-L\c
-\&) for a library with
-the names
-.sp
-.br
-try
-.br
-libtry.a
-.br
-tryca
-.br
-libtryca.a
-.br
-.sp
-
-The first two possibilities would be considered in any event; the last
-two are due to the use of `\|\c
-.B \-ACA\c
-\|'.
-
-Future releases of \c
-.B gld\c
-\& may support similar functionality for
-other architecture families.
-
-You can meaningfully use \c
-.B \-A\c
-\& more than once on a command line, if
-an architecture family allows combination of target architectures; each
-use will add another pair of name variants to search for when \c
-.B \-l\c
-\&
-specifies a library.
-
-.TP
-.BI "-b " "input-format"\c
-\&
-Specify the binary format for input object files that follow this option
-on the command line. You don't usually need to specify this, as
-\c
-.B gld\c
-\& is configured to expect as a default input format the most
-usual format on each machine. \c
-.I input-format\c
-\& is a text string, the
-name of a particular format supported by the BFD libraries.
-\c
-.B \-format \c
-.I input-format\c
-\&\c
-\& has the same effect.
-
-You may want to use this option if you are linking files with an unusual
-binary format. You can also use \c
-.B \-b\c
-\& to switch formats explicitly (when
-linking object files of different formats), by including
-\c
-.B \-b \c
-.I input-format\c
-\&\c
-\& before each group of object files in a
-particular format.
-
-The default format is taken from the environment variable
-.B GNUTARGET\c
-\&. You can also define the input
-format from a script, using the command \c
-.B TARGET\c
-\&.
-
-.TP
-.B \-Bstatic
-This flag is accepted for command-line compatibility with the SunOS linker,
-but has no effect on \c
-.B gld\c
-\&.
-
-.TP
-.BI "-c " "commandfile"\c
-\&
-Directs \c
-.B gld\c
-\& to read link commands from the file
-\c
-.I commandfile\c
-\&. These commands will completely override \c
-.B gld\c
-\&'s
-default link format (rather than adding to it); \c
-.I commandfile\c
-\& must
-specify everything necessary to describe the target format.
-
-
-You may also include a script of link commands directly in the command
-line by bracketing it between `\|\c
-.B {\c
-\|' and `\|\c
-.B }\c
-\|' characters.
-
-.TP
-.B \-d
-.TP
-.B \-dc
-.TP
-.B \-dp
-These three options are equivalent; multiple forms are supported for
-compatibility with other linkers. Use any of them to make \c
-.B ld\c
-\&
-assign space to common symbols even if a relocatable output file is
-specified (\c
-.B \-r\c
-\&). The script command
-\c
-.B FORCE_COMMON_ALLOCATION\c
-\& has the same effect.
-
-.TP
-.BI "-defsym " "symbol"\c
-\& = \c
-.I expression\c
-\&
-Create a global symbol in the output file, containing the absolute
-address given by \c
-.I expression\c
-\&. You may use this option as many
-times as necessary to define multiple symbols in the command line. A
-limited form of arithmetic is supported for the \c
-.I expression\c
-\& in this
-context: you may give a hexadecimal constant or the name of an existing
-symbol, or use \c
-.B +\c
-\& and \c
-.B \-\c
-\& to add or subtract hexadecimal
-constants or symbols. If you need more elaborate expressions, consider
-using the linker command language from a script.
-
-.TP
-.BI "-e " "entry"\c
-\&
-Use \c
-.I entry\c
-\& as the explicit symbol for beginning execution of your
-program, rather than the default entry point. for a
-discussion of defaults and other ways of specifying the
-entry point.
-
-.TP
-.B \-F
-.TP
-.BI "-F" "format"\c
-\&
-Some older linkers used this option throughout a compilation toolchain
-for specifying object-file format for both input and output object
-files. \c
-.B gld\c
-\&'s mechanisms (the \c
-.B \-b\c
-\& or \c
-.B \-format\c
-\& options
-for input files, the \c
-.B TARGET\c
-\& command in linker scripts for output
-files, the \c
-.B GNUTARGET\c
-\& environment variable) are more flexible, but
-but it accepts (and ignores) the \c
-.B \-F\c
-\& option flag for compatibility
-with scripts written to call the old linker.
-
-.TP
-.BI "-format " "input-format"\c
-\&
-Synonym for \c
-.B \-b\c
-\& \c
-.I input-format\c
-\&.
-
-.TP
-.B \-g
-Accepted, but ignored; provided for compatibility with other tools.
-
-.TP
-.B \-i
-Perform an incremental link (same as option \c
-.B \-r\c
-\&).
-
-.TP
-.BI "-l" "ar"\c
-\&
-Add an archive file \c
-.I ar\c
-\& to the list of files to link. This
-option may be used any number of times. \c
-.B ld\c
-\& will search its
-path-list for occurrences of \c
-.B lib\c
-.I ar\c
-\&.a\c
-\& for every \c
-.I ar\c
-\&
-specified.
-
-.TP
-.BI "-L" "searchdir"\c
-\&
-This command adds path \c
-.I searchdir\c
-\& to the list of paths that
-\c
-.B gld\c
-\& will search for archive libraries. You may use this option
-any number of times.
-
-The default set of paths searched (without being specified with
-\c
-.B \-L\c
-\&) depends on what emulation mode \c
-.B gld\c
-\& is using, and in
-some cases also on how it was configured. The
-paths can also be specified in a link script with the \c
-.B SEARCH_DIR\c
-\&
-command.
-
-.TP
-.B \-M
-.TP
-.B \-m
-Print (to the standard output file) a link map\(em\&diagnostic information
-about where symbols are mapped by \c
-.B ld\c
-\&, and information on global
-common storage allocation.
-
-.TP
-.B \-N
-specifies readable and writable \c
-.B text\c
-\& and \c
-.B data\c
-\& sections. If
-the output format supports Unix style magic numbers, the output is
-marked as \c
-.B OMAGIC\c
-\&.
-
-When you use the `\|\c
-.B \-N\c
-\&\|' option, the linker does not page-align the
-data segment.
-
-.TP
-.B \-n
-sets the text segment to be read only, and \c
-.B NMAGIC\c
-\& is written
-if possible.
-
-.TP
-.B \-noinhibit-exec
-Normally, the linker will not produce an output file if it encounters
-errors during the link process. With this flag, you can specify that
-you wish the output file retained even after non-fatal errors.
-
-.TP
-.BI "-o " "output"\c
-\&
-.I output\c
-\&
-\c
-.I output\c
-\& is a name for the program produced by \c
-.B ld\c
-\&; if this
-option is not specified, the name `\|\c
-.B a.out\c
-\|' is used by default. The
-script command \c
-.B OUTPUT\c
-\& can also specify the output file name.
-
-.TP
-.BI "-R " "filename"\c
-\&
-.I file\c
-\&
-Read symbol names and their addresses from \c
-.I filename\c
-\&, but do not
-relocate it or include it in the output. This allows your output file
-to refer symbolically to absolute locations of memory defined in other
-programs.
-
-.TP
-.B \-relax
-An option with machine dependent effects. Currently this option is only
-supported on the H8/300.
-
-On some platforms, use this option to perform global optimizations that
-become possible when the linker resolves addressing in your program, such
-as relaxing address modes and synthesizing new instructions in the
-output object file.
-
-On platforms where this is not supported, `\|\c
-.B \-relax\c
-\&\|' is accepted, but has no effect.
-
-.TP
-.B \-r
-Generates relocatable output\(em\&i.e., generate an output file that can in
-turn serve as input to \c
-.B gld\c
-\&. This is often called \c
-.I partial
-linking\c
-\&. As a side effect, in environments that support standard Unix
-magic numbers, this option also sets the output file's magic number to
-\c
-.B OMAGIC\c
-\&.
-If this option is not specified, an absolute file is produced. When
-linking C++ programs, this option \c
-.I will not\c
-\& resolve references to
-constructors; \c
-.B \-Ur\c
-\& is an alternative.
-
-This option does the same as \c
-.B \-i\c
-\&.
-
-.TP
-.B \-S
-Omits debugger symbol information (but not all symbols) from the output file.
-
-.TP
-.B \-s
-Omits all symbol information from the output file.
-
-.TP
-.BI "{ " "script" " }"
-You can, if you wish, include a script of linker commands directly in
-the command line instead of referring to it via an input file. When the
-character `\|\c
-.B {\c
-\|' occurs on the command line, the linker switches to
-interpreting the command language until the end of the list of commands
-is reached\(em\&flagged with a closing brace `\|\c
-.B }\c
-\|'. Other command-line
-options will not be recognized while parsing the script.
-for a description of the command language.
-
-.TP
-.BI "-Tbss " "org"\c
-.TP
-.BI "-Tdata " "org"\c
-.TP
-.BI "-Ttext " "org"\c
-Use \c
-.I org\c
-\& as the starting address for\(em\&respectively\(em\&the
-\c
-.B bss\c
-\&, \c
-.B data\c
-\&, or the \c
-.B text\c
-\& segment of the output file.
-\c
-.I textorg\c
-\& must be a hexadecimal integer.
-
-.TP
-.BI "-T " "commandfile"\c
-\&
-.TP
-.BI "-T" "commandfile"\c
-Equivalent to \c
-.B \-c \c
-.I commandfile\c
-\&\c
-\&; supported for compatibility with
-other tools.
-
-.TP
-.B \-t
-Prints names of input files as \c
-.B ld\c
-\& processes them.
-
-.TP
-.BI "-u " "sym"\c
-\&
-.I sym\c
-\&
-Forces \c
-.I sym\c
-\& to be entered in the output file as an undefined symbol.
-This may, for example, trigger linking of additional modules from
-standard libraries. \c
-.B \-u\c
-\& may be repeated with different option
-arguments to enter additional undefined symbols.
-
-.TP
-.B \-Ur
-For anything other than C++ programs, this option is equivalent to
-\c
-.B \-r\c
-\&: it generates relocatable output\(em\&i.e., an output file that can in
-turn serve as input to \c
-.B gld\c
-\&. When linking C++ programs, \c
-.B \-Ur\c
-\&
-\c
-.I will\c
-\& resolve references to constructors, unlike \c
-.B \-r\c
-\&.
-
-.TP
-.B \-v
-Display the version number for \c
-.B gld\c
-\&.
-
-.TP
-.B \-X
-If \c
-.B \-s\c
-\& or \c
-.B \-S\c
-\& is also specified, delete only local symbols
-beginning with `\|\c
-.B L\c
-\|'.
-
-.TP
-.B \-x
-If \c
-.B \-s\c
-\& or \c
-.B \-S\c
-\& is also specified, delete all local symbols,
-not just those beginning with `\|\c
-.B L\c
-\|'.
-
-.PP
-
-.SH ENVIRONMENT
-\c
-.B gld\c
-\& always consults two environment variables: \c
-.B GNUTARGET\c
-\&
-and \c
-.B LDEMULATION\c
-\&. Depending on the setting of the latter, other
-environment variables may be used as well.
-
-\c
-.B GNUTARGET\c
-\& determines the input-file object format if you don't
-use \c
-.B \-b\c
-\& (or its synonym \c
-.B \-format\c
-\&). Its value should be one
-of the BFD names for an input format. If there is no
-\c
-.B GNUTARGET\c
-\& in the environment, \c
-.B gld\c
-\& uses the natural format
-of the host. If \c
-.B GNUTARGET\c
-\& is set to \c
-.B default\c
-\& then BFD attempts to discover the
-input format by examining binary input files; this method often
-succeeds, but there are potential ambiguities, since there is no method
-of ensuring that the magic number used to flag object-file formats is
-unique. However, the configuration procedure for BFD on each system
-places the conventional format for that system first in the search-list,
-so ambiguities are resolved in favor of convention.
-
-\c
-.B LDEMULATION\c
-\& controls some aspects of \c
-.B gld\c
-\&'s dominant
-personality. Although \c
-.B gld\c
-\& is flexible enough to permit its use
-in many contexts regardless of configuration, you can use this variable
-to make it act more like one or another older linker by default.
-
-In particular, the value of \c
-.B LDEMULATION\c
-\& controls what default
-linker script is used (thereby controlling the default input and output
-formats; ; what default paths are searched for
-archive libraries; and in some cases whether additional linker script
-commands are available.
-
-Here is the current set of emulations available:
-
-.TP
-.B LDEMULATION=gld
-Emulate the older GNU linker. When this emulation is selected, the
-default library search paths are
-.sp
-.br
-/lib
-.br
-/usr/lib
-.br
-/usr/local/lib/lib
-.br
-.sp
-
-The default output format is set to \c
-.B a.out-generic-big\c
-\&, and the
-default machine is the system's configured BFD default.
-
-.TP
-.B LDEMULATION=gld68k
-A variant of the \c
-.B gld\c
-\& emulation; only differs in specifically
-setting the default BFD machine as \c
-.B m68k\c
-\&.
-
-.TP
-.B LDEMULATION=gld960
-Emulate the Intel port of the older \c
-.B gld\c
-\& for the i960
-architectures. The default library search paths are taken from two
-other environment variables, \c
-.B G960LIB\c
-\& and \c
-.B G960BASE\c
-\&. The
-default architecture is \c
-.B i960\c
-\&. The default output format is set
-to \c
-.B b.out.big\c
-\&, and in fact the default output file name (if
-\c
-.B \-o\c
-\& is not specified) is \c
-.B b.out\c
-\&, to reflect this variant
-format, for this emulation.
-
-This emulation can behave slightly differently depending on the setting
-of the \c
-.B gld\c
-\& compile-time switch \c
-.B GNU960\c
-\&. If \c
-.B gld\c
-\& is
-compiled with \c
-.B GNU960\c
-\& defined, then an additional environment
-variable\(em\&\c
-.B GNUTARGET\c
-\&\(em\&is available; its value, if available,
-specifies some other default output format than \c
-.B b.out.big\c
-\&.
-
-.TP
-.B LDEMULATION=gldm88kbcs
-Sets the output format to \c
-.B m88kbcs\c
-\& and the architecture to
-\c
-.B m88k\c
-\&. Default library search paths are
-.sp
-.br
-/lib
-.br
-/usr/lib
-.br
-/usr/local/lib
-.br
-.sp
-
-.TP
-.B LDEMULATION=lnk960
-Emulate the Intel linker \c
-.B lnk960\c
-\&. The default output format is
-\c
-.B coff-Intel-big\c
-\&. With this emulation, \c
-.B gld\c
-\&
-supports the additional script commands \c
-.B HLL\c
-\& and \c
-.B SYSLIB\c
-\& for
-specification of library archives. This is the only emulation with
-extensive support for the \c
-.B \-A\c
-\& (architecture) command-line option.
-By default, the architecture \c
-.B CORE\c
-\& is assumed, but you can choose
-additional features from the i960 architecture family by using one of
-the following with \c
-.B \-A\c
-\& (or by using the \c
-.B OUTPUT_ARCH\c
-\& command
-from a script):
-.sp
-.br
-CORE
-.br
-KB
-.br
-SB
-.br
-MC
-.br
-XA
-.br
-CA
-.br
-KA
-.br
-SA
-.br
-.sp
-
-The default libraries are chosen with some attention to the architecture
-selected; the core library `\|\c
-.B cg\c
-\|' is always included, but the library
-\c
-.B fpg\c
-\& is also used if you've specified any of the architectures
-\c
-.B KA\c
-\&, \c
-.B SA\c
-\&, or \c
-.B CA\c
-\&.
-
-Like \c
-.B gld960\c
-\&, this emulation uses additional environment variables
-to set the default library search paths. Also like \c
-.B gld960\c
-\&, the
-behavior of this emulation is slightly different depending on whether
-\c
-.B gld\c
-\& itself was compiled with \c
-.B GNU960\c
-\& defined.
-
-If your \c
-.B gld\c
-\& was compiled with \c
-.B GNU960\c
-\& defined, the default
-paths are taken from all three of \c
-.B G960LIB\c
-\&, \c
-.B G960BASE\c
-\&, and
-\c
-.B I960BASE\c
-\&. For the first two, paths you supply are automatically
-suffixed with `\|\c
-.B /lib/libcoff\c
-\|'; for the last, your path is
-automatically suffixed with `\|\c
-.B /lib\c
-\|'.
-
-If your \c
-.B gld\c
-\& was \c
-.I not\c
-\& compiled with \c
-.B GNU960\c
-\& defined,
-the default paths are taken from \c
-.B I960BASE\c
-\&, and \c
-.B G960BASE\c
-\& is
-only consulted if \c
-.B I960BASE\c
-\& is undefined. In this case
-\c
-.B G960LIB\c
-\& is not used at all.
-
-.TP
-.B LDEMULATION=vanilla
-This is the least specific setting for \c
-.B gld\c
-\&. You can set
-\c
-.B LDEMULATION=vanilla\c
-\& to disable emulation of other linkers. This
-setting makes \c
-.B gld\c
-\& take the default machine from the BFD
-configuration on your system; \c
-.B a.out-generic-big\c
-\& is the default
-target. No other defaults are specified.
-
-.PP
-
-.SH "SEE ALSO"
-
-.BR objdump ( 1 )
-.br
-.br
-.RB "`\|" ld "\|' and `\|" binutils "\|'"
-entries in
-.B info\c
-.br
-.I
-gld: the GNU linker\c
-, Steve Chamberlain and Roland Pesch;
-.I
-The GNU Binary Utilities\c
-, Roland H. Pesch.
-
-.SH COPYING
-Copyright (c) 1991, 1992 Free Software Foundation, Inc.
-.PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
diff --git a/ld/h8300hds.c b/ld/h8300hds.c
deleted file mode 100755
index 36ca6ef..0000000
--- a/ld/h8300hds.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- Written by Steve Chamberlain steve@cygnus.com
-
- The controller which tells the gnu linker how to behave like one for
- the Hitach H8/300 with IEEE records.
-*/
-
-#include "bfd.h"
-#include "sysdep.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void h8300hds_before_parse()
-{
- ldfile_output_architecture = bfd_arch_h8300;
-}
-
-
-static void
-h8300hds_after_parse()
-{
-
-}
-
-static void
-h8300hds_after_allocation()
-{
-
-}
-
-static void
-h8300hds_before_allocation()
-{
-
-}
-
-
-static void
-h8300hds_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd,
- ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-h8300hds_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return H8300HDS_TARGET;
-}
-
-static void
-h8300hds_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-h8300hds_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *h8300hds_script =
-#include "h8300hds.x"
-;
-static char *h8300hds_script_option_Ur =
-#include "h8300hds.x"
-;
-static char *h8300hds_script_option_r =
-#include "h8300hds.x"
-;
-
-static char *h8300hds_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return h8300hds_script_option_Ur;
- }
- if (config.relocateable_output) {
- return h8300hds_script_option_r;
- }
-
- return h8300hds_script;
-}
-struct ld_emulation_xfer_struct ld_h8300hds_emulation =
-{
- h8300hds_before_parse,
- h8300hds_syslib,
- h8300hds_hll,
- h8300hds_after_parse,
- h8300hds_after_allocation,
- h8300hds_set_output_arch,
- h8300hds_choose_target,
- h8300hds_before_allocation,
- h8300hds_get_script,
-};
diff --git a/ld/h8300hds.sc b/ld/h8300hds.sc
deleted file mode 100755
index 0527766..0000000
--- a/ld/h8300hds.sc
+++ /dev/null
@@ -1,22 +0,0 @@
-OUTPUT_FORMAT("coff-h8300")
-OUTPUT_ARCH(h8300)
-
-SECTIONS
-{
-.text 0:
- {
- *(.text)
- *(.strings)
- }
-.data . :
- {
- *(.data)
- }
-.bss . :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- }
-}
-
diff --git a/ld/h8300hms.c b/ld/h8300hms.c
deleted file mode 100755
index 06e8a89..0000000
--- a/ld/h8300hms.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- Written by Steve Chamberlain steve@cygnus.com
-
- The controller which tells the gnu linker how to behave like one for
- the Hitach H8/300 with IEEE records.
-*/
-
-#include "bfd.h"
-#include "sysdep.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void h8300hms_before_parse()
-{
- ldfile_output_architecture = bfd_arch_h8300;
-}
-
-
-static void
-h8300hms_after_parse()
-{
-
-}
-
-static void
-h8300hms_after_allocation()
-{
-
-}
-
-static void
-h8300hms_before_allocation()
-{
-
-}
-
-
-static void
-h8300hms_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd,
- ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-h8300hms_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return H8300HMS_TARGET;
-}
-
-static void
-h8300hms_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-h8300hms_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *h8300hms_script =
-#include "h8300hms.x"
-;
-static char *h8300hms_script_option_Ur =
-#include "h8300hms.x"
-;
-static char *h8300hms_script_option_r =
-#include "h8300hms.x"
-;
-
-static char *h8300hms_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return h8300hms_script_option_Ur;
- }
- if (config.relocateable_output) {
- return h8300hms_script_option_r;
- }
-
- return h8300hms_script;
-}
-struct ld_emulation_xfer_struct ld_h8300hms_emulation =
-{
- h8300hms_before_parse,
- h8300hms_syslib,
- h8300hms_hll,
- h8300hms_after_parse,
- h8300hms_after_allocation,
- h8300hms_set_output_arch,
- h8300hms_choose_target,
- h8300hms_before_allocation,
- h8300hms_get_script,
-};
diff --git a/ld/h8300hms.sc b/ld/h8300hms.sc
deleted file mode 100755
index 62ba07e..0000000
--- a/ld/h8300hms.sc
+++ /dev/null
@@ -1,30 +0,0 @@
-OUTPUT_FORMAT("coff-h8300")
-OUTPUT_ARCH(h8300)
-
-MEMORY {
- rom : o = 0x0000, l = 0x7fe0
- duart : o = 0x7fe0, l = 16
- ram : o = 0x8000, l = 29k
- hmsram: o = 0xfb80, l = 512
- }
-
-SECTIONS
-{
-.text :
- {
- *(.text)
- *(.strings)
- } > ram
-.data :
- {
- *(.data)
- } > ram
-.bss :
- {
- _bss_start = . ;
- *(.bss)
- *(COMMON)
- _end = .;
- } >ram
-}
-
diff --git a/ld/i386aout.c b/ld/i386aout.c
deleted file mode 100755
index 7bd06c5..0000000
--- a/ld/i386aout.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* NOTE: If there are angle brackets here: I386AOUT then this is a
- * template file (ldtemplate), intended for processing by sed.
- * Otherwise, this file has already been processed by sed,
- * and customized for a particular emulation target.
- * In that DO NOT EDIT the file; edit ldtemplate instead.
- */
-
-/* emulate the original gld for the given I386AOUT
- Copyright (C) 1991 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
-This file is part of GLD, the Gnu Linker.
-
-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. */
-
-/*
- * $Id:#
- */
-
-#define TARGET_IS_I386AOUT
-
-
-#include "bfd.h"
-#include "sysdep.h"
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldi386aout_before_parse()
-{
-#ifdef TARGET_IS_M88KBCS
- extern char lprefix;
- lprefix = '@';
-#else
-#ifndef TARGET_ /* I.e., if not generic */
- ldfile_output_architecture = bfd_arch_i386;
-#endif
-#endif
-}
-
-
-static void
-gldi386aout_after_parse()
-{
-
-}
-
-static void
-gldi386aout_after_allocation()
-{
-
-}
-
-static void
-gldi386aout_before_allocation()
-{
-
-}
-
-
-static void
-gldi386aout_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd,
- ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gldi386aout_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDI386AOUT_TARGET;
-}
-
-static void
-gldi386aout_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldi386aout_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldi386aout_script =
-#include "i386aout.x"
-;
-static char *gldi386aout_script_option_Ur =
-#include "i386aout.xu"
-;
-static char *gldi386aout_script_option_r =
-#include "i386aout.xr"
-;
-static char *gldi386aout_script_option_n = /* Used with -n flag. */
-#include "i386aout.xn"
-;
-static char *gldi386aout_script_option_N = /* Used with -N flag. */
-#include "i386aout.xN"
-;
-
-static char *gldi386aout_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldi386aout_script_option_Ur;
- }
- if (config.relocateable_output == true) {
- return gldi386aout_script_option_r;
- }
- if (!config.text_read_only)
- return gldi386aout_script_option_N;
- if (!config.magic_demand_paged)
- return gldi386aout_script_option_n;
- return gldi386aout_script;
-}
-struct ld_emulation_xfer_struct ld_gldi386aout_emulation =
-{
- gldi386aout_before_parse,
- gldi386aout_syslib,
- gldi386aout_hll,
- gldi386aout_after_parse,
- gldi386aout_after_allocation,
- gldi386aout_set_output_arch,
- gldi386aout_choose_target,
- gldi386aout_before_allocation,
- gldi386aout_get_script,
-};
diff --git a/ld/i386aout.sc b/ld/i386aout.sc
deleted file mode 100755
index 9ea8e64..0000000
--- a/ld/i386aout.sc
+++ /dev/null
@@ -1,25 +0,0 @@
-OUTPUT_FORMAT("a.out-i386")
-OUTPUT_ARCH(i386)
-
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0 BLOCK(0x1000) :
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN(0x1000);
- }
- .data ALIGN(0x1000) :
- {
- *(.data)
- CONSTRUCTORS
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- }
-}
diff --git a/ld/ld-emul.c b/ld/ld-emul.c
deleted file mode 100755
index ce99ce7..0000000
--- a/ld/ld-emul.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- */
-
-/*
- * clearing house for ld emulation states
- */
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "config.h"
-#include "ld.h"
-#include "ld-emul.h"
-#include "ldmisc.h"
-
-extern ld_emulation_xfer_type ld_lnk960_emulation;
-extern ld_emulation_xfer_type ld_gldm88kbcs_emulation;
-extern ld_emulation_xfer_type ld_gld_emulation;
-extern ld_emulation_xfer_type ld_vanilla_emulation;
-extern ld_emulation_xfer_type ld_gld68k_emulation;
-extern ld_emulation_xfer_type ld_gld960_emulation;
-
-
-
-ld_emulation_xfer_type *ld_emulation;
-
-void
-ldemul_hll(name)
-char *name;
-{
- ld_emulation->hll(name);
-}
-
-
-void ldemul_syslib(name)
-char *name;
-{
- ld_emulation->syslib(name);
-}
-
-void
-ldemul_after_parse()
-{
- ld_emulation->after_parse();
-}
-
-void
-ldemul_before_parse()
-{
- ld_emulation->before_parse();
-}
-
-void
-ldemul_after_allocation()
-{
- ld_emulation->after_allocation();
-}
-
-void
-ldemul_before_allocation()
-{
- if (ld_emulation->before_allocation) {
- ld_emulation->before_allocation();
- }
-}
-
-
-void
-ldemul_set_output_arch()
-{
- ld_emulation->set_output_arch();
-}
-
-char *
-ldemul_choose_target()
-{
- return ld_emulation->choose_target();
-}
-
-char *
-ldemul_get_script()
-{
- return ld_emulation->get_script();
-}
-
-void
-ldemul_choose_mode(target)
-char *target;
-{
- if (strcmp(target,LNK960_EMULATION_NAME)==0) {
- ld_emulation = &ld_lnk960_emulation;
- }
- else if (strcmp(target,GLD960_EMULATION_NAME)==0) {
- ld_emulation = &ld_gld960_emulation;
- }
-else if (strcmp(target,GLDM88KBCS_EMULATION_NAME)==0) {
- ld_emulation = &ld_gldm88kbcs_emulation;
-}
-#ifndef GNU960
- else if (strcmp(target,GLD_EMULATION_NAME)==0) {
- ld_emulation = &ld_gld_emulation;
- }
- else if (strcmp(target,VANILLA_EMULATION_NAME)==0) {
- ld_emulation = &ld_vanilla_emulation;
- }
- else if (strcmp(target,GLD68K_EMULATION_NAME)==0) {
- ld_emulation = &ld_gld68k_emulation;
- }
-#endif
- else {
- info("%P%F unrecognised emulation mode: %s\n",target);
- }
-}
-
-
-
diff --git a/ld/ld-gld-Ur.script b/ld/ld-gld-Ur.script
deleted file mode 100755
index 3871454..0000000
--- a/ld/ld-gld-Ur.script
+++ /dev/null
@@ -1,31 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((___end_list__ - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ld-gld-r.script b/ld/ld-gld-r.script
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ld-gld-r.script
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ld-gld.c b/ld/ld-gld.c
deleted file mode 100755
index 018d8d1..0000000
--- a/ld/ld-gld.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * emulate the original gld
- *
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld_before_parse()
-{
- ldfile_add_library_path("/lib");
- ldfile_add_library_path("/usr/lib");
- ldfile_add_library_path("/usr/local/lib/lib");
-}
-
-
-static void
-gld_after_parse()
-{
-
-}
-
-static void
-gld_after_allocation()
-{
-
-}
-
-static void
-gld_before_allocation()
-{
-
-}
-
-
-static void
-gld_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gld_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD_TARGET;
-}
-
-static void
-gld_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld_script =
-#include "ld-gld.x"
-;
-
-static char *gld_script_option_Ur =
-#include "ld-gld-Ur.x"
-;
-
-static char *gld_script_option_r =
-#include "ld-gld-r.x"
-;
-
-static char *gld_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gld_script_option_r;
- }
-
- return gld_script;
-}
-struct ld_emulation_xfer_struct ld_gld_emulation =
-{
- gld_before_parse,
- gld_syslib,
- gld_hll,
- gld_after_parse,
- gld_after_allocation,
- gld_set_output_arch,
- gld_choose_target,
- gld_before_allocation,
- gld_get_script,
-};
-
diff --git a/ld/ld-gld.script b/ld/ld-gld.script
deleted file mode 100755
index 2f402c1..0000000
--- a/ld/ld-gld.script
+++ /dev/null
@@ -1,28 +0,0 @@
-OUTPUT_ARCH(sparc)
-OUTPUT_FORMAT("a.out-sunos-big")
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x2000) :
- {
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- }
-}
-
-
diff --git a/ld/ld-gld68k-Ur.script b/ld/ld-gld68k-Ur.script
deleted file mode 100755
index aa89c6a..0000000
--- a/ld/ld-gld68k-Ur.script
+++ /dev/null
@@ -1,21 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ld-gld68k-r.script b/ld/ld-gld68k-r.script
deleted file mode 100755
index 8cbc9dc..0000000
--- a/ld/ld-gld68k-r.script
+++ /dev/null
@@ -1,22 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ld-gld68k.c b/ld/ld-gld68k.c
deleted file mode 100755
index 5d996e3..0000000
--- a/ld/ld-gld68k.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id:#
-*/
-
-/*
- * emulate the original gld running on a 68k system
- *
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld68k_before_parse()
-{
- ldfile_add_library_path("/lib");
- ldfile_add_library_path("/usr/lib");
- ldfile_add_library_path("/usr/local/lib/lib");
- ldfile_output_architecture = bfd_arch_m68k;
-}
-
-
-static void
-gld68k_after_parse()
-{
-
-}
-
-static void
-gld68k_after_allocation()
-{
-
-}
-
-static void
-gld68k_before_allocation()
-{
-
-}
-
-
-static void
-gld68k_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gld68k_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD68K_TARGET;
-}
-
-static void
-gld68k_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld68k_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld68k_script =
-#include "ld-gld68k.x"
-;
-
-static char *gld68k_script_option_Ur =
-#include "ld-gld68k-Ur.x"
-;
-static char *gld68k_script_option_r =
-#include "ld-gld68k-r.x"
-;
-static char *gld68k_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld68k_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gld68k_script_option_r;
- }
-
- return gld68k_script;
-}
-struct ld_emulation_xfer_struct ld_gld68k_emulation =
-{
- gld68k_before_parse,
- gld68k_syslib,
- gld68k_hll,
- gld68k_after_parse,
- gld68k_after_allocation,
- gld68k_set_output_arch,
- gld68k_choose_target,
- gld68k_before_allocation,
- gld68k_get_script,
-};
-
diff --git a/ld/ld-gld68k.script b/ld/ld-gld68k.script
deleted file mode 100755
index be91d91..0000000
--- a/ld/ld-gld68k.script
+++ /dev/null
@@ -1,28 +0,0 @@
-OUTPUT_FORMAT("a.out-sunos-big")
-OUTPUT_ARCH(m68k)
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x20000) :
- {
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- }
-}
-
diff --git a/ld/ld-gld960.c b/ld/ld-gld960.c
deleted file mode 100755
index 5aed97e..0000000
--- a/ld/ld-gld960.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- $Id$
-*/
-
-/*
- * emulate the Intels port of gld
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-
-/* IMPORTS */
-extern char *output_filename;
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-#ifdef GNU960
-
-static void
-gld960_before_parse()
-{
- static char *env_variables[] = { "G960LIB", "G960BASE", 0 };
- char **p;
- char *env ;
-
- for ( p = env_variables; *p; p++ ){
- env = (char *) getenv(*p);
- if (env) {
- ldfile_add_library_path(concat(env,"/lib/libbout",""));
- }
- }
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-#else /* not GNU960 */
-
-static void gld960_before_parse()
-{
- char *env ;
- env = getenv("G960LIB");
- if (env) {
- ldfile_add_library_path(env);
- }
- env = getenv("G960BASE");
- if (env) {
- ldfile_add_library_path(concat(env,"/lib",""));
- }
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-#endif /* GNU960 */
-
-
-static void
-gld960_after_parse()
-{
-
-}
-
-static void
-gld960_after_allocation()
-{
-
-}
-
-static void
-gld960_before_allocation()
-{
-
-}
-
-
-static void
-gld960_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gld960_choose_target()
-{
-#ifdef GNU960
-
- output_filename = "b.out";
- return bfd_make_targ_name(BFD_BOUT_FORMAT,HOST_BYTE_ORDER_BIG_P);
-
-#else
-
- char *from_outside = getenv(TARGET_ENVIRON);
- output_filename = "b.out";
-
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD960_TARGET;
-
-#endif
-}
-
-static void
-gld960_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld960_hll()
-{
- info("%S HLL ignored\n");
-}
-
-
-static char *script =
-#include "ld-gld960.x"
-;
-
-
-static char *
-gld960_get_script()
-{
-return script;
-}
-
-struct ld_emulation_xfer_struct ld_gld960_emulation =
-{
- gld960_before_parse,
- gld960_syslib,
- gld960_hll,
- gld960_after_parse,
- gld960_after_allocation,
- gld960_set_output_arch,
- gld960_choose_target,
- gld960_before_allocation,
- gld960_get_script,
-};
diff --git a/ld/ld-gld960.script b/ld/ld-gld960.script
deleted file mode 100755
index 1c40a73..0000000
--- a/ld/ld-gld960.script
+++ /dev/null
@@ -1,23 +0,0 @@
-SECTIONS
-{
- .text :
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = .;
- }
-
- .data SIZEOF(.text) + ADDR(.text):
- {
-
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = .;
- *(.bss)
- [COMMON]
- _end = . ;
- }
-}
diff --git a/ld/ld-gldm88kbcs-Ur.script b/ld/ld-gldm88kbcs-Ur.script
deleted file mode 100755
index 8d3f12b..0000000
--- a/ld/ld-gldm88kbcs-Ur.script
+++ /dev/null
@@ -1,31 +0,0 @@
-SCRIPT
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((___end_list__ - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-ENDSCRIPT
diff --git a/ld/ld-gldm88kbcs-r.script b/ld/ld-gldm88kbcs-r.script
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ld-gldm88kbcs-r.script
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ld-gldm88kbcs.c b/ld/ld-gldm88kbcs.c
deleted file mode 100755
index bfb539f..0000000
--- a/ld/ld-gldm88kbcs.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldm88kbcs_before_parse()
-{
-
-}
-
-
-static void
-gldm88kbcs_after_parse()
-{
-
-}
-
-static void
-gldm88kbcs_after_allocation()
-{
-
-}
-
-static void
-gldm88kbcs_before_allocation()
-{
-
-}
-
-
-static void
-gldm88kbcs_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gldm88kbcs_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDM88KBCS_TARGET;
-}
-
-static void
-gldm88kbcs_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldm88kbcs_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldm88kbcs_script =
-#include "ld-gldm88kbcs.x"
-;
-
-static char *gldm88kbcs_script_option_Ur =
-#include "ld-gldm88kbcs-Ur.x"
-;
-
-static char *gldm88kbcs_script_option_r =
-#include "ld-gldm88kbcs-r.x"
-;
-
-static char *gldm88kbcs_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldm88kbcs_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gldm88kbcs_script_option_r;
- }
-
- return gldm88kbcs_script;
-}
-struct ld_emulation_xfer_struct ld_gldm88kbcs_emulation =
-{
- gldm88kbcs_before_parse,
- gldm88kbcs_syslib,
- gldm88kbcs_hll,
- gldm88kbcs_after_parse,
- gldm88kbcs_after_allocation,
- gldm88kbcs_set_output_arch,
- gldm88kbcs_choose_target,
- gldm88kbcs_before_allocation,
- gldm88kbcs_get_script,
-};
-
diff --git a/ld/ld-gldm88kbcs.script b/ld/ld-gldm88kbcs.script
deleted file mode 100755
index ae7cb85..0000000
--- a/ld/ld-gldm88kbcs.script
+++ /dev/null
@@ -1,36 +0,0 @@
-OUTPUT_FORMAT(m88kbcs)
-OUTPUT_ARCH(m88k)
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x2000) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((_edata - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- }
-}
-
-
diff --git a/ld/ld-lnk960-r.script b/ld/ld-lnk960-r.script
deleted file mode 100755
index daf59bb..0000000
--- a/ld/ld-lnk960-r.script
+++ /dev/null
@@ -1,17 +0,0 @@
-SECTIONS
-{
- .text 0:
- {
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ld-lnk960.c b/ld/ld-lnk960.c
deleted file mode 100755
index 984ed2e..0000000
--- a/ld/ld-lnk960.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- $Id$
-*/
-
-/*
-
- Written by Steve Chamberlain steve@cygnus.com
-
- * intel coff loader emulation specific stuff
- */
-
-#include "sysdep.h"
-#include "bfd.h"
-
-/*#include "archures.h"*/
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldmisc.h"
-#include "ldlang.h"
-#include "ldfile.h"
-
-extern boolean lang_float_flag;
-extern bfd *output_bfd;
-
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-
-typedef struct lib_list {
- char *name;
- struct lib_list *next;
-} lib_list_type;
-
-static lib_list_type *hll_list;
-static lib_list_type **hll_list_tail = &hll_list;
-
-static lib_list_type *syslib_list;
-static lib_list_type **syslib_list_tail = &syslib_list;
-
-
-static void
-append(list, name)
-lib_list_type ***list;
-char *name;
-{
- lib_list_type *element =
- (lib_list_type *)(ldmalloc(sizeof(lib_list_type)));
-
- element->name = name;
- element->next = (lib_list_type *)NULL;
- **list = element;
- *list = &element->next;
-
-}
-
-static boolean had_hll = false;
-static boolean had_hll_name = false;
-static void
-lnk960_hll(name)
-char *name;
-{
- had_hll = true;
- if (name != (char *)NULL) {
- had_hll_name = true;
- append(&hll_list_tail, name);
- }
-}
-
-static void
-lnk960_syslib(name)
-char *name;
-{
- append(&syslib_list_tail,name);
-}
-
-
-
-#ifdef GNU960
-
-static void
-lnk960_before_parse()
-{
- static char *env_variables[] = { "G960LIB", "G960BASE", 0 };
- char **p;
- char *env ;
-
- for ( p = env_variables; *p; p++ ){
- env = (char *) getenv(*p);
- if (env) {
- ldfile_add_library_path(concat(env,"/lib/libcoff",""));
- }
- }
-
- env= (char *) getenv("I960BASE");
- if ( env ) {
- ldfile_add_library_path(concat(env,"/lib",""));
- }
-
- ldfile_output_architecture = bfd_arch_i960;
- ldfile_output_machine = bfd_mach_i960_core;
-}
-
-#else /* not GNU960 */
-
-static void
-lnk960_before_parse()
-{
- char *name = getenv("I960BASE");
-
- if (name == (char *)NULL) {
- name = getenv("G960BASE");
- if (name == (char *)NULL) {
- info("%P%F I960BASE and G960BASE not set\n");
- }
- }
-
-
- ldfile_add_library_path(concat(name,"/lib",""));
- ldfile_output_architecture = bfd_arch_i960;
- ldfile_output_machine = bfd_mach_i960_core;
-}
-
-#endif /* GNU960 */
-
-
-static void
-add_on(list, search)
-lib_list_type *list;
-lang_input_file_enum_type search;
-{
- while (list) {
- lang_add_input_file(list->name,
- search,
- (char *)NULL);
- list = list->next;
- }
-}
-static void lnk960_after_parse()
-{
-
- /* If there has been no arch, default to -KB */
- if (ldfile_output_machine_name[0] ==0) {
- ldfile_add_arch("KB");
- }
-
- /* if there has been no hll list then add our own */
-
- if(had_hll && !had_hll_name) {
- append(&hll_list_tail,"cg");
- if (ldfile_output_machine == bfd_mach_i960_ka_sa ||
- ldfile_output_machine == bfd_mach_i960_ca) {
- {
- append(&hll_list_tail,"fpg");
- }
- }
- }
-
- add_on(hll_list, lang_input_file_is_l_enum);
- add_on(syslib_list, lang_input_file_is_search_file_enum);
-}
-
-static void
-lnk960_before_allocation()
-{
-}
-static void
-lnk960_after_allocation()
-{
- extern ld_config_type config;
- if (config.relocateable_output == false) {
- lang_abs_symbol_at_end_of(".text","_etext");
- lang_abs_symbol_at_end_of(".data","_edata");
- lang_abs_symbol_at_beginning_of(".bss","_bss_start");
- lang_abs_symbol_at_end_of(".bss","_end");
- }
-}
-
-
-static struct
- {
- unsigned long number;
- char *name;
- }
-machine_table[] = {
- bfd_mach_i960_core ,"CORE",
- bfd_mach_i960_kb_sb ,"KB",
- bfd_mach_i960_kb_sb ,"SB",
- bfd_mach_i960_mc ,"MC",
- bfd_mach_i960_xa ,"XA",
- bfd_mach_i960_ca ,"CA",
- bfd_mach_i960_ka_sa ,"KA",
- bfd_mach_i960_ka_sa ,"SA",
-
- bfd_mach_i960_core ,"core",
- bfd_mach_i960_kb_sb ,"kb",
- bfd_mach_i960_kb_sb ,"sb",
- bfd_mach_i960_mc ,"mc",
- bfd_mach_i960_xa ,"xa",
- bfd_mach_i960_ca ,"ca",
- bfd_mach_i960_ka_sa ,"ka",
- bfd_mach_i960_ka_sa ,"sa",
- 0,(char *)NULL
-};
-
-static void
-lnk960_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned int i;
- ldfile_output_machine = bfd_mach_i960_core;
- for (i= 0; machine_table[i].name != (char*)NULL; i++) {
- if (strcmp(ldfile_output_machine_name,machine_table[i].name)==0) {
- ldfile_output_machine = machine_table[i].number;
- break;
- }
- }
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-lnk960_choose_target()
-{
-#ifdef GNU960
-
- return bfd_make_targ_name(BFD_COFF_FORMAT,HOST_BYTE_ORDER_BIG_P);
-
-#else
-
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return LNK960_TARGET;
-
-#endif
-}
-
-/* The default script if none is offered */
-static char *lnk960_script =
-#include "ld-lnk960.x"
-;
-
-
-static char *lnk960_script_relocateable =
-#include "ld-lnk960-r.x"
-;
-
-static char *lnk960_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output) {
- return lnk960_script_relocateable;
- }
- return lnk960_script;
-}
-struct ld_emulation_xfer_struct ld_lnk960_emulation =
-{
- lnk960_before_parse,
- lnk960_syslib,
- lnk960_hll,
- lnk960_after_parse,
- lnk960_after_allocation,
- lnk960_set_output_arch,
- lnk960_choose_target,
- lnk960_before_allocation,
- lnk960_get_script,
-};
diff --git a/ld/ld-lnk960.script b/ld/ld-lnk960.script
deleted file mode 100755
index f498412..0000000
--- a/ld/ld-lnk960.script
+++ /dev/null
@@ -1,21 +0,0 @@
-
-SECTIONS
-{
- .text :
- {
- *(.text)
- }
-_etext = . ;
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
-_edata = .;
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = . ;
- *(.bss)
- [COMMON]
- }
-_end = . ;
-}
diff --git a/ld/ld-vanilla.c b/ld/ld-vanilla.c
deleted file mode 100755
index 883fb1d..0000000
--- a/ld/ld-vanilla.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * A vanilla emulation with no defaults
- *
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ld-emul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void vanilla_before_parse()
-{
-}
-
-
-static void
-vanilla_after_parse()
-{
-
-}
-
-static void
-vanilla_after_allocation()
-{
-
-}
-
-static void
-vanilla_before_allocation()
-{
-
-}
-
-
-static void
-vanilla_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-vanilla_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return VANILLA_TARGET;
-}
-
-static void
-vanilla_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-vanilla_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-
-static char *vanilla_get_script()
-{
-return "";
-}
-
-struct ld_emulation_xfer_struct ld_vanilla_emulation =
-{
- vanilla_before_parse,
- vanilla_syslib,
- vanilla_hll,
- vanilla_after_parse,
- vanilla_after_allocation,
- vanilla_set_output_arch,
- vanilla_choose_target,
- vanilla_before_allocation,
- vanilla_get_script,
-};
-
diff --git a/ld/ld.tex b/ld/ld.tex
deleted file mode 100755
index 1764ad5..0000000
--- a/ld/ld.tex
+++ /dev/null
@@ -1,1014 +0,0 @@
-\input texinfo
-@parindent=0pt
-@setfilename gld
-@c @@setchapternewpage odd
-@settitle GLD, The GNU linker
-@titlepage
-@title{gld}
-@subtitle{The gnu loader}
-@sp 1
-@subtitle Second Edition---gld version 2.0
-@subtitle January 1991
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1991 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-
-@author {Steve Chamberlain}
-@author {Cygnus Support}
-@author {steve@@cygnus.com}
-@end titlepage
-
-@node Top,,,
-@comment node-name, next, previous, up
-@ifinfo
-This file documents the GNU linker gld.
-@end ifinfo
-
-@c chapter What does a linker do ?
-@c chapter Command Language
-@noindent
-@chapter Overview
-
-
-The @code{gld} command combines a number of object and archive files,
-relocates their data and ties up symbol references. Often the last
-step in building a new compiled program to run is a call to @code{gld}.
-
-The @code{gld} command accepts Linker Command Language files in
-a superset of AT+T's Link Editor Command Language syntax,
-to provide explict and total control over the linking process.
-
-This version of @code{gld} uses the general purpose @code{bfd} libraries
-to operate on object files. This allows @code{gld} to read and
-write any of the formats supported by @code{bfd}, different
-formats may be linked together producing any available object file.
-
-Supported formats:
-@itemize @bullet
-@item
-Sun3 68k a.out
-@item
-IEEE-695 68k Object Module Format
-@item
-Oasys 68k Binary Relocatable Object File Format
-@item
-Sun4 sparc a.out
-@item
-88k bcs coff
-@item
-i960 coff little endian
-@item
-i960 coff big endian
-@item
-i960 b.out little endian
-@item
-i960 b.out big endian
-@item
-s-records
-@end itemize
-
-When linking similar formats, @code{gld} maintains all debugging
-information.
-
-@chapter Command line options
-
-@example
- gld [ -Bstatic ] [ -D @var{datasize} ]
- [ -c @var{filename} ]
- [ -d ] | [ -dc ] | [ -dp ]
- [ -i ]
- [ -e @var{entry} ] [ -l @var{arch} ] [ -L @var{searchdir} ] [ -M ]
- [ -N | -n | -z ] [ -noinhibit-exec ] [ -r ] [ -S ] [ -s ]
- [ -f @var{fill} ]
- [ -T @var{textorg} ] [ -Tdata @var{dataorg} ] [ -t ] [ -u @var{sym}]
- [ -X ] [ -x ]
- [-o @var{output} ] @var{objfiles}@dots{}
-@end example
-
-Command-line options to GNU @code{gld} may be specified in any order, and
-may be repeated at will. For the most part, repeating an option with a
-different argument will either have no further effect, or override prior
-occurrences (those further to the left on the command line) of an
-option.
-
-The exceptions which may meaningfully be present several times
-are @code{-L}, @code{-l}, and @code{-u}.
-
-@var{objfiles} may follow, precede, or be mixed in with
-command-line options; save that an @var{objfiles} argument may not be
-placed between an option flag and its argument.
-
-Option arguments must follow the option letter without intervening
-whitespace, or be given as separate arguments immediately following the
-option that requires them.
-
-@table @code
-@item @var{objfiles}@dots{}
-The object files @var{objfiles} to be linked; at least one must be specified.
-
-@item -Bstatic
-This flag is accepted for command-line compatibility with the SunOS linker,
-but has no effect on @code{gld}.
-
-@item -c @var{commandfile}
-Directs @code{gld} to read linkage commands from the file @var{commandfile}.
-
-@item -D @var{datasize}
-Use this option to specify a target size for the @code{data} segment of
-your linked program. The option is only obeyed if @var{datasize} is
-larger than the natural size of the program's @code{data} segment.
-
-@var{datasize} must be an integer specified in hexadecimal.
-
-@code{ld} will simply increase the size of the @code{data} segment,
-padding the created gap with zeros, and reduce the size of the
-@code{bss} segment to match.
-
-@item -d
-Force @code{ld} to assign space to common symbols
-even if a relocatable output file is specified (@code{-r}).
-
-@item -dc | -dp
-This flags is accepted for command-line compatibility with the SunOS linker,
-but has no effect on @code{gld}.
-
-@item -e @var{entry}
-Use @var{entry} as the explicit symbol for beginning execution of your
-program, rather than the default entry point. If this symbol is
-not specified, the symbol @code{start} is used as the entry address.
-If there is no symbol called @code{start}, then the entry address
-is set to the first address in the first output section
-(usually the @samp{text} section).
-
-@item -f @var{fill}
-Sets the default fill pattern for ``holes'' in the output file to
-the lowest two bytes of the expression specified.
-
-@item -i
-Produce an incremental link (same as option @code{-r}).
-
-@item -l @var{arch}
-Add an archive file @var{arch} to the list of files to link. This
-option may be used any number of times. @code{ld} will search its
-path-list for occurrences of @code{lib@var{arch}.a} for every @var{arch}
-specified.
-
-@c This also has a side effect of using the "c++ demangler" if we happen
-@c to specify -llibg++. Document? pesch@@cygnus.com, 24jan91
-
-@item -L @var{searchdir}
-This command adds path @var{searchdir} to the
-list of paths that @code{gld} will search for archive libraries. You
-may use this option any number of times.
-
-@c Should we make any attempt to list the standard paths searched
-@c without listing? When hacking on a new system I often want to know
-@c this, but this may not be the place... it's not constant across
-@c systems, of course, which is what makes it interesting.
-@c pesch@@cygnus.com, 24jan91.
-
-@item -M
-@itemx -m
-Print (to the standard output file) a link map---diagnostic information
-about where symbols are mapped by @code{ld}, and information on global
-common storage allocation.
-
-@item -N
-specifies read and writable @code{text} and @code{data} sections. If
-the output format supports Unix style magic numbers, then OMAGIC is set.
-
-@item -n
-sets the text segment to be read only, and @code{NMAGIC} is written
-if possible.
-
-@item -o @var{output}
-@var{output} is a name for the program produced by @code{ld}; if this
-option is not specified, the name @samp{a.out} is used by default.
-
-@item -r
-Generates relocatable output---i.e., generate an output file that can in
-turn serve as input to @code{gld}. As a side effect, this option also
-sets the output file's magic number to @code{OMAGIC}; see @samp{-N}. If this
-option is not specified, an absolute file is produced.
-
-@item -S
-Omits debugger symbol information (but not all symbols) from the output file.
-
-@item -s
-Omits all symbol information from the output file.
-
-@item -T @var{textorg}
-@itemx -Ttext @var{textorg}
-Use @var{textorg} as the starting address for the @code{text} segment of the
-output file. Both forms of this option are equivalent. The option
-argument must be a hexadecimal integer.
-
-@item -Tdata @var{dataorg}
-Use @var{dataorg} as the starting address for the @code{data} segment of
-the output file. The option argument must be a hexadecimal integer.
-
-@item -t
-Prints names of input files as @code{ld} processes them.
-
-@item -u @var{sym}
-Forces @var{sym} to be entered in the output file as an undefined symbol.
-This may, for example, trigger linking of additional modules from
-standard libraries. @code{-u} may be repeated with different option
-arguments to enter additional undefined symbols. This option is equivalent
-to the @code{EXTERN} linker command.
-
-@item -X
-If @code{-s} or @code{-S} is also specified, delete only local symbols
-beginning with @samp{L}.
-
-@item -z
-@code{-z} sets @code{ZMAGIC}, the default: the @code{text} segment is
-read-only, demand pageable, and shared.
-
-Specifying a relocatable output file (@code{-r}) will also set the magic
-number to @code{OMAGIC}.
-
-See description of @samp{-N}.
-
-
-@end table
-@chapter Command Language
-
-
-The command language allows explicit control over the linkage process, allowing
-specification of:
-@table @bullet
-@item input files
-@item file formats
-@item output file format
-@item addresses of sections
-@item placement of common blocks
-@item and more
-@end table
-
-A command file may be supplied to the linker, either explicitly through the
-@code{-c} option, or implicitly as an ordinary file. If the linker opens
-a file which does not have a reasonable object or archive format, it tries
-to read the file as if it were a command file.
-@section Structure
-To be added
-
-@section Expressions
-The syntax for expressions in the command language is identical to that of
-C expressions, with the following features:
-@table @bullet
-@item All expressions evaluated as integers and
-are of ``long'' or ``unsigned long'' type.
-@item All constants are integers.
-@item All of the C arithmetic operators are provided.
-@item Global variables may be referenced, defined and created.
-@item Build in functions may be called.
-@end table
-
-@section Expressions
-
-The linker has a practice of ``lazy evaluation'' for expressions; it only
-calculates an expression when absolutely necessary. For instance,
-when the linker reads in the command file it has to know the values
-of the start address and the length of the memory regions for linkage to continue, so these
-values are worked out, but other values (such as symbol values) are not
-known or needed until after storage allocation.
-They are evaluated later, when the other
-information, such as the sizes of output sections are available for use in
-the symbol assignment expression.
-
-When a linker expression is evaluated and assigned to a variable it is given
-either an absolute or a relocatable type. An absolute expression type
-is one in which the symbol contains the value that it will have in the
-output file, a relocateable expression type is one in which the value
-is expressed as a fixed offset from the base of a section.
-
-The type of the expression is controlled by its position in the script
-file. A symbol assigned within a @code{SECTION} specification is
-created relative to the base of the section, a symbol assigned in any
-other place is created as an absolute symbol. Since a symbol created
-within a @code{SECTION} specification is relative to the base of the
-section it will remain relocatable if relocatable output is requested.
-A symbol may be created with an absolute value even when assigned to
-within a @code{SECTION} specification by using the absolute assignment
-function @code{ABSOLUTE} For example, to create an absolute symbol
-whose address is the last byte of the output section @code{.data}:
-@example
-.data :
- @{
- *(.data)
- _edata = ABSOLUTE(.) ;
- @}
-@end example
-
-Unless quoted, symbol names start with a letter, underscore, point or
-minus sign and may include any letters, underscores, digits, points,
-and minus signs. Unquoted symbol names must not conflict with any
-keywords. To specify a symbol which contains odd characters or has
-the same name as a keyword surround it in double quotes:
-@example
- ``SECTION'' = 9;
- ``with a space'' = ``also with a space'' + 10;
-@end example
-
-@subsection Integers
-An octal integer is @samp{0} followed by zero or more of the octal
-digits (@samp{01234567}).
-
-A decimal integer starts with a non-zero digit followed by zero or
-more digits (@samp{0123456789}).
-
-A hexadecimal integer is @samp{0x} or @samp{0X} followed by one or
-more hexadecimal digits chosen from @samp{0123456789abcdefABCDEF}.
-
-Integers have the usual values. To denote a negative integer, use
-the unary operator @samp{-} discussed under expressions.
-
-Additionally the suffixes @code{K} and @code{M} may be used to multiply the
-previous constant by 1024 or
-@tex
-$1024^2$
-@end tex
-respectively.
-
-@example
- _as_decimal = 57005;
- _as_hex = 0xdead;
- _as_octal = 0157255;
-
- _4k_1 = 4K;
- _4k_2 = 4096;
- _4k_3 = 0x1000;
-@end example
-@subsection Operators
-The linker provides the standard C set of arithmetic operators, with
-the standard bindings and precedence levels:
-@example
-
-@end example
-@tex
-
-\vbox{\offinterlineskip
-\hrule
-\halign
-{\vrule#&\hfil#\hfil&\vrule#&\hfil#\hfil&\vrule#&\hfil#\hfil&\vrule#\cr
-height2pt&&&&&\cr
-&Level&& associativity &&Operators&\cr
-height2pt&&&&&\cr
-\noalign{\hrule}
-height2pt&&&&&\cr
-&highest&&&&&&\cr
-&1&&left&&$ ! - ~$&\cr
-height2pt&&&&&\cr
-&2&&left&&* / \%&\cr
-height2pt&&&&&\cr
-&3&&left&&+ -&\cr
-height2pt&&&&&\cr
-&4&&left&&$>> <<$&\cr
-height2pt&&&&&\cr
-&5&&left&&$== != > < <= >=$&\cr
-height2pt&&&&&\cr
-&6&&left&&\&&\cr
-height2pt&&&&&\cr
-&7&&left&&|&\cr
-height2pt&&&&&\cr
-&8&&left&&{\&\&}&\cr
-height2pt&&&&&\cr
-&9&&left&&||&\cr
-height2pt&&&&&\cr
-&10&&right&&? :&\cr
-height2pt&&&&&\cr
-&11&&right&&$${\&= += -= *= /=}&\cr
-&lowest&&&&&&\cr
-height2pt&&&&&\cr}
-\hrule}
-@end tex
-
-@section Built in Functions
-The command language provides built in functions for use in
-expressions in linkage scripts.
-@table @bullet
-@item @code{ALIGN(@var{exp})}
-returns the result of the current location counter (@code{dot})
-aligned to the next @var{exp} boundary, where @var{exp} is a power of
-two. This is equivalent to @code{(. + @var{exp} -1) & ~(@var{exp}-1)}.
-As an example, to align the output @code{.data} section to the
-next 0x2000 byte boundary after the preceding section and to set a
-variable within the section to the next 0x8000 boundary after the
-input sections:
-@example
- .data ALIGN(0x2000) :@{
- *(.data)
- variable = ALIGN(0x8000);
- @}
-@end example
-
-@item @code{ADDR(@var{section name})}
-returns the absolute address of the named section if the section has
-already been bound. In the following examples the @code{symbol_1} and
-@code{symbol_2} are assigned identical values:
-@example
- .output1:
- @{
- start_of_output_1 $= .;
- ...
- @}
- .output:
- @{
- symbol_1 = ADDR(.output1);
- symbol_2 = start_of_output_1;
- @}
-@end example
-
-@item @code{SIZEOF(@var{section name})}
-returns the size in bytes of the named section, if the section has
-been allocated. In the following example the @code{symbol_1} and
-@code{symbol_2} are assigned identical values:
-@example
- .output @{
- .start = . ;
- ...
- .end = .;
- @}
- symbol_1 = .end - .start;
- symbol_2 = SIZEOF(.output);
-@end example
-
-@item @code{DEFINED(@var{symbol name})}
-Returns 1 if the symbol is in the linker global symbol table and is
-defined, otherwise it returns 0. This example shows the setting of a
-global symbol @code{begin} to the first location in the @code{.text}
-section, only if there is no other symbol
-called @code{begin} already:
-@example
- .text: @{
- begin = DEFINED(begin) ? begin : . ;
- ...
- @}
-@end example
-@end table
-@page
-@section MEMORY Directive
-The linker's default configuration is for all memory to be
-allocatable. This state may be overridden by using the @code{MEMORY}
-directive. The @code{MEMORY} directive describes the location and
-size of blocks of memory in the target. Careful use can describe
-memory regions which may or may not be used by the linker. The linker
-does not shuffle sections to fit into the available regions, but does
-move the requested sections into the correct regions and issue errors
-when the regions become too full. The syntax is:
-
-@example
- MEMORY
- @{
-@tex
- $\bigl\lbrace {\it name_1} ({\it attr_1}):$ ORIGIN = ${\it origin_1},$ LENGTH $= {\it len_1} \bigr\rbrace $
-@end tex
-
- @}
-@end example
-@table @code
-@item @var{name}
-is a name used internally by the linker to refer to the region. Any
-symbol name may be used. The region names are stored in a separate
-name space, and will not conflict with symbols, filenames or section
-names.
-@item @var{attr}
-is an optional list of attributes, parsed for compatibility with the
-AT+T linker
-but ignored by the both the AT+T and the gnu linker.
-@item @var{origin}
-is the start address of the region in physical memory expressed as
-standard linker expression which must evaluate to a constant before
-memory allocation is performed. The keyword @code{ORIGIN} may be
-abbreviated to @code{org} or @code{o}.
-@item @var{len}
-is the size in bytes of the region as a standard linker expression.
-The keyword @code{LENGTH} may be abbreviated to @code{len} or @code{l}
-@end table
-
-For example, to specify that memory has two regions available for
-allocation; one starting at 0 for 256k, and the other starting at
-0x40000000 for four megabytes:
-
-@example
- MEMORY
- @{
- rom : ORIGIN= 0, LENGTH = 256K
- ram : ORIGIN= 0x40000000, LENGTH = 4M
- @}
-
-@end example
-
-If the combined output sections directed to a region are too big for
-the region the linker will emit an error message.
-@page
-@section SECTIONS Directive
-The @code{SECTIONS} directive
-controls exactly where input sections are placed into output sections, their
-order and to which output sections they are allocated.
-
-When no @code{SECTIONS} directives are specified, the default action
-of the linker is to place each input section into an identically named
-output section in the order that the sections appear in the first
-file, and then the order of the files.
-
-The syntax of the @code{SECTIONS} directive is:
-
-@example
- SECTIONS
- @{
-@tex
- $\bigl\lbrace {\it name_n}\bigl[options\bigr]\colon$ $\bigl\lbrace {\it statements_n} \bigr\rbrace \bigl[ = {\it fill expression } \bigr] \bigl[ > mem spec \bigr] \bigr\rbrace $
-@end tex
- @}
-@end example
-
-@table @code
-@item @var{name}
-controls the name of the output section. In formats which only support
-a limited number of sections, such as @code{a.out}, the name must be
-one of the names supported by the format (in the case of a.out,
-@code{.text}, @code{.data} or @code{.bss}). If the output format
-supports any number of sections, but with numbers and not names (in
-the case of IEEE), the name should be supplied as a quoted numeric
-string. A section name may consist of any sequence characters, but
-any name which does not conform to the standard @code{gld} symbol name
-syntax must be quoted. To copy sections 1 through 4 from a Oasys file
-into the @code{.text} section of an @code{a.out} file, and sections 13
-and 14 into the @code{data} section:
-@example
-
- SECTION @{
- .text :@{
- *(``1'' ``2'' ``3'' ``4'')
- @}
-
- .data :@{
- *(``13'' ``14'')
- @}
- @}
-@end example
-
-@item @var{fill expression}
-If present this
-expression sets the fill value. Any unallocated holes in the current output
-section when written to the output file will
-be filled with the two least significant bytes of the value, repeated as
-necessary.
-@page
-@item @var{options}
-the @var{options} parameter is a list of optional arguments specifying
-attributes of the output section, they may be taken from the following
-list:
-@table @bullet{}
-@item @var{addr expression}
-forces the output section to be loaded at a specified address. The
-address is specified as a standard linker expression. The following
-example generates section @var{output} at location
-@code{0x40000000}:
-@example
- SECTIONS @{
- output 0x40000000: @{
- ...
- @}
- @}
-@end example
-Since the built in function @code{ALIGN} references the location
-counter implicitly, a section may be located on a certain boundary by
-using the @code{ALIGN} function in the expression. For example, to
-locate the @code{.data} section on the next 8k boundary after the end
-of the @code{.text} section:
-@example
- SECTIONS @{
- .text @{
- ...
- @}
- .data ALIGN(4K) @{
- ...
- @}
- @}
-@end example
-@end table
-@item @var{statements}
-is a list of file names, input sections and assignments. These statements control what is placed into the
-output section.
-The syntax of a single @var{statement} is one of:
-@table @bullet
-
-@item @var{symbol} [ $= | += | -= | *= | /= ] @var{ expression} @code{;}
-
-Global symbols may be created and have their values (addresses)
-altered using the assignment statement. The linker tries to put off
-the evaluation of an assignment until all the terms in the source
-expression are known; for instance the sizes of sections cannot be
-known until after allocation, so assignments dependent upon these are
-not performed until after allocation. Some expressions, such as those
-depending upon the location counter @code{dot}, @samp{.} must be
-evaluated during allocation. If the result of an expression is
-required, but the value is not available, then an error results: eg
-@example
- SECTIONS @{
- text 9+this_isnt_constant:
- @{
- @}
- @}
- testscript:21: Non constant expression for initial address
-@end example
-
-@item @code{CREATE_OBJECT_SYMBOLS}
-causes the linker to create a symbol for each input file and place it
-into the specified section set with the value of the first byte of
-data written from the input file. For instance, with @code{a.out}
-files it is conventional to have a symbol for each input file.
-@example
- SECTIONS @{
- .text 0x2020 :
- @{
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN(0x2000);
- @}
- @}
-@end example
-Supplied with four object files, @code{a.o}, @code{b.o}, @code{c.o},
-and @code{d.o} a run of
-@code{gld} could create a map:
-@example
-From functions like :
-a.c:
- afunction() { }
- int adata=1;
- int abss;
-
-00000000 A __DYNAMIC
-00004020 B _abss
-00004000 D _adata
-00002020 T _afunction
-00004024 B _bbss
-00004008 D _bdata
-00002038 T _bfunction
-00004028 B _cbss
-00004010 D _cdata
-00002050 T _cfunction
-0000402c B _dbss
-00004018 D _ddata
-00002068 T _dfunction
-00004020 D _edata
-00004030 B _end
-00004000 T _etext
-00002020 t a.o
-00002038 t b.o
-00002050 t c.o
-00002068 t d.o
-
-@end example
-
-@item @var{filename} @code{(} @var{section name list} @code{)}
-This command allocates all the named sections from the input object
-file supplied into the output section at the current point. Sections
-are written in the order they appear in the list so:
-@example
- SECTIONS @{
- .text 0x2020 :
- @{
- a.o(.data)
- b.o(.data)
- *(.text)
- @}
- .data :
- @{
- *(.data)
- @}
- .bss :
- @{
- *(.bss)
- COMMON
- @}
- @}
-@end example
-will produce a map:
-@example
-
- insert here
-@end example
-@item @code{* (} @var{section name list} @code{)}
-This command causes all sections from all input files which have not
-yet been assigned output sections to be assigned the current output
-section.
-
-@item @var{filename} @code{[COMMON]}
-This allocates all the common symbols from the specified file and places
-them into the current output section.
-
-@item @code{* [COMMON]}
-This allocates all the common symbols from the files which have not
-yet had their common symbols allocated and places them into the current
-output section.
-
-@item @var{filename}
-A filename alone within a @code{SECTIONS} statement will cause all the
-input sections from the file to be placed into the current output
-section at the current location. If the file name has been mentioned
-before with a section name list then only those
-sections which have not yet been allocated are noted.
-
-The following example reads all of the sections from file all.o and
-places them at the start of output section @code{outputa} which starts
-at location @code{0x10000}. All of the data from section @code{.input1} from
-file foo.o is placed next into the same output section. All of
-section @code{.input2} is read from foo.o and placed into output
-section @code{outputb}. Next all of section @code{.input1} is read
-from foo1.o. All of the remaining @code{.input1} and @code{.input2}
-sections from any files are written to output section @code{output3}.
-
-@example
- SECTIONS
- @{
- outputa 0x10000 :
- @{
- all.o
- foo.o (.input1)
- @}
- outputb :
- @{
- foo.o (.input2)
- foo1.o (.input1)
- @}
- outputc :
- @{
- *(.input1)
- *(.input2)
- @}
- @}
-
-@end example
-@end table
-@end table
-@section Using the Location Counter
-The special linker variable @code{dot}, @samp{.} always contains the
-current output location counter. Since the @code{dot} always refers to
-a location in an output section, it must always appear in an
-expression within a @code{SECTIONS} directive. The @code{dot} symbol
-may appear anywhere that an ordinary symbol may appear in an
-expression, but its assignments have a side effect. Assigning a value
-to the @code{dot} symbol will cause the location counter to be moved.
-This may be used to create holes in the output section. The location
-counter may never be moved backwards.
-@example
- SECTIONS
- @{
- output :
- @{
- file1(.text)
- . = . + 1000;
- file2(.text)
- . += 1000;
- file3(.text)
- . -= 32;
- file4(.text)
- @} = 0x1234;
- @}
-@end example
-In the previous example, @code{file1} is located at the beginning of
-the output section, then there is a 1000 byte gap, filled with 0x1234.
-Then @code{file2} appears, also with a 1000 byte gap following before
-@code{file3} is loaded. Then the first 32 bytes of @code{file4} are
-placed over the last 32 bytes of @code{file3}.
-@section Command Language Syntax
-@section The Entry Point
-The linker chooses the first executable instruction in an output file from a list
-of possibilities, in order:
-@itemize @bullet
-@item
-The value of the symbol provided to the command line with the @code{-e} option, when
-present.
-@item
-The value of the symbol provided in the @code{ENTRY} directive,
-if present.
-@item
-The value of the symbol @code{start}, if present.
-@item
-The value of the symbol @code{_main}, if present.
-@item
-The address of the first byte of the @code{.text} section, if present.
-@item
-The value 0.
-@end itemize
-If the symbol @code{start} is not defined within the set of input
-files to a link, it may be generated by a simple assignment
-expression. eg.
-@example
- start = 0x2020;
-@end example
-@section Section Attributes
-@section Allocation of Sections into Memory
-@section Defining Symbols
-@chapter Examples of operation
-The simplest case is linking standard Unix object files on a standard
-Unix system supported by the linker. To link a file hello.o:
-@example
-$ gld -o output /lib/crt0.o hello.o -lc
-@end example
-This tells gld to produce a file called @code{output} after linking
-the file @code{/lib/crt0.o} with @code{hello.o} and the library
-@code{libc.a} which will come from the standard search directories.
-@chapter Partial Linking
-Specifying the @code{-r} on the command line causes @code{gld} to
-perform a partial link.
-
-
-@chapter BFD
-
-The linker accesses object and archive files using the @code{bfd}
-libraries. These libraries allow the linker to use the same routines
-to operate on object files whatever the object file format.
-
-A different object file format can be supported simply by creating a
-new @code{bfd} back end and adding it to the library.
-
-Formats currently supported:
-@itemize @bullet
-@item
-Sun3 68k a.out
-@item
-IEEE-695 68k Object Module Format
-@item
-Oasys 68k Binary Relocatable Object File Format
-@item
-Sun4 sparc a.out
-@item
-88k bcs coff
-@item
-i960 coff little endian
-@item
-i960 coff big endian
-@item
-i960 b.out little endian
-@item
-i960 b.out big endian
-@end itemize
-
-As with most implementations, @code{bfd} is a compromise between
-several conflicting requirements. The major factor influencing
-@code{bfd} design was efficiency, any time used converting between
-formats is time which would not have been spent had @code{bfd} not
-been involved. This is partly offset by abstraction payback; since
-@code{bfd} simplifies applications and back ends, more time and care
-may be spent optimizing algorithms for a greater speed.
-
-One minor artifact of the @code{bfd} solution which the
-user should be aware of is information lossage.
-There are two places where useful information can be lost using the
-@code{bfd} mechanism; during conversion and during output.
-
-@section How it works
-When an object file is opened, @code{bfd}
-tries to automatically determine the format of the input object file, a
-descriptor is built in memory with pointers to routines to access
-elements of the object file's data structures.
-
-As different information from the the object files is required
-@code{bfd} reads from different sections of the file and processes
-them. For example a very common operation for the linker is processing
-symbol tables. Each @code{bfd} back end provides a routine for
-converting between the object file's representation of symbols and an
-internal canonical format. When the linker asks for the symbol table
-of an object file, it calls through the memory pointer to the relevant
-@code{bfd} back end routine which reads and converts the table into
-the canonical form. Linker then operates upon the common form. When
-the link is finished and the linker writes the symbol table of the
-output file, another @code{bfd} back end routine is called which takes
-the newly created symbol table and converts it into the output format.
-
-@section Information Leaks
-@table @bullet{}
-@item Information lost during output.
-The output formats supported by @code{bfd} do not provide identical
-facilities, and information which may be described in one form
-has no where to go in another format. One example of this would be
-alignment information in @code{b.out}. There is no where in an @code{a.out}
-format file to store alignment information on the contained data, so when
-a file is linked from @code{b.out} and an @code{a.out} image is produced,
-alignment information is lost. (Note that in this case the linker has the
-alignment information internally, so the link is performed correctly).
-
-Another example is COFF section names. COFF files may contain an
-unlimited number of sections, each one with a textual section name. If
-the target of the link is a format which does not have many sections
-(eg @code{a.out}) or has sections without names (eg the Oasys format)
-the link cannot be done simply. It is possible to circumvent this
-problem by describing the desired input section to output section
-mapping with the command language.
-
-@item Information lost during canonicalization.
-The @code{bfd}
-internal canonical form of the external formats is not exhaustive,
-there are structures in input formats for which there is no direct
-representation internally. This means that the @code{bfd} back ends
-cannot maintain all the data richness through the transformation
-between external to internal and back to external formats.
-
-This limitation is only a problem when using the linker to read one
-format and write another. Each @code{bfd} back end is responsible for
-maintaining as much data as possible, and the internal @code{bfd}
-canonical form has structures which are opaque to the @code{bfd} core,
-and exported only to the back ends. When a file is read in one format,
-the canonical form is generated for @code{bfd} and the linker. At the
-same time, the back end saves away any information which may otherwise
-be lost. If the data is then written back to the same back end, the
-back end routine will be able to use the canonical form provided by
-the @code{bfd} core as well as the information it prepared earlier.
-Since there is a great deal of commonality between back ends, this
-mechanism is very useful. There is no information lost when linking
-big endian COFF to little endian COFF, or from a.out to b.out. When a
-mixture of formats are linked, the information is only lost from the
-files with a different format to the destination.
-@end table
-@section Mechanism
-The smallest amount of information is preserved when there
-is a small union between the information provided by the source
-format, that stored by the canonical format and the information needed
-by the destination format. A brief description of the canonical form
-will help the user appreciate what is possible to be maintained
-between conversions.
-
-@table @bullet
-@item file level Information on target machine
-architecture, particular implementation and format type are stored on
-a per file basis. Other information includes a demand pageable bit and
-a write protected bit. Note that information like Unix magic numbers
-is not stored here, only the magic numbers meaning, so a ZMAGIC file
-would have both the demand pageable bit and the write protected text
-bit set.
-
-The byte order of the target is stored on a per file basis, so that
-both big and little endian object files may be linked together at the
-same time.
-@item section level
-Each section in the input file contains the name of the section, the
-original address in the object file, various flags, size and alignment
-information and pointers into other @code{bfd} data structures.
-@item symbol level
-Each symbol contains a pointer to the object file which originally
-defined it, its name, value and various flags bits. When a symbol
-table is read in all symbols are relocated to make them relative to
-the base of the section they were defined in, so each symbol points to
-the containing section. Each symbol also has a varying amount of
-hidden data to contain private data for the back end. Since the symbol
-points to the original file, the symbol private data format is
-accessible. Operations may be done to a list of symbols of wildly
-different formats without problems.
-
-Normal global and simple local symbols are maintained on output, so an
-output file, no matter the format will retain symbols pointing to
-functions, globals, statics and commons. Some symbol information is
-not worth retaining; in @code{a.out} type information is stored in the
-symbol table as long symbol names. This information would be useless
-to most coff debuggers and may be thrown away with appropriate command
-line switches. (Note that gdb does support stabs in coff).
-
-There is one word of type information within the symbol, so if the
-format supports symbol type information within symbols - (eg COFF,
-IEEE, Oasys) and the type is simple enough to fit within one word
-(nearly everything but aggregates) the information will be preserved.
-
-@item relocation level
-Each canonical relocation record contains a pointer to the symbol to
-relocate to, the offset of the data to relocate, the section the data
-is in and a pointer to a relocation type descriptor. Relocation is
-performed effectively by message passing through the relocation type
-descriptor and symbol pointer. It allows relocations to be performed
-on output data using a relocation method only available in one of the
-input formats. For instance, Oasys provides a byte relocation format.
-A relocation record requesting this relocation type would point
-indirectly to a routine to perform this, so the relocation may be
-performed on a byte being written to a COFF file, even though 68k COFF
-has no such relocation type.
-
-@item line numbers
-Line numbers have to be relocated along with the symbol information.
-Each symbol with an associated list of line number records points to
-the first record of the list. The head of a line number list consists
-of a pointer to the symbol, which allows divination of the address of
-the function who's line number is being described. The rest of the
-list is tuples offsets into the section and line indexes. Any format
-which can simply derive this information can pass it without lossage
-between formats (COFF, IEEE and Oasys).
-@end table
-
-
-@bye
-
-
diff --git a/ld/ldgld.c b/ld/ldgld.c
deleted file mode 100755
index e51d073..0000000
--- a/ld/ldgld.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * emulate the original gld
- *
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld_before_parse()
-{
- ldfile_add_library_path("/lib");
- ldfile_add_library_path("/usr/lib");
- ldfile_add_library_path("/usr/local/lib/lib");
-}
-
-
-static void
-gld_after_parse()
-{
-
-}
-
-static void
-gld_after_allocation()
-{
-
-}
-
-static void
-gld_before_allocation()
-{
-
-}
-
-
-static void
-gld_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gld_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD_TARGET;
-}
-
-static void
-gld_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld_script =
-#include "ldgld.x"
-;
-
-static char *gld_script_option_Ur =
-#include "ldgldUr.x"
-;
-
-static char *gld_script_option_r =
-#include "ldgldr.x"
-;
-
-static char *gld_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gld_script_option_r;
- }
-
- return gld_script;
-}
-struct ld_emulation_xfer_struct ld_gld_emulation =
-{
- gld_before_parse,
- gld_syslib,
- gld_hll,
- gld_after_parse,
- gld_after_allocation,
- gld_set_output_arch,
- gld_choose_target,
- gld_before_allocation,
- gld_get_script,
-};
-
diff --git a/ld/ldgld.sc b/ld/ldgld.sc
deleted file mode 100755
index eb87b33..0000000
--- a/ld/ldgld.sc
+++ /dev/null
@@ -1,30 +0,0 @@
-OUTPUT_ARCH(sparc)
-OUTPUT_FORMAT("a.out-sunos-big")
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS ;
- *(.text);
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x2000) :
- {
- *(.data);
- CONSTRUCTORS;
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- __end = .;
- }
-}
-
-
diff --git a/ld/ldgld.script b/ld/ldgld.script
deleted file mode 100755
index 15ff71f..0000000
--- a/ld/ldgld.script
+++ /dev/null
@@ -1,30 +0,0 @@
-OUTPUT_ARCH(sparc)
-OUTPUT_FORMAT("a.out-sunos-big")
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS ;
- *(.text);
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x2000) :
- {
- *(.data);
- CONSTRUCTORS;
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- __end = .;
- }
-}
-
-
diff --git a/ld/ldgld68k.c b/ld/ldgld68k.c
deleted file mode 100755
index f34e79d..0000000
--- a/ld/ldgld68k.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id:#
-*/
-
-/*
- * emulate the original gld running on a 68k system
- *
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld68k_before_parse()
-{
- ldfile_add_library_path("/lib");
- ldfile_add_library_path("/usr/lib");
- ldfile_add_library_path("/usr/local/lib/lib");
- ldfile_output_architecture = bfd_arch_m68k;
-}
-
-
-static void
-gld68k_after_parse()
-{
-
-}
-
-static void
-gld68k_after_allocation()
-{
-
-}
-
-static void
-gld68k_before_allocation()
-{
-
-}
-
-
-static void
-gld68k_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gld68k_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD68K_TARGET;
-}
-
-static void
-gld68k_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld68k_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld68k_script =
-#include "ldgld68k.x"
-;
-
-static char *gld68k_script_option_Ur =
-#include "ldgld68kUr.x"
-;
-static char *gld68k_script_option_r =
-#include "ldgld68kr.x"
-;
-static char *gld68k_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld68k_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gld68k_script_option_r;
- }
-
- return gld68k_script;
-}
-struct ld_emulation_xfer_struct ld_gld68k_emulation =
-{
- gld68k_before_parse,
- gld68k_syslib,
- gld68k_hll,
- gld68k_after_parse,
- gld68k_after_allocation,
- gld68k_set_output_arch,
- gld68k_choose_target,
- gld68k_before_allocation,
- gld68k_get_script,
-};
-
diff --git a/ld/ldgld68k.sc b/ld/ldgld68k.sc
deleted file mode 100755
index 9d7df2d..0000000
--- a/ld/ldgld68k.sc
+++ /dev/null
@@ -1,30 +0,0 @@
-OUTPUT_FORMAT("a.out-sunos-big")
-OUTPUT_ARCH(m68k)
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x20000) :
- {
- *(.data)
- CONSTRUCTORS
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- __end = .;
- }
-}
-
diff --git a/ld/ldgld68k.script b/ld/ldgld68k.script
deleted file mode 100755
index be91d91..0000000
--- a/ld/ldgld68k.script
+++ /dev/null
@@ -1,28 +0,0 @@
-OUTPUT_FORMAT("a.out-sunos-big")
-OUTPUT_ARCH(m68k)
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0x2020 BLOCK(0x2000):
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN( 0x2000);
- }
- .data ALIGN(0x20000) :
- {
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- }
-}
-
diff --git a/ld/ldgld68kUr.sc b/ld/ldgld68kUr.sc
deleted file mode 100755
index aa89c6a..0000000
--- a/ld/ldgld68kUr.sc
+++ /dev/null
@@ -1,21 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgld68kUr.script b/ld/ldgld68kUr.script
deleted file mode 100755
index aa89c6a..0000000
--- a/ld/ldgld68kUr.script
+++ /dev/null
@@ -1,21 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgld68kr.sc b/ld/ldgld68kr.sc
deleted file mode 100755
index 8cbc9dc..0000000
--- a/ld/ldgld68kr.sc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgld68kr.script b/ld/ldgld68kr.script
deleted file mode 100755
index 8cbc9dc..0000000
--- a/ld/ldgld68kr.script
+++ /dev/null
@@ -1,22 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgld960.c b/ld/ldgld960.c
deleted file mode 100755
index f3a3b0c..0000000
--- a/ld/ldgld960.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- $Id$
-*/
-
-/*
- * emulate the Intels port of gld
- */
-
-
-#include "bfd.h"
-#include "sysdep.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-
-/* IMPORTS */
-extern char *output_filename;
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-#ifdef GNU960
-
-static void
-gld960_before_parse()
-{
- static char *env_variables[] = { "G960LIB", "G960BASE", 0 };
- char **p;
- char *env ;
-
- for ( p = env_variables; *p; p++ ){
- env = (char *) getenv(*p);
- if (env) {
- ldfile_add_library_path(concat(env,"/lib/libbout",""));
- }
- }
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-#else /* not GNU960 */
-
-static void gld960_before_parse()
-{
- char *env ;
- env = getenv("G960LIB");
- if (env) {
- ldfile_add_library_path(env);
- }
- env = getenv("G960BASE");
- if (env) {
- ldfile_add_library_path(concat(env,"/lib",""));
- }
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-#endif /* GNU960 */
-
-
-static void
-gld960_after_parse()
-{
-
-}
-
-static void
-gld960_after_allocation()
-{
-
-}
-
-static void
-gld960_before_allocation()
-{
-
-}
-
-
-static void
-gld960_set_output_arch()
-{
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, bfd_mach_i960_core);
-}
-
-static char *
-gld960_choose_target()
-{
-#ifdef GNU960
-
- output_filename = "b.out";
- return bfd_make_targ_name(BFD_BOUT_FORMAT, 0);
-
-#else
-
- char *from_outside = getenv(TARGET_ENVIRON);
- output_filename = "b.out";
-
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD960_TARGET;
-
-#endif
-}
-
-static void
-gld960_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld960_hll()
-{
- info("%S HLL ignored\n");
-}
-
-
-static char *script =
-#include "ldgld960.x"
-;
-
-
-static char *
-gld960_get_script()
-{
-return script;
-}
-
-struct ld_emulation_xfer_struct ld_gld960_emulation =
-{
- gld960_before_parse,
- gld960_syslib,
- gld960_hll,
- gld960_after_parse,
- gld960_after_allocation,
- gld960_set_output_arch,
- gld960_choose_target,
- gld960_before_allocation,
- gld960_get_script,
-};
diff --git a/ld/ldgld960.sc b/ld/ldgld960.sc
deleted file mode 100755
index 449d3fa..0000000
--- a/ld/ldgld960.sc
+++ /dev/null
@@ -1,23 +0,0 @@
-SECTIONS
-{
- .text :
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = .;
- }
-
- .data SIZEOF(.text) + ADDR(.text):
- {
-
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = .;
- *(.bss)
- *(COMMON)
- _end = . ;
- }
-}
diff --git a/ld/ldgld960.script b/ld/ldgld960.script
deleted file mode 100755
index 1c40a73..0000000
--- a/ld/ldgld960.script
+++ /dev/null
@@ -1,23 +0,0 @@
-SECTIONS
-{
- .text :
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = .;
- }
-
- .data SIZEOF(.text) + ADDR(.text):
- {
-
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = .;
- *(.bss)
- [COMMON]
- _end = . ;
- }
-}
diff --git a/ld/ldgldUr.sc b/ld/ldgldUr.sc
deleted file mode 100755
index e7d9b44..0000000
--- a/ld/ldgldUr.sc
+++ /dev/null
@@ -1,24 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- CONSTRUCTORS
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgldUr.script b/ld/ldgldUr.script
deleted file mode 100755
index e7d9b44..0000000
--- a/ld/ldgldUr.script
+++ /dev/null
@@ -1,24 +0,0 @@
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- CONSTRUCTORS
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldglda29k.c b/ld/ldglda29k.c
deleted file mode 100755
index 45662f0..0000000
--- a/ld/ldglda29k.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id:#
-*/
-
-/*
- * emulate the original gld running on an a29k system
- *
- * Written by David Wood @ New York University
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld29k_before_parse()
-{
-#ifndef NOTDEF /* Cross developing for now */
- ldfile_add_library_path("/lib");
- ldfile_add_library_path("/usr/lib");
- ldfile_add_library_path("/usr/local/lib");
-#endif
- ldfile_output_architecture = bfd_arch_a29k;
-}
-
-
-static void
-gld29k_after_parse()
-{
-
-}
-
-static void
-gld29k_after_allocation()
-{
-
-}
-
-static void
-gld29k_before_allocation()
-{
-
-}
-
-static void
-gld29k_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gld29k_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD29K_TARGET;
-}
-
-static void
-gld29k_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld29k_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld29k_script =
-#include "ldglda29k.x"
-;
-
-static char *gld29k_script_option_Ur =
-#include "ldglda29kUr.x"
-;
-static char *gld29k_script_option_r =
-#include "ldglda29kr.x"
-;
-static char *gld29k_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld29k_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gld29k_script_option_r;
- }
-
- return gld29k_script;
-}
-struct ld_emulation_xfer_struct ld_gld29k_emulation =
-{
- gld29k_before_parse,
- gld29k_syslib,
- gld29k_hll,
- gld29k_after_parse,
- gld29k_after_allocation,
- gld29k_set_output_arch,
- gld29k_choose_target,
- gld29k_before_allocation,
- gld29k_get_script,
-};
-
diff --git a/ld/ldglda29k.sc b/ld/ldglda29k.sc
deleted file mode 100755
index 26e09cf4..0000000
--- a/ld/ldglda29k.sc
+++ /dev/null
@@ -1,38 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-INPUT(/lab3/u3/sym1/tools/usr/lib/segments.o) /* Has .rstack/.mstack */
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .talias : { } > talias
- .data : {
- *(.data)
- __edata = .;
- } > data
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- __end = ALIGN(0x8);
- }
- .mstack : { } > mstack
- .rstack : { } > rstack
-}
-
diff --git a/ld/ldglda29k.script b/ld/ldglda29k.script
deleted file mode 100755
index 6d7d19a..0000000
--- a/ld/ldglda29k.script
+++ /dev/null
@@ -1,38 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-INPUT(/lab3/u3/sym1/tools/usr/lib/segments.o) /* Has .rstack/.mstack */
-SEARCH_DIR(/lab3/u3/sym1/tools/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .talias : { } > talias
- .data : {
- *(.data)
- __edata = .;
- } > data
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- __end = ALIGN(0x8);
- }
- .mstack : { } > mstack
- .rstack : { } > rstack
-}
-
diff --git a/ld/ldglda29kUr.sc b/ld/ldglda29kUr.sc
deleted file mode 100755
index c8e8e2c..0000000
--- a/ld/ldglda29kUr.sc
+++ /dev/null
@@ -1,32 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-SEARCH_DIR(/lab3/u3/sym1/tools/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text 0 : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .data SIZEOF(.shbss) + ADDR(.shbss): {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldglda29kUr.script b/ld/ldglda29kUr.script
deleted file mode 100755
index c8e8e2c..0000000
--- a/ld/ldglda29kUr.script
+++ /dev/null
@@ -1,32 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-SEARCH_DIR(/lab3/u3/sym1/tools/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text 0 : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .data SIZEOF(.shbss) + ADDR(.shbss): {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldglda29kr.sc b/ld/ldglda29kr.sc
deleted file mode 100755
index c8e8e2c..0000000
--- a/ld/ldglda29kr.sc
+++ /dev/null
@@ -1,32 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-SEARCH_DIR(/lab3/u3/sym1/tools/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text 0 : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .data SIZEOF(.shbss) + ADDR(.shbss): {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldglda29kr.script b/ld/ldglda29kr.script
deleted file mode 100755
index c8e8e2c..0000000
--- a/ld/ldglda29kr.script
+++ /dev/null
@@ -1,32 +0,0 @@
-OUTPUT_FORMAT("coff-a29k-big")
-SEARCH_DIR(/lab3/u3/sym1/tools/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/lib)
-SEARCH_DIR(/lab3/u3/sym1/tools/usr/local/lib)
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
-SECTIONS
-{
- .text 0 : {
- *(.text)
- __etext = .;
- *(.lit)
- *(.shdata)
- } > text
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .data SIZEOF(.shbss) + ADDR(.shbss): {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldgldi386v.c b/ld/ldgldi386v.c
deleted file mode 100755
index 6049bf8..0000000
--- a/ld/ldgldi386v.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
-*/
-
-/*
- * emulate the original gld running on an i386v system
- *
- * Written by David Wood @ New York University
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldi386v_before_parse()
-{
-#ifndef NOTDEF /* Cross developing for now */
- ldfile_add_library_path("/usr/local/lib/386gcc-lib/lib");
- ldfile_add_library_path("/usr/local/lib/386gcc-lib/usr/lib");
- ldfile_add_library_path("/usr/local/lib/386gcc-lib/usr/local/lib");
-#endif
- ldfile_output_architecture = bfd_arch_i386;
-}
-
-
-static void
-gldi386v_after_parse()
-{
-
-}
-
-static void
-gldi386v_after_allocation()
-{
-
-}
-
-static void
-gldi386v_before_allocation()
-{
-
-}
-
-static void
-gldi386v_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gldi386v_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDi386v_TARGET;
-}
-
-static void
-gldi386v_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldi386v_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldi386v_script =
-#include "ldgldi386v.x"
-;
-
-static char *gldi386v_script_option_Ur =
-#include "ldgldi386vUr.x"
-;
-static char *gldi386v_script_option_r =
-#include "ldgldi386vr.x"
-;
-static char *gldi386v_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldi386v_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gldi386v_script_option_r;
- }
-
- return gldi386v_script;
-}
-struct ld_emulation_xfer_struct ld_gldi386v_emulation =
-{
- gldi386v_before_parse,
- gldi386v_syslib,
- gldi386v_hll,
- gldi386v_after_parse,
- gldi386v_after_allocation,
- gldi386v_set_output_arch,
- gldi386v_choose_target,
- gldi386v_before_allocation,
- gldi386v_get_script,
-};
-
diff --git a/ld/ldgldi386v.sc b/ld/ldgldi386v.sc
deleted file mode 100755
index 9805f39..0000000
--- a/ld/ldgldi386v.sc
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("i386coff")
-
-ENTRY(_start)
-SECTIONS
-{
- .text 0x000000d0 : {
- *(.init)
- *(.text)
- *(.fini)
- etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) & 0x0fff) + ALIGN(0x00400000) : {
- *(.data)
- edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- end = ALIGN(0x8);
- }
- .comment : { *(.comment) }
-}
-
diff --git a/ld/ldgldi386vUr.sc b/ld/ldgldi386vUr.sc
deleted file mode 100755
index 9805f39..0000000
--- a/ld/ldgldi386vUr.sc
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("i386coff")
-
-ENTRY(_start)
-SECTIONS
-{
- .text 0x000000d0 : {
- *(.init)
- *(.text)
- *(.fini)
- etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) & 0x0fff) + ALIGN(0x00400000) : {
- *(.data)
- edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- end = ALIGN(0x8);
- }
- .comment : { *(.comment) }
-}
-
diff --git a/ld/ldgldi386vr.sc b/ld/ldgldi386vr.sc
deleted file mode 100755
index 9805f39..0000000
--- a/ld/ldgldi386vr.sc
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("i386coff")
-
-ENTRY(_start)
-SECTIONS
-{
- .text 0x000000d0 : {
- *(.init)
- *(.text)
- *(.fini)
- etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) & 0x0fff) + ALIGN(0x00400000) : {
- *(.data)
- edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- end = ALIGN(0x8);
- }
- .comment : { *(.comment) }
-}
-
diff --git a/ld/ldgldm68kv.c b/ld/ldgldm68kv.c
deleted file mode 100755
index 1f83d98..0000000
--- a/ld/ldgldm68kv.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
-*/
-
-/*
- * emulate the original gld running on an m68kv system
- *
- * Written by David Wood @ New York University
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldm68kv_before_parse()
-{
-#ifndef NOTDEF /* Cross developing for now */
- ldfile_add_library_path("/usr/triton/lib/68kgcc-lib/lib");
- ldfile_add_library_path("/usr/triton/lib/68kgcc-lib/usr/lib");
- ldfile_add_library_path("/usr/triton/lib/68kgcc-lib/usr/local/lib");
-#endif
- ldfile_output_architecture = bfd_arch_m68k;
-}
-
-
-static void
-gldm68kv_after_parse()
-{
-
-}
-
-static void
-gldm68kv_after_allocation()
-{
-
-}
-
-static void
-gldm68kv_before_allocation()
-{
-
-}
-
-static void
-gldm68kv_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-gldm68kv_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDm68kv_TARGET;
-}
-
-static void
-gldm68kv_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldm68kv_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldm68kv_script =
-#include "ldgldm68kv.x"
-;
-
-static char *gldm68kv_script_option_Ur =
-#include "ldgldm68kvUr.x"
-;
-static char *gldm68kv_script_option_r =
-#include "ldgldm68kvr.x"
-;
-static char *gldm68kv_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldm68kv_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gldm68kv_script_option_r;
- }
-
- return gldm68kv_script;
-}
-struct ld_emulation_xfer_struct ld_gldm68kv_emulation =
-{
- gldm68kv_before_parse,
- gldm68kv_syslib,
- gldm68kv_hll,
- gldm68kv_after_parse,
- gldm68kv_after_allocation,
- gldm68kv_set_output_arch,
- gldm68kv_choose_target,
- gldm68kv_before_allocation,
- gldm68kv_get_script,
-};
-
diff --git a/ld/ldgldm68kv.sc b/ld/ldgldm68kv.sc
deleted file mode 100755
index 2e052cd..0000000
--- a/ld/ldgldm68kv.sc
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("m68kvcoff")
-
-ENTRY(__startup)
-SECTIONS
-{
- .text 0x001000a8 : {
- *(.init)
- *(.text)
- *(.fini)
- _etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) % 0x2000) + ALIGN(0x00200000) : {
- *(.data)
- _edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- _end = ALIGN(0x8);
- }
-}
diff --git a/ld/ldgldm68kvUr.sc b/ld/ldgldm68kvUr.sc
deleted file mode 100755
index 2e052cd..0000000
--- a/ld/ldgldm68kvUr.sc
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("m68kvcoff")
-
-ENTRY(__startup)
-SECTIONS
-{
- .text 0x001000a8 : {
- *(.init)
- *(.text)
- *(.fini)
- _etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) % 0x2000) + ALIGN(0x00200000) : {
- *(.data)
- _edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- _end = ALIGN(0x8);
- }
-}
diff --git a/ld/ldgldm68kvr.sc b/ld/ldgldm68kvr.sc
deleted file mode 100755
index 2e052cd..0000000
--- a/ld/ldgldm68kvr.sc
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$
-*/
-
-OUTPUT_FORMAT("m68kvcoff")
-
-ENTRY(__startup)
-SECTIONS
-{
- .text 0x001000a8 : {
- *(.init)
- *(.text)
- *(.fini)
- _etext = .;
- }
- .data ((ADDR(.text) + SIZEOF(.text)) % 0x2000) + ALIGN(0x00200000) : {
- *(.data)
- _edata = .;
- }
- .bss (SIZEOF(.data) + ADDR(.data)) : {
- *(.bss)
- [COMMON]
- _end = ALIGN(0x8);
- }
-}
diff --git a/ld/ldgldm88kbcs.c b/ld/ldgldm88kbcs.c
deleted file mode 100755
index f3e9d96..0000000
--- a/ld/ldgldm88kbcs.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldm88kbcs_before_parse()
-{
- extern char lprefix;
- lprefix = '@';
-}
-
-
-static void
-gldm88kbcs_after_parse()
-{
-
-}
-
-static void
-gldm88kbcs_after_allocation()
-{
-
-}
-
-static void
-gldm88kbcs_before_allocation()
-{
-
-}
-
-
-static void
-gldm88kbcs_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gldm88kbcs_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDM88KBCS_TARGET;
-}
-
-static void
-gldm88kbcs_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldm88kbcs_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldm88kbcs_script =
-#include "ldgldm88kbcs.x"
-;
-
-static char *gldm88kbcs_script_option_Ur =
-#include "ldgldm88kbcsUr.x"
-;
-
-static char *gldm88kbcs_script_option_r =
-#include "ldgldm88kbcsr.x"
-;
-
-static char *gldm88kbcs_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldm88kbcs_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gldm88kbcs_script_option_r;
- }
-
- return gldm88kbcs_script;
-}
-struct ld_emulation_xfer_struct ld_gldm88kbcs_emulation =
-{
- gldm88kbcs_before_parse,
- gldm88kbcs_syslib,
- gldm88kbcs_hll,
- gldm88kbcs_after_parse,
- gldm88kbcs_after_allocation,
- gldm88kbcs_set_output_arch,
- gldm88kbcs_choose_target,
- gldm88kbcs_before_allocation,
- gldm88kbcs_get_script,
-};
-
diff --git a/ld/ldgldm88kbcs.sc b/ld/ldgldm88kbcs.sc
deleted file mode 100755
index c4cb37e..0000000
--- a/ld/ldgldm88kbcs.sc
+++ /dev/null
@@ -1,40 +0,0 @@
-TARGET(m88kbcs)
-OUTPUT_FORMAT(m88kbcs)
-OUTPUT_ARCH(m88k)
-ENTRY(__start)
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0x10000 + SIZEOF_HEADERS :
- {
- __.text.start = .;
- __.init.start = .;
- LONG(0xf400c001)
- __.init.end = .;
- *(.text)
- __.tdesc_start = .;
- *(.tdesc)
- __.text_end = .;
- __.initp.start = .;
- __.initp.end =.;
-
- _etext =.;
- }
- .data SIZEOF(.text) + ADDR(.text) + 0x400000:
- {
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- ___end = .;
- }
-}
-
-
-
diff --git a/ld/ldgldm88kbcs.script b/ld/ldgldm88kbcs.script
deleted file mode 100755
index c4cb37e..0000000
--- a/ld/ldgldm88kbcs.script
+++ /dev/null
@@ -1,40 +0,0 @@
-TARGET(m88kbcs)
-OUTPUT_FORMAT(m88kbcs)
-OUTPUT_ARCH(m88k)
-ENTRY(__start)
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0x10000 + SIZEOF_HEADERS :
- {
- __.text.start = .;
- __.init.start = .;
- LONG(0xf400c001)
- __.init.end = .;
- *(.text)
- __.tdesc_start = .;
- *(.tdesc)
- __.text_end = .;
- __.initp.start = .;
- __.initp.end =.;
-
- _etext =.;
- }
- .data SIZEOF(.text) + ADDR(.text) + 0x400000:
- {
- *(.data)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- _end = .;
- ___end = .;
- }
-}
-
-
-
diff --git a/ld/ldgldm88kbcsUr.sc b/ld/ldgldm88kbcsUr.sc
deleted file mode 100755
index 8d3f12b..0000000
--- a/ld/ldgldm88kbcsUr.sc
+++ /dev/null
@@ -1,31 +0,0 @@
-SCRIPT
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((___end_list__ - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-ENDSCRIPT
diff --git a/ld/ldgldm88kbcsUr.script b/ld/ldgldm88kbcsUr.script
deleted file mode 100755
index 8d3f12b..0000000
--- a/ld/ldgldm88kbcsUr.script
+++ /dev/null
@@ -1,31 +0,0 @@
-SCRIPT
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((___end_list__ - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-ENDSCRIPT
diff --git a/ld/ldgldm88kbcsr.sc b/ld/ldgldm88kbcsr.sc
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ldgldm88kbcsr.sc
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ldgldm88kbcsr.script b/ld/ldgldm88kbcsr.script
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ldgldm88kbcsr.script
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ldgldr.sc b/ld/ldgldr.sc
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ldgldr.sc
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ldgldr.script b/ld/ldgldr.script
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ldgldr.script
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ldlnk960.c b/ld/ldlnk960.c
deleted file mode 100755
index 22d04fc..0000000
--- a/ld/ldlnk960.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* intel coff loader emulation specific stuff
- Copyright (C) 1991 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- $Id$
-*/
-
-#include "bfd.h"
-#include "sysdep.h"
-
-/*#include "archures.h"*/
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldmisc.h"
-#include "ldlang.h"
-#include "ldfile.h"
-
-extern boolean lang_float_flag;
-extern bfd *output_bfd;
-
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-
-typedef struct lib_list {
- char *name;
- struct lib_list *next;
-} lib_list_type;
-
-static lib_list_type *hll_list;
-static lib_list_type **hll_list_tail = &hll_list;
-
-static lib_list_type *syslib_list;
-static lib_list_type **syslib_list_tail = &syslib_list;
-
-
-static void
-append(list, name)
-lib_list_type ***list;
-char *name;
-{
- lib_list_type *element =
- (lib_list_type *)(ldmalloc(sizeof(lib_list_type)));
-
- element->name = name;
- element->next = (lib_list_type *)NULL;
- **list = element;
- *list = &element->next;
-
-}
-
-static boolean had_hll = false;
-static boolean had_hll_name = false;
-static void
-lnk960_hll(name)
-char *name;
-{
- had_hll = true;
- if (name != (char *)NULL) {
- had_hll_name = true;
- append(&hll_list_tail, name);
- }
-}
-
-static void
-lnk960_syslib(name)
-char *name;
-{
- append(&syslib_list_tail,name);
-}
-
-
-
-#ifdef GNU960
-
-static void
-lnk960_before_parse()
-{
- static char *env_variables[] = { "G960LIB", "G960BASE", 0 };
- char **p;
- char *env ;
-
- for ( p = env_variables; *p; p++ ){
- env = (char *) getenv(*p);
- if (env) {
- ldfile_add_library_path(concat(env,"/lib/libcoff",""));
- }
- }
-
- env= (char *) getenv("I960BASE");
- if ( env ) {
- ldfile_add_library_path(concat(env,"/lib",""));
- }
-
- ldfile_output_architecture = bfd_arch_i960;
- ldfile_output_machine = bfd_mach_i960_core;
-}
-
-#else /* not GNU960 */
-
-static void
-lnk960_before_parse()
-{
- char *name = getenv("I960BASE");
-
- if (name == (char *)NULL) {
- name = getenv("G960BASE");
- if (name == (char *)NULL) {
- einfo("%P%F I960BASE and G960BASE not set\n");
- }
- }
-
-
- ldfile_add_library_path(concat(name,"/lib",""));
- ldfile_output_architecture = bfd_arch_i960;
- ldfile_output_machine = bfd_mach_i960_core;
-}
-
-#endif /* GNU960 */
-
-
-static void
-add_on(list, search)
-lib_list_type *list;
-lang_input_file_enum_type search;
-{
- while (list) {
- lang_add_input_file(list->name,
- search,
- (char *)NULL);
- list = list->next;
- }
-}
-static void lnk960_after_parse()
-{
-
- /* If there has been no arch, default to -KB */
- if (ldfile_output_machine_name[0] ==0) {
- ldfile_add_arch("KB");
- }
-
- /* if there has been no hll list then add our own */
-
- if(had_hll && !had_hll_name) {
- append(&hll_list_tail,"cg");
- if (ldfile_output_machine == bfd_mach_i960_ka_sa ||
- ldfile_output_machine == bfd_mach_i960_ca) {
- {
- append(&hll_list_tail,"fpg");
- }
- }
- }
-
- add_on(hll_list, lang_input_file_is_l_enum);
- add_on(syslib_list, lang_input_file_is_search_file_enum);
-}
-
-static void
-lnk960_before_allocation()
-{
-}
-static void
-lnk960_after_allocation()
-{
- extern ld_config_type config;
- if (config.relocateable_output == false) {
- lang_abs_symbol_at_end_of(".text","_etext");
- lang_abs_symbol_at_end_of(".data","_edata");
- lang_abs_symbol_at_beginning_of(".bss","_bss_start");
- lang_abs_symbol_at_end_of(".bss","_end");
- }
-}
-
-
-static struct
- {
- unsigned long number;
- char *name;
- }
-machine_table[] = {
- bfd_mach_i960_core ,"CORE",
- bfd_mach_i960_kb_sb ,"KB",
- bfd_mach_i960_kb_sb ,"SB",
- bfd_mach_i960_mc ,"MC",
- bfd_mach_i960_xa ,"XA",
- bfd_mach_i960_ca ,"CA",
- bfd_mach_i960_ka_sa ,"KA",
- bfd_mach_i960_ka_sa ,"SA",
-
- bfd_mach_i960_core ,"core",
- bfd_mach_i960_kb_sb ,"kb",
- bfd_mach_i960_kb_sb ,"sb",
- bfd_mach_i960_mc ,"mc",
- bfd_mach_i960_xa ,"xa",
- bfd_mach_i960_ca ,"ca",
- bfd_mach_i960_ka_sa ,"ka",
- bfd_mach_i960_ka_sa ,"sa",
- 0,(char *)NULL
-};
-
-static void
-lnk960_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned int i;
- ldfile_output_machine = bfd_mach_i960_core;
- for (i= 0; machine_table[i].name != (char*)NULL; i++) {
- if (strcmp(ldfile_output_machine_name,machine_table[i].name)==0) {
- ldfile_output_machine = machine_table[i].number;
- break;
- }
- }
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-lnk960_choose_target()
-{
-#ifdef GNU960
-
- return bfd_make_targ_name(BFD_COFF_FORMAT, 0);
-
-#else
-
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
-#ifdef LNK960_LITTLE
- return LNK960_TARGET_LITTLE
-#else
- return LNK960_TARGET;
-#endif
-#endif
-
-}
-
-/* The default script if none is offered */
-static char *lnk960_script =
-#include "ldlnk960.x"
-;
-
-
-static char *lnk960_script_relocateable =
-#include "ldlnk960.xr"
-;
-
-static char *lnk960_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output) {
- return lnk960_script_relocateable;
- }
- return lnk960_script;
-}
-struct ld_emulation_xfer_struct ld_lnk960_emulation =
-{
- lnk960_before_parse,
- lnk960_syslib,
- lnk960_hll,
- lnk960_after_parse,
- lnk960_after_allocation,
- lnk960_set_output_arch,
- lnk960_choose_target,
- lnk960_before_allocation,
- lnk960_get_script,
-};
diff --git a/ld/ldlnk960.sc b/ld/ldlnk960.sc
deleted file mode 100755
index 409d1b9..0000000
--- a/ld/ldlnk960.sc
+++ /dev/null
@@ -1,21 +0,0 @@
-
-SECTIONS
-{
- .text :
- {
- *(.text)
- }
-_etext = . ;
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
-_edata = .;
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = . ;
- *(.bss)
- *(COMMON)
- }
-_end = . ;
-}
diff --git a/ld/ldlnk960.script b/ld/ldlnk960.script
deleted file mode 100755
index f498412..0000000
--- a/ld/ldlnk960.script
+++ /dev/null
@@ -1,21 +0,0 @@
-
-SECTIONS
-{
- .text :
- {
- *(.text)
- }
-_etext = . ;
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
-_edata = .;
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- _bss_start = . ;
- *(.bss)
- [COMMON]
- }
-_end = . ;
-}
diff --git a/ld/ldlnk960r.sc b/ld/ldlnk960r.sc
deleted file mode 100755
index daf59bb..0000000
--- a/ld/ldlnk960r.sc
+++ /dev/null
@@ -1,17 +0,0 @@
-SECTIONS
-{
- .text 0:
- {
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldlnk960r.script b/ld/ldlnk960r.script
deleted file mode 100755
index daf59bb..0000000
--- a/ld/ldlnk960r.script
+++ /dev/null
@@ -1,17 +0,0 @@
-SECTIONS
-{
- .text 0:
- {
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text):
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-
diff --git a/ld/ldm88k.c b/ld/ldm88k.c
deleted file mode 100755
index c354ccb..0000000
--- a/ld/ldm88k.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GLD, the Gnu Linker.
-
-GLD 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 1, or (at your option)
-any later version.
-
-GLD 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 GLD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- * $Id$
- *
-*/
-
-/*
- * Written by Steve Chamberlain steve@cygnus.com
- */
-
-
-#include "sysdep.h"
-#include "bfd.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gldm88kbcs_before_parse()
-{
- extern char lprefix;
- lprefix = '@';
-}
-
-
-static void
-gldm88kbcs_after_parse()
-{
-
-}
-
-static void
-gldm88kbcs_after_allocation()
-{
-
-}
-
-static void
-gldm88kbcs_before_allocation()
-{
-
-}
-
-
-static void
-gldm88kbcs_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gldm88kbcs_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLDM88KBCS_TARGET;
-}
-
-static void
-gldm88kbcs_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gldm88kbcs_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gldm88kbcs_script =
-#include "ldm88k.x"
-;
-
-static char *gldm88kbcs_script_option_Ur =
-#include "ldm88kUr.x"
-;
-
-static char *gldm88kbcs_script_option_r =
-#include "ldm88kr.x"
-;
-
-static char *gldm88kbcs_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gldm88kbcs_script_option_Ur;
- }
- if (config.relocateable_output) {
- return gldm88kbcs_script_option_r;
- }
-
- return gldm88kbcs_script;
-}
-struct ld_emulation_xfer_struct ld_gldm88kbcs_emulation =
-{
- gldm88kbcs_before_parse,
- gldm88kbcs_syslib,
- gldm88kbcs_hll,
- gldm88kbcs_after_parse,
- gldm88kbcs_after_allocation,
- gldm88kbcs_set_output_arch,
- gldm88kbcs_choose_target,
- gldm88kbcs_before_allocation,
- gldm88kbcs_get_script,
-};
-
diff --git a/ld/ldm88k.sc b/ld/ldm88k.sc
deleted file mode 100755
index 1e0203f..0000000
--- a/ld/ldm88k.sc
+++ /dev/null
@@ -1,52 +0,0 @@
-TARGET(m88kbcs)
-OUTPUT_FORMAT(m88kbcs)
-OUTPUT_ARCH(m88k)
-ENTRY(__start)
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0x10000 + SIZEOF_HEADERS :
- {
- CREATE_OBJECT_SYMBOLS
- /* If relocating */
- __.text.start = .;
- __.init.start = .;
- LONG(0xf400c001)
- __.init.end = .;
- /* End if relocating */
- *(.text)
- /* If relocating */
- __.tdesc_start = .;
- *(.tdesc)
- __.text_end = .;
- __.initp.start = .;
- __.initp.end =.;
-
- _etext =.;
- /* End if relocating */
- }
- .data SIZEOF(.text) + ADDR(.text) + 0x400000:
- {
- *(.data)
- __CTOR_LIST__ = .;
- *(CTOR)
- LONG(0);
- __DTOR_LIST__ = . ;
- *(DTOR)
- LONG(0);
- *(.comment)
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- ___end = .;
- }
-}
-
-
-
diff --git a/ld/ldm88kUr.sc b/ld/ldm88kUr.sc
deleted file mode 100755
index 8d3f12b..0000000
--- a/ld/ldm88kUr.sc
+++ /dev/null
@@ -1,31 +0,0 @@
-SCRIPT
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- ___DTOR_LIST__ = . ;
- LONG((___CTOR_LIST__ - .) / 4 -2)
- *(___DTOR_LIST__)
- LONG(0)
- ___CTOR_LIST__ = . ;
- LONG((___end_list__ - .) / 4 -2)
- *(___CTOR_LIST__)
- LONG(0)
- ___end_list__ = . ;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
-ENDSCRIPT
diff --git a/ld/ldm88kr.sc b/ld/ldm88kr.sc
deleted file mode 100755
index a3b39fe..0000000
--- a/ld/ldm88kr.sc
+++ /dev/null
@@ -1,20 +0,0 @@
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- }
- .data SIZEOF(.text) + ADDR(.text) :
- {
- *(.data)
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- [COMMON]
- }
-}
diff --git a/ld/ldtemplate b/ld/ldtemplate
deleted file mode 100755
index 961fbc0..0000000
--- a/ld/ldtemplate
+++ /dev/null
@@ -1,159 +0,0 @@
-/* NOTE: If there are angle brackets here: <TARGET> then this is a
- * template file (ldtemplate), intended for processing by sed.
- * Otherwise, this file has already been processed by sed,
- * and customized for a particular emulation target.
- * In that DO NOT EDIT the file; edit ldtemplate instead.
- */
-
-/* emulate the original gld for the given <TARGET>
- Copyright (C) 1991 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
-This file is part of GLD, the Gnu Linker.
-
-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. */
-
-/*
- * $Id:#
- */
-
-#define TARGET_IS_<TARGET>
-
-
-#include "bfd.h"
-#include "sysdep.h"
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void gld<target>_before_parse()
-{
-#ifdef TARGET_IS_M88KBCS
- extern char lprefix;
- lprefix = '@';
-#else
-#ifndef TARGET_ /* I.e., if not generic */
- ldfile_output_architecture = bfd_arch_<arch>;
-#endif
-#endif
-}
-
-
-static void
-gld<target>_after_parse()
-{
-
-}
-
-static void
-gld<target>_after_allocation()
-{
-
-}
-
-static void
-gld<target>_before_allocation()
-{
-
-}
-
-
-static void
-gld<target>_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- bfd_set_arch_mach(output_bfd,
- ldfile_output_architecture, ldfile_output_machine);
-}
-
-static char *
-gld<target>_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return GLD<TARGET>_TARGET;
-}
-
-static void
-gld<target>_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-gld<target>_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-static char *gld<target>_script =
-#include "<ldtarget>.x"
-;
-static char *gld<target>_script_option_Ur =
-#include "<ldtarget>.xu"
-;
-static char *gld<target>_script_option_r =
-#include "<ldtarget>.xr"
-;
-static char *gld<target>_script_option_n = /* Used with -n flag. */
-#include "<ldtarget>.xn"
-;
-static char *gld<target>_script_option_N = /* Used with -N flag. */
-#include "<ldtarget>.xN"
-;
-
-static char *gld<target>_get_script()
-{
- extern ld_config_type config;
- if (config.relocateable_output == true &&
- config.build_constructors == true) {
- return gld<target>_script_option_Ur;
- }
- if (config.relocateable_output == true) {
- return gld<target>_script_option_r;
- }
- if (!config.text_read_only)
- return gld<target>_script_option_N;
- if (!config.magic_demand_paged)
- return gld<target>_script_option_n;
- return gld<target>_script;
-}
-struct ld_emulation_xfer_struct ld_gld<target>_emulation =
-{
- gld<target>_before_parse,
- gld<target>_syslib,
- gld<target>_hll,
- gld<target>_after_parse,
- gld<target>_after_allocation,
- gld<target>_set_output_arch,
- gld<target>_choose_target,
- gld<target>_before_allocation,
- gld<target>_get_script,
-};
diff --git a/ld/ldvanilla.c b/ld/ldvanilla.c
deleted file mode 100755
index 3bd51e6..0000000
--- a/ld/ldvanilla.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* A vanilla emulation with no defaults
- Copyright (C) 1991 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
-This file is part of GLD, the Gnu Linker.
-
-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. */
-
-/*
- * $Id$
- */
-
-#include "bfd.h"
-#include "sysdep.h"
-
-
-#include "ld.h"
-#include "config.h"
-#include "ldemul.h"
-#include "ldfile.h"
-#include "ldmisc.h"
-
-extern boolean lang_float_flag;
-
-
-extern enum bfd_architecture ldfile_output_architecture;
-extern unsigned long ldfile_output_machine;
-extern char *ldfile_output_machine_name;
-
-extern bfd *output_bfd;
-
-
-
-static void vanilla_before_parse()
-{
-}
-
-
-static void
-vanilla_after_parse()
-{
-
-}
-
-static void
-vanilla_after_allocation()
-{
-
-}
-
-static void
-vanilla_before_allocation()
-{
-
-}
-
-
-static void
-vanilla_set_output_arch()
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach(output_bfd, ldfile_output_architecture, machine);
-}
-
-static char *
-vanilla_choose_target()
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- if (from_outside != (char *)NULL)
- return from_outside;
- return VANILLA_TARGET;
-}
-
-static void
-vanilla_syslib()
-{
- info("%S SYSLIB ignored\n");
-}
-
-static void
-vanilla_hll(ignore)
-char *ignore;
-{
- info("%S HLL ignored\n");
-}
-
-
-static char *vanilla_get_script()
-{
-return "";
-}
-
-struct ld_emulation_xfer_struct ld_vanilla_emulation =
-{
- vanilla_before_parse,
- vanilla_syslib,
- vanilla_hll,
- vanilla_after_parse,
- vanilla_after_allocation,
- vanilla_set_output_arch,
- vanilla_choose_target,
- vanilla_before_allocation,
- vanilla_get_script,
-};
-
diff --git a/ld/makefile.dos b/ld/makefile.dos
deleted file mode 100755
index 7da9ac1..0000000
--- a/ld/makefile.dos
+++ /dev/null
@@ -1,527 +0,0 @@
-# Makefile for the GNU linker ld (version 2)
-# Copyright (C) 1989-1991 Free Software Foundation, Inc.
-
-# This file is part of GNU ld..
-
-# 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.
-
-#
-# $Id$
-#
-
-srcdir = .
-
-ddestdir = /usr/local
-
-#version=/`$(unsubdir)/../gcc$(subdir)/gcc -dumpversion`
-version=
-bindir = $(ddestdir)/bin
-gcclibdir = $(ddestdir)/lib/gcc/$(target_alias)$(version)
-
-# Seach path to override the default search path for -lfoo libraries.
-# If LIB_PATH is empty, the ones in the script (if any) are left alone.
-# Otherwise, they are replaced with the ones given in LIB_PATH,
-# which may have the form: LIB_PATH=/lib:/usr/local/lib
-LIB_PATH =
-
-INSTALL = install -c
-INSTALL_PROGRAM = $(INSTALL)
-INSTALL_FILE = $(INSTALL)
-
-BASEDIR = ../..
-INCLUDE = $(srcdir)/../include
-INCLUDES = -I. -I$(srcdir) -I$(INCLUDE)
-MINUS_G = -g
-
-# Where to find texinfo.tex to format docn with TeX
-TEXIDIR = $(srcdir)/../texinfo/fsf
-
-# Whether to get roff to put indexing entries on stderr
-TEXI2OPT =
-# You neeed this to generate ld-index.ms (or .mm or .me)
-# TEXI2OPT = -i
-
-MAKEINFO=makeinfo
-TEXI2ROFF=texi2roff
-
-# Which roff program to use to generate index for texi2roff'd doc
-ROFF = groff
-
-BISON = bison
-BISONFLAGS = -v
-
-SCRIPTS = ldgld68k.sc ldgld.sc \
- ldlnk960.sc ldlnk960r.sc ldgld960.sc \
- i386aout.sc ldm88k.sc ldglda29k.sc news.sc h8300hds.sc ebmon29k.sc
-
-#### target and host dependent Makefile fragments come in here.
-HDEFINES=-O -D__MSDOS__ -D__GO32__
-TDEFINES=
-CDEFINES=
-###
-
-CFLAGS = $(INCLUDES) $(MINUS_G) $(HDEFINES) $(TDEFINES) $(CDEFINES)
-LINTFLAGS = $(INCLUDES) $(EXTRA_DEF)
-
-.SUFFIXES: .y .x .xr .xu .xn .xN .sc .scu .scr .scn
-
-# go directly to ld.new in case this ld isn't capable of
-# linking native object on this host. It can be renamed on
-# install.
-LD_PROG = ld.new
-
-# A .sc script file is needed for each emulation mode.
-# sed is used to transform this script into two variant forms:
-# A .scr script is for linking without relocation (-r flag).
-# A .scu script is like .scr, but *do* create constructors.
-# A .scn script is for linking with -N flag (mix text and data on same page).
-# A .scN script is for linking with -N flag (mix text and data on same page).
-# The diference is that segments should (need) not be page aligned.
-
-# A sed pattern to translate .sc to .scu:
-SED_MAKE_RELOC_WITH_CONSTRUCTORS=\
- -e "/If relocating/,/End if relocating/d" \
- -e "/=/s/[_a-zA-Z.]* *= .*//g" \
- -e '/>/s/} *> *[a-zA-Z]*/}/' \
- -e "/text/s/[.]text .*:/.text :/" \
- -e "/data/s/[.]data .*:/.data :/"
-# A sed pattern to translate .scu to .scr:
-SED_REMOVE_CONSTRUCTORS= -e /CONSTRUCTORS/d
-
-.sc.scu:
- sed $(SED_MAKE_RELOC_WITH_CONSTRUCTORS) $< >$*.scu
-.scu.scr:
- sed $(SED_REMOVE_CONSTRUCTORS) < $< >$*.scr
-
-# Each builtin script file is included as a C string literal.
-# These are generated by the mkscript filter.
-.sc.x:
- if [ "x"$(LIB_PATH) = "x" ]; then ./mkscript < $< >$*.x ; \
- else \
- (sed <$< -e '/SEARCH_DIR(.*)/d' ; \
- echo $(LIB_PATH) | tr ':' ' ' | sed -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\1);/g';) | ./mkscript >$*.x;\
- fi
-
-# The .xn script is used if the -n flag is given (write-protect text)..
-# Sunos starts the text segment for demand-paged binaries at 0x2020
-# and other binaries at 0x2000, since the exec header is paged in
-# with the text. Some other Unix variants do the same.
-# For -n and -N flags the offset of the exec header must be removed.
-# This sed script does this if the master script contains
-# a line of the form ".text 0xAAAA BLOCK(0xBBBB):" - the
-# output will contain ".text 0xBBBB:". (For Sunos AAAA=2020 and BBBB=2000.)
-.x.xn:
- sed -e '/text/s/\.text .* BLOCK(\([^)]*\)):/.text \1:/' < $< >$*.xn
-
-# The .xN script is used if the -N flag is given (don't write-protect text).
-# This is like -n, except that the data segment need not be page-aligned.
-# So get rid of commands for page-alignment: We assume these use ALIGN
-# with a hex constant that end with 00, since any normal page size is be
-# at least divisible by 256. We use the 00 to avoid matching
-# anything that tries to align of (say) 8-byte boundaries.
-.xn.xN:
- sed -e '/ALIGN/s/ALIGN( *0x[0-9a-fA-F]*00 *)/./' < $< >$*.xN
-
-# The xu and xr scripts don't search libraries, so LIB_PATH doesn't matter.
-.sc.xu:
- sed $(SED_MAKE_RELOC_WITH_CONSTRUCTORS) < $< | ./mkscript >$*.xu
-.sc.xr:
- sed $(SED_MAKE_RELOC_WITH_CONSTRUCTORS) $(SED_REMOVE_CONSTRUCTORS) \
- < $< | ./mkscript >$*.xr
-
-# for self hosting
-BFDLIB=../bfd/libbfd.a
-LIBIBERTY=../libiberty/libiberty.a
-
-OFILES= ldgram.o ldlex.o ldlang.o ldctor.o ldmain.o ldindr.o \
- ldwarn.o ldwrite.o ldexp.o ldlnk960.o ld__gld68k.o ld__i386aout.o \
- ld__m88k.o ld__glda29k.o ld__news.o h8300hds.o ld__ebmon29k.o \
- ld__gld.o ldgld960.o ldemul.o ldver.o ldmisc.o ldsym.o ldvanilla.o ldfile.o
-
-HEADERS=config.h ldmain.h ldmain.h ldwarn.h ldmisc.h ldindr.h \
- ldsym.h ldctor.h ldlang.h ldexp.h \
- ldlex.h ldwrite.h ldver.h ldemul.h ldfile.h ldgram.h ld.h
-
-MANSOURCES=ld.tex
-
-LDCSOURCES=ldlang.c ldctor.c ldindr.c ldmain.c ldwrite.c ldwarn.c ldlnk960.c \
- ld__gld.c ld__gld68k.c ld__m88k.c ld__ebmon29k.c \
- ldgld960.c ldemul.c ldver.c ldmisc.c ldexp.c ldsym.c ldfile.c ldvanilla.c
-
-GENERATED_SOURCES=ldgram.c ldlex.c ldgram.h ld__*.c
-GENERATED_HEADERS=ldgram.h
-
-LDSOURCES=$(LDCSOURCES) ldgram.y ldlex.l ldgram.h
-
-BFDSOURCES=../../bfd/common/*.c
-
-SOURCES= $(LDSOURCES) $(BFDSOURCES)
-LINTSOURCES= $(LDCSOURCES) $(BFDSOURCES) $(GENERATED_SOURCES)
-
-STAGESTUFF = *.x *.x[ru] *.sc[ru] $(GENERATED_SOURCES) $(GENERATED_HEADERS) $(OFILES) $(LD_PROG) mkscript
-
-all: $(LD_PROG)
-
-all-info: ld.info
-
-ldgram.h ldgram.c: ldgram.y
- $(BISON) $(BISONFLAGS) -d ldgram.y
- mv -f y.tab.c ldgram.c
- mv -f y.tab.h ldgram.h
-
-ldlex.c: ldlex.l
- lex -t ldlex.l >ldlex.c
-
-# These all start with ld__ so 'make clean' can find them.
-
-ld__gld.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/ldgld/g -e s/"<arch>"/m68k/g \
- -e s/"<target>"//g -e s/"<TARGET>"//g <$(srcdir)/ldtemplate >$@
-ld__news.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/news/g -e s/"<arch>"/m68k/g \
- -e s/"<target>"/news/g -e s/"<TARGET>"/NEWS/g <$(srcdir)/ldtemplate >$@
-
-ld__i386aout.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/i386aout/g -e s/"<arch>"/i386/g \
- -e s/"<target>"/i386aout/g -e s/"<TARGET>"/I386AOUT/g <$(srcdir)/ldtemplate >$@
-
-
-ld__ebmon29k.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/ebmon29k/g -e s/"<arch>"/a29k/g \
- -e s/"gld<target>"/ebmon29k/g -e s/"GLD<TARGET>"/EBMON29K/g \
- -e s/"<ldtarget>.x"/ebmon.x/ <$(srcdir)/ldtemplate >$@
-
-ld__gld68k.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/ldgld68k/g -e s/"<arch>"/m68k/g \
- -e s/"<target>"/68k/g -e s/"<TARGET>"/68K/g <$(srcdir)/ldtemplate >$@
-ld__glda29k.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/ldglda29k/g -e s/"<arch>"/a29k/g \
- -e s/"<target>"/29k/g -e s/"<TARGET>"/29K/g <$(srcdir)/ldtemplate >$@
-ld__m88k.c: $(srcdir)/ldtemplate
- sed -e s/"<ldtarget>"/ldm88k/g -e s/"<arch>"/m88k/g \
- -e s/"<target>"/m88kbcs/g -e s/"<TARGET>"/M88KBCS/g <$(srcdir)/ldtemplate >$@
-
-# The .c files for these are generated from ldtemplete.
-ld__gld.o: ./mkscript ldgld.x ldgld.xr ldgld.xu ldgld.xn ldgld.xN
-ld__news.o: ./mkscript news.x news.xr news.xu news.xn news.xN
-ld__i386aout.o: ./mkscript i386aout.x i386aout.xr i386aout.xu i386aout.xn i386aout.xN
-ld__ebmon29k.o: ./mkscript ebmon29k.x ebmon29k.xr ebmon29k.xu \
- ebmon29k.xn ebmon29k.xN
-ld__gld68k.o: ./mkscript ldgld68k.x ldgld68k.xr ldgld68k.xu \
- ldgld68k.xn ldgld68k.xN
-ld__glda29k.o: ./mkscript ldglda29k.x ldglda29k.xr ldglda29k.xu \
- ldglda29k.xn ldglda29k.xN
-ld__m88k.o: ./mkscript ldm88k.x ldm88k.xr ldm88k.xu ldm88k.xn ldm88k.xN
-
-# The .c files for these are (for now) specially written (not ldtemplete).
-ldgld960.o: ./mkscript ldgld960.x
-ldlnk960.o: ./mkscript ldlnk960.x ldlnk960.xr
-h8300hds.o: ./mkscript h8300hds.x
-
-
-#$(BFDLIB): $(BFDSOURCES)
-# (cd ../bfd; make)
-
-$(LD_PROG): $(OFILES) $(BFDLIB) $(LIBIBERTY)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(LD_PROG) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(LOADLIBES)
-
-# (cd ../bfd; make)
-# LDEMULATION=gld; export LDEMULATION; GNUTARGET=a.out-sunos-big;./ldok -format a.out-sunos-big -o ld /lib/crt0.o $(OFILES) $(BFDLIB) $(LIBIBERTY) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
-# gld -o ld /lib/crt0.o $(OFILES) $(BFDLIB) $(LIBIBERTY) -lc /usr/local/lib/gcc/sparc/1.91/gnulib
-# $(CC) -Bstatic -o ld.new $(OFILES) $(BFDLIB) $(LIBIBERTY)
-
-
-ld1: ld.new
- $(HOSTING_EMU); ./ld.new -o ld1 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
-
-ld2: ld1
- $(HOSTING_EMU); ./ld1 -o ld2 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
-
-ld3: ld2
- $(HOSTING_EMU); ./ld2 -o ld3 $(HOSTING_CRT0) $(OFILES) $(BFDLIB) $(LIBIBERTY) $(HOSTING_LIBS)
-
-######################################################################
-# DOCUMENTATION TARGETS
-# TeX output
-ld.dvi: $(srcdir)/ld.texinfo
- TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex $(srcdir)/ld.texinfo
- texindex ld.??
- TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex $(srcdir)/ld.texinfo
-
-# info file for online browsing
-ld.info: $(srcdir)/ld.texinfo
- $(MAKEINFO) -o ld.info $(srcdir)/ld.texinfo
-
-#separate targets for "ms", "me", and "mm" forms of roff doc
-# Try to use a recent texi2roff. v2 was put on prep in jan91.
-# If you want an index, see texi2roff doc for postprocessing
-# and add -i to texi2roff invocations below.
-# Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete
-# correspondint -e lines when later texi2roff's are current)
-# + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs.
-# + @c's deleted explicitly because texi2roff sees texinfo commands in them
-# + @ (that's at-BLANK) not recognized by texi2roff, turned into blank
-# + @alphaenumerate is ridiculously new, turned into @enumerate
-
-ld.ms: $(srcdir)/ld.texinfo
- sed -e '/\\input texinfo/d' \
- -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
- -e '/^@ifinfo/,/^@end ifinfo/d' \
- -e '/^@c/d' \
- -e 's/{.*,,/{/' \
- -e 's/@ / /g' \
- -e 's/^@alphaenumerate/@enumerate/g' \
- -e 's/^@end alphaenumerate/@end enumerate/g' \
- $(srcdir)/ld.texinfo | \
- $(TEXI2ROFF) $(TEXI2OPT) -ms | \
- sed -e 's/---/\\(em/g' \
- >>ld.ms
-
-# index for roff output
-ld-index.ms: ld.ms
- $(ROFF) -ms ld.ms 2>&1 1>/dev/null | \
- sed -e '/: warning:/d' | \
- texi2index >ld-index.ms
-
-# roff output (-mm)
-ld.mm: $(srcdir)/ld.texinfo
- sed -e '/\\input texinfo/d' \
- -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
- -e '/^@ifinfo/,/^@end ifinfo/d' \
- -e '/^@c/d' \
- -e 's/{.*,,/{/' \
- -e '/@noindent/d' \
- -e 's/@ / /g' \
- -e 's/^@alphaenumerate/@enumerate/g' \
- -e 's/^@end alphaenumerate/@end enumerate/g' \
- $(srcdir)/ld.texinfo | \
- $(TEXI2ROFF) $(TEXI2OPT) -mm | \
- sed -e 's/---/\\(em/g' \
- >ld.mm
-
-# index for roff output
-ld-index.mm: ld.mm
- $(ROFF) -mm ld.mm 2>&1 1>/dev/null | \
- sed -e '/: warning:/d' | \
- texi2index >ld-index.mm
-
-# roff output (-me)
-ld.me: $(srcdir)/ld.texinfo
- sed -e '/\\input texinfo/d' \
- -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \
- -e '/^@ifinfo/,/^@end ifinfo/d' \
- -e '/^@c/d' \
- -e 's/{.*,,/{/' \
- -e 's/@ / /g' \
- -e 's/^@alphaenumerate/@enumerate/g' \
- -e 's/^@end alphaenumerate/@end enumerate/g' \
- $(srcdir)/ld.texinfo | \
- $(TEXI2ROFF) $(TEXI2OPT) -me | \
- sed -e 's/---/\\(em/g' \
- >>ld.me
-
-# index for roff output
-ld-index.me: ld.me
- $(ROFF) -me ld.me 2>&1 1>/dev/null | \
- sed -e '/: warning:/d' | \
- texi2index >ld-index.me
-
-
-######################################################################
-
-mkscript: $(srcdir)/mkscript.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o mkscript $(srcdir)/mkscript.c $(LOADLIBES)
-
-ldlex.c: ldlex.l ldgram.h
-ldlex.o: ldlex.c ldgram.h
-ldgram.o: ldgram.c
-ldgram.c: ldgram.y
-
-ldgld68k.x : ldgld68k.sc
-ldgld68kUr.x : ldgld68kUr.sc
-ldgld68kr.x : ldgld68kr.sc
-h8300hds.x: h8300hds.sc
-ldgld.x : ldgld.sc
-ldgldUr.x : ldgldUr.sc
-ldgldr.x : ldgldr.sc
-ldlnk960.x : ldlnk960.sc
-ldlnk960r.x : ldlnk960r.sc
-ldgld960.x : ldgld960.sc
-ldgldm88k.x : ldgldm88k.sc
-ldm88kUr.x : ldm88kUr.sc
-ldm88kr.x: ldm88kr.sc
-ldm88k.x: ldm88k.sc
-news.x: news.sc
-i386aout.x: i386aout.sc
-h8300hds.x: h8300hds.sc
-h8300hds.o: h8300hds.c
-ldgld68k.x: ldgld68k.sc
-ldglda29k.x : ldglda29k.sc
-ldglda29kr.x : ldglda29kr.sc
-ldglda29kUr.x : ldglda29kUr.sc
-
-ebmon29k.x : ebmon29k.sc
-ebmon29kr.x : ebmon29kr.sc
-ebmon29kUr.x : ebmon29kUr.sc
-
-stage1: force
- - mkdir stage1
- - mv -f $(STAGESTUFF) stage1
- - (cd stage1 ; ln -s $(LD_PROG) ld)
-
-stage2: force
- - mkdir stage2
- - mv -f $(STAGESTUFF) stage2
- - (cd stage2 ; ln -s $(LD_PROG) ld)
-
-stage3: force
- - mkdir stage3
- - mv -f $(STAGESTUFF) stage3
- - (cd stage3 ; ln -s $(LD_PROG) ld)
-
-against=stage2
-
-comparison: force
- for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i ; done
-
-de-stage1: force
- - (cd stage1 ; mv -f * ..)
- - rm ld
- - rmdir stage1
-
-de-stage2: force
- - (cd stage2 ; mv -f * ..)
- - rm ld
- - rmdir stage2
-
-de-stage3: force
- - (cd stage3 ; mv -f * ..)
- - rm ld
- - rmdir stage3
-
-clean:
- - rm -f TAGS $(OFILES) $(GENERATED_SOURCES) $(GENERATED_HEADERS)
- - rm -f *.x *.x[runN] *.sc[runN]
- - rm -f ld.?? ld.???
- - rm -f ld ld1 ld2 ld3 ld.new mkscript *.o y.output
-
-lintlog: $(SOURCES) Makefile
- $(LINT) -abhxzn $(LINTFLAGS) $(LINTSOURCES) \
-| grep -v "pointer casts may be troublesome" \
-| grep -v "possible pointer alignment problem" \
-| grep -v "ignore" \
-| grep -v "conversion from long may lose accuracy" \
-| grep -v "warning: constant argument to NOT" \
-| grep -v "enumeration type clash, operator CAST" \
-| grep -v "warning: constant in conditional context"\
-| grep -v "archive\.c"
-
-
-tags TAGS: $(SOURCES) $(HEADERS)
- etags -t $?
-
-
-objdump: objdump.c
-
-install: $(LD_PROG)
- $(INSTALL_PROGRAM) ld.new $(ddestdir)/bin/ld
- $(INSTALL_PROGRAM) ld.new $(gcclibdir)/ld
-
-install-info: all-info
- for i in ld.info* ; do \
- echo Installing $$i... ; \
- (cp $$i $(idestdir)/info/$$i.new \
- && mv -f $(idestdir)/info/$$i.new $(idestdir)/info/$$i) \
- || exit 1 ; \
- done
-
-# Something like the following might make sense for install, but doesn't work
-# - it is too fragile, depending on a gcc binary int the right place.
-# Perhaps using gcc/version.c might work?
-# # If $(gcclibdir) exists, install ld there, and put a link to it
-# # from $(bindir); otherwise put ld in $(bindir).
-# if ([ -x $(unsubdir)/../gcc$(subdir)/gcc -a -d $(gcclibdir) ]); then \
-# $(INSTALL_PROGRAM) ld.new $(gcclibdir)/ld; \
-# cd $(bindir); rm -f ld; ln -s $(gcclibdir)/ld ld; \
-# else \
-# $(INSTALL_PROGRAM) ld.new $(bindir)/ld; \
-# fi
-
-#-----------------------------------------------------------------------------
-# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
-#
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#-----------------------------------------------------------------------------
-
-ver960.c: FORCE
- rm -f ver960.c
- echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
-
-
-# This target should be invoked before building a new release.
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#
-roll:
- @V=`cat VERSION` ; \
- MAJ=`sed 's/\..*//' VERSION` ; \
- MIN=`sed 's/.*\.//' VERSION` ; \
- V=$$MAJ.`expr $$MIN + 1` ; \
- rm -f VERSION ; \
- echo $$V >VERSION ; \
- echo Version $$V
-
-
-dep: $(LDSOURCES)
- mkdep $(CFLAGS) $?
-
-# Dummy target to force execution of dependent targets.
-#
-force:
-
-# Target to uncomment host-specific lines in this makefile. Such lines must
-# have the following string beginning in column 1: #__<hostname>__#
-# Original Makefile is backed up as 'Makefile.old'.
-#
-# Invoke with: make make HOST=xxx
-#
-make:
- -@if test $(HOST)x = x ; then \
- echo 'Specify "make make HOST=???"'; \
- exit 1; \
- fi ; \
- grep -s "^#The next line was generated by 'make make'" Makefile; \
- if test $$? = 0 ; then \
- echo "Makefile has already been processed with 'make make'";\
- exit 1; \
- fi ; \
- mv -f Makefile Makefile.old; \
- echo "#The next line was generated by 'make make'" >Makefile ; \
- echo "HOST=$(HOST)" >>Makefile ; \
- echo >>Makefile ; \
- sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile
-
-#
-
-Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
- $(SHELL) ./config.status
-
-### Local Variables: ***
-### mode:fundamental ***
-### page-delimiter: "^# " ***
-### End: ***
-### end of file
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ld/news.sc b/ld/news.sc
deleted file mode 100755
index 9bf3af7..0000000
--- a/ld/news.sc
+++ /dev/null
@@ -1,30 +0,0 @@
-OUTPUT_FORMAT("a.out-newsos3")
-OUTPUT_ARCH(m68k)
-
-SEARCH_DIR(/lib)
-SEARCH_DIR(/usr/lib)
-SEARCH_DIR(/usr/local/lib)
-__DYNAMIC = 0;
-SECTIONS
-{
- .text 0:
- {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- _etext = ALIGN(0x1000);
- }
- .data ALIGN(0x1000) :
- {
- *(.data)
- CONSTRUCTORS;
- _edata = .;
- }
- .bss SIZEOF(.data) + ADDR(.data) :
- {
- *(.bss)
- *(COMMON)
- _end = .;
- __end = .;
- }
-}
-
diff --git a/ld/saber b/ld/saber
deleted file mode 100755
index e57f045..0000000
--- a/ld/saber
+++ /dev/null
@@ -1,80 +0,0 @@
-suppress 652
-load -I../bfd -I../../devo/bfd -I../../devo/include -DMINIMIZE=1 -DDEFAULT_VECTOR='hp300bsd_vec' -DSELECT_VECS='&hp300bsd_vec' ../../devo/bfd/targets.c
-load -I. -I../../devo/ld -I../../devo/include ld__a29k.c
-load -I. -I../../devo/ld -I../../devo/include ld__h8300hms.c
-load -I. -I../../devo/ld -I../../devo/include ld__lnk960.c
-load -I. -I../../devo/ld -I../../devo/include ld__sun3.c
-load -I. -I../../devo/ld -I../../devo/include ldlex.c
-load -I. -I../../devo/ld -I../../devo/include ld__ebmon29k.c
-load -I. -I../../devo/ld -I../../devo/include ld__h8300xray.c
-load -I. -I../../devo/ld -I../../devo/include ld__m88kbcs.c
-load -I. -I../../devo/ld -I../../devo/include ld__sun4.c
-load -I. -I../../devo/ld -I../../devo/include ld__gld960.c
-load -I. -I../../devo/ld -I../../devo/include ld__hp300bsd.c
-load -I. -I../../devo/ld -I../../devo/include ld__news.c
-load -I. -I../../devo/ld -I../../devo/include ld__vanilla.c
-load -I. -I../../devo/ld -I../../devo/include ld__go32.c
-load -I. -I../../devo/ld -I../../devo/include ld__i386aout.c
-load -I. -I../../devo/ld -I../../devo/include ld__st2000.c
-load -I. -I../../devo/ld -I../../devo/include ld__sa29200.c
-load -I. -I../../devo/ld -I../../devo/include ldgram.c
-
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/cplus-dem.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldexp.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldlang.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldver.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldctor.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldfile.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldmain.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldwarn.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/mri.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldemul.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldmisc.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldwrite.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/relax.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/lderror.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldindr.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/ldsym.c
-load -I. -I../../devo/ld -I../../devo/include ../../devo/ld/lexsup.c
-
-
-
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/bfd.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/stab-sym.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/archures.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/bout.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cache.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/core.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/aout32.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/demo64.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/opncls.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/reloc.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/seclet.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/init.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/section.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/coff-a29k.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/hp300bsd.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/syms.c
-
-
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/archive.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/libbfd.c
-
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-a29k.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/format.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-i386.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-m68k.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-mips.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-sparc.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-h8300.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-i960.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-m88k.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-rs6000.c
-load -I../bfd -I../../devo/bfd -I../../devo/include ../../devo/bfd/cpu-vax.c
-
-load -I../libiberty -I../../devo/libiberty -I../../devo/include ../../devo/libiberty/obstack.c
-load -I../libiberty -I../../devo/libiberty -I../../devo/include ../../devo/libiberty/strtoul.c
-load -I../libiberty -I../../devo/libiberty -I../../devo/include ../../devo/libiberty/strerror.c
-
-
-