aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/libio/ChangeLog156
-rw-r--r--contrib/libio/Makefile.in7
-rw-r--r--contrib/libio/config.shared13
-rw-r--r--contrib/libio/configure.in73
-rw-r--r--contrib/libio/dbz/Makefile.in2
-rw-r--r--contrib/libio/depend39
-rw-r--r--contrib/libio/filedoalloc.c3
-rw-r--r--contrib/libio/fileops.c3
-rwxr-xr-xcontrib/libio/gen-params17
-rw-r--r--contrib/libio/iomanip.h16
-rw-r--r--contrib/libio/iopopen.c3
-rw-r--r--contrib/libio/iostream.cc65
-rw-r--r--contrib/libio/iostream.h1
-rw-r--r--contrib/libio/isgetline.cc12
-rw-r--r--contrib/libio/isgetsb.cc4
-rw-r--r--contrib/libio/isscan.cc10
-rw-r--r--contrib/libio/libioP.h19
-rw-r--r--contrib/libio/procbuf.cc1
-rw-r--r--contrib/libio/stdio/ChangeLog12
-rw-r--r--contrib/libio/stdiostream.cc2
-rw-r--r--contrib/libio/streambuf.h6
-rw-r--r--contrib/libio/tests/ChangeLog12
-rw-r--r--contrib/libio/tests/Makefile.in3
-rw-r--r--contrib/libio/testsuite/ChangeLog21
-rw-r--r--contrib/libio/testsuite/Makefile.in11
25 files changed, 418 insertions, 93 deletions
diff --git a/contrib/libio/ChangeLog b/contrib/libio/ChangeLog
index e8f7c959aace..5996c0466072 100644
--- a/contrib/libio/ChangeLog
+++ b/contrib/libio/ChangeLog
@@ -1,31 +1,155 @@
-Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
- * egcs-1.1.2 Released.
+ * gcc-2.95.1 Released.
-Fri Mar 5 01:13:45 1999 H.J. Lu (hjl@gnu.org)
+1999-08-08 Alexandre Oliva <oliva@dcc.unicamp.br>
- * config/linuxlibc1.mt (MT_CFLAGS): Add -D_G_STDIO_USES_LIBIO
- -D_G_HAVE_WEAK_SYMBOL.
+ * streambuf.h (ios::streamsize): Declare as _IO_ssize_t, as in the
+ global scope.
- * genops.c: Add the proper weak alias if _G_STDIO_USES_LIBIO
- and _G_HAVE_WEAK_SYMBOL are defined.
- * iofclose.c: Likewise.
- * iofeof.c: Likewise.
- * ioferror.c: Likewise.
- * iogetc.c: Likewise.
- * ioputc.c: Likewise.
- * iovsprintf.c: Likewise.
- * iovsscanf.c: Likewise.
+1999-08-07 Andreas Schwab <schwab@suse.de>
+
+ * iostream.cc: Add missing calls to isfx and setup a cleanup
+ region for the locked stream.
+ * iostream.h: Likewise.
+ * isgetline.cc: Likewise.
+ * isgetsb.cc: Likewise.
+ * isscan.cc: Likewise.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Mon Jun 28 09:25:23 1999 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure.in (post-target): Use "$(topsrcdir)", not "$(srcdir)/..".
+
+1999-05-20 Angela Marie Thomas <angela@cygnus.com>
+
+ * configure.in: Test for ${compiler_name}.exe as well.
+
+1999-05-17 Mark Kettenis <kettenis@gnu.org>
+
+ * libioP.h: Only include libc-lock.h if _IO_MTSAFE_IO is defined.
+
+1999-05-12 Jason Merrill <jason@yorick.cygnus.com>
+
+ * configure.in (compiler_name): Don't do the skip-this-dir thing
+ if we're reconfiguring.
+
+1999-04-29 Nathan Sidwell <nathan@acm.org>
+
+ * streambuf.h (ios::~ios): Use operator delete[] to remove _arrays.
+
+Mon Apr 12 19:22:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * filedoalloc.c (_POSIX_SOURCE): Remove definition.
+ * fileops.c (_POSIX_SOURCE): Likewise.
+ * iopopen.c (_POSIX_SOURCE): Likewise.
+ * procbuf.cc (_POSIX_SOURCE): Likewise.
+ * libioP.h (_POSIX_SOURCE): And define it here.
+ * stdiostream.cc: Include libioP.h before others.
+
+Fri Apr 2 15:11:58 1999 H.J. Lu (hjl@gnu.org)
+
+ * libio/configure.in (gxx_include_dir): Handle it.
+ * libio/Makefile.in: Likewise.
+
+Wed Mar 24 22:36:45 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * configure.in (EXEEXT): Define.
+ (compiler_name): Use.
+
+1999-03-24 Alexandre Oliva <oliva@dcc.unicamp.br>
-Mon Nov 23 09:44:26 1998 Richard Henderson <rth@cygnus.com>
+ * gen-params (CONFIG_NM): `test ... -o ...' is not portable.
- * configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.
+Thu Mar 11 01:07:55 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * configure.in: Cleanup and add mh-*pic handling for arm, powerpc
+
+Fri Mar 5 01:15:15 1999 H.J. Lu (hjl@gnu.org)
+
+ * config/linuxlibc1.mt (MT_CFLAGS): Add -D_G_STDIO_USES_LIBIO
+ -D_G_HAVE_WEAK_SYMBOL.
+
+ * genops.c: Add the proper weak alias if _G_STDIO_USES_LIBIO
+ and _G_HAVE_WEAK_SYMBOL are defined.
+ * iofclose.c: Likewise.
+ * iofeof.c: Likewise.
+ * ioferror.c: Likewise.
+ * iogetc.c: Likewise.
+ * ioputc.c: Likewise.
+ * iovsprintf.c: Likewise.
+ * iovsscanf.c: Likewise.
+
+Sun Feb 28 22:39:17 1999 Geoffrey Noer <noer@cygnus.com>
+
+ * configure.in: Check cygwin*, not cygwin32*.
+
+Wed Feb 10 09:25:48 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * gen-params (VTABLE_LABEL_PREFIX): Handle windows32.
+
+Wed Feb 3 22:05:41 1999 H.J. Lu (hjl@gnu.org)
+ Jeffrey A Law (law@cygnus.com)
+
+ * Makefile.in (iostream.list): Remove dependency on
+ stamp-picdir.
+ ($(LIBIOSTREAM_DEP)): Depend on stamp-picdir.
+ ($(LIBIO_FILES)): Similarly.
+
+ * config.shared (all): Make $(PICDIR) concurrent.
+
+1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
+
+ * configure.in (compiler_name): Add check to detect if this
+ language's compiler has been built.
+
+1998-10-12 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * config.shared (depend.new): Delete libc-lock.h from
+ dependencies, and fix _G_config.h -> $(_G_CONFIG_H) rule.
+ * depend: Rebuilt.
+
+Sun Oct 11 01:51:42 1998 Jeffrey A Law (law@cygnus.com)
+
+ * config.shared (depend.new): Fix typo.
+ * depend: Rebuilt.
+
+1998-09-09 Manfred Hollstein <manfred@s-direktnet.de>
+
+ * configure.in (INSTALLDIR): Fix comment about changing INSTALLDIR's
+ value; don't change its value if --enable-version-specific-runtime-libs
+ has been specified.
+
+Wed Sep 2 21:05:39 1998 H.J. Lu (hjl@gnu.org)
+
+ * configure.in: Fix INSTALLDIR replacement for cross-compile.
+
+Sun Aug 30 22:27:02 1998 Lutz Wohlrab <lutz.wohlrab@informatik.tu-chemnitz.de>
+
+ * dbz/Makefile.in: Avoid assumptions about "tr" behaves when
+ LANG is set to something other than English.
+
+Sun Aug 30 22:17:00 1998 H.J. Lu (hjl@gnu.org)
+
+ * config.shared: Set libsubdir.
1998-08-25 14:34 Ulrich Drepper <drepper@cygnus.com>
* libio/iogetline.c (_IO_getline_info): Don't read anything for
N == 0. Patch by HJ Lu.
+1998-08-23 Mark Mitchell <mark@markmitchell.com>
+
+ * iomanip.h: Use __extension__ for `extern' explicit template
+ instantiations.
+
1998-08-17 Ulrich Drepper <drepper@cygnus.com>
* strfile.h: Define __PMT if not already defined.
diff --git a/contrib/libio/Makefile.in b/contrib/libio/Makefile.in
index 724372a0b8bf..1d4123b523c3 100644
--- a/contrib/libio/Makefile.in
+++ b/contrib/libio/Makefile.in
@@ -22,6 +22,7 @@ VERSION = 2.8.0
_G_CONFIG_H=_G_config.h
tooldir = $(exec_prefix)/$(target)
INSTALLDIR = $(libdir)
+gxx_include_dir=${includedir}/g++
IO_OBJECTS = filedoalloc.o floatconv.o genops.o fileops.o \
iovfprintf.o \
@@ -88,9 +89,13 @@ test: test.o libio.a
tpipe: tpipe.o libio.a
$(CC) $(CFLAGS) -o tpipe tpipe.o libio.a
-iostream.list: stamp-picdir $(_G_CONFIG_H) $(LIBIOSTREAM_DEP)
+iostream.list: $(_G_CONFIG_H) $(LIBIOSTREAM_DEP)
@echo "$(LIBIOSTREAM_USE)"> iostream.list
+# The "pic" subdir must be created before we can put any object
+# files into it.
+$(LIBIOSTREAM_DEP) $(LIBIO_OBJECTS): stamp-picdir
+
stmp-stdio:
@rootme=`pwd`/ ; export rootme; cd stdio ; \
$(MAKE) $(FLAGS_TO_PASS) stdio.list
diff --git a/contrib/libio/config.shared b/contrib/libio/config.shared
index 011263a8a1fa..6cda566eb7bd 100644
--- a/contrib/libio/config.shared
+++ b/contrib/libio/config.shared
@@ -13,7 +13,8 @@
#
# You should have received a copy of the GNU General Public License
# along with GNU CC; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA. */
# File descriptor usage:
# 1: All macros which need to be re-definable by any target fragments
@@ -79,6 +80,7 @@ echo "exec_prefix = ${exec_prefix-'${prefix}'}"
echo 'bindir = $(exec_prefix)/bin'
echo 'libdir = $(exec_prefix)/lib'
+echo 'libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)'
echo 'datadir = $(prefix)/lib'
echo 'mandir = $(prefix)/man'
@@ -179,13 +181,14 @@ if [ -z "${ALL}" ] ; then
fi
fi
-ALL='$(PICDIR)'" ${ALL}"
-
echo >&2 "all: ${ALL} multi-all"
if [ "${SUBDIRS}" != "" ] ; then
echo >&2 ' @rootme=`pwd`/; export rootme; \'
echo >&2 ' $(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do'
fi
+if [ "${LIBDIR}" = "yes" ]; then
+ echo >&2 "${ALL} "'multi-all: $(PICDIR)'
+fi
echo >&2 '.PHONY: all'
echo >&2 ''
@@ -473,8 +476,8 @@ depend.new:
>depend.new
$(CXX) -M $(CXXINCLUDES) $(DEPEND_SOURCES) \
| sed -e 's|$(srcdir)/|$$(srcdir)/|g' \
- -e 's| [^ ]_G_config.h| $$(_G_CONFIG_H)|g \
- -e 's| /[^ ]*||g' \
+ -e 's| [^ ]*_G_config.h| $$(_G_CONFIG_H)|g' \
+ -e 's| /[^ ]*||g' -e 's| libc-lock\.h||' \
-e '/^[ ]*\\$$/d' -e 's/^[ ]*$$//' \
| sed -e 's|$$(srcdir)/[.][.]|$$(srcdir)/$$(MULTISRCTOP)..|g' \
-e 's|$$(srcdir)/\([^/]*[.]c\)|\1|' \
diff --git a/contrib/libio/configure.in b/contrib/libio/configure.in
index 5cb091daac65..ac494296fe2f 100644
--- a/contrib/libio/configure.in
+++ b/contrib/libio/configure.in
@@ -2,6 +2,25 @@
# necessary for a configure script to process the program in
# this directory. For more information, look at ../configure.
+# If the language specific compiler does not exist, but the "gcc" directory
+# does, we do not build anything. Note, $r is set by the top-level Makefile.
+# Note that when we look for the compiler, we search both with and without
+# extension to handle cross and canadian cross builds.
+# Note that if $norecursion is set we're being called from config.status,
+# so don't check for the compiler; we might be doing a make clean.
+compiler_name=cc1plus
+rm -f skip-this-dir
+if test -n "$r" && [ -z "$norecursion" ] ; then
+ if test -d "$r"/gcc; then
+ if test -f "$r"/gcc/$compiler_name \
+ || test -f "$r"/gcc/$compiler_name.exe; then
+ true
+ else
+ echo "rm -f multilib.out" > skip-this-dir
+ fi
+ fi
+fi
+
if [ "${srcdir}" = "." ] ; then
if [ "${with_target_subdir}" != "." ] ; then
topsrcdir=${with_multisrctop}../..
@@ -53,15 +72,13 @@ esac
if [ "${shared}" = "yes" ]; then
case "${target}" in
- hppa*-*) frags="${frags} ../../config/mh-papic" ;;
- i[3456]86-*) frags="${frags} ../../config/mh-x86pic" ;;
- alpha*-*-linux*) frags="${frags} ../../config/mh-elfalphapic" ;;
-
- # There doesn't seem to be a simpler way to say all-ppc except AIX
- *-*-aix*) ;;
- powerpc*-* | ppc*-*) frags="${frags} ../../config/mh-ppcpic" ;;
-
- *) frags="${frags} ../../config/mh-${target_cpu}pic" ;;
+ alpha*-*-linux*) frags="${frags} ../../config/mh-elfalphapic" ;;
+ arm*-*-*) frags="${frags} ../../config/mh-armpic" ;;
+ hppa*-*-*) frags="${frags} ../../config/mh-papic" ;;
+ i[3456]86-*-*) frags="${frags} ../../config/mh-x86pic" ;;
+ powerpc*-*-aix*) ;;
+ powerpc*-*-*) frags="${frags} ../../config/mh-ppcpic" ;;
+ *-*-*) frags="${frags} ../../config/mh-${target_cpu}pic" ;;
esac
fi
@@ -120,7 +137,7 @@ LIBDIR=yes
TO_TOPDIR=../
ALL='$(_G_CONFIG_H) libio.a libiostream.a iostream.list'
case "${target}" in
- *-*-cygwin32*)
+ *-*-cygwin*)
XCINCLUDES='-I. -I$(srcdir) -I$(srcdir)/../winsup/include'
XCXXINCLUDES='-I. -I$(srcdir) -I$(srcdir)/../winsup/include'
;;
@@ -140,15 +157,43 @@ fi
# post-target:
-# If cross-compiling, don't build gperf or the utils. They
-# will get built by the target compiler, which is confusing.
-# We cannot test the installation. We install in $(tooldir).
+# If cross-compiling, we install in $(tooldir)/lib or in $(libsubdir)
+# depending on --enable-version-specific-runtime-libs.
if [ -n "${with_cross_host}" ] ; then
rm -f Makefile.tem
sed \
- -e 's|INSTALLDIR.*=.*$|INSTALLDIR = $(tooldir)/lib|' \
+ -e 's|\(^[ ]*INSTALLDIR[ ]*=[ ]*\)\$(libdir)|\1$(tooldir)/lib|' \
Makefile >Makefile.tem
mv -f Makefile.tem Makefile
fi
. ${topsrcdir}/config-ml.in
+
+gxx_include_dir=
+# Specify the g++ header file directory
+# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
+if test "${with_gxx_include_dir+set}" = set; then
+ withval="$with_gxx_include_dir"
+ case "${withval}" in
+ yes)
+ echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
+ exit 1
+ ;;
+ no) ;;
+ *) gxx_include_dir=$with_gxx_include_dir ;;
+ esac
+fi
+
+if test x${gxx_include_dir} = x; then
+ if test x${enable_version_specific_runtime_libs} = xyes; then
+ gxx_include_dir='${libsubdir}/include/g++'
+ else
+ . ${topsrcdir}/config.if
+ gxx_include_dir='${prefix}/include/g++'-${libstdcxx_interface}
+ fi
+fi
+
+rm -f Makefile.tem
+sed -e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
+ Makefile >Makefile.tem
+mv -f Makefile.tem Makefile
diff --git a/contrib/libio/dbz/Makefile.in b/contrib/libio/dbz/Makefile.in
index 6d6dc2874855..0fd956414148 100644
--- a/contrib/libio/dbz/Makefile.in
+++ b/contrib/libio/dbz/Makefile.in
@@ -168,7 +168,7 @@ stamp-r5: stamp-r4
stamp-r6: stamp-r5
: try it without tags, case-insensitive, with case perversions
./rdbz -E 1000 -0 -p '0 b 1' dbase2
- tr '[A-M][n-z]' '[a-m][N-Z]' <dbase2 >dbase.ick
+ tr 'ABCDEFGHIJKLMnopqrstuvwxyz' 'abcdefghijklmNOPQRSTUVWXYZ' <dbase2 >dbase.ick
./rdbz -E 1000 -x dbase2 dbase.ick >dbase.temp
cmp dbase.used dbase.temp
rm -f dbase.temp dbase.ick
diff --git a/contrib/libio/depend b/contrib/libio/depend
index b7335fdb1abb..15888c4574a7 100644
--- a/contrib/libio/depend
+++ b/contrib/libio/depend
@@ -26,7 +26,7 @@ editbuf.o: editbuf.cc \
$(srcdir)/editbuf.h \
$(srcdir)/fstream.h \
$(srcdir)/iostream.h \
- $(srcdir)/streambuf.h
+ $(srcdir)/streambuf.h
filebuf.o: filebuf.cc \
$(srcdir)/iostreamP.h \
$(srcdir)/streambuf.h \
@@ -85,13 +85,13 @@ isscan.o: isscan.cc \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H) \
$(srcdir)/iostream.h \
- $(srcdir)/streambuf.h
+ $(srcdir)/streambuf.h
osform.o: osform.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H) \
$(srcdir)/iostream.h \
- $(srcdir)/streambuf.h
+ $(srcdir)/streambuf.h
parsestream.o: parsestream.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -117,7 +117,7 @@ sbform.o: sbform.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H) \
- $(srcdir)/streambuf.h
+ $(srcdir)/streambuf.h
sbgetline.o: sbgetline.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -127,7 +127,7 @@ sbscan.o: sbscan.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H) \
- $(srcdir)/streambuf.h
+ $(srcdir)/streambuf.h
stdiostream.o: stdiostream.cc \
$(srcdir)/stdiostream.h \
$(srcdir)/iostream.h \
@@ -138,7 +138,10 @@ stdiostream.o: stdiostream.cc \
stdstrbufs.o: stdstrbufs.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
- $(srcdir)/libio.h $(_G_CONFIG_H)
+ $(srcdir)/libio.h $(_G_CONFIG_H) \
+ $(srcdir)/stdiostream.h \
+ $(srcdir)/iostream.h \
+ $(srcdir)/streambuf.h
stdstreams.o: stdstreams.cc \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -197,10 +200,22 @@ iofdopen.o: iofdopen.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H)
+iofeof.o: iofeof.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
+ioferror.o: ioferror.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
iofflush.o: iofflush.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H)
+iofflush_u.o: iofflush_u.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
iofgetpos.o: iofgetpos.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -241,6 +256,10 @@ iofwrite.o: iofwrite.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H)
+iogetc.o: iogetc.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
iogetdelim.o: iogetdelim.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -277,6 +296,10 @@ ioprintf.o: ioprintf.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H)
+ioputc.o: ioputc.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
ioputs.o: ioputs.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
@@ -341,6 +364,10 @@ outfloat.o: outfloat.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
$(srcdir)/libio.h $(_G_CONFIG_H)
+peekc.o: peekc.c \
+ $(srcdir)/libioP.h \
+ $(srcdir)/iolibio.h \
+ $(srcdir)/libio.h $(_G_CONFIG_H)
stdfiles.o: stdfiles.c \
$(srcdir)/libioP.h \
$(srcdir)/iolibio.h \
diff --git a/contrib/libio/filedoalloc.c b/contrib/libio/filedoalloc.c
index 5c62280c14bb..52b554400c21 100644
--- a/contrib/libio/filedoalloc.c
+++ b/contrib/libio/filedoalloc.c
@@ -42,9 +42,6 @@
/* Modified for GNU iostream by Per Bothner 1991, 1992. */
-#ifndef _POSIX_SOURCE
-# define _POSIX_SOURCE
-#endif
#include "libioP.h"
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/contrib/libio/fileops.c b/contrib/libio/fileops.c
index c4406340704b..54e13d3f18fe 100644
--- a/contrib/libio/fileops.c
+++ b/contrib/libio/fileops.c
@@ -25,9 +25,6 @@
General Public License. */
-#ifndef _POSIX_SOURCE
-# define _POSIX_SOURCE
-#endif
#include "libioP.h"
#include <fcntl.h>
#include <sys/types.h>
diff --git a/contrib/libio/gen-params b/contrib/libio/gen-params
index 37ee742e21c3..afb8f3b03c04 100755
--- a/contrib/libio/gen-params
+++ b/contrib/libio/gen-params
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 1992, 1993, 1994 Free Software Foundation
+# Copyright (C) 1992, 1993, 1994, 1997, 1998, 1999 Free Software Foundation
#
# This file is part of the GNU IO Library. This library is free
# software; you can redistribute it and/or modify it under the
@@ -72,8 +72,9 @@ fi
# This program is used to test if the compiler prepends '_' before identifiers.
# It is also used to check the g++ uses '$' or '.' various places.
-if test -z "${NAMES_HAVE_UNDERSCORE}" -o -z "${DOLLAR_IN_LABEL}" \
- -o -z "${VTABLE_LABEL_PREFIX}"; then
+if test -z "${NAMES_HAVE_UNDERSCORE}" \
+ || test -z "${DOLLAR_IN_LABEL}" \
+ || test -z "${VTABLE_LABEL_PREFIX}"; then
cat >dummy.h <<!EOF!
#ifdef __GNUG__
#pragma interface
@@ -124,9 +125,13 @@ if test -z "${NAMES_HAVE_UNDERSCORE}" -o -z "${DOLLAR_IN_LABEL}" \
>>dummy.out
# Now we get rid of the <>, and any other junk on the nm output line.
# (We get rid of <filebuf> in case nm included debugging output for
- # class filebuf itself.) Finally, we select the first line of
- # the result, and hope that's what we wanted!
- vtab_name=`${SED} -n -e '/<filebuf>/d' -e 's/^.*<\(.*\)>.*$/\1/p' \
+ # class filebuf itself.) On windows32, we also need to delete the
+ # unique sections (.data$_vt$*), otherwise we get the wrong result.
+ # Finally, we select the first line of the result, and hope that's
+ # what we wanted!
+ vtab_name=`${SED} -n -e '/<filebuf>/d' \
+ -e '/\.data[$_.]<_vt\$7filebuf>/d' \
+ -e 's/^.*<\(.*\)>.*$/\1/p' \
<dummy.out | ${SED} -n -e '1p'`
case "${vtab_name}" in
*7filebuf) echo "#define ${macro_prefix}VTABLE_LABEL_HAS_LENGTH 1" ;;
diff --git a/contrib/libio/iomanip.h b/contrib/libio/iomanip.h
index d80e98ed6047..7c0232ed1e16 100644
--- a/contrib/libio/iomanip.h
+++ b/contrib/libio/iomanip.h
@@ -68,8 +68,8 @@ public:
};
#ifdef __GNUG__
-extern template class smanip<int>;
-extern template class smanip<ios::fmtflags>;
+__extension__ extern template class smanip<int>;
+__extension__ extern template class smanip<ios::fmtflags>;
#endif
template<class TP>
@@ -81,10 +81,14 @@ inline ostream& operator<<(ostream& o, const smanip<TP>& m)
{ (*m._f)(o, m._a); return o;}
#ifdef __GNUG__
-extern template istream& operator>>(istream&, const smanip<int>&);
-extern template istream& operator>>(istream&, const smanip<ios::fmtflags>&);
-extern template ostream& operator<<(ostream&, const smanip<int>&);
-extern template ostream& operator<<(ostream&, const smanip<ios::fmtflags>&);
+__extension__ extern
+template istream& operator>>(istream&, const smanip<int>&);
+__extension__ extern
+template istream& operator>>(istream&, const smanip<ios::fmtflags>&);
+__extension__ extern
+template ostream& operator<<(ostream&, const smanip<int>&);
+__extension__ extern
+template ostream& operator<<(ostream&, const smanip<ios::fmtflags>&);
#endif
//-----------------------------------------------------------------------------
diff --git a/contrib/libio/iopopen.c b/contrib/libio/iopopen.c
index 59d4fc3f0ed2..58f97495c11b 100644
--- a/contrib/libio/iopopen.c
+++ b/contrib/libio/iopopen.c
@@ -24,9 +24,6 @@
other reasons why the executable file might be covered by the GNU
General Public License. */
-#ifndef _POSIX_SOURCE
-# define _POSIX_SOURCE
-#endif
#include "libioP.h"
#if _IO_HAVE_SYS_WAIT
#include <signal.h>
diff --git a/contrib/libio/iostream.cc b/contrib/libio/iostream.cc
index 4b1d9d80a9b6..4b75fca764dd 100644
--- a/contrib/libio/iostream.cc
+++ b/contrib/libio/iostream.cc
@@ -71,6 +71,8 @@ int skip_ws(streambuf* sb)
istream& istream::get(char& c)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
int ch = _strbuf->sbumpc();
if (ch == EOF) {
set(ios::eofbit|ios::failbit);
@@ -80,6 +82,8 @@ istream& istream::get(char& c)
c = (char)ch;
_gcount = 1;
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
_gcount = 0;
@@ -102,10 +106,12 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
{
_gcount = 0;
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* sb = _strbuf;
if (delim == EOF) {
_gcount = sb->ignore(n);
- return *this;
+ goto unlock;
}
for (;;) {
#if 0
@@ -122,6 +128,9 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
if (ch == delim)
break;
}
+ unlock:
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -129,9 +138,13 @@ istream& istream::ignore(int n /* = 1 */, int delim /* = EOF */)
istream& istream::read(char *s, streamsize n)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
_gcount = _strbuf->sgetn(s, n);
if (_gcount != n)
set(ios::failbit|ios::eofbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
_gcount = 0;
@@ -184,11 +197,15 @@ streampos istream::tellg()
istream& istream::operator>>(char& c)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
int ch = _strbuf->sbumpc();
if (ch == EOF)
set(ios::eofbit|ios::failbit);
else
c = (char)ch;
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -200,6 +217,8 @@ istream::operator>> (char* ptr)
int w = width(0);
if (ipfx0())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* sb = _strbuf;
for (;;)
{
@@ -219,6 +238,8 @@ istream::operator>> (char* ptr)
}
if (p == ptr)
set(ios::failbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
*p = '\0';
return *this;
@@ -234,6 +255,9 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
{
if (!stream.ipfx0())
return 0;
+ int retval;
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ stream._strbuf);
register streambuf* sb = stream.rdbuf();
int base = 10;
int ndigits = 0;
@@ -254,7 +278,7 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
ch = sb->sbumpc();
if (ch == EOF) {
val = 0;
- return 1;
+ goto unlock;
}
if (ch == 'x' || ch == 'X') {
base = 16;
@@ -290,19 +314,26 @@ static int read_int(istream& stream, unsigned LONGEST& val, int& neg)
if (ndigits == 0)
goto fail;
else
- return 1;
+ goto unlock;
}
ndigits++;
val = base * val + digit;
ch = sb->sbumpc();
}
- return 1;
+ unlock:
+ retval = 1;
+ goto out;
fail:
stream.set(ios::failbit);
- return 0;
+ retval = 0;
+ goto out;
eof_fail:
stream.set(ios::failbit|ios::eofbit);
- return 0;
+ retval = 0;
+ out:
+ stream.isfx();
+ _IO_cleanup_region_end (0);
+ return retval;
}
#define READ_INT(TYPE) \
@@ -334,6 +365,8 @@ istream& istream::operator>>(long double& x)
{
if (ipfx0())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
#if _G_HAVE_LONG_DOUBLE_IO
scan("%Lg", &x);
#else
@@ -341,6 +374,8 @@ istream& istream::operator>>(long double& x)
scan("%lg", &y);
x = y;
#endif
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -348,20 +383,34 @@ istream& istream::operator>>(long double& x)
istream& istream::operator>>(double& x)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
scan("%lg", &x);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
istream& istream::operator>>(float& x)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
scan("%g", &x);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
istream& istream::operator>>(register streambuf* sbuf)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* inbuf = rdbuf();
// FIXME: Should optimize!
for (;;) {
@@ -375,6 +424,8 @@ istream& istream::operator>>(register streambuf* sbuf)
break;
}
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -789,8 +840,8 @@ ostream& ostream::operator<<(const char *s)
if (flags() & ios::left && padding > 0) // Left adjustment.
if (_IO_padn(sbuf, fill_char, padding) != padding)
set(ios::badbit);
- osfx();
failed:
+ osfx();
_IO_cleanup_region_end (0);
}
return *this;
diff --git a/contrib/libio/iostream.h b/contrib/libio/iostream.h
index f3de3639906a..19fbf8a4d95c 100644
--- a/contrib/libio/iostream.h
+++ b/contrib/libio/iostream.h
@@ -173,6 +173,7 @@ protected:
int get() { if (!ipfx1()) return EOF;
else { int ch = _strbuf->sbumpc();
if (ch == EOF) set(ios::eofbit);
+ isfx();
return ch;
} }
int peek();
diff --git a/contrib/libio/isgetline.cc b/contrib/libio/isgetline.cc
index 02b34927eb8f..5e48a000c09a 100644
--- a/contrib/libio/isgetline.cc
+++ b/contrib/libio/isgetline.cc
@@ -37,6 +37,8 @@ istream& istream::getline(char* buf, int len, char delim)
int ch;
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
streambuf *sb = rdbuf();
_gcount = _IO_getline_info(sb, buf, len - 1, delim, -1, &ch);
if (ch != EOF)
@@ -48,6 +50,8 @@ istream& istream::getline(char* buf, int len, char delim)
set(ios::failbit);
sb->sungetc(); // Leave delimiter unread.
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else
ch = EOF;
@@ -67,11 +71,15 @@ istream& istream::get(char* buf, int len, char delim)
}
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
streambuf *sbuf = rdbuf();
int ch;
_gcount = _IO_getline_info(sbuf, buf, len - 1, delim, -1, &ch);
if (_gcount == 0 && ch == EOF)
set(ios::failbit|ios::eofbit);
+ isfx();
+ _IO_cleanup_region_end (0);
}
buf[_gcount] = '\0';
return *this;
@@ -123,6 +131,8 @@ char *_sb_readline (streambuf *sb, long& total, char terminator)
istream& istream::gets(char **s, char delim /* = '\n' */)
{
if (ipfx1()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
long size = 0;
streambuf *sb = rdbuf();
*s = _sb_readline (sb, size, delim);
@@ -132,6 +142,8 @@ istream& istream::gets(char **s, char delim /* = '\n' */)
if (_gcount == 0)
set(ios::failbit);
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
else {
_gcount = 0;
diff --git a/contrib/libio/isgetsb.cc b/contrib/libio/isgetsb.cc
index 55617e649a0f..655c972589ab 100644
--- a/contrib/libio/isgetsb.cc
+++ b/contrib/libio/isgetsb.cc
@@ -31,6 +31,8 @@ istream& istream::get(streambuf& sb, char delim /* = '\n' */)
_gcount = 0;
if (ipfx1())
{
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
register streambuf* isb = rdbuf();
for (;;)
{
@@ -54,6 +56,8 @@ istream& istream::get(streambuf& sb, char delim /* = '\n' */)
if (delimp != NULL)
break;
}
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
diff --git a/contrib/libio/isscan.cc b/contrib/libio/isscan.cc
index 64d4bc682f82..977559c2cba5 100644
--- a/contrib/libio/isscan.cc
+++ b/contrib/libio/isscan.cc
@@ -29,10 +29,14 @@ the executable file might be covered by the GNU General Public License. */
istream& istream::scan(const char *format ...)
{
if (ipfx0()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
va_list ap;
va_start(ap, format);
_strbuf->vscan(format, ap, this);
va_end(ap);
+ isfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
@@ -40,6 +44,12 @@ istream& istream::scan(const char *format ...)
istream& istream::vscan(const char *format, _IO_va_list args)
{
if (ipfx0())
+ {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
_strbuf->vscan(format, args, this);
+ isfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
diff --git a/contrib/libio/libioP.h b/contrib/libio/libioP.h
index d41c46619f0a..629e4fd8cf65 100644
--- a/contrib/libio/libioP.h
+++ b/contrib/libio/libioP.h
@@ -23,18 +23,25 @@
other reasons why the executable file might be covered by the GNU
General Public License. */
+#ifndef _POSIX_SOURCE
+# define _POSIX_SOURCE
+#endif
+
#include <errno.h>
#ifndef __set_errno
# define __set_errno(Val) errno = (Val)
#endif
-#if defined __GLIBC__ && __GLIBC__ >= 2
-# if __GLIBC_MINOR__ > 0
-# include <bits/libc-lock.h>
+
+#ifdef _IO_MTSAFE_IO
+# if defined __GLIBC__ && __GLIBC__ >= 2
+# if __GLIBC_MINOR__ > 0
+# include <bits/libc-lock.h>
+# else
+# include <libc-lock.h>
+# endif
# else
-# include <libc-lock.h>
-# endif
-#else
/*# include <comthread.h>*/
+# endif
#endif
#include "iolibio.h"
diff --git a/contrib/libio/procbuf.cc b/contrib/libio/procbuf.cc
index 1c79ce4ce0f7..eb6d50e7797f 100644
--- a/contrib/libio/procbuf.cc
+++ b/contrib/libio/procbuf.cc
@@ -28,7 +28,6 @@ the executable file might be covered by the GNU General Public License. */
#pragma implementation
#endif
-#define _POSIX_SOURCE
#include "libioP.h"
#include "procbuf.h"
diff --git a/contrib/libio/stdio/ChangeLog b/contrib/libio/stdio/ChangeLog
index 1e2975d76448..e4a185f3f2b9 100644
--- a/contrib/libio/stdio/ChangeLog
+++ b/contrib/libio/stdio/ChangeLog
@@ -1,6 +1,14 @@
-Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
- * egcs-1.1.2 Released.
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
1997-09-04 16:11 Ulrich Drepper <drepper@cygnus.com>
diff --git a/contrib/libio/stdiostream.cc b/contrib/libio/stdiostream.cc
index bc9bef08ab67..ee0907b209f4 100644
--- a/contrib/libio/stdiostream.cc
+++ b/contrib/libio/stdiostream.cc
@@ -28,8 +28,8 @@ the executable file might be covered by the GNU General Public License. */
#pragma implementation
#endif
-#include <stdiostream.h>
#include "libioP.h"
+#include <stdiostream.h>
// A stdiobuf is "tied" to a FILE object (as used by the stdio package).
// Thus a stdiobuf is always synchronized with the corresponding FILE,
diff --git a/contrib/libio/streambuf.h b/contrib/libio/streambuf.h
index bc734bc75b0a..8785d96c694e 100644
--- a/contrib/libio/streambuf.h
+++ b/contrib/libio/streambuf.h
@@ -130,7 +130,7 @@ class ios : public _ios_fields {
typedef __fmtflags fmtflags;
typedef int iostate;
typedef int openmode;
- typedef int streamsize;
+ typedef _IO_ssize_t streamsize;
enum io_state {
goodbit = _IOS_GOOD,
eofbit = _IOS_EOF,
@@ -482,7 +482,9 @@ inline ios::~ios() {
#ifndef _IO_NEW_STREAMS
if (!(_flags & (unsigned int)ios::dont_close)) delete rdbuf();
#endif
- if (_arrays) delete [] _arrays;
+ // It is safe to use naked operator delete[] as we know elements have no
+ // dtor, and g++ does not add a new[] cookie for such cases.
+ operator delete[] (_arrays);
}
} // extern "C++"
#endif /* _STREAMBUF_H */
diff --git a/contrib/libio/tests/ChangeLog b/contrib/libio/tests/ChangeLog
index 1ea7bb1fcf3d..324137dee5c3 100644
--- a/contrib/libio/tests/ChangeLog
+++ b/contrib/libio/tests/ChangeLog
@@ -1,6 +1,14 @@
-Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
- * egcs-1.1.2 Released.
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
diff --git a/contrib/libio/tests/Makefile.in b/contrib/libio/tests/Makefile.in
index f93b30046bb2..b70639a68096 100644
--- a/contrib/libio/tests/Makefile.in
+++ b/contrib/libio/tests/Makefile.in
@@ -13,7 +13,8 @@
#
# You should have received a copy of the GNU General Public License
# along with GNU CC; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA. */
srcdir = .
diff --git a/contrib/libio/testsuite/ChangeLog b/contrib/libio/testsuite/ChangeLog
index c7c1fcf79f27..497b141c9d1d 100644
--- a/contrib/libio/testsuite/ChangeLog
+++ b/contrib/libio/testsuite/ChangeLog
@@ -1,12 +1,29 @@
-Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
+Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
- * egcs-1.1.2 Released.
+ * gcc-2.95.1 Released.
+
+Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Sun Jul 25 23:40:51 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95 Released.
+
+Wed Nov 25 01:00:07 1998 Marc Espie <espie@quatramaran.ens.fr>
+
+ * Makefile.in (just-check): Ignore errors.
Sat Jun 27 23:59:35 1998 Carlo Wood <carlo@runaway.xs4all.nl>
* lib/libio.exp (test_libio): Reset ld_library_path before appending
the same path(s) again.
+Tue Jun 9 11:23:42 1998 Gavin Koch <gavin@cygnus.com>
+
+ * Makefile.in (EXPECT) : Look for "expect" in the correct
+ place.
+
Sat Sep 6 00:49:31 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/libio.exp (test_libio): Lose -L.. before -lio, may as well
diff --git a/contrib/libio/testsuite/Makefile.in b/contrib/libio/testsuite/Makefile.in
index 75465243d4ad..d1795d00df60 100644
--- a/contrib/libio/testsuite/Makefile.in
+++ b/contrib/libio/testsuite/Makefile.in
@@ -13,7 +13,8 @@
#
# You should have received a copy of the GNU General Public License
# along with GNU CC; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA. */
srcdir = libio.tests
@@ -23,8 +24,8 @@ CXXFLAGS = -g
CC = gcc
CXX = gcc
-EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
- echo $${rootme}/../../expect/expect ; \
+EXPECT = `if [ -f $${rootme}/../../../expect/expect ] ; then \
+ echo $${rootme}/../../../expect/expect ; \
else echo expect ; fi`
RUNTEST = $(RUNTEST_FOR_TARGET)
@@ -80,10 +81,10 @@ site.exp: ./config.status Makefile
-@rm -f ./tmp?
just-check: site.exp
- rootme=`pwd`; export rootme; \
+ -rootme=`pwd`; export rootme; \
srcdir=${srcdir} ; export srcdir ; \
EXPECT=${EXPECT} ; export EXPECT ; \
- if [ -f $${rootme}/../../expect/expect ] ; then \
+ if [ -f $${rootme}/../../../expect/expect ] ; then \
TCL_LIBRARY=$${srcdir}/../../tcl/library ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) $(RUNTESTFLAGS)