+Fri Sep 26 20:56:41 1997 Ulrich Drepper <drepper@rtl.cygnus.com>
+
+ Based on a patch by H.J. Lu (hjl@gnu.ai.mit.edu).
+
+ * Makefile.in (STDIO_OBJECTS): New. Defined as stdfiles.o.
+ (LIBIO_OBJECTS): Add $(STDIO_OBJECTS).
+ (PICFLAG): New, empty. moved to here from config.shared.
+
+ * config.shared (DISTCLEAN): Add target-mkfrag.
+ (PICFLAG): Removed.
+
+ * configure.in (*-linux-gnulibc1): Remove warning.
+ (*-linux-gnu): Use linux.mt mtsafe.mt.
+ (alpha-*-linux*): Use mh-elfalphapic.
+
+ * gen-params (_G_ullong): Also check unsigned long long int.
+ (_G_llong): Also check long long int.
+
+ * libio.h (_IO_lock_t): Add support for the Linux libc 5.
+ (_IO_peekc): Defined as _IO_peekc_unlocked if _IO_MTSAFE_IO
+ is not defined.
+
+ * iostream.cc (__cvt_double): Fix a typo in declaration.
+ (info): Use expr != 0 to initialize the bit fields. Don't
+ initialize "extra" for the Linux libc 5.
+
+ * streambuf.h (_G_NEED_STDARG_H): Changed from _IO_NEED_STDARG_H.
+
+ * config/linux.mt (STDIO_OBJECTS): New, empty.
+ (MT_CFLAGS): Removed.
+
+ * config/linuxlibc1.mt: Rewrite. it's identical to linux.mt but
+ IO_OBJECTS mentions files not in early libc5 versions.
+
+ * config/mtsafe.mt: New.
+
+ * dbz/Makefile.in (check): Support make -j.
+
+ * tests/tFile.cc (tempfile): Fix a typo.
+
Fri Sep 19 11:52:25 1997 Jim Wilson <wilson@cygnus.com>
* Makefile.in (LIBIO_OBJECTS): Depend on _G_CONFIG_H.
outfloat.o strops.o iofclose.o iopopen.o ioungetc.o peekc.o iogetc.o \
ioputc.o iofeof.o ioferror.o
+STDIO_OBJECTS = stdfiles.o
+
# These emulate stdio functionality, but with a different name (_IO_ungetc
# instead of ungetc), and using _IO_FILE instead of FILE.
# They are not needed for C++ iostream, nor stdio, though some stdio
OSPRIM_OBJECTS = ioprims.o iostrerror.o cleanup.o
LIBIOSTREAM_OBJECTS = $(IO_OBJECTS) $(IOSTREAM_OBJECTS) $(OSPRIM_OBJECTS)
-LIBIO_OBJECTS = $(IO_OBJECTS) $(STDIO_WRAP_OBJECTS) $(OSPRIM_OBJECTS) stdfiles.o
+LIBIO_OBJECTS = $(IO_OBJECTS) $(STDIO_WRAP_OBJECTS) $(OSPRIM_OBJECTS) \
+ $(STDIO_OBJECTS)
LIBIOSTREAM_DEP = $(LIBIOSTREAM_OBJECTS)
LIBIOSTREAM_USE = $(LIBIOSTREAM_OBJECTS)
USER_INCLUDES = *.h
+PICFLAG =
+
#### package, host, target, and site dependent Makefile fragments come in here.
##
echo 'CXXFLAGS = -g -O'
echo 'LIBCFLAGS = $(CFLAGS)'
echo 'LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates'
-echo 'PICFLAG ='
if [ "${LIBDIR}" = "yes" ]; then
echo 'PICDIR = stamp-picdir'
else
MOSTLYCLEAN="${MOSTLYCLEAN-*.o pic stamp-picdir core ${EXTRA_MOSTLYCLEAN}} `if test -n "${TOUCH_ON_COMPILE}"; then echo stamp; else true; fi`"
CLEAN="${CLEAN-${TARGETPROG} ${TARGETLIB}}"
-DISTCLEAN="${DISTCLEAN-config.status Makefile *~ Make.pack multilib.out ${EXTRA_DISTCLEAN-}}"
+DISTCLEAN="${DISTCLEAN-config.status Makefile *~ Make.pack target-mkfrag multilib.out ${EXTRA_DISTCLEAN-}}"
REALCLEAN="${REALCLEAN-depend *.info*}"
IO_OBJECTS=
STDIO_WRAP_OBJECTS=
OSPRIM_OBJECTS=
+STDIO_OBJECTS=
# We have the rest in /usr/include.
USER_INCLUDES=PlotFile.h SFile.h builtinbuf.h editbuf.h fstream.h \
indstream.h iomanip.h iostream.h istream.h ostream.h \
parsestream.h pfstream.h procbuf.h stdiostream.h stream.h \
streambuf.h strfile.h strstream.h
-
-# tell we want the mt-safe version
-MT_CFLAGS = -D_IO_MTSAFE_IO
-# Since the Linux C library has libio, we have to be very careful.
+# Use the libio which comes with the local libc.
-# By default, we build libio and use it. If someone wants to not
-# build it, let them go to extra work. The reason is that the user
-# may want a newer, bug fixed libio, also on a linux 1.0.8 system
-# things just won't build with the bottom section uncommented.
+# That is where we keep the g++ header files.
+gxx_includedir =$(prefix)/include/g++
# Comment this out to avoid including the stdio functions in libiostream.a:
-LIBIOSTREAM_OBJECTS = $(IO_OBJECTS) $(IOSTREAM_OBJECTS) $(STDIO_WRAP_OBJECTS) $(OSPRIM_OBJECTS)
-LIBIOSTREAM_DEP = $(LIBIOSTREAM_OBJECTS) stmp-stdio
-LIBIOSTREAM_USE = $(LIBIOSTREAM_OBJECTS) `cat stdio.list`
+# LIBIOSTREAM_OBJECTS = $(IO_OBJECTS) $(IOSTREAM_OBJECTS) $(STDIO_WRAP_OBJECTS) $(OSPRIM_OBJECTS)
+# LIBIOSTREAM_DEP = $(LIBIOSTREAM_OBJECTS) stdio.list
+# LIBIOSTREAM_USE = $(LIBIOSTREAM_OBJECTS) `cat stdio.list`
# Comment the above and uncomment the below to use the code in the Linux libc:
# We have _G_config.h in /usr/include.
-# _G_CONFIG_H=
+_G_CONFIG_H=
+
+# We must not see the libio.h file from this library.
+LIBIO_INCLUDE=
# We have those in libc.a.
-# IO_OBJECTS=
-# STDIO_WRAP_OBJECTS=
-# OSPRIM_OBJECTS=
+IO_OBJECTS=iogetc.o ioputc.o iofeof.o ioferror.o
+STDIO_WRAP_OBJECTS=
+OSPRIM_OBJECTS=
+STDIO_OBJECTS=
# We have the rest in /usr/include.
-# USER_INCLUDES=PlotFile.h SFile.h builtinbuf.h editbuf.h fstream.h \
-# indstream.h iomanip.h iostream.h istream.h ostream.h \
-# parsestream.h pfstream.h procbuf.h stdiostream.h stream.h \
-# streambuf.h strfile.h strstream.h
+USER_INCLUDES=PlotFile.h SFile.h builtinbuf.h editbuf.h fstream.h \
+ indstream.h iomanip.h iostream.h istream.h ostream.h \
+ parsestream.h pfstream.h procbuf.h stdiostream.h stream.h \
+ streambuf.h strfile.h strstream.h
case "${target}" in
*-hpux*) frags=hpux.mt ;;
*-linux-gnulibc1)
- echo "WARNING: The I/O implementation in FSF libg++ 2.8.x is not"
- echo " compatible with Linux libc through 5.2.x."
- echo " See libg++/README for more information."
- echo " YOU ARE ON YOUR OWN!"
frags=linuxlibc1.mt ;;
- *-linux-gnu) frags=linux.mt ;;
+ *-linux-gnu) frags="linux.mt mtsafe.mt" ;;
*-sco3.2v[45]*) frags=sco4.mt ;;
*-isc*) frags=isc.mt ;;
*-netware*) frags=netware.mt ;;
case "${target}" in
hppa*-*) frags="${frags} ../../config/mh-papic" ;;
i[3456]86-*) frags="${frags} ../../config/mh-x86pic" ;;
+ alpha-*-linux*)
+ frags="${frags} ../../config/mh-elfalphapic" ;;
*) frags="${frags} ../../config/mh-${target_cpu}pic" ;;
esac
fi
install-info:
info:
-check: r rclean
+check: r
+ $(MAKE) rclean
bininstall: dbz
cp dbz $(NEWSBIN)
for iteration in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
# Search dummy.out for a typedef for X*$t.
sed_script="
+ s/unsigned long long int/_G_ullong/g
+ s/long long int/_G_llong/g
s/unsigned long long/_G_ullong/g
s/long long/_G_llong/g
/.*typedef *\\(.*[^ ]\\) *X*$t *;.*/{s||\1|;p;q;}
#include "floatio.h"
# ifndef _IO_USE_DTOA
int __cvt_double(double number, register int prec, int flags, int *signp,
- int fmtch, char *startp, char *endp)
+ int fmtch, char *startp, char *endp);
# endif
#endif
is_long_double: 0,
is_short: 0,
is_long: 0,
- alt: flags() & ios::showpoint,
+ alt: (flags() & ios::showpoint) != 0,
space: 0,
- left: ios::left,
- showsign: flags() & ios::showpos,
+ left: (flags() & ios::left) != 0,
+ showsign: (flags() & ios::showpos) != 0,
group: 0,
- pad: fill(),
- extra: 0};
- const void *ptr = &n;
+ pad: fill()
+#if defined __GLIBC__ && __GLIBC__ >= 2
+ , extra: 0
+#endif
+ };
+ const void *ptr = (const void *) &n;
if (__printf_fp (rdbuf(), &info, &ptr) < 0)
set(ios::badbit|ios::failbit);
}
is_long_double: 1,
is_short: 0,
is_long: 0,
- alt: flags() & ios::showpoint,
+ alt: (flags() & ios::showpoint) != 0,
space: 0,
- left: ios::left,
- showsign: flags() & ios::showpos,
+ left: (flags() & ios::left) != 0,
+ showsign: (flags() & ios::showpos) != 0,
group: 0,
- pad: fill(),
- extra: 0};
+ pad: fill()
+#if defined __GLIBC__ && __GLIBC__ >= 2
+ , extra: 0
+#endif
+ };
- const void *ptr = &n;
+ const void *ptr = (const void *) &n;
if (__printf_fp (rdbuf(), &info, &ptr) < 0)
set (ios::badbit|ios::failbit);
# define _IO_USE_DTOA 1
#endif
-#if 0
-# ifdef _IO_NEED_STDARG_H
-# include <stdarg.h>
-# endif
-#endif
-
#ifndef EOF
# define EOF (-1)
#endif
/* Handle lock. */
#ifdef _IO_MTSAFE_IO
-# include <bits/stdio-lock.h>
+# if defined __GLIBC__ && __GLIBC__ >= 2
+# include <bits/stdio-lock.h>
+# define _IO_LOCK_T _IO_lock_t *
+# else
+/*# include <comthread.h>*/
+# endif
#else
+/* XXX This will go away as soon as comthread is finished. */
+# ifdef __linux__
+struct _IO_lock_t {
+ void *ptr;
+ short int field1;
+ short int field2;
+};
+# define _IO_LOCK_T struct _IO_lock_t
+# else
typedef void _IO_lock_t;
+# endif
#endif
/* char* _save_gptr; char* _save_egptr; */
- _IO_lock_t *_lock;
+ _IO_LOCK_T _lock;
};
#ifndef __cplusplus
extern void _IO_funlockfile __P ((_IO_FILE *));
extern int _IO_ftrylockfile __P ((_IO_FILE *));
-#ifndef _IO_MTSAFE_IO
+#ifdef _IO_MTSAFE_IO
+# define _IO_peekc(_fp) _IO_peekc_locked (_fp)
+#else
+# define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)
# define _IO_flockfile(_fp) /**/
# define _IO_funlockfile(_fp) /**/
# define _IO_ftrylockfile(_fp) /**/
# define _IO_cleanup_region_end(_Doit) /**/
#endif /* !_IO_MTSAFE_IO */
-#define _IO_peekc(_fp) _IO_peekc_locked (_fp)
extern int _IO_vfscanf __P ((_IO_FILE *, const char *, _IO_va_list, int *));
extern int _IO_vfprintf __P ((_IO_FILE *, const char *, _IO_va_list));
#include <libio.h>
}
//#include <_G_config.h>
-#ifdef _IO_NEED_STDARG_H
+#ifdef _G_NEED_STDARG_H
#include <stdarg.h>
#endif
#ifndef _IO_va_list
tf.remove();
#else
tf.close();
- unlink("tempfile");
+ unlink(tempfile);
#endif
assert(!tf.is_open());
}