aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1994-05-27 16:58:05 +0000
committerKen Raeburn <raeburn@cygnus>1994-05-27 16:58:05 +0000
commitc06e55d99ac38bd32492481f46b69ec62ee1e433 (patch)
tree7567d7ea926780a1d5242d47399b3a267283bb3a /ld
parent60e8a534070c8dc181b2fb4971b8199597a168f1 (diff)
downloadgdb-c06e55d99ac38bd32492481f46b69ec62ee1e433.zip
gdb-c06e55d99ac38bd32492481f46b69ec62ee1e433.tar.gz
gdb-c06e55d99ac38bd32492481f46b69ec62ee1e433.tar.bz2
changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs)
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog33
-rw-r--r--ld/Makefile.in2
-rw-r--r--ld/config/alphaosf.mh2
-rw-r--r--ld/configure.bat90
-rw-r--r--ld/emulparams/go32.sh14
-rw-r--r--ld/emultempl/.Sanitize1
-rw-r--r--ld/emultempl/stringify.sed4
-rw-r--r--ld/ldver.c2
-rw-r--r--ld/scripttempl/go32coff.sc29
-rw-r--r--ld/testsuite/ld.cdtest/cdtest.exp2
10 files changed, 123 insertions, 56 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 70a81a4..f0ebae5 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,36 @@
+Fri May 27 12:25:33 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
+
+ * ldver.c (ldversion): Changed version to "cygnus-2.4.1".
+
+ Changes from binutils-2.4 release:
+
+ * genscripts.sh (RELOCATING, CONSTRUCTING): When setting
+ variables, use whitespace, so scripts don't break.
+
+ * config/alphaosf.mh (HDEFINES, CFLAGS): Deleted.
+
+ * emultempl/generic.em: Find emultempl/stringify.sed in ${srcdir}.
+
+ * cdtest-bar.cc: Renamed from cdtest-func.cc.
+ * Makefile.in: Noted change.
+
+ * scripttempl/a29k.sc: Don't include /lab3/u3/..../segments.o; I
+ don't know where that's supposed to come from, or why it's
+ necessary.
+
+ Wed May 11 22:32:00 1994 DJ Delorie (dj@ctron.com)
+
+ * configure.bat: update to latest makefile.in
+ * emulpara/go32.sh: set to coff-go32 not aout
+ * emultemp/generic.em: strength-reduce the structure of
+ this shell script, since the only available shell for
+ DOS can't handle complex syntax.
+ * emultemp/stringify.sed: for "sed -f" instead of inline.
+ * makefile.in: depend on stringify.sed as well as genscripts.sh
+ * scripttemp/go32coff.sc: correct for djgpp 1.11's COFF format
+ * genscripts.sh: empty variables aren't always considered "set",
+ so set them to "y" instead.
+
Fri May 27 01:08:14 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* ldlang.c (entry_symbol): Make static.
diff --git a/ld/Makefile.in b/ld/Makefile.in
index c3f42c0..e1c8701 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -249,7 +249,7 @@ ldlex.c: ldlex.l
# These all start with e so 'make clean' can find them.
GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} ${host_alias} ${target_alias} ${EMUL} "$(NATIVE_LIB_DIRS)"
-GEN_DEPENDS = $(srcdir)/genscripts.sh
+GEN_DEPENDS = $(srcdir)/genscripts.sh $(srcdir)/emultempl/stringify.sed
esun4.c: $(srcdir)/emulparams/sun4.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
diff --git a/ld/config/alphaosf.mh b/ld/config/alphaosf.mh
index 96e9e0a..0ab53c5 100644
--- a/ld/config/alphaosf.mh
+++ b/ld/config/alphaosf.mh
@@ -1,4 +1,2 @@
-HDEFINES=-DHOST_64_BIT="long "
-CFLAGS=-non_shared
NATIVE_LIB_DIRS=/usr/ccs/lib
HOSTING_CRT0=/usr/ccs/lib/crt0.o
diff --git a/ld/configure.bat b/ld/configure.bat
index 73089fa..4643bdb 100644
--- a/ld/configure.bat
+++ b/ld/configure.bat
@@ -1,18 +1,72 @@
-@echo off
-if "%1" == "go32" goto h8300
-if "%1" == "h8/300" goto h8300
-echo Specify one of [ go32 h8/300 ] on command line
-goto exit
-
-:go32
-echo Configuring ld for go32
-copy ..\bfd\hosts\h-go32.h sysdep.h
-copy Makefile.dos Makefile
-goto exit
-
-:h8300
-echo Configuring ld for H8/300
-copy ..\bfd\hosts\h-go32.h sysdep.h
-copy Makefile.dos Makefile
-
-:exit
+@echo off
+echo Configuring ld for go32
+echo This makefile will be built for GNUISH make
+rem This batch file assumes a unix-type "sed" program
+
+update ..\bfd\hosts\go32.h sysdep.h
+
+echo # Makefile generated by "configure.bat"> Makefile
+echo LONGARGS = gcc:ar >> Makefile
+echo CC=gcc >> Makefile
+echo host_alias=go32 >> Makefile
+echo target_alias=go32 >> Makefile
+
+update ../bfd/hosts/go32.h sysdep.h
+
+if exist config.sed del config.sed
+
+echo "s/^ \$(srcdir)\/move-if-change/ update/ ">> config.sed
+echo "s/:\([^ ]\)/: \1/g ">> config.sed
+echo "s/^ \ *\.\// go32 / ">> config.sed
+echo "s/`echo \$(srcdir)\///g ">> config.sed
+echo "s/ | sed 's,\^\\\.\/,,'`//g ">> config.sed
+echo "s/^ cd \$(srcdir)[ ]*;// ">> config.sed
+
+echo "/^####$/ i\ ">> config.sed
+echo "CC = gcc\ ">> config.sed
+echo "EMUL=go32\ ">> config.sed
+echo "EMULATION_OFILES=ego32.o ei386aout.o ">> config.sed
+
+echo "/^SHELL *=/ d ">> config.sed
+echo "s/$(SHELL)/sh.exe/g ">> config.sed
+
+echo "s/'"/\\"/g ">> config.sed
+echo "s/"'/\\"/g ">> config.sed
+
+echo "/^ldmain.o: ldmain.c/,/fi/ { ">> config.sed
+echo " s/; *\\$// ">> config.sed
+echo " s/-DSCRIPTDIR[^ ]*/-DSCRIPTDIR=\\".\\"/ ">> config.sed
+echo " s/config.status// ">> config.sed
+echo " /ldmain.o:/ p ">> config.sed
+echo " /(CC)/ p ">> config.sed
+echo " d ">> config.sed
+echo "} ">> config.sed
+
+echo "s/^SHELL.*$/SHELL=sh.exe/ ">> config.sed
+echo "s/genscripts.sh/genscripts.dos/g ">> config.sed
+
+echo "s/^ldemul-list.h/not-ldemul-list.h/ ">> config.sed
+
+sed -e "s/^\"//" -e "s/\"$//" -e "s/[ ]*$//" config.sed > config2.sed
+sed -f config2.sed Makefile.in >> Makefile
+del config.sed
+del config2.sed
+
+echo set -a > genscripts.dj
+sed -e "/^[a-zA-Z0-9_]*=/ s/^/export /" -e "s/(. \(.*\))/sh \1/" -e "/\.em/ d" genscripts.sh >> genscripts.dj
+type emultempl\generic.em >> genscripts.dj
+update genscripts.dj genscripts.dos
+
+echo extern ld_emulation_xfer_type ld_go32_emulation; > ldemul-list.h2
+echo extern ld_emulation_xfer_type ld_i386aout_emulation; >> ldemul-list.h2
+echo #define EMULATION_LIST \>>ldemul-list.h2
+echo &ld_go32_emulation,\>>ldemul-list.h2
+echo &ld_i386aout_emulation,\>>ldemul-list.h2
+echo 0>>ldemul-list.h2
+
+update ldemul-list.h2 ldemul-list.h
+
+if exist ldscripts\dostest goto ldscripts
+mkdir ldscripts
+dir > ldscripts\dostest
+:ldscripts
diff --git a/ld/emulparams/go32.sh b/ld/emulparams/go32.sh
index abeb84e..97271a0 100644
--- a/ld/emulparams/go32.sh
+++ b/ld/emulparams/go32.sh
@@ -1,17 +1,7 @@
-SCRIPT_NAME=aout
-OUTPUT_FORMAT="a.out-i386"
-TEXT_START_ADDR=0x1020
-PAGE_SIZE=0x1000
-SEGMENT_SIZE=0x400000
-NONPAGED_TEXT_START_ADDR=0x0
-ARCH=i386
-
-
-SCRIPT_NAME=coff
-OUTPUT_FORMAT="i386-coff"
+SCRIPT_NAME=go32coff
+OUTPUT_FORMAT="coff-go32"
TEXT_START_ADDR=0x10a8
PAGE_SIZE=0x1000
SEGMENT_SIZE=0x1000
NONPAGED_TEXT_START_ADDR=0x0
ARCH=i386
-
diff --git a/ld/emultempl/.Sanitize b/ld/emultempl/.Sanitize
index c0f5649..8cf22c1 100644
--- a/ld/emultempl/.Sanitize
+++ b/ld/emultempl/.Sanitize
@@ -25,6 +25,7 @@ Do-first:
Things-to-keep:
README
+stringify.sed
elf32.em
generic.em
gld960.em
diff --git a/ld/emultempl/stringify.sed b/ld/emultempl/stringify.sed
new file mode 100644
index 0000000..a526d3f
--- /dev/null
+++ b/ld/emultempl/stringify.sed
@@ -0,0 +1,4 @@
+s/["\\]/\\&/g
+s/$/\\n\\/
+1 s/^/"/
+$ s/$/n"/
diff --git a/ld/ldver.c b/ld/ldver.c
index 8750352..49fcfd1 100644
--- a/ld/ldver.c
+++ b/ld/ldver.c
@@ -29,7 +29,7 @@ void
ldversion (noisy)
int noisy;
{
- fprintf(stdout,"ld version 2.4.1 (with BFD %s)\n", BFD_VERSION);
+ fprintf(stdout,"ld version cygnus-2.4.1 (with BFD %s)\n", BFD_VERSION);
if (noisy)
{
diff --git a/ld/scripttempl/go32coff.sc b/ld/scripttempl/go32coff.sc
index 2e2a52c..2b2556a 100644
--- a/ld/scripttempl/go32coff.sc
+++ b/ld/scripttempl/go32coff.sc
@@ -1,11 +1,7 @@
-# Linker script for 386 COFF. This works on SVR3.2 and SCO Unix 3.2.2.
-# .data2 handles SCO, which uses two data sections.
-# Ian Taylor <ian@cygnus.com>.
+# Linker script for 386 go32
+# DJ Delorie (dj@ctron.com)
+
test -z "$ENTRY" && ENTRY=_start
-# These are substituted in as variables in order to get '}' in a shell
-# conditional expansion.
-INIT='.init : { *(.init) }'
-FINI='.fini : { *(.fini) }'
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
@@ -15,14 +11,15 @@ ENTRY(${ENTRY})
SECTIONS
{
.text ${RELOCATING+ SIZEOF_HEADERS} : {
- ${RELOCATING+ *(.init)}
*(.text)
- ${RELOCATING+ *(.fini)}
${RELOCATING+ etext = .};
}
- .data ${RELOCATING+ 0x400000 + (. & 0xffc00fff)} : {
- *(.data .data2)
+ .data ${RELOCATING+ ALIGN(${DATA_ALIGNMENT})} : {
+ ${RELOCATING+ *(.ctor)}
+ ${RELOCATING+ *(.dtor)}
+ *(.data)
${RELOCATING+ edata = .};
+ ${RELOCATING+. = ALIGN(${PAGE_SIZE});}
}
.bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
{
@@ -30,15 +27,5 @@ SECTIONS
*(COMMON)
${RELOCATING+ end = .};
}
- ${RELOCATING- ${INIT}}
- ${RELOCATING- ${FINI}}
- .stab . (NOLOAD) :
- {
- [ .stab ]
- }
- .stabstr . (NOLOAD) :
- {
- [ .stabstr ]
- }
}
EOF
diff --git a/ld/testsuite/ld.cdtest/cdtest.exp b/ld/testsuite/ld.cdtest/cdtest.exp
index 321cf0f..43acad4 100644
--- a/ld/testsuite/ld.cdtest/cdtest.exp
+++ b/ld/testsuite/ld.cdtest/cdtest.exp
@@ -63,7 +63,7 @@ foreach test [glob -nocomplain $srcdir/$subdir/*.dat] {
# load (execute) the target
if ![file exists $tmptarget] then {
- unresolved "$tmptarget doesn't exist. $result"
+ unresolved "$tmptarget doesn't exist."
} else {
catch "exec $tmptarget > $tmptarget.out" exec_output