aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog20
-rw-r--r--gas/Makefile.in12
-rw-r--r--gas/config-gas.com4
-rw-r--r--gas/config/ho-vms.h2
-rw-r--r--gas/configure.in14
-rw-r--r--gas/make-gas.com73
-rw-r--r--gas/vmsconf.sh21
7 files changed, 94 insertions, 52 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index efff1d7..5926ae4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -4,6 +4,26 @@ Thu Apr 14 15:12:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
floating point and binary numbers respectively; if it doesn't
work, treat them as local labels.
+ * Makefile.in: Make $(OBJS) depend on $(ALL_OBJ_DEPS).
+ * configure.in: Set ALL_OBJ_DEPS in output Makefile.
+
+ Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu>
+ (Charles Bailey):
+ * vmsconf.sh: In generated file, get ".obj" suffix right, build
+ source files from other directories into objects in the current
+ directory, and specify PSECT attributes explicitly to linker.
+ Also added missing label.
+ * Makefile.in (stamp-mk.com): Reference new variable
+ VMS_OTHER_OBJS for list of non-local object files, instead of
+ listing them here.
+ (VMS_OTHER_OBJS): New variable, added more libiberty files.
+ * make-gas.com: Regenerated.
+
+ * config/ho-vms.h (unlink): Define as delete.
+
+ * config-gas.com: Fix quoting on TARGET_CANONICAL definition.
+ Delete files before creating them.
+
Thu Apr 14 13:34:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* Makefile.in (de-stage1, de-stage2, de-stage3): Use rm -f.
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 2c2089d..7473c7e 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -232,6 +232,14 @@ OBJS = \
xmalloc.o \
$(TE_OBJS)
+# These are objects we know we'll be pulling in from other directories.
+# For VMS, we have to build them explicitly.
+VMS_OTHER_OBJS = \
+ ../libiberty/obstack.o \
+ ../libiberty/strdup.o \
+ ../libiberty/strncasecmp.o \
+ ../libiberty/getruntime.o
+
all: as.new gasp.new
@srcroot=`cd $(srcroot); pwd`; export srcroot; \
(cd doc ; $(MAKE) $(FLAGS_TO_PASS) all)
@@ -242,7 +250,7 @@ dvi info install-info clean-info:
make-gas.com: stamp-mk.com
stamp-mk.com: vmsconf.sh Makefile
- sh $(srcdir)/vmsconf.sh $(OBJS) ../libiberty/obstack.o ../libiberty/strdup.o > new-make.com
+ sh $(srcdir)/vmsconf.sh $(OBJS) $(VMS_OTHER_OBJS) > new-make.com
$(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
touch stamp-mk.com
@@ -275,6 +283,8 @@ SUBDIR_INCLUDES = -I.. -I$(srcdir) -I$(srcdir)/config
# Files to be copied away after each stage in building.
STAGESTUFF = *.o as.new gasp.new
+$(OBJS): $(ALL_OBJ_DEPS)
+
as.new: $(OBJS) $(LIBS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as.new $(OBJS) $(LIBS) $(LOADLIBES)
diff --git a/gas/config-gas.com b/gas/config-gas.com
index 06bba35..7ad1a0a 100644
--- a/gas/config-gas.com
+++ b/gas/config-gas.com
@@ -41,14 +41,16 @@ $line=f$extract(ijk,f$length(line)-ijk,line)
$ijk=f$locate("\n",line)
$line=f$extract(0,ijk,line)
$!
+$ if f$search("version.opt").nes."" then delete/noconfirm version.opt;*
$open ifile$ version.opt/write
$write ifile$ "ident="+""""+line+""""
$close ifile$
$! Now write config.h.
+$ if f$search("config.h").nes."" then delete/noconfirm config.h;*
$open ifile$ config.h/write
$write ifile$ "#define TARGET_CPU """,cpu_type,"""
$write ifile$ "#define TARGET_ALIAS ""vms"""
-$write ifile$ "#define TARGET_CANONICAL ""vax-dec-vms""""
+$write ifile$ "#define TARGET_CANONICAL ""vax-dec-vms"""
$write ifile$ "#define GAS_VERSION """,line,""""
$close ifile$
$!
diff --git a/gas/config/ho-vms.h b/gas/config/ho-vms.h
index c4e941c..a546019 100644
--- a/gas/config/ho-vms.h
+++ b/gas/config/ho-vms.h
@@ -32,4 +32,6 @@
#define EXIT_FAILURE 0
#endif
+#define unlink delete
+
/* end of ho-vms.h */
diff --git a/gas/configure.in b/gas/configure.in
index d4413c9..4839064 100644
--- a/gas/configure.in
+++ b/gas/configure.in
@@ -338,8 +338,11 @@ case ${bfd_gas} in
esac
case ${need_bfd} in
- yes) bfdlib="BFDLIB=../bfd/libbfd.a" ;;
- *) bfdlib="" ;;
+ yes) bfdlib="BFDLIB=../bfd/libbfd.a"
+ all_obj_deps="$all_obj_deps ../bfd/bfd.h"
+ ;;
+ *) bfdlib=""
+ ;;
esac
case "x${host}" in
@@ -349,11 +352,8 @@ esac
rm -f Makefile.tem
echo $cross > Makefile.tem
-case "$extra_def" in
- "") ;;
- *) echo defs=$extra_def >> Makefile.tem
- ;;
-esac
+echo ALL_OBJ_DEPS=$all_obj_deps >> Makefile.tem
+echo defs=$extra_def >> Makefile.tem
echo $bfdlib >> Makefile.tem
echo "OPCODES_LIB=$opcodes" >> Makefile.tem
cat Makefile >> Makefile.tem
diff --git a/gas/make-gas.com b/gas/make-gas.com
index 6a04021..95b573e 100644
--- a/gas/make-gas.com
+++ b/gas/make-gas.com
@@ -73,42 +73,47 @@ $ gcc 'c_flags'/define=('C_DEFS') listing.c
$ gcc 'c_flags'/define=('C_DEFS') ecoff.c
$ gcc 'c_flags'/define=('C_DEFS') stabs.c
$ gcc 'c_flags'/define=('C_DEFS') xmalloc.c
-$ gcc 'c_flags'/define=('C_DEFS') [-.libiberty]obstack.c
-$ gcc 'c_flags'/define=('C_DEFS') [-.libiberty]strdup.c
-$if f$search("obstack.obj").eqs."" then copy [-.libiberty]obstack.obj *.*
-$if f$search("strdup.obj").eqs."" then copy [-.libiberty]strdup.obj *.*
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]obstack.obj [-.libiberty]obstack.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]strdup.obj [-.libiberty]strdup.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]strncasecmp.obj [-.libiberty]strncasecmp.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]getruntime.obj [-.libiberty]getruntime.c
+$link:
$ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
!
! Linker options file for GNU assembler
!
-targ-cpu.o,-
-obj-format.o,-
-atof-targ.o,-
-app.o,-
-as.o,-
-atof-generic.o,-
-bignum-copy.o,-
-cond.o,-
-expr.o,-
-flonum-konst.o,-
-flonum-copy.o,-
-flonum-mult.o,-
-frags.o,-
-hash.o,-
-hex-value.o,-
-input-file.o,-
-input-scrub.o,-
-literal.o,-
-messages.o,-
-output-file.o,-
-read.o,-
-subsegs.o,-
-symbols.o,-
-write.o,-
-listing.o,-
-ecoff.o,-
-stabs.o,-
-xmalloc.o,-
-obstack.o,-
-strdup.o,-
+targ-cpu.obj,-
+obj-format.obj,-
+atof-targ.obj,-
+app.obj,-
+as.obj,-
+atof-generic.obj,-
+bignum-copy.obj,-
+cond.obj,-
+expr.obj,-
+flonum-konst.obj,-
+flonum-copy.obj,-
+flonum-mult.obj,-
+frags.obj,-
+hash.obj,-
+hex-value.obj,-
+input-file.obj,-
+input-scrub.obj,-
+literal.obj,-
+messages.obj,-
+output-file.obj,-
+read.obj,-
+subsegs.obj,-
+symbols.obj,-
+write.obj,-
+listing.obj,-
+ecoff.obj,-
+stabs.obj,-
+xmalloc.obj,-
+obstack.obj,-
+strdup.obj,-
+strncasecmp.obj,-
+getruntime.obj,-
gnu_cc:[000000]gcclib/lib,sys$share:vaxcrtl/lib
+! Tell linker exactly what psect attributes we want -- match VAXCRTL.
+psect_addr=ENVIRON,long,pic,ovr,rel,gbl,noshr,noexe,rd,wrt
diff --git a/gas/vmsconf.sh b/gas/vmsconf.sh
index 1f732c3..e1111eb 100644
--- a/gas/vmsconf.sh
+++ b/gas/vmsconf.sh
@@ -53,19 +53,19 @@ EOF
cfiles="`echo $* | sed -e 's/\.o/.c/g' -e 's!../\([^ /]*\)/\([^ /]*\.c\)![-.\1]\2!g'`"
for cfile in $cfiles ; do
- echo "\$ gcc 'c_flags'/define=('C_DEFS') $cfile"
case $cfile in
- "[-."*) copyfiles="$copyfiles $cfile" ;;
+ "[-."*)
+ base=`echo $cfile | sed -e 's/\[.*\]//' -e 's/\.c$//'`
+ echo "\$ gcc 'c_flags'/define=('C_DEFS')/object=[]$base.obj $cfile"
+ ;;
+ *)
+ echo "\$ gcc 'c_flags'/define=('C_DEFS') $cfile"
+ ;;
esac
done
-for c in $copyfiles ; do
- base=`echo $c | sed -e 's/\[.*\]//' -e 's/\.c$//'`
- dir=`echo $c | sed 's/\].*$/]/'`
- echo "\$if f\$search(\"$base.obj\").eqs.\"\" then copy $dir$base.obj *.*"
-done
-
cat << 'EOF'
+$link:
$ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
!
! Linker options file for GNU assembler
@@ -73,9 +73,12 @@ $ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
EOF
for obj in $* ; do
- echo $obj,- | sed 's!.*/!!g'
+ # Change "foo.o" into "foo.obj".
+ echo ${obj}bj,- | sed 's!.*/!!g'
done
cat << 'EOF'
gnu_cc:[000000]gcclib/lib,sys$share:vaxcrtl/lib
+! Tell linker exactly what psect attributes we want -- match VAXCRTL.
+psect_addr=ENVIRON,long,pic,ovr,rel,gbl,noshr,noexe,rd,wrt
EOF