diff -rupN libstdc++-2.8.0/COPYING.LIB libstdc++-2.8.1/COPYING.LIB --- libstdc++-2.8.0/COPYING.LIB Fri Aug 22 00:57:37 1997 +++ libstdc++-2.8.1/COPYING.LIB Sat Feb 28 11:17:28 1998 @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -464,7 +464,8 @@ convey the exclusion of warranty; and ea You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA Also add information on how to contact you by electronic and paper mail. diff -rupN libstdc++-2.8.0/ChangeLog libstdc++-2.8.1/ChangeLog --- libstdc++-2.8.0/ChangeLog Tue Jan 6 23:36:52 1998 +++ libstdc++-2.8.1/ChangeLog Sat Feb 28 11:18:36 1998 @@ -1,3 +1,34 @@ +Sat Feb 28 11:18:26 1998 Manfred Hollstein + + * libstdc++-2.8.1 release. + +Fri Feb 20 11:40:59 1998 Manfred Hollstein + + * INSTALL: New file. + * texinfo/lgpl.texinfo: New file. + +Fri Feb 6 01:33:52 1998 Pieter Nagel + Manfred Hollstein + + * Makefile.in (BASE_FLAGS_TO_PASS): Don't pass PICFLAG and + PICFLAG_FOR_TARGET. + (EXTRA_TARGET_FLAGS): Don't pass PICFLAG_FOR_TARGET. + (FLAGS_TO_PASS): Pass down gxx_include_dir to sub-make invocations. + + * configure: Emit a definition for the new macro enable_shared + into each Makefile. + + * config/mh-sparcpic (PICFLAG): Define to properly according + to current multilib configuration. + * config/mt-sparcpic (PICFLAG_FOR_TARGET): Define to properly + according to current multilib configuration. + +Tue Jan 27 17:48:40 1998 Manfred Hollstein + + * configure (package_makefile_rules_frag): New variable, which names + a file with generic rules, ... + Change comment to mention we now have FIVE parts. + Sun Jan 4 01:06:55 1998 Mumit Khan * config.sub: Add mingw32 support. @@ -129,6 +160,11 @@ Mon Sep 1 16:45:44 1997 Jim Wilson * config.guess: Update from gcc directory. + +Mon Aug 25 17:31:49 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * configure: When making link, also check the current + directory. The configure scripts may create one. Wed Aug 20 19:57:37 1997 Jason Merrill diff -rupN libstdc++-2.8.0/INSTALL libstdc++-2.8.1/INSTALL --- libstdc++-2.8.0/INSTALL Thu Jan 1 01:00:00 1970 +++ libstdc++-2.8.1/INSTALL Tue Feb 24 15:08:43 1998 @@ -0,0 +1,286 @@ + Configuring libstdc++-2.8.1 + +Like most GNU software, libstdc++ must be configured before it can be built. +This document attempts to describe the recommended configuration procedure +for both native and cross targets. + +We use srcdir to refer to the toplevel source directory for +libstdc++; we use objdir to refer to the toplevel build/object +directory for libstdc++. + +First, we highly recommend that libstdc++ be built into a separate +directory than the sources. This is how we generally build libstdc++; building +where srcdir == objdir should still work, but doesn't get +extensive testing. + +Second, when configuring a native system, either "cc" must be in your +path or you must set CC in your environment before running configure. +Otherwise the configuration scripts may fail. + +Third, beginning with this version of libstdc++ we highly recommend that +gcc will not be built separately. One advantage of this is that gcc +and the runtime libraries agree about where the runtime libs' include +files will be installed. Rather untar gcc-m.x.y into the toplevel +directory of libstdc++ (where this INSTALL file lives), rename the +gcc-m.x.y directory to gcc, and optionally apply the patch +at the end of this file (you can actually feed this file as input to +patch). This patch allows you to check the built compiler (if you +actually intend to do this, you'd need to get a testsuite for gcc +- e.g. egcs' one from +and move that directory into the gcc directory): + + % cd srcdir + % gunzip < /where/you/store/GNU/packages/gcc-m.x.y.tar.gz | tar xf - + % mv gcc-m.x.y gcc + % patch < INSTALL + % gunzip < /where/you/store/GNU/packages/egcs-n.x.y.tar.gz | \ + tar xf - egcs-n.x.y/gcc/teststuite + % mv egcs-n.x.y/gcc/teststuite gcc + % rmdir -p egcs-n.x.y/gcc + +To configure libstdc++: + + % mkdir objdir + % cd objdir + % srcdir/configure [target] [options] + + +target specification + + libstdc++ has code to correctly determine the correct value for + target for nearly all native systems. Therefore, we highly + recommend you not provide a configure target when configuring a + native package. + + target must be specified when configuring a cross package; + examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc. + + +options specification + +Use options to override several configure time options for +libstdc++. A partial list of supported options: + + + --prefix=dirname -- Specify the toplevel installation + directory. This is the recommended way to install the tools into a directory + other than the default. The toplevel installation directory defaults to + /usr/local. + + These additional options control where certain parts of the distribution + are installed. Normally you should not need to use these options. + + --with-local-prefix=dirname -- Specify the installation + directory for local include files. The default is /usr/local. + + --with-gxx-include-dir=dirname -- Specify the installation + directory for g++ header files. The default is /usr/local/include/g++. + + + --enable-shared -- Build shared versions of the C++ runtime + libraries if supported --disable-shared is the default. + + --with-gnu-as -- Specify that the compiler should assume the GNU + assembler (aka gas) is available. + + --with-gnu-ld -- Specify that the compiler should assume the GNU + linker (aka gld) is available. + + --enable-multilib -- Specify that multiple target libraries + should be built to support different target variants, calling conventions, + etc. This is the default. + + +Note that each --enable option has a corresponding --disable option and +that each --with option has a corresponding --without option. + + + + Building libstdc++-2.8.1 + +Now that libstdc++ is configured, you are ready to build the compiler +(if you unpacked the compiler sources as recommended above) and +runtime libraries. + +We highly recommend that libstdc++ be built using gnu-make; other +versions may work, then again they might not. To be safe build with gnu-make. + + + + Testing libstdc++-2.8.1 + +To see if the built compiler (optionally) and runtime libraries actually +work, you can check them with `cd objdir; make check'. + + + + Final install libstdc++-2.8.1 + +Now that libstdc++ has been built and tested, you can install it with +`cd objdir; make install'. + +That step completes the installation of libstdc++; user level binaries can +be found in prefix/bin where prefix is the value you specified +with the --prefix to configure (or /usr/local by default). + + + +Fri Feb 20 13:55:39 1998 Manfred Hollstein + + * Makefile.in (EXPECT): New macro for `make check'. + (RUNTEST): Likewise. + (RUNTESTFLAGS): Likewise. + (target_subdir): Likewise. + (CHECK_TARGETS): Likewise. + (FLAGS_TO_PASS): Add local_prefix and gxx_include_dir. + (distclean): Remove testsuite specific files. + (site.exp): New rule to generate gcc specific check information. + (testsuite/site.exp): Likewise. + (check-g++): Rule to invoke checking g++. + (check-gcc): Rule to invoke checking gcc. + (check-g77): Rule to invoke checking g77. + +--- gcc/Makefile.in.orig Fri Feb 20 13:53:00 1998 ++++ gcc/Makefile.in Fri Feb 20 13:58:33 1998 +@@ -411,6 +411,16 @@ + # Source for float.h. Overridden by cross-make. + FLOAT_H=float.h-nat + ++# Setup the testing framework, if you have one ++EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \ ++ echo $${rootme}/../expect/expect ; \ ++ else echo expect ; fi` ++ ++RUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \ ++ echo $${srcdir}/../dejagnu/runtest ; \ ++ else echo runtest; fi` ++RUNTESTFLAGS = ++ + # Extra symbols for fixproto to define when parsing headers. + FIXPROTO_DEFINES = + +@@ -546,7 +556,9 @@ + "prefix=$(prefix)" \ + "tooldir=$(tooldir)" \ + "bindir=$(bindir)" \ +- "libsubdir=$(libsubdir)" ++ "libsubdir=$(libsubdir)" \ ++ "local_prefix=$(local_prefix)" \ ++ "gxx_include_dir=$(gxx_include_dir)" + # + # Lists of files for various purposes. + +@@ -2100,6 +2112,8 @@ + -rm -f c-parse.output + -rm -f *.asm + -rm -f float.h ++ -rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak ++ -rm -f testsuite/{gcc,g++}.{log,sum} + + # Delete anything likely to be found in the source directory + # that shouldn't be in the distribution. +@@ -2383,6 +2397,104 @@ + -rm -rf $(mandir)/protoize$(manext) + -rm -rf $(mandir)/unprotoize$(manext) + # ++# These targets are for the dejagnu testsuites. The file site.exp ++# contains global variables that all the testsuites will use. ++ ++# Set to $(target_alias)/ for cross. ++target_subdir = libraries/ ++ ++site.exp: ./config.status Makefile ++ @echo "Making a new config file..." ++ -@rm -f ./tmp? ++ @touch site.exp ++ -@mv site.exp site.bak ++ @echo "## these variables are automatically generated by make ##" > ./tmp0 ++ @echo "# Do not edit here. If you wish to override these values" >> ./tmp0 ++ @echo "# add them to the last section" >> ./tmp0 ++ @echo "set rootme \"`pwd`\"" >> ./tmp0 ++ @echo "set srcdir \"`cd ${srcdir}; pwd`\"" >> ./tmp0 ++ @echo "set host_triplet $(host_canonical)" >> ./tmp0 ++ @echo "set build_triplet $(build_canonical)" >> ./tmp0 ++ @echo "set target_triplet $(target)" >> ./tmp0 ++ @echo "set target_alias $(target_alias)" >> ./tmp0 ++# CFLAGS is set even though it's empty to show we reserve the right to set it. ++ @echo "set CFLAGS \"\"" >> ./tmp0 ++ @echo "set CXXFLAGS \"-I$(objdir)/../$(target_subdir)libio -I\$$srcdir/../libg++/src -I\$$srcdir/../libio -I\$$srcdir/../libstdc++ -I\$$srcdir/../libstdc++/stl -L$(objdir)/../$(target_subdir)libg++ -L$(objdir)/../$(target_subdir)libstdc++\"" >> ./tmp0 ++# If newlib has been configured, we need to pass -B to gcc so it can find ++# newlib's crt0.o if it exists. This will cause a "path prefix not used" ++# message if it doesn't, but the testsuite is supposed to ignore the message - ++# it's too difficult to tell when to and when not to pass -B (not all targets ++# have crt0's). We could only add the -B if ../newlib/crt0.o exists, but that ++# seems like too selective a test. ++# ??? Another way to solve this might be to rely on linker scripts. Then ++# theoretically the -B won't be needed. ++# We also need to pass -L ../ld so that the linker can find ldscripts. ++ @if [ -d $(objdir)/../$(target_subdir)newlib ] ; then \ ++ echo "set newlib_cflags \"-I$(objdir)/../$(target_subdir)newlib/targ-include -I\$$srcdir/../newlib/libc/include\"" >> ./tmp0; \ ++ echo "set newlib_ldflags \"-B$(objdir)/../$(target_subdir)newlib/\"" >> ./tmp0; \ ++ echo "append CFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \ ++ echo "append CXXFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \ ++ echo "append LDFLAGS \" \$$newlib_ldflags\"" >> ./tmp0; \ ++ else true; \ ++ fi ++ @if [ -d $(objdir)/../ld ] ; then \ ++ echo "append LDFLAGS \" -L$(objdir)/../ld\"" >> ./tmp0; \ ++ else true; \ ++ fi ++ @if [ $(build_canonical) != $(host_canonical) ] ; then \ ++ echo "set tmpdir /tmp" >> ./tmp0 ; \ ++ else echo "set tmpdir $(objdir)/testsuite" >> ./tmp0 ; \ ++ fi ++ @echo "set srcdir \"\$${srcdir}/testsuite\"" >> ./tmp0 ++ @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0 ++ @cat ./tmp0 > site.exp ++ @cat site.bak | sed \ ++ -e '1,/^## All variables above are.*##/ d' >> site.exp ++ -@rm -f ./tmp? ++ ++CHECK_TARGETS = check-gcc check-g++ ++ ++check: $(CHECK_TARGETS) ++ ++testsuite/site.exp: site.exp ++ if [ -d testsuite ]; then \ ++ true; \ ++ else \ ++ mkdir testsuite; \ ++ fi ++ rm -rf testsuite/site.exp ++ cp site.exp testsuite/site.exp ++ ++check-g++: testsuite/site.exp ++ -rootme=`pwd`; export rootme; \ ++ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ ++ cd testsuite; \ ++ EXPECT=${EXPECT} ; export EXPECT ; \ ++ if [ -f $${rootme}/../expect/expect ] ; then \ ++ TCL_LIBRARY=$${srcdir}/../tcl/library ; \ ++ export TCL_LIBRARY ; fi ; \ ++ $(RUNTEST) --tool g++ $(RUNTESTFLAGS) ++ ++check-gcc: testsuite/site.exp ++ -rootme=`pwd`; export rootme; \ ++ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ ++ cd testsuite; \ ++ EXPECT=${EXPECT} ; export EXPECT ; \ ++ if [ -f $${rootme}/../expect/expect ] ; then \ ++ TCL_LIBRARY=$${srcdir}/../tcl/library ; \ ++ export TCL_LIBRARY ; fi ; \ ++ $(RUNTEST) --tool gcc $(RUNTESTFLAGS) ++ ++check-g77: testsuite/site.exp ++ -rootme=`pwd`; export rootme; \ ++ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ ++ cd testsuite; \ ++ EXPECT=${EXPECT} ; export EXPECT ; \ ++ if [ -f $${rootme}/../expect/expect ] ; then \ ++ TCL_LIBRARY=$${srcdir}/../tcl/library ; \ ++ export TCL_LIBRARY ; fi ; \ ++ $(RUNTEST) --tool g77 $(RUNTESTFLAGS) ++ + # These exist for maintenance purposes. + + # Update the tags table. diff -rupN libstdc++-2.8.0/Makefile.in libstdc++-2.8.1/Makefile.in --- libstdc++-2.8.0/Makefile.in Tue Jan 6 23:36:53 1998 +++ libstdc++-2.8.1/Makefile.in Tue Feb 24 15:08:43 1998 @@ -1,6 +1,6 @@ # # Makefile for directory with subdirs to build. -# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation +# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -344,8 +344,6 @@ BASE_FLAGS_TO_PASS = \ "MAKE=$(MAKE)" \ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ "SHELL=$(SHELL)" \ "EXPECT=$(EXPECT)" \ @@ -355,7 +353,8 @@ BASE_FLAGS_TO_PASS = \ "YACC=$(YACC)" \ "exec_prefix=$(exec_prefix)" \ "prefix=$(prefix)" \ - "tooldir=$(tooldir)" + "tooldir=$(tooldir)" \ + "gxx_include_dir=$(gxx_include_dir)" # Flags to pass down to most sub-makes, in which we're building with # the host environment. @@ -401,7 +400,6 @@ EXTRA_TARGET_FLAGS = \ 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ 'NM=$$(NM_FOR_TARGET)' \ - 'PICFLAG=$$(PICFLAG_FOR_TARGET)' \ 'RANLIB=$$(RANLIB_FOR_TARGET)' \ 'WINDRES=$$(WINDRES_FOR_TARGET)' diff -rupN libstdc++-2.8.0/config/mh-sparcpic libstdc++-2.8.1/config/mh-sparcpic --- libstdc++-2.8.0/config/mh-sparcpic Fri Aug 22 00:58:46 1997 +++ libstdc++-2.8.1/config/mh-sparcpic Tue Feb 24 15:08:43 1998 @@ -1 +1 @@ -PICFLAG=-fPIC +PICFLAG=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac` diff -rupN libstdc++-2.8.0/config/mt-sparcpic libstdc++-2.8.1/config/mt-sparcpic --- libstdc++-2.8.0/config/mt-sparcpic Fri Aug 22 00:58:46 1997 +++ libstdc++-2.8.1/config/mt-sparcpic Tue Feb 24 15:08:43 1998 @@ -1 +1 @@ -PICFLAG_FOR_TARGET=-fPIC +PICFLAG_FOR_TARGET=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac` diff -rupN libstdc++-2.8.0/configure libstdc++-2.8.1/configure --- libstdc++-2.8.0/configure Tue Jan 6 23:36:54 1998 +++ libstdc++-2.8.1/configure Tue Feb 24 15:08:43 1998 @@ -3,7 +3,7 @@ ### WARNING: this file contains embedded tabs. Do not run untabify on this file. # Configuration script -# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 1997 +# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 1998 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -62,6 +62,7 @@ moveifchange= norecursion= other_options= package_makefile_frag= +package_makefile_rules_frag= prefix=/usr/local progname= program_prefix= @@ -992,27 +993,34 @@ for subdir in . ${subdirs} ; do set ${links}; link=$1; shift; links=$* if [ ! -r ${srcdir}/${file} ] ; then + if [ ! -r ${file} ] ; then + echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 exit 1 + else + srcfile=${file} + fi + else + srcfile=${srcdir}/${file} fi ${remove} -f ${link} # Make a symlink if possible, otherwise try a hard link - if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then + if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then true else # We need to re-remove the file because Lynx leaves a # very strange directory there when it fails an NFS symlink. ${remove} -r -f ${link} - ${hard_link} ${srcdir}/${file} ${link} + ${hard_link} ${srcfile} ${link} fi if [ ! -r ${link} ] ; then - echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 + echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 exit 1 fi - echo "Linked \"${link}\" to \"${srcdir}/${file}\"." + echo "Linked \"${link}\" to \"${srcfile}\"." done # Create a .gdbinit file which runs the one in srcdir @@ -1038,25 +1046,25 @@ EOF # been somewhat optimized and is perhaps a bit twisty. # code is order so as to try to sed the smallest input files we know. + # so do these separately because I don't trust the order of sed -e expressions. - # the four makefile fragments MUST end up in the resulting Makefile in this order: - # package, target, host, and site. so do these separately because I don't trust the - # order of sed -e expressions. + # the five makefile fragments MUST end up in the resulting Makefile in this order: + # package macros, target, host, site, and package rules. if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem. rm -f ${subdir}/${Makefile}.tem - case "${package_makefile_frag}" in + case "${package_makefile_rules_frag}" in "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;; *) - if [ ! -f ${package_makefile_frag} ] ; then - package_makefile_frag=${srcdir}/${package_makefile_frag} + if [ ! -f ${package_makefile_rules_frag} ] ; then + package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag} fi - if [ -f ${package_makefile_frag} ] ; then - sed -e "/^####/ r ${package_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem + if [ -f ${package_makefile_rules_frag} ] ; then + sed -e "/^####/ r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem else - echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2 + echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2 echo '***' is missing in ${PWD=`pwd`}. 1>&2 cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem fi @@ -1115,10 +1123,24 @@ EOF fi ;; esac - # real copy now in ${Makefile} - - mv ${Makefile} ${subdir}/Makefile.tem + # working copy now in ${Makefile} + # Emit the default values of this package's macros. + rm -f ${subdir}/Makefile.tem + case "${package_makefile_frag}" in + "") mv ${Makefile} ${subdir}/Makefile.tem ;; + *) + if [ ! -f ${package_makefile_frag} ] ; then + package_makefile_frag=${srcdir}/${package_makefile_frag} + fi + if [ -f ${package_makefile_frag} ] ; then + sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem + else + echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2 + echo '***' is missing in ${PWD=`pwd`}. 1>&2 + mv ${Makefile} ${subdir}/Makefile.tem + fi + esac # real copy now in ${subdir}/Makefile.tem # prepend warning about editting, and a bunch of variables. @@ -1178,6 +1200,13 @@ EOF echo gxx_include_dir = '${prefix}/include/g++' >> ${Makefile} else echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile} + fi + + # record if we want to build shared libs. + if test -z "${enable_shared}"; then + echo enable_shared = no >> ${Makefile} + else + echo enable_shared = ${enable_shared} >> ${Makefile} fi # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, diff -rupN libstdc++-2.8.0/configure.in libstdc++-2.8.1/configure.in --- libstdc++-2.8.0/configure.in Tue Jan 6 23:36:54 1998 +++ libstdc++-2.8.1/configure.in Tue Feb 24 15:08:43 1998 @@ -278,7 +278,9 @@ if [ x${shared} = xyes ]; then host_makefile_frag="${host_makefile_frag} config/mh-elfalphapic" ;; *) - host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic" + if test -f ${srcdir}/config/mh-${host_cpu}pic; then + host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic" + fi ;; esac fi @@ -898,7 +900,9 @@ if [ x${shared} = xyes ]; then target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic" ;; *) - target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic" + if test -f ${srcdir}/config/mt-${target_cpu}pic; then + target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic" + fi ;; esac fi diff -rupN libstdc++-2.8.0/libiberty/COPYING.LIB libstdc++-2.8.1/libiberty/COPYING.LIB --- libstdc++-2.8.0/libiberty/COPYING.LIB Fri Aug 22 00:57:42 1997 +++ libstdc++-2.8.1/libiberty/COPYING.LIB Sat Feb 28 11:17:28 1998 @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -464,7 +464,8 @@ convey the exclusion of warranty; and ea You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA Also add information on how to contact you by electronic and paper mail. diff -rupN libstdc++-2.8.0/libiberty/ChangeLog libstdc++-2.8.1/libiberty/ChangeLog --- libstdc++-2.8.0/libiberty/ChangeLog Tue Jan 6 23:41:47 1998 +++ libstdc++-2.8.1/libiberty/ChangeLog Sat Feb 28 11:19:21 1998 @@ -1,3 +1,13 @@ +Thu Feb 26 17:53:19 1998 Manfred Hollstein + + * config.table: Add ../ if we are configuring inside srcdir. + +Fri Feb 6 01:35:17 1998 Manfred Hollstein + + * Makefile.in (FLAGS_TO_PASS): Don't pass PICFLAG. + (.c.o): Check value of enable_shared, not PICFLAG. + (stamp-picdir): Dito. + Thu Dec 4 17:25:19 1997 Jeffrey A Law (law@cygnus.com) * strsignal.c (sys_nsig): Try NSIG and _NSIG. diff -rupN libstdc++-2.8.0/libiberty/Makefile.in libstdc++-2.8.1/libiberty/Makefile.in --- libstdc++-2.8.0/libiberty/Makefile.in Tue Jan 6 23:41:48 1998 +++ libstdc++-2.8.1/libiberty/Makefile.in Tue Feb 24 15:08:43 1998 @@ -1,6 +1,6 @@ # # Makefile -# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation +# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation # # This file is part of the libiberty library. # Libiberty is free software; you can redistribute it and/or @@ -111,7 +111,6 @@ FLAGS_TO_PASS = \ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ "LDFLAGS=$(LDFLAGS)" \ "LOADLIBES=$(LOADLIBES)" \ - "PICFLAG=$(PICFLAG)" \ "RANLIB=$(RANLIB)" \ "SHELL=$(SHELL)" @@ -132,7 +131,7 @@ INCDIR=$(srcdir)/$(MULTISRCTOP)../includ COMPILE.c = $(CC) -c $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) .c.o: - test -z "$(PICFLAG)" || \ + test x"$(enable_shared)" != xyes || \ $(COMPILE.c) $(PICFLAG) $< -o pic/$@ $(COMPILE.c) $< @@ -268,7 +267,7 @@ $(RULE2): $(REQUIRED_OFILES) $(HOST_OFIL $(RANLIB) $(TARGETLIB) stamp-picdir: - if [ -n "$(PICFLAG)" ] && [ ! -d pic ]; then \ + if [ x"$(enable_shared)" = xyes ] && [ ! -d pic ]; then \ mkdir pic; \ else true; fi touch stamp-picdir diff -rupN libstdc++-2.8.0/libiberty/config.table libstdc++-2.8.1/libiberty/config.table --- libstdc++-2.8.0/libiberty/config.table Tue Jan 6 23:41:49 1998 +++ libstdc++-2.8.1/libiberty/config.table Sat Feb 28 11:20:18 1998 @@ -59,6 +59,13 @@ fi echo "# Warning: this fragment is automatically generated" > temp-frag for frag in ${frags}; do + case "${frag}" in + ../../config/* ) + if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then + frag=../${frag} + fi + ;; + esac frag=${srcdir}/${xsrcdir}config/$frag if [ -f ${frag} ]; then echo "Appending ${frag} to xhost-mkfrag" diff -rupN libstdc++-2.8.0/libio/ChangeLog libstdc++-2.8.1/libio/ChangeLog --- libstdc++-2.8.0/libio/ChangeLog Tue Jan 6 23:41:52 1998 +++ libstdc++-2.8.1/libio/ChangeLog Sat Feb 28 11:19:40 1998 @@ -1,21 +1,163 @@ -1997-12-12 Brendan Kehoe +Thu Feb 26 17:53:19 1998 Manfred Hollstein - Don't make gperf depend upon libg++. - * config.shared (TOLIBGCXX) [DOING_GPERF]: Delete. - (LIBS) [DOING_GPERF]: Make it just `-L../libstdc++ -lstdc++'. + * configure.in: Add ../ if we are configuring inside srcdir. -Thu Dec 11 11:20:59 1997 H.J. Lu (hjl@gnu.org) +1998-02-22 Andreas Schwab - * configure.in (target frags): Add *-linux-gnu. + Changes for _G_IO_IO_FILE_VERSION == 0x20001: + * libioP.h (_IO_showmanyc_t, _IO_SHOWMANYC, _IO_imbue_t, + _IO_IMBUE): New definitions. + (struct _IO_jump_t): Add __showmanyc and __imbue fields. + (_IO_file_fopen): Add new fourth argument. + * filebuf.cc (filebuf::open): Pass new fourth argument to + _IO_file_fopen. + * iolibio.h (_IO_freopen): Likewise. + * streambuf.cc (streambuf::showmanyc, streambuf::imbue): New + functions. + * streambuf.h (_IO_wchar_t): Define to _G_wchar_t. + (ios::fill): Remove casts. + (struct streambuf): Add showmanyc and imbue members. + + * iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >= + 1]: Initialize new fields is_char of struct printf_info. + (ostream::operator<<(long double n)) [__GLIBC_MINOR__ >= 1]: + Likewise. + +Fri Feb 20 11:59:23 1998 Manfred Hollstein + + * Makefile.in (VERSION): Bump to 2.8.1. + +1998-02-17 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) + + * iostream.cc (istream::operator>>(long double&)) + [!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in + case long double is bigger than double. + (ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of + initializers of struct printf_info to match declaration order, + to work around g++ bug. + (ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise. + + * gen-params: Add missing quotes. Avoid useless use of command + substitution. + +Tue Feb 17 21:52:44 1998 H.J. Lu (hjl@gnu.org) + + * config/linux.mt (IO_OBJECTS): Add iogetline.o. + * config/linuxlibc1.mt: Ditto. + + * iogetline.c (_IO_getline_info): Renamed from _IO_getline. + (_IO_getline): Just call _IO_getline_info. + + * isgetline.cc (istream::getline, istream::get, _sb_readline): + Call _IO_getline_info instead of _IO_getline and get the EOF + information. + * sbgetline.cc (streambuf::sgetline): Ditto. + + * libioP.h (_IO_getline_info): New declaration. + + * iogetline.c (_IO_getline): Handle the case when there is no + buffer. + + * filebuf.cc (filebuf::open): Call _IO_file_open if + _G_HAVE_IO_FILE_OPEN is 1. + + * libio.h (_IO_fpos64_t, _IO_off64_t): Defined if + _G_IO_IO_FILE_VERSION == 0x20001. + + * libioP.h (_IO_file_open): New declaration. + + * libio.h (_IO_FILE, _IO_stdin_, _IO_stdout_, _IO_stderr_, + _IO_seekoff, _IO_seekpos): Add support for libio in egcs 2.1. + * libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t, + _IO_seekoff, _IO_seekpos, _IO_default_seekoff, + _IO_default_seekpos, _IO_default_seek, _IO_file_seekoff, + _IO_file_seek, _IO_str_seekoff, _IO_pos_BAD, _IO_pos_as_off, + _IO_pos_0): Ditto. + * streambuf.h (streamoff, streampos): Ditto. + + * gen-params (__extension__): Use only if gcc version >= 2.8. + +Sun Feb 15 21:11:25 1998 Krister Walfridsson (cato@df.lth.se) + + * fileops.c: #include . + * ioprims.c: Likewise. + * dbz/dbz.c (putconf): Handle systems which use "long long" as type + for "off_t". + * dbz/dbzmain.c (mkfiles): Likewise. + +1998-02-10 Mark Mitchell + + * iostream.cc (ostream::operator<<(long double)): Don't use + labeled initializers. + +Fri Feb 6 01:35:56 1998 Manfred Hollstein + + * config.shared (FLAGS_TO_PASS): Don't emit PICFLAG. + (.c.o): Check value of enable_shared, not PICFLAG. + (.C.o): Dito. + (.cc.o): Dito. + (stamp-picdir): Dito. + +Tue Jan 27 10:35:22 1998 H.J. Lu (hjl@gnu.org) + + * configure.in (topsrcdir): New. + (CHECK_SUBDIRS, configdirs): Check ${topsrcdir}/gcc instead. + (config-ml.in): Use ${topsrcdir}/config-ml.in. + + * tests/configure.in (topsrcdir): New. + (CHECK): Check ${topsrcdir}/gcc instead. + +Tue Jan 13 21:30:33 1998 H.J. Lu (hjl@gnu.org) + + * configure.in (CHECK_SUBDIRS): Set to testsuite only if + ${srcdir}/../gcc exists. + (configdirs): Include testsuite only if ${srcdir}/../gcc exists. + + * tests/Makefile.in (check): Depend on $(CHECK). -Fri Dec 5 16:22:15 1997 H.J. Lu (hjl@gnu.org) + * tests/configure.in (CHECK): Set to "check-iostream + check-stdio" if ${srcdir}/../../gcc doesn't exists. + +Fri Dec 19 09:35:48 1997 H.J. Lu (hjl@gnu.org) + + * configure.in (target frags): Add *-linux-gnu. * streambuf.cc (streambuf::~streambuf): Don't delete _lock for _IO_stdin/_IO_stdout/_IO_stderr. +Wed Jan 28 10:27:11 1998 Manfred Hollstein + + * config.shared (FLAGS_TO_PASS): Add gxx_include_dir. + + * stdio/configure.in, tests/configure.in: Update with yesterday's + toplevel configure.in changes. + * testsuite/configure.in: Likewise. + + * config.shared: Fix typo in yesterday's changes. + +Tue Jan 27 17:48:40 1998 Manfred Hollstein + + * config.shared: Emit everything which needs to be re-definable + via file descriptor 1; the generic stuff is emitted using redirection + onto fd 2. + + * configure.in (package_makefile_rules_frag): New variable + which is used in the call to config.shared; redirect file descriptor 2 + to ${package_makefile_rules_frag}. + +Fri Jan 16 00:48:03 1998 Manfred Hollstein + + * config.shared (FLAGS_TO_PASS): Add SHELL. + +1997-12-12 Brendan Kehoe + + Don't make gperf depend upon libg++. + * config.shared (TOLIBGCXX) [DOING_GPERF]: Delete. + (LIBS) [DOING_GPERF]: Make it just `-L../libstdc++ -lstdc++'. + Thu Nov 27 01:32:43 1997 Jeffrey A Law (law@cygnus.com) - * Makefile.in (install): Change gxx_includedir to gcc_include_dir. + * Makefile.in (install): Change gxx_includedir to gxx_include_dir. * config.shared (gxx_includedir): Remove default definition. * config/linux.mt: Change gxx_includedir to gxx_include_dir. * config/linuxaxp1.mt: Likewise. @@ -39,11 +181,6 @@ Wed Nov 26 16:08:50 1997 Richard Hender * gen-params (va_list): Check for and use __gnuc_va_list. (NULL): Work around some linux kernel headers and redefine NULL. -Mon Nov 24 17:04:18 1997 Michael Meissner - - * stdiostream.cc (sys_read): Declare ch with int type, rather than - without a type. - Tue Nov 18 09:53:58 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * stdstrbufs.cc (DEF_STDFILE): Use STD_VTABLE. @@ -52,19 +189,10 @@ Tue Nov 11 01:40:17 1997 Oleg Krivoshee * iomanip.h: Fix guiding decls. -1997-11-05 Brendan Kehoe - - * libio.h (__P): Name its arg `p' instead of `params'. - Avoids problems with an unchanged Solaris math.h header. - Wed Oct 29 23:01:47 1997 Jason Merrill * gen-params: Override NULL. -1997-10-27 03:53 Ulrich Drepper - - * stdio-lock.h: Removed. Was never needed. - Wed Oct 22 19:19:32 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * libio.h (_IO_LOCK_T): Handle glibc 2 when _IO_MTSAFE_IO is @@ -127,7 +255,7 @@ Sun Sep 28 12:04:21 1997 Jason Merrill * libio.h: Don't use _IO_LOCK_T if it's not defined. -Fri Sep 26 20:56:41 1997 +Fri Sep 26 20:56:41 1997 Ulrich Drepper Based on a patch by H.J. Lu (hjl@gnu.ai.mit.edu). @@ -167,7 +295,7 @@ Fri Sep 26 20:56:41 1997 * tests/tFile.cc (tempfile): Fix a typo. -1997-09-19 11:52 Jim Wilson +Fri Sep 19 11:52:25 1997 Jim Wilson * Makefile.in (LIBIO_OBJECTS): Depend on _G_CONFIG_H. @@ -180,6 +308,7 @@ Fri Sep 26 20:56:41 1997 1997-09-17 02:50 Ulrich Drepper * libioP.h: Define __set_errno if not already defined. + * fileops.c: Don't try to define __set_errno, it's already defined. 1997-09-15 02:37 Ulrich Drepper @@ -494,7 +623,7 @@ Sat Apr 26 13:38:21 1997 Bob Manson - * configure.in: Enable multilibing by default. + * configure.in: Enable multilibing by default. Update multilib template to read config-ml.in. * floatconv.c: Enable use in cross targets which use the @@ -614,7 +743,7 @@ Tue May 14 11:47:21 1996 Per Bothner < * strstream.h, strstream.cc (strstreambase::strstreambase()): Call ios::init here. (other constructors): Simplify - init already called. - + Tue May 14 10:55:21 1996 Per Bothner Change so that strstreambuf default constructor does no allocation. @@ -625,12 +754,12 @@ Tue May 14 10:55:21 1996 Per Bothner < buffer, to handle case when initial size is 0. * iostdio.h (remove, rename, tmpfile, tempnam): Comment out. - + Mon May 13 23:19:39 1996 Per Bothner * fileops.c (_IO_file_close_it): Just call _IO_do_flush rather than _IO_file_sync, to avoid useless lseek. - + Tue May 14 10:48:48 1996 Jason Merrill * floatconv.c (_IO_strtod): Force rv into the stack. @@ -704,7 +833,7 @@ Tue Feb 27 18:08:16 1996 Per Bothner < * streambuf.h (ios): Add ios::binary; deprecate ios::bin. * filebuf.cc (filebuf::open): Handle ios::binary. - + Fri Feb 9 12:40:19 1996 Brendan Kehoe * cleanup.c (_IO_cleanup_registration_needed) [!_G_HAVE_ATEXIT]: Init @@ -837,7 +966,7 @@ Wed Oct 25 11:14:25 1995 Per Bothner < * libio.h (_IO_seekoff, _IO_seekpos): New declarations. * libioP.h (_IO_seekoff, _IO_seekpos): Remove declarations. * libioP.h: Cleanup; remove old !_IO_UNIFIED_JUMPTABLES stuff. - + * filebuf.cc (filebuf::~filebuf): Only call SYSYCLOSE if currently open. Bug found by Martin Gerbershagen . @@ -905,7 +1034,7 @@ Fri Aug 4 23:21:17 1995 Paul Eggert < that do not have a space before the defined type name, e.g. `typedef void *__gnuc_va_list;' as in Linux. Also, not require a space in the definiens, e.g. `typedef void*foo;'. - + Thu Aug 3 17:54:15 1995 Per Bothner * iostream.h, iostream.cc (istream::sync): Added missing method. @@ -1684,7 +1813,7 @@ Fri Feb 11 11:08:01 1994 SBPM Marc GING * iovfprintf.c (helper_vfprintf): add hp->_IO_file_flags = _IO_MAGIC|(_IO_IS_FILEBUF+_IO_NO_READS); [This is needed because _IO_vfprintf checks for _IO_UNBUFFERED. -PB] - [Actually: don't set _IO_IS_FILEBUF. -PB] + [Actually: don't set _IO_IS_FILEBUF. -PB] Wed Jun 22 13:49:22 1994 Per Bothner (bothner@kalessin.cygnus.com) @@ -2164,7 +2293,7 @@ Wed Nov 3 10:20:49 1993 Per Bothner ( _IO_read_base, _IO_read_pre, IO_read_end, _IO_write_base, _IO_write_ptr, _IO_write_end). * libio.h: Remove the old macros (which fixes a conflict. - + Mon Nov 1 15:22:12 1993 Per Bothner (bothner@kalessin.cygnus.com) * iostream.cc: Use _IO_sputn instead of sputn. _IO_sputn does @@ -2207,7 +2336,7 @@ Thu Oct 21 19:24:02 1993 Per Bothner ( Wed Oct 20 15:22:04 1993 Per Bothner (bothner@kalessin.cygnus.com) - * streambuf.h (streambuf::underflow, streambuf::overflow): + * streambuf.h (streambuf::underflow, streambuf::overflow): Don't make virtual functions pure. * streambuf.cc (streambuf::underflow, streambuf::overflow): Default definitions (return EOF). @@ -2289,7 +2418,7 @@ Mon Sep 27 14:04:47 1993 Per Bothner ( * procbuf.cc: Now just a C++ wrapper for the files in iopopen.c. * streambuf.h (ios::unsetf): Return complete old value of flags. * iogets.c (_IO_gets(), ioungetc.c (_IO_ungetc), ioperror.c - (_IO_perror), iostrerror.c (_IO_strerror): New files and + (_IO_perror), iostrerror.c (_IO_strerror): New files and functions, for stdio implementation. * iostdio.h: Add declarations for various recently-added functions. @@ -2355,7 +2484,7 @@ Wed Aug 18 19:34:04 1993 david d `zoo' * configure.in (INSTALLDIR): handle native vs. cross case * Makefile.in (install): don't use $TARGETLIB, set INSTALLDIR to - $(libdir) + $(libdir) Wed Aug 18 12:10:03 1993 Per Bothner (bothner@kalessin.cygnus.com) @@ -2371,3 +2500,5 @@ Tue Aug 17 17:34:24 1993 Per Bothner ( New directory. Based on old libg++/iostream code, but extensively re-written. + + diff -rupN libstdc++-2.8.0/libio/Makefile.in libstdc++-2.8.1/libio/Makefile.in --- libstdc++-2.8.0/libio/Makefile.in Tue Jan 6 23:41:53 1998 +++ libstdc++-2.8.1/libio/Makefile.in Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1993, 1995 Free Software Foundation +# Copyright (C) 1993, 1995, 1998 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 @@ -17,7 +17,7 @@ srcdir = . -VERSION = 2.8.0 +VERSION = 2.8.1 # The config file (overriden by Linux). _G_CONFIG_H=_G_config.h tooldir = $(exec_prefix)/$(target) diff -rupN libstdc++-2.8.0/libio/config/linux.mt libstdc++-2.8.1/libio/config/linux.mt --- libstdc++-2.8.0/libio/config/linux.mt Tue Jan 6 23:41:57 1998 +++ libstdc++-2.8.1/libio/config/linux.mt Tue Feb 24 15:08:44 1998 @@ -16,7 +16,7 @@ _G_CONFIG_H= LIBIO_INCLUDE= # We have those in libc.a. -IO_OBJECTS= +IO_OBJECTS= iogetline.o STDIO_WRAP_OBJECTS= OSPRIM_OBJECTS= STDIO_OBJECTS= diff -rupN libstdc++-2.8.0/libio/config/linuxlibc1.mt libstdc++-2.8.1/libio/config/linuxlibc1.mt --- libstdc++-2.8.0/libio/config/linuxlibc1.mt Tue Jan 6 23:41:58 1998 +++ libstdc++-2.8.1/libio/config/linuxlibc1.mt Tue Feb 24 15:08:44 1998 @@ -11,7 +11,7 @@ LIBIO_INCLUDE= # We have those in libc.a. IO_OBJECTS=iogetc.o ioputc.o iofeof.o ioferror.o \ filedoalloc.o fileops.o genops.o iofclose.o \ - iovsprintf.o iovsscanf.o strops.o + iovsprintf.o iovsscanf.o strops.o iogetline.o STDIO_WRAP_OBJECTS= OSPRIM_OBJECTS= STDIO_OBJECTS= diff -rupN libstdc++-2.8.0/libio/config.shared libstdc++-2.8.1/libio/config.shared --- libstdc++-2.8.0/libio/config.shared Tue Jan 6 23:41:53 1998 +++ libstdc++-2.8.1/libio/config.shared Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1993, 1995, 1997 Free Software Foundation +# Copyright (C) 1993, 1995, 1997, 1998 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 @@ -15,6 +15,10 @@ # along with GNU CC; see the file COPYING. If not, write to # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +# File descriptor usage: +# 1: All macros which need to be re-definable by any target fragments +# 2: All generic rules; especially those which use re-defined macros, e.g. _G_CONFIG_H! + # Significant variables: # Note that TO_TOPDIR does *not* include multilib. @@ -33,6 +37,8 @@ THIS_FILE="${srcdir}/${TOLIBGXX}config.s echo "# Start of package fragment generated by ${THIS_FILE}." echo "" +echo >&2 "# Start of package rules fragment generated by ${THIS_FILE}." +echo >&2 "" # Multilib support. echo 'MULTISRCTOP =' @@ -175,106 +181,107 @@ fi ALL='$(PICDIR)'" ${ALL}" -echo "all: ${ALL} multi-all" +echo >&2 "all: ${ALL} multi-all" if [ "${SUBDIRS}" != "" ] ; then - echo ' @rootme=`pwd`/; export rootme; \' - echo ' $(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do' + echo >&2 ' @rootme=`pwd`/; export rootme; \' + echo >&2 ' $(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do' fi -echo '.PHONY: all' -echo '' +echo >&2 '.PHONY: all' +echo >&2 '' -echo '.PHONY: multi-all' -echo 'multi-all:' -echo ' @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all' -echo '' +echo >&2 '.PHONY: multi-all' +echo >&2 'multi-all:' +echo >&2 ' @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all' +echo >&2 '' -echo +echo >&2 if [ "${SUBDIRS}" != "" ] ; then - echo '.PHONY: subdir_do' - echo 'subdir_do: force' - echo ' @rootme=`pwd`/; export rootme; \' - echo ' for i in $(DODIRS); do \' - echo ' if [ -f ./$$i/Makefile ] ; then \' - echo ' echo "cd $$i; make $(DO) ..." ; \' - echo ' (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) $(DO)) || exit 1 ; \' - echo ' else true ; fi ; \' - echo ' done' - echo '' - echo '# List of variables to pass to sub-makes. This should not be needed' - echo '# by GNU make or Sun make (both of which pass command-line variable' - echo '# overrides thouh $(MAKE)) but may be needed by older versions.' - echo '' - echo 'FLAGS_TO_PASS= \' - echo ' "INSTALL=$(INSTALL)" \' - echo ' "INSTALL_DATA=$(INSTALL_DATA)" \' - echo ' "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \' - echo ' "prefix=$(prefix)" \' - echo ' "exec_prefix=$(exec_prefix)" \' - echo ' "tooldir=$(tooldir)" \' - echo ' "AR=$(AR)" \' - echo ' "AR_FLAGS=$(AR_FLAGS)" \' - echo ' "CC=$(CC)" \' - echo ' "CXX=$(CXX)" \' - echo ' "CFLAGS=$(CFLAGS)" \' - echo ' "CXXFLAGS=$(CXXFLAGS)" \' - echo ' "NM=$(NM)" \' - echo ' "RANLIB=$(RANLIB)" \' - echo ' "LIBCFLAGS=$(LIBCFLAGS)" \' - echo ' "LIBCXXFLAGS=$(LIBCXXFLAGS)" \' - echo ' "LOADLIBES=$(LOADLIBES)" \' - echo ' "LDFLAGS=$(LDFLAGS)" \' - echo ' "MAKEINFO=$(MAKEINFO)" \' - echo ' "SHLIB=$(SHLIB)" \' - echo ' "SHCURSES=$(SHCURSES)" \' - echo ' "PICFLAG=$(PICFLAG)" \' - echo ' "RUNTESTFLAGS=$(RUNTESTFLAGS)"' + echo >&2 '.PHONY: subdir_do' + echo >&2 'subdir_do: force' + echo >&2 ' @rootme=`pwd`/; export rootme; \' + echo >&2 ' for i in $(DODIRS); do \' + echo >&2 ' if [ -f ./$$i/Makefile ] ; then \' + echo >&2 ' echo "cd $$i; make $(DO) ..." ; \' + echo >&2 ' (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) $(DO)) || exit 1 ; \' + echo >&2 ' else true ; fi ; \' + echo >&2 ' done' + echo >&2 '' + echo >&2 '# List of variables to pass to sub-makes. This should not be needed' + echo >&2 '# by GNU make or Sun make (both of which pass command-line variable' + echo >&2 '# overrides thouh $(MAKE)) but may be needed by older versions.' + echo >&2 '' + echo >&2 'FLAGS_TO_PASS= \' + echo >&2 ' "SHELL=$(SHELL)" \' + echo >&2 ' "INSTALL=$(INSTALL)" \' + echo >&2 ' "INSTALL_DATA=$(INSTALL_DATA)" \' + echo >&2 ' "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \' + echo >&2 ' "prefix=$(prefix)" \' + echo >&2 ' "exec_prefix=$(exec_prefix)" \' + echo >&2 ' "tooldir=$(tooldir)" \' + echo >&2 ' "gxx_include_dir=$(gxx_include_dir)" \' + echo >&2 ' "AR=$(AR)" \' + echo >&2 ' "AR_FLAGS=$(AR_FLAGS)" \' + echo >&2 ' "CC=$(CC)" \' + echo >&2 ' "CXX=$(CXX)" \' + echo >&2 ' "CFLAGS=$(CFLAGS)" \' + echo >&2 ' "CXXFLAGS=$(CXXFLAGS)" \' + echo >&2 ' "NM=$(NM)" \' + echo >&2 ' "RANLIB=$(RANLIB)" \' + echo >&2 ' "LIBCFLAGS=$(LIBCFLAGS)" \' + echo >&2 ' "LIBCXXFLAGS=$(LIBCXXFLAGS)" \' + echo >&2 ' "LOADLIBES=$(LOADLIBES)" \' + echo >&2 ' "LDFLAGS=$(LDFLAGS)" \' + echo >&2 ' "MAKEINFO=$(MAKEINFO)" \' + echo >&2 ' "SHLIB=$(SHLIB)" \' + echo >&2 ' "SHCURSES=$(SHCURSES)" \' + echo >&2 ' "RUNTESTFLAGS=$(RUNTESTFLAGS)"' fi -echo 'NOSTDINC = -nostdinc++' +echo >&2 'NOSTDINC = -nostdinc++' if test -n "${XCXXINCLUDES}" ; then - echo "CXXINCLUDES = ${XCXXINCLUDES} "'$(NOSTDINC)' + echo >&2 "CXXINCLUDES = ${XCXXINCLUDES} "'$(NOSTDINC)' elif test "${DOING_LIBGXX}" = "true" ; then - echo 'CXXINCLUDES = $(NOSTDINC) -I. -I'"${TO_TOPDIR}libio"' -I$(srcdir) -I$(srcdir)/'"${TOLIBGXX}"'$(IO_DIR) -I$(srcdir)/'"${TOLIBGXX}"'../libstdc++ -I$(srcdir)/'"${TOLIBGXX}src"' $(WRAP_C_INCLUDES)' + echo >&2 'CXXINCLUDES = $(NOSTDINC) -I. -I'"${TO_TOPDIR}libio"' -I$(srcdir) -I$(srcdir)/'"${TOLIBGXX}"'$(IO_DIR) -I$(srcdir)/'"${TOLIBGXX}"'../libstdc++ -I$(srcdir)/'"${TOLIBGXX}src"' $(WRAP_C_INCLUDES)' fi if test -n "${XCINCLUDES}" ; then - echo "CINCLUDES = ${XCINCLUDES}" + echo >&2 "CINCLUDES = ${XCINCLUDES}" elif test "${DOING_LIBGXX}" = "true" ; then - echo 'CINCLUDES =' + echo >&2 'CINCLUDES =' fi if [ "${LIBDIR}" = "yes" ]; then - echo 'XCFLAGS = $(LIBCFLAGS)' - echo 'XCXXFLAGS = $(LIBCXXFLAGS)' + echo >&2 'XCFLAGS = $(LIBCFLAGS)' + echo >&2 'XCXXFLAGS = $(LIBCXXFLAGS)' else - echo 'XCFLAGS = $(CFLAGS)' - echo 'XCXXFLAGS = $(CXXFLAGS)' + echo >&2 'XCFLAGS = $(CFLAGS)' + echo >&2 'XCXXFLAGS = $(CXXFLAGS)' fi -echo '.SUFFIXES: .o .C .cc .c' -echo 'COMPILE.c = $(CC) -c $(XCFLAGS) $(CINCLUDES) $(MT_CFLAGS)' -echo '.c.o:' +echo >&2 '.SUFFIXES: .o .C .cc .c' +echo >&2 'COMPILE.c = $(CC) -c $(XCFLAGS) $(CINCLUDES) $(MT_CFLAGS)' +echo >&2 '.c.o:' if [ "${LIBDIR}" = "yes" ]; then -echo ' test -z "$(PICFLAG)" ||\' -echo ' $(COMPILE.c) $(PICFLAG) $< -o pic/$@' +echo >&2 ' test x"$(enable_shared)" != xyes ||\' +echo >&2 ' $(COMPILE.c) $(PICFLAG) $< -o pic/$@' fi -echo ' $(COMPILE.c) $<' -[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp' -echo 'COMPILE.cc = $(CXX) -c $(XCXXFLAGS) $(CXXINCLUDES) $(MT_CFLAGS)' -echo '.C.o:' +echo >&2 ' $(COMPILE.c) $<' +[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp' +echo >&2 'COMPILE.cc = $(CXX) -c $(XCXXFLAGS) $(CXXINCLUDES) $(MT_CFLAGS)' +echo >&2 '.C.o:' if [ "${LIBDIR}" = "yes" ]; then -echo ' test -z "$(PICFLAG)" ||\' -echo ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@' +echo >&2 ' test x"$(enable_shared)" != xyes ||\' +echo >&2 ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@' fi -echo ' $(COMPILE.cc) $<' -[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp' -echo '.cc.o:' +echo >&2 ' $(COMPILE.cc) $<' +[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp' +echo >&2 '.cc.o:' if [ "${LIBDIR}" = "yes" ]; then -echo ' test -z "$(PICFLAG)" || \' -echo ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@' +echo >&2 ' test x"$(enable_shared)" != xyes || \' +echo >&2 ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@' fi -echo ' $(COMPILE.cc) $<' -[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp' -echo '' +echo >&2 ' $(COMPILE.cc) $<' +[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp' +echo >&2 '' if [ -n "${TARGETLIB}" ] ; then echo TARGETLIB = ${TARGETLIB} @@ -284,111 +291,111 @@ if [ -n "${TARGETPROG}" ] ; then fi if [ "${LIBDIR}" = "yes" ]; then - echo '' - echo 'stamp-picdir:' - echo ' if [ -n "$(PICFLAG)" ] && [ ! -d pic ]; then \' - echo ' mkdir pic; \' - echo ' else true; fi' - echo ' touch stamp-picdir' + echo >&2 '' + echo >&2 'stamp-picdir:' + echo >&2 ' if [ x"$(enable_shared)" = xyes ] && [ ! -d pic ]; then \' + echo >&2 ' mkdir pic; \' + echo >&2 ' else true; fi' + echo >&2 ' touch stamp-picdir' fi -echo '' -echo '.PHONY: install' -echo 'install:' -echo '.PHONY: check' +echo >&2 '' +echo >&2 '.PHONY: install' +echo >&2 'install:' +echo >&2 '.PHONY: check' if [ "${CHECK}" != "check" ] ; then - echo "check: ${ALL} ${CHECK}" + echo >&2 "check: ${ALL} ${CHECK}" if [ "${CHECK_SUBDIRS}" != "" ] ; then - echo ' rootme=`pwd`/; export rootme; \' - echo ' SAVE_LLPATH="$${SAVE_LLPATH-$$LD_LIBRARY_PATH}"; export SAVE_LLPATH; \' - echo ' LD_LIBRARY_PATH="$${rootme}${TOLIBGXX}../libstdc++:$${rootme}${TOLIBGXX}../libg++:$$SAVE_LLPATH"; \' - echo ' export LD_LIBRARY_PATH; \' - echo ' $(MAKE) "DODIRS=$(CHECK_SUBDIRS)" DO=check $(FLAGS_TO_PASS) subdir_do' + echo >&2 ' rootme=`pwd`/; export rootme; \' + echo >&2 ' SAVE_LLPATH="$${SAVE_LLPATH-$$LD_LIBRARY_PATH}"; export SAVE_LLPATH; \' + echo >&2 ' LD_LIBRARY_PATH="$${rootme}${TOLIBGXX}../libstdc++:$${rootme}${TOLIBGXX}../libg++:$$SAVE_LLPATH"; \' + echo >&2 ' export LD_LIBRARY_PATH; \' + echo >&2 ' $(MAKE) "DODIRS=$(CHECK_SUBDIRS)" DO=check $(FLAGS_TO_PASS) subdir_do' fi fi # Generate rules for documentation (depending on INFO_FILES and INFO_SUBDIRS). -echo '.PHONY: info dvi install-info clean-info' +echo >&2 '.PHONY: info dvi install-info clean-info' # emit the rule for 'info' # (Note that the top-level ../Makefile.in greps for '^info:' when making # a release (in "make taz"), so don't break that!) if [ -z "${INFO_FILES}" ] ; then - echo 'info:' + echo >&2 'info:' else - echo info: `for file in ${INFO_FILES} ; do echo $file.info ; done` + echo >&2 info: `for file in ${INFO_FILES} ; do echo $file.info ; done` fi if [ "${INFO_SUBDIRS}" != "" ] ; then - echo ' @rootme=`pwd`/; export rootme; \ + echo >&2 ' @rootme=`pwd`/; export rootme; \ $(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=info $(FLAGS_TO_PASS) subdir_do' fi # emit the rule for 'dvi' if [ -z "${INFO_FILES}" ] ; then - echo 'dvi:' + echo >&2 'dvi:' else - echo dvi: `for file in ${INFO_FILES} ; do echo $file.dvi ; done` + echo >&2 dvi: `for file in ${INFO_FILES} ; do echo $file.dvi ; done` fi if [ "${INFO_SUBDIRS}" != "" ] ; then - echo ' @rootme=`pwd`/; export rootme; \ + echo >&2 ' @rootme=`pwd`/; export rootme; \ $(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=dvi $(FLAGS_TO_PASS) subdir_do' fi # Emit rules for each *.info and *.dvi file for file in ${INFO_FILES} ; do - echo ${file}.info: '$(srcdir)'/${file}.texi - echo ' $(MAKEINFO) -I$(srcdir) -I$(TEXIDIR) $(srcdir)/'${file}.texi -o ${file}.info - echo ${file}.dvi: '$(srcdir)'/${file}.texi - echo ' $(TEXI2DVI) $(srcdir)'/${file}.texi - echo "${file}.ps: ${file}.dvi" - echo " dvips ${file} -o" + echo >&2 ${file}.info: '$(srcdir)'/${file}.texi + echo >&2 ' $(MAKEINFO) -I$(srcdir) -I$(TEXIDIR) $(srcdir)/'${file}.texi -o ${file}.info + echo >&2 ${file}.dvi: '$(srcdir)'/${file}.texi + echo >&2 ' $(TEXI2DVI) $(srcdir)'/${file}.texi + echo >&2 "${file}.ps: ${file}.dvi" + echo >&2 " dvips ${file} -o" done # emit the rule for install-info -echo 'install-info:' +echo >&2 'install-info:' if [ -n "${INFO_FILES}" ] ; then - echo ' -parent=`echo $(infodir)|sed -e' "'"'s@/[^/]*$$@@'"'"'`; \' - echo ' if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi' - echo ' -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi' - echo ' for i in *.info* ; do \' - echo ' $(INSTALL_DATA) $$i $(infodir)/$$i ; \' - echo ' done' + echo >&2 ' -parent=`echo $(infodir)|sed -e' "'"'s@/[^/]*$$@@'"'"'`; \' + echo >&2 ' if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi' + echo >&2 ' -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi' + echo >&2 ' for i in *.info* ; do \' + echo >&2 ' $(INSTALL_DATA) $$i $(infodir)/$$i ; \' + echo >&2 ' done' fi if [ "${INFO_SUBDIRS}" != "" ] ; then - echo ' @rootme=`pwd`/; export rootme; \ + echo >&2 ' @rootme=`pwd`/; export rootme; \ $(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=install-info $(FLAGS_TO_PASS) subdir_do' fi # emit clean-info and clean-dvi rules -echo '.PHONY: do-clean-info clean-info do-clean-dvi clean-dvi' -echo do-clean-info: +echo >&2 '.PHONY: do-clean-info clean-info do-clean-dvi clean-dvi' +echo >&2 do-clean-info: if [ -n "${INFO_FILES}" ] ; then - echo ' rm -f *.info*' + echo >&2 ' rm -f *.info*' fi -echo 'do-clean-dvi:' +echo >&2 'do-clean-dvi:' if [ -n "${INFO_FILES}" ] ; then - echo ' rm -f *.dvi *.aux *.cp *.cps *.fn* *.ky *.log *.pg *.toc *.tp *.vr' + echo >&2 ' rm -f *.dvi *.aux *.cp *.cps *.fn* *.ky *.log *.pg *.toc *.tp *.vr' fi for type in info dvi ; do - echo clean-${type}: do-clean-${type} + echo >&2 clean-${type}: do-clean-${type} if [ "${INFO_SUBDIRS}" != "" ] ; then - echo ' @rootme=`pwd`/; export rootme; \ + echo >&2 ' @rootme=`pwd`/; export rootme; \ $(MAKE) "DODIRS='${NFO_SUBDIRS}'" DO=clean-'${type} '$(FLAGS_TO_PASS) subdir_do' fi done -echo '' +echo >&2 '' -echo '.PHONY: boltcc' -echo 'boltcc:' -echo ' rootme=`pwd`/ ; export rootme ; $(MAKE) $(FLAGS_TO_PASS)' -echo '' +echo >&2 '.PHONY: boltcc' +echo >&2 'boltcc:' +echo >&2 ' rootme=`pwd`/ ; export rootme ; $(MAKE) $(FLAGS_TO_PASS)' +echo >&2 '' # Emit clean rules -echo '' -echo '# clean rules' +echo >&2 '' +echo >&2 '# clean rules' 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}}" @@ -396,57 +403,57 @@ DISTCLEAN="${DISTCLEAN-config.status Mak REALCLEAN="${REALCLEAN-depend *.info*}" -echo '.PHONY: mostlyclean clean distclean maintainer-clean realclean' +echo >&2 '.PHONY: mostlyclean clean distclean maintainer-clean realclean' if test -z "${SUBDIRS}" ; then - echo "mostlyclean: clean-dvi" - echo " rm -rf ${MOSTLYCLEAN}" - echo ' @$(MULTICLEAN) multi-clean DO=mostlyclean' - echo "clean: clean-dvi" - echo " rm -rf ${MOSTLYCLEAN} ${CLEAN}" - echo ' @$(MULTICLEAN) multi-clean DO=clean' - echo "distclean: clean" - echo ' @$(MULTICLEAN) multi-clean DO=distclean' - echo " rm -rf ${DISTCLEAN}" - echo "maintainer-clean realclean: clean clean-info" - echo ' @$(MULTICLEAN) multi-clean DO=maintainer-clean' - echo " rm -rf ${DISTCLEAN} ${REALCLEAN}" + echo >&2 "mostlyclean: clean-dvi" + echo >&2 " rm -rf ${MOSTLYCLEAN}" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=mostlyclean' + echo >&2 "clean: clean-dvi" + echo >&2 " rm -rf ${MOSTLYCLEAN} ${CLEAN}" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=clean' + echo >&2 "distclean: clean" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=distclean' + echo >&2 " rm -rf ${DISTCLEAN}" + echo >&2 "maintainer-clean realclean: clean clean-info" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=maintainer-clean' + echo >&2 " rm -rf ${DISTCLEAN} ${REALCLEAN}" else - echo '.PHONY: do-clean subdir_distclean subdir_maintainer_clean' - echo "mostlyclean: do-clean-dvi" - echo " rm -rf ${MOSTLYCLEAN}" - echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=mostlyclean subdir_do' - echo ' @$(MULTICLEAN) multi-clean DO=mostlyclean' - echo "do-clean: do-clean-dvi" - echo " rm -rf ${MOSTLYCLEAN} ${CLEAN}" - echo "clean: do-clean" - echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=clean subdir_do' - echo ' @$(MULTICLEAN) multi-clean DO=clean' + echo >&2 '.PHONY: do-clean subdir_distclean subdir_maintainer_clean' + echo >&2 "mostlyclean: do-clean-dvi" + echo >&2 " rm -rf ${MOSTLYCLEAN}" + echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=mostlyclean subdir_do' + echo >&2 ' @$(MULTICLEAN) multi-clean DO=mostlyclean' + echo >&2 "do-clean: do-clean-dvi" + echo >&2 " rm -rf ${MOSTLYCLEAN} ${CLEAN}" + echo >&2 "clean: do-clean" + echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=clean subdir_do' + echo >&2 ' @$(MULTICLEAN) multi-clean DO=clean' # distclean and maintainer-clean are tricky because they remove the Makefile. - echo "subdir_distclean:" - echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=distclean subdir_do' - echo "distclean: do-clean subdir_distclean" - echo ' @$(MULTICLEAN) multi-clean DO=distclean' - echo " rm -rf ${DISTCLEAN}" - echo "subdir_maintainer_clean:" - echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=maintainer-clean subdir_do' - echo "maintainer-clean realclean: do-clean subdir_maintainer_clean do-clean-info" - echo ' @$(MULTICLEAN) multi-clean DO=maintainer-clean' - echo " rm -rf ${DISTCLEAN} ${REALCLEAN}" -fi - -echo '' -echo '.PHONY: force' -echo 'force:' -echo '' -echo '# with the gnu make, this is done automatically.' -echo '' -echo 'Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)' -echo ' $(SHELL) ./config.status' -echo '' -echo '.NOEXPORT:' -echo 'MAKEOVERRIDES=' + echo >&2 "subdir_distclean:" + echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=distclean subdir_do' + echo >&2 "distclean: do-clean subdir_distclean" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=distclean' + echo >&2 " rm -rf ${DISTCLEAN}" + echo >&2 "subdir_maintainer_clean:" + echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=maintainer-clean subdir_do' + echo >&2 "maintainer-clean realclean: do-clean subdir_maintainer_clean do-clean-info" + echo >&2 ' @$(MULTICLEAN) multi-clean DO=maintainer-clean' + echo >&2 " rm -rf ${DISTCLEAN} ${REALCLEAN}" +fi + +echo >&2 '' +echo >&2 '.PHONY: force' +echo >&2 'force:' +echo >&2 '' +echo >&2 '# with the gnu make, this is done automatically.' +echo >&2 '' +echo >&2 'Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)' +echo >&2 ' $(SHELL) ./config.status' +echo >&2 '' +echo >&2 '.NOEXPORT:' +echo >&2 'MAKEOVERRIDES=' -cat <<"EOF" +cat >&2 <<"EOF" DEPEND_SOURCES = ${srcdir}/*.cc ${srcdir}/*.c depend.new: # The sed script below attempts to make the depend output portable. @@ -479,7 +486,8 @@ $(srcdir)/depend: depend.new EOF if [ -f ${srcdir}/${subdir}/depend ] ; then - cat ${srcdir}/${subdir}/depend + cat ${srcdir}/${subdir}/depend >&2 fi echo "# End of package fragment generated by ${THIS_FILE}." +echo >&2 "# End of package rules fragment generated by ${THIS_FILE}." diff -rupN libstdc++-2.8.0/libio/configure.in libstdc++-2.8.1/libio/configure.in --- libstdc++-2.8.0/libio/configure.in Tue Jan 6 23:41:53 1998 +++ libstdc++-2.8.1/libio/configure.in Sat Feb 28 11:20:18 1998 @@ -2,10 +2,25 @@ # necessary for a configure script to process the program in # this directory. For more information, look at ../configure. -configdirs="tests dbz stdio testsuite" +if [ "${srcdir}" = "." ] ; then + if [ "${with_target_subdir}" != "." ] ; then + topsrcdir=${with_multisrctop}../.. + else + topsrcdir=${with_multisrctop}.. + fi +else + topsrcdir=${srcdir}/.. +fi + +if [ -d ${topsrcdir}/gcc ] ; then + configdirs="tests dbz stdio testsuite" +else + configdirs="tests dbz stdio" +fi srctrigger=libioP.h srcname="input/output library" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -78,6 +93,13 @@ case "${target}" in esac for frag in ${frags}; do + case "${frag}" in + ../../config/* ) + if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then + frag=../${frag} + fi + ;; + esac frag=${srcdir}/config/$frag if [ -f ${frag} ]; then echo "Appending ${frag} to target-mkfrag" @@ -101,7 +123,7 @@ INFO_FILES=iostream if [ -n "${with_cross_host}" ] ; then CHECK_SUBDIRS=testsuite fi -(. ${srcdir}/config.shared) >${package_makefile_frag} +(. ${srcdir}/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: @@ -116,12 +138,4 @@ if [ -n "${with_cross_host}" ] ; then mv -f Makefile.tem Makefile fi -if [ "${srcdir}" = "." ] ; then - if [ "${with_target_subdir}" != "." ] ; then - . ${with_multisrctop}../../config-ml.in - else - . ${with_multisrctop}../config-ml.in - fi -else - . ${srcdir}/../config-ml.in -fi +. ${topsrcdir}/config-ml.in diff -rupN libstdc++-2.8.0/libio/dbz/dbz.c libstdc++-2.8.1/libio/dbz/dbz.c --- libstdc++-2.8.0/libio/dbz/dbz.c Fri Aug 22 00:58:23 1997 +++ libstdc++-2.8.1/libio/dbz/dbz.c Tue Feb 24 15:08:44 1998 @@ -1198,14 +1198,19 @@ register struct dbzconfig *cp; DEBUG(("fseek failure in putconf\n")); ret = -1; } - fprintf(f, "dbz %d %ld %d %c %ld %ld %d %d", dbzversion, cp->tsize, - cp->fieldsep, cp->casemap, cp->tagenb, - cp->tagmask, cp->tagshift, cp->valuesize); + fprintf(f, "dbz %d %ld %d %c %ld %ld %d %d", dbzversion, + (long)cp->tsize, + cp->fieldsep, cp->casemap, (long)cp->tagenb, + (long)cp->tagmask, cp->tagshift, + cp->valuesize); + for (i = 0; i < cp->valuesize; i++) fprintf(f, " %d", cp->bytemap[i]); fprintf(f, "\n"); for (i = 0; i < NUSEDS; i++) - fprintf(f, "%ld%c", cp->used[i], (i < NUSEDS-1) ? ' ' : '\n'); + fprintf(f, "%ld%c", + (long)cp->used[i], (i < NUSEDS-1) ? ' ' : '\n'); + (void) fflush(f); if (ferror(f)) diff -rupN libstdc++-2.8.0/libio/dbz/dbzmain.c libstdc++-2.8.1/libio/dbz/dbzmain.c --- libstdc++-2.8.0/libio/dbz/dbzmain.c Fri Aug 22 00:58:23 1997 +++ libstdc++-2.8.1/libio/dbz/dbzmain.c Tue Feb 24 15:08:44 1998 @@ -19,7 +19,7 @@ #define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) #ifndef lint -static char RCSid[] = "$Header: /cvs/cvsfiles/egcs/libio/dbz/dbzmain.c,v 1.1.1.1 1997/08/21 22:58:23 jason Exp $"; +static char RCSid[] = "$Header: /egcs/carton/cvsfiles/egcs/libio/dbz/dbzmain.c,v 1.1.1.1.2.1 1998/02/15 20:10:48 law Exp $"; #endif char *progname; @@ -278,7 +278,7 @@ mkfiles() } else if (op == 'b' && dbzint) { if (!exact) siz = dbzsize(siz); - if (dbzfresh(my_basename, siz, (int)fs, map, tag) < 0) + if (dbzfresh(my_basename, siz, (int)fs, map, (off_t)tag) < 0) fail("dbzfresh(`%s'...) failed", my_basename); } else if (dbminit(my_basename) < 0) fail("dbminit(`%s') failed", my_basename); diff -rupN libstdc++-2.8.0/libio/filebuf.cc libstdc++-2.8.1/libio/filebuf.cc --- libstdc++-2.8.0/libio/filebuf.cc Fri Aug 22 00:58:14 1997 +++ libstdc++-2.8.1/libio/filebuf.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993, 1995 Free Software Foundation +Copyright (C) 1993, 1995, 1998 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 @@ -111,6 +111,10 @@ filebuf* filebuf::open(const char *filen posix_mode |= O_CREAT; if (mode & (int)ios::noreplace) posix_mode |= O_EXCL; +#if _G_HAVE_IO_FILE_OPEN + return (filebuf*)_IO_file_open (this, filename, posix_mode, prot, + read_write, 0); +#else int fd = ::open(filename, posix_mode, prot); if (fd < 0) return NULL; @@ -122,11 +126,16 @@ filebuf* filebuf::open(const char *filen } _IO_link_in(this); return this; +#endif } filebuf* filebuf::open(const char *filename, const char *mode) { +#if _G_IO_IO_FILE_VERSION == 0x20001 + return (filebuf*)_IO_file_fopen(this, filename, mode, 0); +#else return (filebuf*)_IO_file_fopen(this, filename, mode); +#endif } filebuf* filebuf::attach(int fd) diff -rupN libstdc++-2.8.0/libio/fileops.c libstdc++-2.8.1/libio/fileops.c --- libstdc++-2.8.0/libio/fileops.c Wed Sep 17 02:51:05 1997 +++ libstdc++-2.8.1/libio/fileops.c Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. Written by Per Bothner . @@ -33,6 +33,7 @@ #include #include #include +#include #include #ifndef errno extern int errno; diff -rupN libstdc++-2.8.0/libio/gen-params libstdc++-2.8.1/libio/gen-params --- libstdc++-2.8.0/libio/gen-params Tue Jan 6 23:41:54 1998 +++ libstdc++-2.8.1/libio/gen-params Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 1992, 1993, 1994 Free Software Foundation +# Copyright (C) 1992, 1993, 1994, 1998 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 @@ -277,7 +277,7 @@ fi tr ' ' ' ' dummy.out for TYPE in dev_t clock_t fpos_t gid_t ino_t mode_t nlink_t off_t pid_t ptrdiff_t sigset_t size_t ssize_t time_t uid_t va_list wchar_t wint_t int16_t uint16_t int32_t uint_32_t u_int16_t u_int32_t; do - IMPORTED=`eval 'echo $'"$TYPE"` + eval IMPORTED=\$$TYPE if [ -n "${IMPORTED}" ] ; then eval "$TYPE='$IMPORTED'" else @@ -318,9 +318,9 @@ done # Look for some standard macros. for NAME in BUFSIZ FOPEN_MAX FILENAME_MAX NULL; do - IMPORTED=`eval 'echo $'"$NAME"` + eval IMPORTED=\$$NAME if [ -n "${IMPORTED}" ] ; then - eval "$NAME='$IMPORTED /* specified */" + eval "$NAME='$IMPORTED /* specified */'" else rm -f TMP ${SED} -n -e 's| *;|;|g' -e "s|long X${NAME}= *\(.*\);|\1|w TMP" \ @@ -334,9 +334,9 @@ done # These macros must be numerical constants; strip any trailing 'L's. for NAME in SHRT_MAX INT_MAX LONG_MAX LONG_LONG_MAX; do - IMPORTED=`eval 'echo $'"$NAME"` + eval IMPORTED=\$$NAME if [ -n "${IMPORTED}" ] ; then - eval "$NAME='$IMPORTED /* specified */" + eval "$NAME='$IMPORTED /* specified */'" else rm -f TMP ${SED} -n -e 's| *;|;|g' -e "s|long X${NAME}= *\([0-9]*\)L* *;|\1|w TMP" \ @@ -382,8 +382,10 @@ typedef int ${macro_prefix}int typedef unsigned int ${macro_prefix}uint32_t __attribute__((__mode__(__SI__))); typedef int ${macro_prefix}int64_t __attribute__((__mode__(__DI__))); typedef unsigned int ${macro_prefix}uint64_t __attribute__((__mode__(__DI__))); +#if __GNUC__ > 2 || __GNUC_MINOR__ >= 8 __extension__ typedef long long ${macro_prefix}llong; __extension__ typedef unsigned long long ${macro_prefix}ullong; +#endif #else typedef $int16_t ${macro_prefix}int16_t; typedef $uint16_t ${macro_prefix}uint16_t; diff -rupN libstdc++-2.8.0/libio/iogetline.c libstdc++-2.8.1/libio/iogetline.c --- libstdc++-2.8.0/libio/iogetline.c Sat Sep 6 09:43:18 1997 +++ libstdc++-2.8.1/libio/iogetline.c Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -26,6 +26,19 @@ #include "libioP.h" #include +#if defined(_LIBC) || !_G_HAVE_IO_GETLINE_INFO + +_IO_size_t +_IO_getline (fp, buf, n, delim, extract_delim) + _IO_FILE *fp; + char *buf; + _IO_size_t n; + int delim; + int extract_delim; +{ + return _IO_getline_info (fp, buf, n, delim, extract_delim, (int *) 0); +} + /* Algorithm based on that used by Berkeley pre-4.4 fgets implementation. Read chars into buf (of size n), until delim is seen. @@ -35,44 +48,65 @@ If extract_delim > 0, insert delim in output. */ _IO_size_t -_IO_getline (fp, buf, n, delim, extract_delim) +_IO_getline_info (fp, buf, n, delim, extract_delim, eof) _IO_FILE *fp; char *buf; _IO_size_t n; int delim; int extract_delim; + int *eof; { char *ptr = buf; + if (eof) *eof = 0; do { _IO_ssize_t len = fp->_IO_read_end - fp->_IO_read_ptr; - char *t; if (len <= 0) - if (__underflow (fp) == EOF) - break; - else - len = fp->_IO_read_end - fp->_IO_read_ptr; - if ((_IO_size_t) len >= n) - len = n; - t = (char *) memchr ((void *) fp->_IO_read_ptr, delim, len); - if (t != NULL) { - _IO_size_t old_len = ptr-buf; - len = t - fp->_IO_read_ptr; - if (extract_delim >= 0) + int c = __uflow (fp); + if (c == EOF) + { + if (eof) *eof = c; + break; + } + if (c == delim) { - ++t; if (extract_delim > 0) - ++len; + *ptr++ = c; + else if (extract_delim < 0) + _IO_sputbackc (fp, c); + return ptr - buf; } - memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len); - fp->_IO_read_ptr = t; - return old_len + len; + *ptr++ = c; + n--; } - memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len); - fp->_IO_read_ptr += len; - ptr += len; - n -= len; + else + { + char *t; + if ((_IO_size_t) len >= n) + len = n; + t = (char *) memchr ((void *) fp->_IO_read_ptr, delim, len); + if (t != NULL) + { + _IO_size_t old_len = ptr-buf; + len = t - fp->_IO_read_ptr; + if (extract_delim >= 0) + { + ++t; + if (extract_delim > 0) + ++len; + } + memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len); + fp->_IO_read_ptr = t; + return old_len + len; + } + memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len); + fp->_IO_read_ptr += len; + ptr += len; + n -= len; + } } while (n != 0); return ptr - buf; } + +#endif /* Defined(_LIBC) || !_G_HAVE_IO_GETLINE_INFO */ diff -rupN libstdc++-2.8.0/libio/iolibio.h libstdc++-2.8.1/libio/iolibio.h --- libstdc++-2.8.0/libio/iolibio.h Wed Sep 17 02:42:51 1997 +++ libstdc++-2.8.1/libio/iolibio.h Tue Feb 24 15:08:44 1998 @@ -45,8 +45,13 @@ extern int _IO_obstack_printf __P ((stru (_IO_seekoff(__fp, __offset, __whence, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD ? EOF : 0) #define _IO_rewind(FILE) (void)_IO_seekoff(FILE, 0, 0, _IOS_INPUT|_IOS_OUTPUT) #define _IO_vprintf(FORMAT, ARGS) _IO_vfprintf(_IO_stdout, FORMAT, ARGS) +#if _G_IO_IO_FILE_VERSION == 0x20001 +#define _IO_freopen(FILENAME, MODE, FP) \ + (_IO_file_close_it(FP), _IO_file_fopen(FP, FILENAME, MODE, 0)) +#else #define _IO_freopen(FILENAME, MODE, FP) \ (_IO_file_close_it(FP), _IO_file_fopen(FP, FILENAME, MODE)) +#endif #define _IO_fileno(FP) ((FP)->_fileno) extern _IO_FILE* _IO_popen __P((const char*, const char*)); #define _IO_pclose _IO_fclose diff -rupN libstdc++-2.8.0/libio/ioprims.c libstdc++-2.8.1/libio/ioprims.c --- libstdc++-2.8.0/libio/ioprims.c Wed Sep 17 02:42:52 1997 +++ libstdc++-2.8.1/libio/ioprims.c Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* -Copyright (C) 1993 Free Software Foundation +Copyright (C) 1993, 1998 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 @@ -31,6 +31,7 @@ the executable file might be covered by #include "libioP.h" #include #include +#include #ifdef TODO /* Add open, isatty */ diff -rupN libstdc++-2.8.0/libio/iostream.cc libstdc++-2.8.1/libio/iostream.cc --- libstdc++-2.8.0/libio/iostream.cc Tue Jan 6 23:41:55 1998 +++ libstdc++-2.8.1/libio/iostream.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. - Copyright (C) 1993, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or modify it under the @@ -333,11 +333,15 @@ READ_INT(bool) istream& istream::operator>>(long double& x) { if (ipfx0()) + { #if _G_HAVE_LONG_DOUBLE_IO scan("%Lg", &x); #else - scan("%lg", &x); + double y; + scan("%lg", &y); + x = y; #endif + } return *this; } @@ -617,21 +621,24 @@ ostream& ostream::operator<<(double n) // Do actual conversion. #if _G_HAVE_PRINTF_FP { - struct printf_info info = { prec: prec, - width: width(0), - spec: format_char, - is_long_double: 0, - is_short: 0, - is_long: 0, - alt: (flags() & ios::showpoint) != 0, - space: 0, - left: (flags() & ios::left) != 0, - showsign: (flags() & ios::showpos) != 0, - group: 0, - pad: fill() + struct printf_info info = { /* prec: */ prec, + /* width: */ width(0), + /* spec: */ format_char, + /* is_long_double: */ 0, + /* is_short: */ 0, + /* is_long: */ 0, + /* alt: */ (flags() & ios::showpoint) != 0, + /* space: */ 0, + /* left: */ (flags() & ios::left) != 0, + /* showsign: */ (flags() & ios::showpos) != 0, + /* group: */ 0, #if defined __GLIBC__ && __GLIBC__ >= 2 - , extra: 0 + /* extra: */ 0, +#if __GLIBC_MINOR__ >= 1 + /* is_char: */ 0, #endif +#endif + /* pad: */ fill() }; const void *ptr = (const void *) &n; if (__printf_fp (rdbuf(), &info, &ptr) < 0) @@ -720,21 +727,24 @@ ostream& ostream::operator<<(long double #if _G_HAVE_PRINTF_FP // Do actual conversion. - struct printf_info info = { prec: prec, - width: width(0), - spec: format_char, - is_long_double: 1, - is_short: 0, - is_long: 0, - alt: (flags() & ios::showpoint) != 0, - space: 0, - left: (flags() & ios::left) != 0, - showsign: (flags() & ios::showpos) != 0, - group: 0, - pad: fill() + struct printf_info info = { /* prec: */ prec, + /* width: */ width(0), + /* spec: */ format_char, + /* is_long_double: */ 1, + /* is_short: */ 0, + /* is_long: */ 0, + /* alt: */ (flags() & ios::showpoint) != 0, + /* space: */ 0, + /* left: */ (flags() & ios::left) != 0, + /* showsign: */ (flags() & ios::showpos) != 0, + /* group: */ 0, #if defined __GLIBC__ && __GLIBC__ >= 2 - , extra: 0 + /* extra: */ 0, +#if __GLIBC_MINOR__ >= 1 + /* is_char: */ 0, +#endif #endif + /* pad: */ fill() }; const void *ptr = (const void *) &n; diff -rupN libstdc++-2.8.0/libio/isgetline.cc libstdc++-2.8.1/libio/isgetline.cc --- libstdc++-2.8.0/libio/isgetline.cc Fri Aug 22 00:58:19 1997 +++ libstdc++-2.8.1/libio/isgetline.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993 Free Software Foundation +Copyright (C) 1993, 1998 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 @@ -38,8 +38,9 @@ istream& istream::getline(char* buf, int if (ipfx1()) { streambuf *sb = rdbuf(); - _gcount = _IO_getline(sb, buf, len - 1, delim, -1); - ch = sb->sbumpc(); + _gcount = _IO_getline_info(sb, buf, len - 1, delim, -1, &ch); + if (ch != EOF) + ch = sb->sbumpc(); if (ch == EOF) set (_gcount == 0 ? (ios::failbit|ios::eofbit) : ios::eofbit); else if (ch != (unsigned char) delim) @@ -67,8 +68,9 @@ istream& istream::get(char* buf, int len if (ipfx1()) { streambuf *sbuf = rdbuf(); - long count = _IO_getline(sbuf, buf, len - 1, delim, -1); - if (count == 0 && sbuf->sgetc() == EOF) + int ch; + long count = _IO_getline_info(sbuf, buf, len - 1, delim, -1, &ch); + if (_gcount == 0 && ch == EOF) set(ios::failbit|ios::eofbit); else _gcount = count; @@ -92,8 +94,10 @@ char *_sb_readline (streambuf *sb, long& char *ptr; int ch; - _IO_size_t count = _IO_getline(sb, buf, CHUNK_SIZE, terminator, -1); - ch = sb->sbumpc(); + _IO_size_t count = _IO_getline_info(sb, buf, CHUNK_SIZE, terminator, + -1, &ch); + if (ch != EOF) + ch = sb->sbumpc(); long old_total = total; total += count; if (ch != EOF && ch != terminator) { diff -rupN libstdc++-2.8.0/libio/libio.h libstdc++-2.8.1/libio/libio.h --- libstdc++-2.8.0/libio/libio.h Tue Jan 6 23:41:55 1998 +++ libstdc++-2.8.1/libio/libio.h Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 95, 97, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. Written by Per Bothner . @@ -39,6 +39,10 @@ #define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE #define _IO_BUFSIZ _G_BUFSIZ #define _IO_va_list _G_va_list +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +#define _IO_fpos64_t _G_fpos64_t +#define _IO_off64_t _G_off64_t +#endif #ifdef _G_NEED_STDARG_H /* This define avoids name pollution if we're using GNU stdarg.h */ @@ -55,9 +59,9 @@ # include # else # ifdef __STDC__ -# define __P(p) p +# define __P(protos) protos # else -# define __P(p) () +# define __P(protos) () # endif # endif #endif /*!__P*/ @@ -220,7 +224,11 @@ struct _IO_FILE { int _fileno; int _blksize; +#ifdef _G_IO_IO_FILE_VERSION + _IO_off_t _old_offset; +#else _IO_off_t _offset; +#endif #define __HAVE_COLUMN /* temporary */ /* 1+column number of pbase(); 0 is unknown. */ @@ -233,12 +241,22 @@ struct _IO_FILE { #ifdef _IO_LOCK_T _IO_LOCK_T _lock; #endif +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 + _IO_off64_t _offset; + int _unused2[16]; /* Make sure we don't get into trouble again. */ +#endif }; #ifndef __cplusplus typedef struct _IO_FILE _IO_FILE; #endif +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +#define _IO_stdin_ _IO_2_1_stdin_ +#define _IO_stdout_ _IO_2_1_stdout_ +#define _IO_stderr_ _IO_2_1_stderr_ +#endif + struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_stdin_, _IO_stdout_, _IO_stderr_; #define _IO_stdin ((_IO_FILE*)(&_IO_stdin_)) @@ -321,8 +339,13 @@ extern int _IO_vfprintf __P ((_IO_FILE * extern _IO_ssize_t _IO_padn __P ((_IO_FILE *, int, _IO_ssize_t)); extern _IO_size_t _IO_sgetn __P ((_IO_FILE *, void *, _IO_size_t)); +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int)); +extern _IO_fpos64_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos64_t, int)); +#else extern _IO_fpos_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int)); extern _IO_fpos_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos_t, int)); +#endif extern void _IO_free_backup_area __P ((_IO_FILE *)); diff -rupN libstdc++-2.8.0/libio/libioP.h libstdc++-2.8.1/libio/libioP.h --- libstdc++-2.8.0/libio/libioP.h Tue Jan 6 23:41:56 1998 +++ libstdc++-2.8.1/libio/libioP.h Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -138,8 +138,13 @@ typedef _IO_size_t (*_IO_xsgetn_t) __P ( (MODE==1), or the end of the file (MODE==2). It matches the streambuf::seekoff virtual function. It is also used for the ANSI fseek function. */ +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +typedef _IO_fpos64_t (*_IO_seekoff_t) __P ((_IO_FILE *FP, _IO_off64_t OFF, + int DIR, int MODE)); +#else typedef _IO_fpos_t (*_IO_seekoff_t) __P ((_IO_FILE *FP, _IO_off_t OFF, int DIR, int MODE)); +#endif #define _IO_SEEKOFF(FP, OFF, DIR, MODE) JUMP3 (__seekoff, FP, OFF, DIR, MODE) /* The 'seekpos' hook also moves the stream position, @@ -147,7 +152,11 @@ typedef _IO_fpos_t (*_IO_seekoff_t) __P It matches the streambuf::seekpos virtual function. It is also used for the ANSI fgetpos and fsetpos functions. */ /* The _IO_seek_cur and _IO_seek_end options are not allowed. */ +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +typedef _IO_fpos64_t (*_IO_seekpos_t) __P ((_IO_FILE *, _IO_fpos64_t, int)); +#else typedef _IO_fpos_t (*_IO_seekpos_t) __P ((_IO_FILE *, _IO_fpos_t, int)); +#endif #define _IO_SEEKPOS(FP, POS, FLAGS) JUMP2 (__seekpos, FP, POS, FLAGS) /* The 'setbuf' hook gives a buffer to the file. @@ -196,7 +205,11 @@ typedef _IO_ssize_t (*_IO_write_t) __P ( It generalizes the Unix lseek(2) function. It matches the streambuf::sys_seek virtual function, which is specific to this implementation. */ +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +typedef _IO_fpos64_t (*_IO_seek_t) __P ((_IO_FILE *, _IO_off64_t, int)); +#else typedef _IO_fpos_t (*_IO_seek_t) __P ((_IO_FILE *, _IO_off_t, int)); +#endif #define _IO_SYSSEEK(FP, OFFSET, MODE) JUMP2 (__seek, FP, OFFSET, MODE) /* The 'sysclose' hook is used to finalize (close, finish up) an @@ -213,6 +226,19 @@ typedef int (*_IO_close_t) __P ((_IO_FIL typedef int (*_IO_stat_t) __P ((_IO_FILE *, void *)); #define _IO_SYSSTAT(FP, BUF) JUMP1 (__stat, FP, BUF) +#if _G_IO_IO_FILE_VERSION == 0x20001 +/* The 'showmany' hook can be used to get an image how much input is + available. In many cases the answer will be 0 which means unknown + but some cases one can provide real information. */ +typedef int (*_IO_showmanyc_t) __P ((_IO_FILE *)); +#define _IO_SHOWMANYC(FP) JUMP0 (__showmanyc, FP) + +/* The 'imbue' hook is used to get information about the currently + installed locales. */ +typedef void (*_IO_imbue_t) __P ((_IO_FILE *, void *)); +#define _IO_IMBUE(FP, LOCALE) JUMP1 (__imbue, FP, LOCALE) +#endif + #define _IO_CHAR_TYPE char /* unsigned char ? */ #define _IO_INT_TYPE int @@ -241,6 +267,10 @@ struct _IO_jump_t JUMP_FIELD(_IO_seek_t, __seek); JUMP_FIELD(_IO_close_t, __close); JUMP_FIELD(_IO_stat_t, __stat); +#if _G_IO_IO_FILE_VERSION == 0x20001 + JUMP_FIELD(_IO_showmanyc_t, __showmanyc); + JUMP_FIELD(_IO_imbue_t, __imbue); +#endif #if 0 get_column; set_column; @@ -260,8 +290,13 @@ struct _IO_FILE_plus /* Generic functions */ +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int)); +extern _IO_fpos64_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos64_t, int)); +#else extern _IO_fpos_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int)); extern _IO_fpos_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos_t, int)); +#endif extern void _IO_switch_to_main_get_area __P ((_IO_FILE *)); extern void _IO_switch_to_backup_area __P ((_IO_FILE *)); @@ -297,13 +332,24 @@ extern _IO_FILE* _IO_default_setbuf __P extern _IO_size_t _IO_default_xsputn __P ((_IO_FILE *, const void *, _IO_size_t)); extern _IO_size_t _IO_default_xsgetn __P ((_IO_FILE *, void *, _IO_size_t)); +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_default_seekoff __P ((_IO_FILE *, + _IO_off64_t, int, int)); +extern _IO_fpos64_t _IO_default_seekpos __P ((_IO_FILE *, + _IO_fpos64_t, int)); +#else extern _IO_fpos_t _IO_default_seekoff __P ((_IO_FILE *, _IO_off_t, int, int)); extern _IO_fpos_t _IO_default_seekpos __P ((_IO_FILE *, _IO_fpos_t, int)); +#endif extern _IO_ssize_t _IO_default_write __P ((_IO_FILE *, const void *, _IO_ssize_t)); extern _IO_ssize_t _IO_default_read __P ((_IO_FILE *, void *, _IO_ssize_t)); extern int _IO_default_stat __P ((_IO_FILE *, void *)); +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int)); +#else extern _IO_fpos_t _IO_default_seek __P ((_IO_FILE *, _IO_off_t, int)); +#endif extern int _IO_default_sync __P ((_IO_FILE *)); #define _IO_default_close ((_IO_close_t) _IO_default_sync) @@ -335,7 +381,13 @@ extern void _IO_flush_all_linebuffered _ extern int _IO_file_doallocate __P ((_IO_FILE *)); extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t)); +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int)); +extern _IO_fpos64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int)); +#else extern _IO_fpos_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off_t, int, int)); +extern _IO_fpos_t _IO_file_seek __P ((_IO_FILE *, _IO_off_t, int)); +#endif extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t)); extern int _IO_file_stat __P ((_IO_FILE *, void *)); extern int _IO_file_close __P ((_IO_FILE *)); @@ -344,13 +396,19 @@ extern int _IO_file_overflow __P ((_IO_F #define _IO_file_is_open(__fp) ((__fp)->_fileno >= 0) extern void _IO_file_init __P ((_IO_FILE *)); extern _IO_FILE* _IO_file_attach __P ((_IO_FILE *, int)); +extern _IO_FILE* _IO_file_open __P ((_IO_FILE *, const char *, int, int, + int, int)); +#if _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *, + int)); +#else extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *)); +#endif extern _IO_ssize_t _IO_file_write __P ((_IO_FILE *, const void *, _IO_ssize_t)); extern _IO_ssize_t _IO_file_read __P ((_IO_FILE *, void *, _IO_ssize_t)); extern int _IO_file_sync __P ((_IO_FILE *)); extern int _IO_file_close_it __P ((_IO_FILE *)); -extern _IO_fpos_t _IO_file_seek __P ((_IO_FILE *, _IO_off_t, int)); extern void _IO_file_finish __P ((_IO_FILE *, int)); /* Jumptable functions for proc_files. */ @@ -361,7 +419,11 @@ extern int _IO_proc_close __P ((_IO_FILE extern int _IO_str_underflow __P ((_IO_FILE *)); extern int _IO_str_overflow __P ((_IO_FILE *, int)); extern int _IO_str_pbackfail __P ((_IO_FILE *, int)); +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +extern _IO_fpos64_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int)); +#else extern _IO_fpos_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off_t, int, int)); +#endif extern void _IO_str_finish __P ((_IO_FILE *, int)); /* Other strfile functions */ @@ -377,6 +439,8 @@ extern int _IO_vsnprintf __P ((char *str extern _IO_size_t _IO_getline __P ((_IO_FILE *,char *, _IO_size_t, int, int)); +extern _IO_size_t _IO_getline_info __P ((_IO_FILE *,char *, _IO_size_t, + int, int, int *)); extern _IO_ssize_t _IO_getdelim __P ((char **, _IO_size_t *, int, _IO_FILE *)); extern double _IO_strtod __P ((const char *, char **)); extern char *_IO_dtoa __P ((double __d, int __mode, int __ndigits, @@ -475,11 +539,19 @@ extern int _IO_vscanf __P ((const char * /* _IO_pos_BAD is an _IO_fpos_t value indicating error, unknown, or EOF. */ #ifndef _IO_pos_BAD -# define _IO_pos_BAD ((_IO_fpos_t) -1) +# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +# define _IO_pos_BAD ((_IO_fpos64_t) -1) +# else +# define _IO_pos_BAD ((_IO_fpos_t) -1) +# endif #endif /* _IO_pos_as_off converts an _IO_fpos_t value to an _IO_off_t value. */ #ifndef _IO_pos_as_off -# define _IO_pos_as_off(__pos) ((_IO_off_t) (__pos)) +# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +# define _IO_pos_as_off(__pos) ((_IO_off64_t) (__pos)) +# else +# define _IO_pos_as_off(__pos) ((_IO_off_t) (__pos)) +# endif #endif /* _IO_pos_adjust adjust an _IO_fpos_t by some number of bytes. */ #ifndef _IO_pos_adjust @@ -487,7 +559,11 @@ extern int _IO_vscanf __P ((const char * #endif /* _IO_pos_0 is an _IO_fpos_t value indicating beginning of file. */ #ifndef _IO_pos_0 -# define _IO_pos_0 ((_IO_fpos_t) 0) +# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +# define _IO_pos_0 ((_IO_fpos64_t) 0) +# else +# define _IO_pos_0 ((_IO_fpos_t) 0) +# endif #endif #ifdef __cplusplus diff -rupN libstdc++-2.8.0/libio/sbgetline.cc libstdc++-2.8.1/libio/sbgetline.cc --- libstdc++-2.8.0/libio/sbgetline.cc Fri Aug 22 00:58:21 1997 +++ libstdc++-2.8.1/libio/sbgetline.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* -Copyright (C) 1993 Free Software Foundation +Copyright (C) 1993, 1998 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 @@ -27,5 +27,5 @@ the executable file might be covered by long streambuf::sgetline(char* buf, _IO_size_t n, char delim, int extract_delim) { - return _IO_getline(this, buf, n, delim, extract_delim); + return _IO_getline_info(this, buf, n, delim, extract_delim, (int *) 0); } diff -rupN libstdc++-2.8.0/libio/stdio/configure.in libstdc++-2.8.1/libio/stdio/configure.in --- libstdc++-2.8.0/libio/stdio/configure.in Fri Aug 22 00:58:25 1997 +++ libstdc++-2.8.1/libio/stdio/configure.in Tue Feb 24 15:08:44 1998 @@ -6,6 +6,7 @@ configdirs= srctrigger=stdio.h srcname="libio/stdio" package_makefile_frag=../Make.pack +package_makefile_rules_frag=../Make.pack.r # per-host: @@ -15,7 +16,7 @@ LIBDIR=yes TO_TOPDIR=../../ ALL=nothing MOSTLYCLEAN='*.o pic stamp-picdir core stdio.list' -(. ${srcdir}/../config.shared) >${package_makefile_frag} +(. ${srcdir}/../config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: diff -rupN libstdc++-2.8.0/libio/stdiostream.cc libstdc++-2.8.1/libio/stdiostream.cc --- libstdc++-2.8.0/libio/stdiostream.cc Tue Jan 6 23:41:56 1998 +++ libstdc++-2.8.1/libio/stdiostream.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993 Free Software Foundation +Copyright (C) 1993, 1998 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 diff -rupN libstdc++-2.8.0/libio/streambuf.cc libstdc++-2.8.1/libio/streambuf.cc --- libstdc++-2.8.0/libio/streambuf.cc Tue Jan 6 23:41:56 1998 +++ libstdc++-2.8.1/libio/streambuf.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation +Copyright (C) 1991, 1992, 1993, 1995, 1998 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 @@ -300,6 +300,17 @@ streampos streambuf::sys_seek(streamoff, } int streambuf::sys_close() { return 0; /* Suceess; do nothing */ } + +#if _G_IO_IO_FILE_VERSION == 0x20001 +int streambuf::showmanyc() +{ + return -1; +} + +void streambuf::imbue(void *) +{ +} +#endif streammarker::streammarker(streambuf *sb) { diff -rupN libstdc++-2.8.0/libio/streambuf.h libstdc++-2.8.1/libio/streambuf.h --- libstdc++-2.8.0/libio/streambuf.h Tue Jan 6 23:41:57 1998 +++ libstdc++-2.8.1/libio/streambuf.h Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ /* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993 Free Software Foundation +Copyright (C) 1993, 1998 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 @@ -55,8 +55,12 @@ extern "C" { #endif #ifndef _IO_wchar_t +#if _G_IO_IO_FILE_VERSION == 0x20001 +#define _IO_wchar_t _G_wchar_t +#else #define _IO_wchar_t short #endif +#endif extern "C++" { class istream; /* Work-around for a g++ name mangling bug. Fixed in 2.6. */ @@ -66,8 +70,13 @@ class ostream; class streambuf; #undef open #undef close +#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001 +typedef _IO_off64_t streamoff; +typedef _IO_fpos64_t streampos; +#else typedef _IO_off_t streamoff; typedef _IO_fpos_t streampos; +#endif typedef _IO_ssize_t streamsize; typedef unsigned long __fmtflags; @@ -171,9 +180,9 @@ class ios : public _ios_fields { ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } // Methods to change the format state. - _IO_wchar_t fill() const { return (_IO_wchar_t)_fill; } + _IO_wchar_t fill() const { return _fill; } _IO_wchar_t fill(_IO_wchar_t newf) - {_IO_wchar_t oldf = (_IO_wchar_t)_fill; _fill = (char)newf; return oldf;} + {_IO_wchar_t oldf = _fill; _fill = newf; return oldf;} fmtflags flags() const { return _flags; } fmtflags flags(fmtflags new_val) { fmtflags old_val = _flags; _flags = new_val; return old_val; } @@ -404,6 +413,10 @@ struct streambuf : public _IO_FILE { // virtual streampos sys_seek(streamoff, _seek_dir); virtual int sys_close(); virtual int sys_stat(void*); // Actually, a (struct stat*) +#if _G_IO_IO_FILE_VERSION == 0x20001 + virtual int showmanyc(); + virtual void imbue(void *); +#endif }; // A backupbuf is a streambuf with full backup and savepoints on reading. diff -rupN libstdc++-2.8.0/libio/tests/Makefile.in libstdc++-2.8.1/libio/tests/Makefile.in --- libstdc++-2.8.0/libio/tests/Makefile.in Fri Aug 22 00:58:27 1997 +++ libstdc++-2.8.1/libio/tests/Makefile.in Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1993 Free Software Foundation +# Copyright (C) 1993, 1998 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 @@ -41,9 +41,7 @@ IOSTDIOLIB = ../libio.a ../../libiberty/ DEPEND_SOURCES = $(srcdir)/*.C .PHONY: check check-old check-iostream check-stdio -check: - -check-old: check-iostream check-iostdio +check: $(CHECK) # These are tests written in C++, that test the iostream facility. diff -rupN libstdc++-2.8.0/libio/tests/configure.in libstdc++-2.8.1/libio/tests/configure.in --- libstdc++-2.8.0/libio/tests/configure.in Fri Aug 22 00:58:27 1997 +++ libstdc++-2.8.1/libio/tests/configure.in Tue Feb 24 15:08:44 1998 @@ -6,6 +6,7 @@ configdirs= srctrigger=tFile.cc srcname="test C++ input/output library" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -16,6 +17,20 @@ ALL=' ' XCINCLUDES='-I. -I.. -I$(srcdir) -I$(srcdir)/..' XCXXINCLUDES='-I. -I.. -I$(srcdir) -I$(srcdir)/..' MOSTLYCLEAN='*.o core $(JUNK_TO_CLEAN)' -(. ${srcdir}/../config.shared) >${package_makefile_frag} +(. ${srcdir}/../config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} + +if [ "${srcdir}" = "." ] ; then + if [ "${with_target_subdir}" != "." ] ; then + topsrcdir=${with_multisrctop}../../.. + else + topsrcdir=${with_multisrctop}../.. + fi +else + topsrcdir=${srcdir}/../.. +fi + +if [ ! -d ${topsrcdir}/gcc ] ; then + echo "CHECK = check-iostream check-iostdio" >>${package_makefile_frag} +fi # post-target: diff -rupN libstdc++-2.8.0/libio/testsuite/ChangeLog libstdc++-2.8.1/libio/testsuite/ChangeLog --- libstdc++-2.8.0/libio/testsuite/ChangeLog Tue Jan 6 23:42:02 1998 +++ libstdc++-2.8.1/libio/testsuite/ChangeLog Tue Feb 24 15:08:44 1998 @@ -1,18 +1,7 @@ -Sat Sep 6 00:49:31 1997 Brendan Kehoe - - * lib/libio.exp (test_libio): Lose -L.. before -lio, may as well - require things be fully usable. Not ideal, but...also no longer - have the -liostream approach. - Fri Sep 5 15:38:37 1997 Jeffrey A Law (law@cygnus.com) * lib/libio.exp (test_libio): Use libstdc++_{include,link}_flags instead of g++_{include,link}_flags. - -Thu Sep 4 15:22:46 1997 Brendan Kehoe - - * lib/libio.exp (test_libio): Add `-L..' before -lio. - Use `-L.. -liostream' for now. Fri Jun 27 18:19:21 1997 Bob Manson diff -rupN libstdc++-2.8.0/libio/testsuite/configure.in libstdc++-2.8.1/libio/testsuite/configure.in --- libstdc++-2.8.0/libio/testsuite/configure.in Fri Aug 22 00:58:30 1997 +++ libstdc++-2.8.1/libio/testsuite/configure.in Tue Feb 24 15:08:44 1998 @@ -6,6 +6,7 @@ configdirs= srctrigger=libio.tests/hounddog.exp srcname="test C++ input/output library, dejagnu style" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -16,6 +17,6 @@ ALL=' ' XCINCLUDES='-I. -I.. -I$(srcdir) -I$(srcdir)/..' XCXXINCLUDES='-I. -I.. -I$(srcdir) -I$(srcdir)/..' MOSTLYCLEAN='*.o core $(JUNK_TO_CLEAN)' -(. ${srcdir}/../config.shared) >${package_makefile_frag} +(. ${srcdir}/../config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: diff -rupN libstdc++-2.8.0/libio/testsuite/lib/libio.exp libstdc++-2.8.1/libio/testsuite/lib/libio.exp --- libstdc++-2.8.0/libio/testsuite/lib/libio.exp Tue Jan 6 23:42:03 1998 +++ libstdc++-2.8.1/libio/testsuite/lib/libio.exp Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997, 1998 Free Software Foundation, Inc. # 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 @@ -74,7 +74,6 @@ proc test_libio { srcfile compile_args i } else { lappend args "additional_flags=[libio_link_flags]"; } - lappend args "additional_flags=[libio_link_flags]"; lappend args "libs=-lio" } diff -rupN libstdc++-2.8.0/libstdc++/ChangeLog libstdc++-2.8.1/libstdc++/ChangeLog --- libstdc++-2.8.0/libstdc++/ChangeLog Tue Jan 6 23:42:04 1998 +++ libstdc++-2.8.1/libstdc++/ChangeLog Sat Feb 28 11:19:57 1998 @@ -1,3 +1,58 @@ +Thu Feb 26 17:53:19 1998 Manfred Hollstein + + * configure.in: Add ../ if we are configuring inside srcdir. + +1998-02-18 Jason Merrill + + * std/bastring.h: Don't #include yet. + * sinst.cc: Revert. + +Tue Feb 10 01:03:19 1998 Jason Merrill + + * std/bastring.h (unique): We only need length bytes. + (c_str): Avoid writing over random memory. + #include . + Lose _G_ALLOC_CONTROL. + * std/bastring.cc: Likewise. + (nilRep): Add initializer for selfish. + * sinst.cc: Just #include . + +Mon Feb 9 13:38:07 1998 H.J. Lu (hjl@gnu.org) + + * config/linux.mt: Don't define _PTHREADS, but define + _IO_MTSAFE_IO. + +Mon Feb 9 00:09:16 1998 Jason Merrill + + * Makefile.in (install): Remove the shared library symlink even if + we aren't installing it. + +Fri Feb 6 01:36:21 1998 Manfred Hollstein + + * Makefile.in (piclist): Check value of enable_shared, not PICFLAG. + (stmp-string, ...): Dito. + (bigstmp-string, ...): Dito. + +Wed Jan 28 10:27:11 1998 Manfred Hollstein + + * tests/configure.in, testsuite/configure.in: Update with yesterday's + toplevel configure.in changes. + +Tue Jan 27 17:48:40 1998 Manfred Hollstein + + * configure.in (package_makefile_rules_frag): New variable + which is used in the call to config.shared; redirect file descriptor 2 + to ${package_makefile_rules_frag}. + +Tue Jan 27 10:29:44 1998 H.J. Lu (hjl@gnu.org) + + * configure.in (topsrcdir): New. + (configdirs): Check ${topsrcdir}/gcc instead. + (config-ml.in): Use ${topsrcdir}/config-ml.in. + + * tests/configure.in (topsrcdir): New. + (check): Check ${topsrcdir}/gcc instead. + 1998-01-05 Brendan Kehoe * std/bastring.cc (basic_string::Rep::operator delete): Don't claim diff -rupN libstdc++-2.8.0/libstdc++/Makefile.in libstdc++-2.8.1/libstdc++/Makefile.in --- libstdc++-2.8.0/libstdc++/Makefile.in Tue Jan 6 23:42:05 1998 +++ libstdc++-2.8.1/libstdc++/Makefile.in Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1994, 1995 Free Software Foundation +# Copyright (C) 1994, 1995, 1998 Free Software Foundation # This file is part of the GNU ANSI C++ Library. This library is free # software; you can redistribute it and/or modify it under the terms of @@ -14,7 +14,7 @@ # along with this library; see the file COPYING. If not, write to the Free # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -VERSION = 2.8.0 +VERSION = 2.8.1 OBJS = cstringi.o stdexcepti.o cstdlibi.o cmathi.o stlinst.o SUBLIBS = $(STAMP)-string $(STAMP)-complx @@ -75,7 +75,7 @@ stdlist: $(IO_DIR)/iostream.list $(OBJS) piclist: stdlist -rm -f tlist cp stdlist tlist - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ sed 's,\([A-Za-z_]*\.o\),pic/\1,g' tlist > tlist2 ; \ mv tlist2 tlist ; \ else true ; fi @@ -125,7 +125,7 @@ stmp-string: ${srcdir}/sinst.cc ${srcdir ${srcdir}/std/bastring.cc ${srcdir}/std/straits.h for name in $(STRFUNCS) $(STRIO); do \ echo c$${name}; \ - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DC -D$${name} ${srcdir}/sinst.cc \ -o pic/c$${name}.o; \ else true ; fi; \ @@ -138,7 +138,7 @@ stmp-string: ${srcdir}/sinst.cc ${srcdir bigstmp-string: ${srcdir}/sinst.cc ${srcdir}/std/bastring.h \ ${srcdir}/std/bastring.cc ${srcdir}/std/straits.h echo cstring - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/sinst.cc -o pic/cstrmain.o; \ @@ -146,7 +146,7 @@ bigstmp-string: ${srcdir}/sinst.cc ${src $(COMPILE.cc) -DC `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/sinst.cc -o cstrmain.o echo cstrio - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(srcdir)/sinst.cc -o pic/cstrio.o; \ @@ -165,7 +165,7 @@ stmp-complx: ${srcdir}/cinst.cc ${srcdir ${srcdir}/std/ldcomplex.h for N in $(COMFUNCS) $(COMIO); do \ echo f$${N}; \ - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DF -D$${N} $(srcdir)/cinst.cc \ -o pic/f$${N}.o; \ else true ; fi; \ @@ -173,7 +173,7 @@ stmp-complx: ${srcdir}/cinst.cc ${srcdir $(COMPILE.cc) -DF -D$${N} ${srcdir}/cinst.cc -o f$${N}.o; \ if [ $$? -eq 0 ]; then true; else exit 1; fi; \ echo d$${N}; \ - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DD -D$${N} $(srcdir)/cinst.cc \ -o pic/d$${N}.o; \ else true ; fi; \ @@ -181,7 +181,7 @@ stmp-complx: ${srcdir}/cinst.cc ${srcdir $(COMPILE.cc) -DD -D$${N} ${srcdir}/cinst.cc -o d$${N}.o; \ if [ $$? -eq 0 ]; then true; else exit 1; fi; \ echo ld$${N}; \ - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DLD -D$${N} $(srcdir)/cinst.cc \ -o pic/ld$${N}.o; \ else true ; fi; \ @@ -195,7 +195,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src ${srcdir}/std/complext.cc ${srcdir}/std/dcomplex.h \ ${srcdir}/std/ldcomplex.h echo fcomplex - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/fcomplex.o; \ @@ -203,7 +203,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src $(COMPILE.cc) -DF `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o fcomplex.o echo fcomio - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/fcomio.o; \ @@ -211,7 +211,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src $(COMPILE.cc) -DF `for N in $(COMIO); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o fcomio.o echo dcomplex - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/dcomplex.o; \ @@ -219,7 +219,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src $(COMPILE.cc) -DD `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o dcomplex.o echo dcomio - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/dcomio.o; \ @@ -227,7 +227,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src $(COMPILE.cc) -DD `for N in $(COMIO); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o dcomio.o echo ldcomplex - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/ldcomplex.o; \ @@ -235,7 +235,7 @@ bigstmp-complx: ${srcdir}/cinst.cc ${src $(COMPILE.cc) -DLD `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o ldcomplex.o echo ldcomio - if [ -n "$(PICFLAG)" ]; then \ + if [ x"$(enable_shared)" = xyes ]; then \ $(COMPILE.cc) $(PICFLAG) -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(srcdir)/cinst.cc -o pic/ldcomio.o; \ @@ -272,6 +272,7 @@ install: else true ; \ fi rootme=`pwd`/ ; export rootme ; \ + rm -f $(INSTALLDIR)$(MULTISUBDIR)/$(SHLINK) ; \ for FILE in $(LIBS) ; do \ rm -f $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \ if [ $$FILE = $(SHLINK) ] ; then \ diff -rupN libstdc++-2.8.0/libstdc++/config/linux.mt libstdc++-2.8.1/libstdc++/config/linux.mt --- libstdc++-2.8.0/libstdc++/config/linux.mt Tue Sep 16 18:11:13 1997 +++ libstdc++-2.8.1/libstdc++/config/linux.mt Tue Feb 24 15:08:44 1998 @@ -1 +1,2 @@ -MT_CFLAGS = -D_PTHREADS +# tell we want the mt-safe version +MT_CFLAGS = -D_IO_MTSAFE_IO diff -rupN libstdc++-2.8.0/libstdc++/configure.in libstdc++-2.8.1/libstdc++/configure.in --- libstdc++-2.8.0/libstdc++/configure.in Tue Jan 6 23:42:05 1998 +++ libstdc++-2.8.1/libstdc++/configure.in Sat Feb 28 11:20:18 1998 @@ -2,10 +2,25 @@ # necessary for a configure script to process the program in # this directory. For more information, look at ../configure. -configdirs="tests testsuite" +if [ "${srcdir}" = "." ] ; then + if [ "${with_target_subdir}" != "." ] ; then + topsrcdir=${with_multisrctop}../.. + else + topsrcdir=${with_multisrctop}.. + fi +else + topsrcdir=${srcdir}/.. +fi + +if [ -d ${topsrcdir}/gcc ] ; then + configdirs="tests testsuite" +else + configdirs="tests" +fi srctrigger=sinst.cc srcname="ANSI C++ library" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -50,6 +65,13 @@ case "${target}" in esac for frag in ${frags}; do + case "${frag}" in + ../../config/* ) + if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then + frag=../${frag} + fi + ;; + esac frag=${srcdir}/config/$frag if [ -f ${frag} ]; then echo "Appending ${frag} to target-mkfrag" @@ -69,7 +91,7 @@ MOSTLYCLEAN='*.o pic stamp-picdir core s CLEAN='$(CLEAN_JUNK)' EXTRA_DISTCLEAN='target-mkfrag' -(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} +(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: @@ -82,12 +104,4 @@ if [ -n "${with_cross_host}" ] ; then mv -f Makefile.tem Makefile fi -if [ "${srcdir}" = "." ] ; then - if [ "${with_target_subdir}" != "." ] ; then - . ${with_multisrctop}../../config-ml.in - else - . ${with_multisrctop}../config-ml.in - fi -else - . ${srcdir}/../config-ml.in -fi +. ${topsrcdir}/config-ml.in diff -rupN libstdc++-2.8.0/libstdc++/sinst.cc libstdc++-2.8.1/libstdc++/sinst.cc --- libstdc++-2.8.0/libstdc++/sinst.cc Fri Aug 22 00:58:34 1997 +++ libstdc++-2.8.1/libstdc++/sinst.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ // Instantiation file for the -*- C++ -*- string classes. -// Copyright (C) 1994 Free Software Foundation +// Copyright (C) 1994, 1998 Free Software Foundation // This file is part of the GNU ANSI C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -33,6 +33,7 @@ #endif #endif +#include #include #ifdef C diff -rupN libstdc++-2.8.0/libstdc++/std/bastring.cc libstdc++-2.8.1/libstdc++/std/bastring.cc --- libstdc++-2.8.0/libstdc++/std/bastring.cc Tue Jan 6 23:42:09 1998 +++ libstdc++-2.8.1/libstdc++/std/bastring.cc Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ // Member templates for the -*- C++ -*- string classes. -// Copyright (C) 1994 Free Software Foundation +// Copyright (C) 1994, 1998 Free Software Foundation // This file is part of the GNU ANSI C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -25,9 +25,6 @@ // Written by Jason Merrill based upon the specification by Takanori Adachi // in ANSI X3J16/94-0013R2. -#include -#include - extern "C++" { template inline void * basic_string ::Rep:: @@ -47,11 +44,7 @@ operator delete (void * ptr) template inline size_t basic_string ::Rep:: -#if _G_ALLOC_CONTROL -default_frob (size_t s) -#else frob_size (size_t s) -#endif { size_t i = 16; while (i < s) i *= 2; @@ -83,11 +76,7 @@ clone () template inline bool basic_string ::Rep:: -#ifdef _G_ALLOC_CONTROL -default_excess (size_t s, size_t r) -#else excess_slop (size_t s, size_t r) -#endif { return 2 * (s <= 16 ? 16 : s) < r; } @@ -520,20 +509,10 @@ getline (istream &is, basic_string basic_string ::Rep -basic_string::nilRep = { 0, 0, 1 }; +basic_string::nilRep = { 0, 0, 1, false }; template const basic_string ::size_type basic_string ::npos; - -#ifdef _G_ALLOC_CONTROL -template -bool (*basic_string ::Rep::excess_slop) (size_t, size_t) - = basic_string ::Rep::default_excess; - -template -size_t (*basic_string ::Rep::frob_size) (size_t) - = basic_string ::Rep::default_frob; -#endif } // extern "C++" diff -rupN libstdc++-2.8.0/libstdc++/std/bastring.h libstdc++-2.8.1/libstdc++/std/bastring.h --- libstdc++-2.8.0/libstdc++/std/bastring.h Tue Jan 6 23:42:09 1998 +++ libstdc++-2.8.1/libstdc++/std/bastring.h Tue Feb 24 15:08:44 1998 @@ -1,5 +1,5 @@ // Main templates for the -*- C++ -*- string classes. -// Copyright (C) 1994, 1995 Free Software Foundation +// Copyright (C) 1994, 1995, 1998 Free Software Foundation // This file is part of the GNU ANSI C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -84,22 +84,8 @@ private: inline void move (size_t, const charT *, size_t); inline void set (size_t, const charT, size_t); -#if _G_ALLOC_CONTROL - // These function pointers allow you to modify the allocation policy used - // by the string classes. By default they expand by powers of two, but - // this may be excessive for space-critical applications. - - // Returns true if ALLOCATED is too much larger than LENGTH - static bool (*excess_slop) (size_t length, size_t allocated); - inline static bool default_excess (size_t, size_t); - - // Returns a good amount of space to allocate for a string of length LENGTH - static size_t (*frob_size) (size_t length); - inline static size_t default_frob (size_t); -#else inline static bool excess_slop (size_t, size_t); inline static size_t frob_size (size_t); -#endif private: Rep &operator= (const Rep &); @@ -273,7 +259,7 @@ public: private: static charT eos () { return traits::eos (); } - void unique () { if (rep ()->ref > 1) alloc (capacity (), true); } + void unique () { if (rep ()->ref > 1) alloc (length (), true); } void selfish () { unique (); rep ()->selfish = true; } public: @@ -304,7 +290,7 @@ private: public: const charT* c_str () const - { terminate (); return data (); } + { if (length () == 0) return ""; terminate (); return data (); } void resize (size_type n, charT c); void resize (size_type n) { resize (n, eos ()); } diff -rupN libstdc++-2.8.0/libstdc++/stl/ChangeLog libstdc++-2.8.1/libstdc++/stl/ChangeLog --- libstdc++-2.8.0/libstdc++/stl/ChangeLog Tue Jan 6 23:42:11 1998 +++ libstdc++-2.8.1/libstdc++/stl/ChangeLog Sat Feb 28 11:17:28 1998 @@ -1,3 +1,19 @@ +1998-02-25 Jason Merrill + + * stl_config.h: Work around glibc pthread.h bug. + +Wed Jan 14 16:15:05 1998 H.J. Lu (hjl@gnu.org) + Jason Merrill + + * ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS. + * stl_alloc.h: Ditto. + * stl_config.h: Ditto. + * stl_rope.h: Ditto. + + * stl_config.h: include <_G_config.h> if __GNUG__ is defined. + (__STL_PTHREADS): Defined if _PTHREADS is defined or + __GLIBC__ >= 2. + Sat Nov 8 00:45:17 1997 Jason Merrill * stl_hash_set.h (swap): Fix typo. diff -rupN libstdc++-2.8.0/libstdc++/stl/ropeimpl.h libstdc++-2.8.1/libstdc++/stl/ropeimpl.h --- libstdc++-2.8.0/libstdc++/stl/ropeimpl.h Tue Jan 6 23:42:17 1998 +++ libstdc++-2.8.1/libstdc++/stl/ropeimpl.h Tue Feb 24 15:08:44 1998 @@ -1429,7 +1429,7 @@ rope::rope(size_t n, charT template charT rope::empty_c_str[1]; -# ifdef _PTHREADS +# ifdef __STL_PTHREADS template pthread_mutex_t rope::swap_lock = PTHREAD_MUTEX_INITIALIZER; # endif diff -rupN libstdc++-2.8.0/libstdc++/stl/stl_alloc.h libstdc++-2.8.1/libstdc++/stl/stl_alloc.h --- libstdc++-2.8.0/libstdc++/stl/stl_alloc.h Sun Nov 2 21:28:09 1997 +++ libstdc++-2.8.1/libstdc++/stl/stl_alloc.h Sat Feb 28 11:17:28 1998 @@ -61,12 +61,12 @@ # define __RESTRICT #endif -#if !defined(_PTHREADS) && !defined(_NOTHREADS) \ +#if !defined(__STL_PTHREADS) && !defined(_NOTHREADS) \ && !defined(__STL_SGI_THREADS) && !defined(__STL_WIN32THREADS) # define _NOTHREADS #endif -# ifdef _PTHREADS +# ifdef __STL_PTHREADS // POSIX Threads // This is dubious, since this is likely to be a high contention // lock. Performance may not be adequate. @@ -357,7 +357,7 @@ private: static inline void __unlock(volatile unsigned long *); # endif -# ifdef _PTHREADS +# ifdef __STL_PTHREADS static pthread_mutex_t __node_allocator_lock; # endif @@ -558,7 +558,7 @@ __default_alloc_template: return(result); } -#ifdef _PTHREADS +#ifdef __STL_PTHREADS template pthread_mutex_t __default_alloc_template::__node_allocator_lock diff -rupN libstdc++-2.8.0/libstdc++/stl/stl_config.h libstdc++-2.8.1/libstdc++/stl/stl_config.h --- libstdc++-2.8.0/libstdc++/stl/stl_config.h Tue Jan 6 23:42:19 1998 +++ libstdc++-2.8.1/libstdc++/stl/stl_config.h Sat Feb 28 11:17:28 1998 @@ -71,6 +71,10 @@ // (19) Defines __stl_assert either as a test or as a null macro, // depending on whether or not __STL_ASSERTIONS is defined. +#ifdef _PTHREADS +# define __STL_PTHREADS +#endif + # if defined(__sgi) && !defined(__GNUC__) # if !defined(_BOOL) # define __STL_NEED_BOOL @@ -93,13 +97,14 @@ # if (_COMPILER_VERSION >= 721) && defined(_NAMESPACES) # define __STL_USE_NAMESPACES # endif -# if !defined(_NOTHREADS) && !defined(_PTHREADS) +# if !defined(_NOTHREADS) && !defined(__STL_PTHREADS) # define __STL_SGI_THREADS # endif # endif # ifdef __GNUC__ -# if 0 && (__GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)) +# include <_G_config.h> +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __STL_STATIC_TEMPLATE_MEMBER_BUG # define __STL_NEED_TYPENAME # define __STL_NEED_EXPLICIT @@ -108,6 +113,13 @@ # define __STL_FUNCTION_TMPL_PARTIAL_ORDER # define __STL_EXPLICIT_FUNCTION_TMPL_ARGS # define __STL_MEMBER_TEMPLATES +# endif +# if !defined(_NOTHREADS) && __GLIBC__ >= 2 +# define __STL_PTHREADS +# ifdef __STRICT_ANSI__ + /* Work around a bug in the glibc pthread.h. */ +# define sigset_t __sigset_t +# endif # endif # ifdef __EXCEPTIONS # define __STL_USE_EXCEPTIONS diff -rupN libstdc++-2.8.0/libstdc++/stl/stl_rope.h libstdc++-2.8.1/libstdc++/stl/stl_rope.h --- libstdc++-2.8.0/libstdc++/stl/stl_rope.h Sun Nov 2 21:28:17 1997 +++ libstdc++-2.8.1/libstdc++/stl/stl_rope.h Tue Feb 24 15:08:44 1998 @@ -306,7 +306,7 @@ struct __rope_RopeBase { { return InterlockedDecrement(&refcount); } -# elif defined(_PTHREADS) +# elif defined(__STL_PTHREADS) // This should be portable, but performance is expected // to be quite awful. This really needs platform specific // code. @@ -939,7 +939,7 @@ class rope { static cstrptr atomic_swap(cstrptr *p, cstrptr q) { return (cstrptr) InterlockedExchange((LPLONG)p, (LONG)q); } -# elif defined(_PTHREADS) +# elif defined(__STL_PTHREADS) // This should be portable, but performance is expected // to be quite awful. This really needs platform specific // code. diff -rupN libstdc++-2.8.0/libstdc++/tests/ChangeLog libstdc++-2.8.1/libstdc++/tests/ChangeLog --- libstdc++-2.8.0/libstdc++/tests/ChangeLog Tue Jan 6 23:42:25 1998 +++ libstdc++-2.8.1/libstdc++/tests/ChangeLog Tue Feb 24 15:08:44 1998 @@ -1,3 +1,7 @@ +Fri Feb 20 12:00:30 1998 Manfred Hollstein + + * Makefile.in (VERSION): Bump to 2.8.1. + Fri Oct 10 00:40:31 1997 Jason Merrill * tstring.cc (identitytest): s/remove/erase/. diff -rupN libstdc++-2.8.0/libstdc++/tests/Makefile.in libstdc++-2.8.1/libstdc++/tests/Makefile.in --- libstdc++-2.8.0/libstdc++/tests/Makefile.in Fri Aug 22 00:58:42 1997 +++ libstdc++-2.8.1/libstdc++/tests/Makefile.in Tue Feb 24 15:08:44 1998 @@ -1,4 +1,4 @@ -# Copyright (C) 1994 Free Software Foundation +# Copyright (C) 1994, 1998 Free Software Foundation # This file is part of the GNU ANSI C++ Library. This library is free # software; you can redistribute it and/or modify it under the terms of @@ -14,7 +14,7 @@ # along with this library; see the file COPYING. If not, write to the Free # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -VERSION = 2.8.0 +VERSION = 2.8.1 SHLIB = libstdc++.so.$(VERSION) DEPLIBS = ../libstdc++.a diff -rupN libstdc++-2.8.0/libstdc++/tests/configure.in libstdc++-2.8.1/libstdc++/tests/configure.in --- libstdc++-2.8.0/libstdc++/tests/configure.in Fri Aug 22 00:58:42 1997 +++ libstdc++-2.8.1/libstdc++/tests/configure.in Tue Feb 24 15:08:44 1998 @@ -6,6 +6,7 @@ configdirs= srctrigger=tcomplex.cc srcname="tests for ANSI C++ library" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -19,7 +20,7 @@ XCXXINCLUDES="-I${srcdir}/.. -I${srcdir} SIMPLE_TESTS='tstring tlist tmap tvector' TESTS="tcomplex ${SIMPLE_TESTS}" MOSTLYCLEAN="*.o core ${TESTS} *.out" -(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} +(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: @@ -43,8 +44,22 @@ for TEST in ${TESTS} ; do echo ' diff -c $(srcdir)/'"${TEST}.exp ${TEST}.out" >>Makefile CHECK="${CHECK} check-${TEST}" done -echo " -check: -check-old: ${CHECK}" >>Makefile +if [ "${srcdir}" = "." ] ; then + if [ "${with_target_subdir}" != "." ] ; then + topsrcdir=${with_multisrctop}../../.. + else + topsrcdir=${with_multisrctop}../.. + fi +else + topsrcdir=${srcdir}/../.. +fi +if [ -d ${topsrcdir}/gcc ] ; then + echo " +check: +check-old: ${CHECK}" >>Makefile +else + echo " +check: ${CHECK}" >>Makefile +fi diff -rupN libstdc++-2.8.0/libstdc++/testsuite/configure.in libstdc++-2.8.1/libstdc++/testsuite/configure.in --- libstdc++-2.8.0/libstdc++/testsuite/configure.in Fri Aug 22 00:58:43 1997 +++ libstdc++-2.8.1/libstdc++/testsuite/configure.in Tue Feb 24 15:08:44 1998 @@ -6,6 +6,7 @@ configdirs= srctrigger=configure.in srcname="tests for ANSI C++ library, dejagnu style" package_makefile_frag=Make.pack +package_makefile_rules_frag=Make.pack.r # per-host: @@ -18,6 +19,6 @@ ALL=' ' XCXXINCLUDES="-I${srcdir}/.. -I${srcdir}/../stl -I${TO_TOPDIR}libio -I${srcdir}/${TO_TOPDIR}libio" TESTS="tcomplex tstring tlist tmap tvector" MOSTLYCLEAN="*.o core ${TESTS} *.out" -(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} +(. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag} # post-target: diff -rupN libstdc++-2.8.0/texinfo/lgpl.texinfo libstdc++-2.8.1/texinfo/lgpl.texinfo --- libstdc++-2.8.0/texinfo/lgpl.texinfo Thu Jan 1 01:00:00 1970 +++ libstdc++-2.8.1/texinfo/lgpl.texinfo Tue Feb 24 15:08:45 1998 @@ -0,0 +1,548 @@ +@c This LGPL is meant to be included from other files. +@c To format a standalone LGPL, use liblic.texi. + +@ifset lgpl-appendix +@appendix GNU LIBRARY GENERAL PUBLIC LICENSE +@end ifset + +@ifclear lgpl-appendix +@unnumbered GNU LIBRARY GENERAL PUBLIC LICENSE +@end ifclear +@center Version 2, June 1991 + +@display +Copyright @copyright{} 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] +@end display + +@unnumberedsec Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software---to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +``work based on the library'' and a ``work that uses the library''. The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + +@iftex +@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end iftex +@ifinfo +@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end ifinfo + +@enumerate 0 +@item +This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called ``this License''). Each licensee is +addressed as ``you''. + + A ``library'' means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The ``Library'', below, refers to any such software library or work +which has been distributed under these terms. A ``work based on the +Library'' means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term ``modification''.) + + ``Source code'' for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + +@item +You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + +@item +You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +@enumerate a +@item +The modified work must itself be a software library. + +@item +You must cause the files modified to carry prominent notices +stating that you changed the files and the date of any change. + +@item +You must cause the whole of the work to be licensed at no +charge to all third parties under the terms of this License. + +@item +If a facility in the modified Library refers to a function or a +table of data to be supplied by an application program that uses +the facility, other than as an argument passed when the facility +is invoked, then you must make a good faith effort to ensure that, +in the event an application does not supply such function or +table, the facility still operates, and performs whatever part of +its purpose remains meaningful. + +(For example, a function in a library to compute square roots has +a purpose that is entirely well-defined independent of the +application. Therefore, Subsection 2d requires that any +application-supplied function or table used by this function must +be optional: if the application does not supply it, the square +root function must still compute square roots.) +@end enumerate + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +@item +You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + +@item +You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + +@item +A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a ``work that uses the Library''. Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a ``work that uses the Library'' with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a ``work that uses the +library''. The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a ``work that uses the Library'' uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + +@item +As an exception to the Sections above, you may also compile or +link a ``work that uses the Library'' with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + +@enumerate a +@item +Accompany the work with the complete corresponding +machine-readable source code for the Library including whatever +changes were used in the work (which must be distributed under +Sections 1 and 2 above); and, if the work is an executable linked +with the Library, with the complete machine-readable ``work that +uses the Library'', as object code and/or source code, so that the +user can modify the Library and then relink to produce a modified +executable containing the modified Library. (It is understood +that the user who changes the contents of definitions files in the +Library will not necessarily be able to recompile the application +to use the modified definitions.) + +@item +Accompany the work with a written offer, valid for at +least three years, to give the same user the materials +specified in Subsection 6a, above, for a charge no more +than the cost of performing this distribution. + +@item +If distribution of the work is made by offering access to copy +from a designated place, offer equivalent access to copy the above +specified materials from the same place. + +@item +Verify that the user has already received a copy of these +materials or that you have already sent this user a copy. +@end enumerate + + For an executable, the required form of the ``work that uses the +Library'' must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + +@item +You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + +@enumerate a +@item +Accompany the combined library with a copy of the same work +based on the Library, uncombined with any other library +facilities. This must be distributed under the terms of the +Sections above. + +@item +Give prominent notice with the combined library of the fact +that part of it is a work based on the Library, and explaining +where to find the accompanying uncombined form of the same work. +@end enumerate + +@item +You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + +@item +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + +@item +Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +@item +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +@item +If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + +@item +The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +``any later version'', you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + +@item +If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + +@iftex +@heading NO WARRANTY +@end iftex +@ifinfo +@center NO WARRANTY +@end ifinfo + +@item +BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY ``AS IS'' WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +@item +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +@end enumerate + +@iftex +@heading END OF TERMS AND CONDITIONS +@end iftex +@ifinfo +@center END OF TERMS AND CONDITIONS +@end ifinfo + +@page +@unnumberedsec How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +``copyright'' line and a pointer to where the full notice is found. + +@smallexample +@var{one line to give the library's name and an idea of what it does.} +Copyright (C) @var{year} @var{name of author} + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the +Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge, +MA 02139, USA. +@end smallexample + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a ``copyright disclaimer'' for the library, if +necessary. Here is a sample; alter the names: + +@example +Yoyodyne, Inc., hereby disclaims all copyright interest in +the library `Frob' (a library for tweaking knobs) written +by James Random Hacker. + +@var{signature of Ty Coon}, 1 April 1990 +Ty Coon, President of Vice +@end example + +That's all there is to it!