diff -rc gnusql-0.7b5/ChangeLog gnusql-0.7b5.1/ChangeLog *** gnusql-0.7b5/ChangeLog Mon Apr 28 21:51:55 1997 --- gnusql-0.7b5.1/ChangeLog Tue May 6 01:26:54 1997 *************** *** 1,3 **** --- 1,27 ---- + Tue May 6 01:15:34 1997 Michael Kimelman + + * src/interpr/int_servlib.c (execute_stmt): immediate exit on error code - + don't fill answer row. + + * configure.in, acconfig.h, src/engine/dispath.x: added check for + skeleton main routine style. + + Sat May 3 17:06:41 1997 Michael Kimelman + + * etc/gss.texi (Data description): crossreferences fixed + + * etc/make-util, Makefile.in : headers (client runtime interface) installed to + (dbhome)/client/include now. symb link (prefix)/include/gnusql refers to this directory + + * make-dist (changing modes of src tree): file timestamps fixed + + Wed Apr 30 10:25:43 1997 Tim Pierce + + * configure.in (YFLAGS): initialize YFLAGS when $(YACC) is set to `preserve'. + (LFLAGS): ditto. + (AC_SUBST): add rules to expand new YFLAGS target. + * src/Makefile_h.in (YFLAGS): configured now + Mon Apr 28 12:54:34 1997 Michael Kimelman * Version 0.7b5 released diff -rc gnusql-0.7b5/Makefile.in gnusql-0.7b5.1/Makefile.in *** gnusql-0.7b5/Makefile.in Mon Apr 28 21:51:58 1997 --- gnusql-0.7b5.1/Makefile.in Wed May 7 10:42:25 1997 *************** *** 56,61 **** --- 56,62 ---- SERVDIR=$(builddir)/sqlser SERVBIN=$(SERVDIR)/bin CLNT=$(SERVDIR)/client + C_INC=$(CLNT)/include TOUCH=@top_srcdir@/etc/Touch MAKECLEAN=$(MAKE) -k REV=$(REV) clean *************** *** 78,109 **** install-c : client.stamp install-s : server.stamp install : install-c install-s ! @echo 'BE CAREFUL: THIS IS THE FIRST BETA TEST. AND IT HAS BUGS!!!!' @echo 'type control-C now if you are not sure' sleep 10 @echo 'Installation started .....' # put docs in server dirs ! ( cd etc; $(MAKERT) install ); # put headers in server dirs ( cd $(srcdir)/src/include ; \ for f in sql.h dyn_funcs.h sql_type.def errors.h ; do \ ! test -f $(CLNT)/$$f && rm $(CLNT)/$$f ; \ ! $(INSTALL) -m 644 $$f $(CLNT)/$$f ; \ done \ ) # check existence of desctination directories ! - test -d $(dbhome) || mkdir -p $(dbhome) ! - test -d $(bindir) || mkdir -p $(bindir) ! - test -d $(prefix)/lib || mkdir -p $(prefix)/lib ! - test -d $(prefix)/include || mkdir -p $(prefix)/include ! - test -d $(mandir)/man1 || mkdir -p $(mandir)/man1 ! - test -d $(infodir) || mkdir -p $(infodir) # go to server and init it. ( cd $(SERVDIR); $(srcdir)/etc/boot >/dev/null ; bin/finadm /dev/null ; bin/finadm &6 ! echo "configure:1322: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1311,1326 ---- if test "$YACC" = "bison -y" ; then YACC=bison + YFLAGS="-d -v -t" else ! YACC='$(LIB)/preserve' ! YFLAGS="restore --bison" fi # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1324: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1351,1357 **** *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:1355: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1353,1359 ---- *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 ! echo "configure:1357: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1359,1365 **** ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 1372,1378 ---- yywrap() ; return 0; } EOF ! if { (eval echo configure:1376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 1399,1409 **** #elif test "$LEX" = "lex" ; then # LFLAGS="-t" else ! LEX='$(LIB)/preserve restore --flex' fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1407: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1401,1412 ---- #elif test "$LEX" = "lex" ; then # LFLAGS="-t" else ! LEX='$(LIB)/preserve' ! LFLAGS='restore --flex' fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1410: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1426,1432 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1430: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1429,1435 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1433: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1455,1461 **** ### we can found ranlib here but it's not enough : hpus used to have ### useless script with the same name. it's ok if you use standard 'ar' ! ### but if you install GNU's binutils some trouble can arise. ac_save_path="$PATH" --- 1458,1464 ---- ### we can found ranlib here but it's not enough : hpus used to have ### useless script with the same name. it's ok if you use standard 'ar' ! ### but if you install GNU's binutils some trouble can arise. ac_save_path="$PATH" *************** *** 1465,1471 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1469: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1468,1474 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1472: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1500,1506 **** echo $ac_n "checking for make include item""... $ac_c" 1>&6 ! echo "configure:1504: checking for make include item" >&5 if eval "test \"`echo '$''{'gss_cv_MAKE_includes'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1503,1509 ---- echo $ac_n "checking for make include item""... $ac_c" 1>&6 ! echo "configure:1507: checking for make include item" >&5 if eval "test \"`echo '$''{'gss_cv_MAKE_includes'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1529,1535 **** SET_MAKE="MAKE=${MAKE-make}" echo $ac_n "checking if make able to identify short and long file name""... $ac_c" 1>&6 ! echo "configure:1533: checking if make able to identify short and long file name" >&5 if eval "test \"`echo '$''{'gss_cv_MAKE_short_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1532,1538 ---- SET_MAKE="MAKE=${MAKE-make}" echo $ac_n "checking if make able to identify short and long file name""... $ac_c" 1>&6 ! echo "configure:1536: checking if make able to identify short and long file name" >&5 if eval "test \"`echo '$''{'gss_cv_MAKE_short_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1558,1564 **** # Extract the first word of "ddd", so it can be a program name with args. set dummy ddd; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1562: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DDD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1561,1567 ---- # Extract the first word of "ddd", so it can be a program name with args. set dummy ddd; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1565: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DDD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1597,1603 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1601: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XTERM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1600,1606 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1604: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XTERM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1638,1644 **** # Extract the first word of "xxgdb", so it can be a program name with args. set dummy xxgdb; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1642: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XXGDB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1641,1647 ---- # Extract the first word of "xxgdb", so it can be a program name with args. set dummy xxgdb; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1645: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XXGDB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1681,1687 **** # Extract the first word of "gdb", so it can be a program name with args. set dummy gdb; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1685: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GDB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1684,1690 ---- # Extract the first word of "gdb", so it can be a program name with args. set dummy gdb; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1688: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GDB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1718,1724 **** # Extract the first word of "dbx", so it can be a program name with args. set dummy dbx; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1722: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DBX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1721,1727 ---- # Extract the first word of "dbx", so it can be a program name with args. set dummy dbx; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1725: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DBX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1767,1773 **** # Extract the first word of "rpcgen", so it can be a program name with args. set dummy rpcgen; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1771: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RPCGEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1770,1776 ---- # Extract the first word of "rpcgen", so it can be a program name with args. set dummy rpcgen; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1774: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RPCGEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1796,1802 **** fi if test -n "$RPCGEN" ; then echo $ac_n "checking rpcgen output""... $ac_c" 1>&6 ! echo "configure:1800: checking rpcgen output" >&5 if eval "test \"`echo '$''{'gss_cv_RPCGEN_output'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1799,1805 ---- fi if test -n "$RPCGEN" ; then echo $ac_n "checking rpcgen output""... $ac_c" 1>&6 ! echo "configure:1803: checking rpcgen output" >&5 if eval "test \"`echo '$''{'gss_cv_RPCGEN_output'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1808,1817 **** } = 2 ; } = 3; EOF ! $RPCGEN -h -o mytest.h mytest.x ! stubs=simple cat > conftest.$ac_ext < EOF --- 1811,1819 ---- } = 2 ; } = 3; EOF ! $RPCGEN mytest.x cat > conftest.$ac_ext < EOF *************** *** 1819,1829 **** egrep "ct_p_2_svc" >/dev/null 2>&1; then rm -rf conftest* stubs=svc fi rm -f conftest* cat > conftest.$ac_ext </dev/null 2>&1; then rm -rf conftest* stubs=svc + else + rm -rf conftest* + stubs=simple + fi + rm -f conftest* + + cat > conftest.$ac_ext < + EOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "main *(void)" >/dev/null 2>&1; then + rm -rf conftest* + main=void + else + rm -rf conftest* + main=proto fi rm -f conftest* cat > conftest.$ac_ext </dev/null; then cat >> confdefs.h <<\EOF #define RPCSTUB_SVC_STYLE 1 EOF fi fi ### Checks for libraries --- 1881,1915 ---- opts=*) rpcgen_opts=`echo $outparm | sed -e "s/opts=//"` ;; + main=*) + if test "$outparm" = "main=proto" ; then + cat >> confdefs.h <<\EOF + #define RPCMAIN_PROTO 1 + EOF + + fi + ;; *) ;; esac done RPCGEN="$srcdir/etc/rpcgen-sh $RPCGEN $rpcgen_opts" else ! RPCGEN="$srcdir/etc/preserve restore --rpcgen" if grep '[0-9]*_svc' `find ${srcdir} -name '*.preserve'` >/dev/null; then cat >> confdefs.h <<\EOF #define RPCSTUB_SVC_STYLE 1 EOF fi + if grep 'main[ ]*([ ]*\(void\)*[ ]*)' `find ${srcdir} -name '*_svc.c.preserve'` >/dev/null; then + echo "do nothing" >/dev/null + else + cat >> confdefs.h <<\EOF + #define RPCMAIN_PROTO 1 + EOF + + fi fi ### Checks for libraries *************** *** 1882,1888 **** for lib in ipc ; do echo $ac_n "checking for shmat in -l${lib}""... $ac_c" 1>&6 ! echo "configure:1886: checking for shmat in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1918,1924 ---- for lib in ipc ; do echo $ac_n "checking for shmat in -l${lib}""... $ac_c" 1>&6 ! echo "configure:1922: checking for shmat in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1890,1896 **** ac_save_LIBS="$LIBS" LIBS="-l${lib} $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 1937,1943 ---- shmat() ; return 0; } EOF ! if { (eval echo configure:1941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 1937,1943 **** for lib in nsl socket rpc ; do echo $ac_n "checking for callrpc in -l${lib}""... $ac_c" 1>&6 ! echo "configure:1941: checking for callrpc in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'callrpc | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1973,1979 ---- for lib in nsl socket rpc ; do echo $ac_n "checking for callrpc in -l${lib}""... $ac_c" 1>&6 ! echo "configure:1977: checking for callrpc in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'callrpc | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1945,1951 **** ac_save_LIBS="$LIBS" LIBS="-l${lib} $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 1992,1998 ---- callrpc() ; return 0; } EOF ! if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 1991,1997 **** for lib in compat ; do echo $ac_n "checking for ftok in -l${lib}""... $ac_c" 1>&6 ! echo "configure:1995: checking for ftok in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'ftok | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2027,2033 ---- for lib in compat ; do echo $ac_n "checking for ftok in -l${lib}""... $ac_c" 1>&6 ! echo "configure:2031: checking for ftok in -l${lib}" >&5 ac_lib_var=`echo ${lib}'_'ftok | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1999,2005 **** ac_save_LIBS="$LIBS" LIBS="-l${lib} $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2046,2052 ---- ftok() ; return 0; } EOF ! if { (eval echo configure:2050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2047,2058 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:2051: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> --- 2083,2094 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 ! echo "configure:2087: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> *************** *** 2060,2066 **** DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:2064: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else --- 2096,2102 ---- DIR *dirp = 0; ; return 0; } EOF ! if { (eval echo configure:2100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else *************** *** 2085,2091 **** # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:2089: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2121,2127 ---- # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 ! echo "configure:2125: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2093,2099 **** ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2140,2146 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:2144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2126,2132 **** else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:2130: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2162,2168 ---- else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 ! echo "configure:2166: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 2134,2140 **** ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 2181,2187 ---- opendir() ; return 0; } EOF ! if { (eval echo configure:2185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 2168,2179 **** fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2172: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2204,2215 ---- fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2208: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 2181,2187 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 2217,2223 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 2198,2204 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2234,2240 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 2216,2222 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2252,2258 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** *** 2237,2243 **** : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 2273,2279 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** *** 2248,2254 **** exit (0); } EOF ! if { (eval echo configure:2252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else --- 2284,2290 ---- exit (0); } EOF ! if { (eval echo configure:2288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else *************** *** 2272,2283 **** fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2276: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2308,2319 ---- fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2312: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 2293,2299 **** s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else --- 2329,2335 ---- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else *************** *** 2317,2333 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2321: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 2353,2369 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2357: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 2357,2373 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2361: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* --- 2393,2409 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2397: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* *************** *** 2395,2406 **** echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:2399: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:2435: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else --- 2485,2491 ---- ; return 0; } EOF ! if { (eval echo configure:2489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else *************** *** 2470,2481 **** fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:2474: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 2506,2517 ---- fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:2510: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 2503,2514 **** fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:2507: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 2539,2550 ---- fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:2543: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 2536,2547 **** fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:2540: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 2572,2583 ---- fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:2576: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** *** 2569,2580 **** fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:2573: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2605,2616 ---- fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ! echo "configure:2609: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 2591,2597 **** int i; ; return 0; } EOF ! if { (eval echo configure:2595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else --- 2627,2633 ---- int i; ; return 0; } EOF ! if { (eval echo configure:2631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else *************** *** 2610,2621 **** echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2614: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2646,2657 ---- echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2650: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 2624,2630 **** struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2628: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else --- 2660,2666 ---- struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else *************** *** 2645,2656 **** fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:2649: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2681,2692 ---- fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ! echo "configure:2685: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** *** 2658,2664 **** struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:2662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else --- 2694,2700 ---- struct tm *tp; tp->tm_sec; ; return 0; } EOF ! if { (eval echo configure:2698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else *************** *** 2680,2686 **** echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:2684: checking for long double" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2716,2722 ---- echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:2720: checking for long double" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2691,2697 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_long_double=yes else --- 2735,2741 ---- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ exit(sizeof(long double) < sizeof(double)); } EOF ! if { (eval echo configure:2739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_long_double=yes else *************** *** 2723,2729 **** fi echo $ac_n "checking size of void*""... $ac_c" 1>&6 ! echo "configure:2727: checking size of void*" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_voidp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2759,2765 ---- fi echo $ac_n "checking size of void*""... $ac_c" 1>&6 ! echo "configure:2763: checking size of void*" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_voidp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2731,2737 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2767,2773 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2742,2748 **** exit(0); } EOF ! if { (eval echo configure:2746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_voidp=`cat conftestval` else --- 2778,2784 ---- exit(0); } EOF ! if { (eval echo configure:2782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_voidp=`cat conftestval` else *************** *** 2762,2768 **** echo $ac_n "checking size of char""... $ac_c" 1>&6 ! echo "configure:2766: checking size of char" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2798,2804 ---- echo $ac_n "checking size of char""... $ac_c" 1>&6 ! echo "configure:2802: checking size of char" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2770,2776 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2806,2812 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2781,2787 **** exit(0); } EOF ! if { (eval echo configure:2785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_char=`cat conftestval` else --- 2817,2823 ---- exit(0); } EOF ! if { (eval echo configure:2821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_char=`cat conftestval` else *************** *** 2801,2807 **** echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:2805: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2837,2843 ---- echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:2841: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2809,2815 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2845,2851 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2820,2826 **** exit(0); } EOF ! if { (eval echo configure:2824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else --- 2856,2862 ---- exit(0); } EOF ! if { (eval echo configure:2860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else *************** *** 2840,2846 **** echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:2844: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2876,2882 ---- echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:2880: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2848,2854 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2884,2890 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2859,2865 **** exit(0); } EOF ! if { (eval echo configure:2863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else --- 2895,2901 ---- exit(0); } EOF ! if { (eval echo configure:2899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else *************** *** 2879,2885 **** echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:2883: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2915,2921 ---- echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:2919: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2887,2893 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2923,2929 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2898,2904 **** exit(0); } EOF ! if { (eval echo configure:2902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else --- 2934,2940 ---- exit(0); } EOF ! if { (eval echo configure:2938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else *************** *** 2918,2924 **** echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:2922: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2954,2960 ---- echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:2958: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2926,2932 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 2962,2968 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2937,2943 **** exit(0); } EOF ! if { (eval echo configure:2941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_long=`cat conftestval` else --- 2973,2979 ---- exit(0); } EOF ! if { (eval echo configure:2977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_long=`cat conftestval` else *************** *** 2957,2963 **** echo $ac_n "checking size of long double""... $ac_c" 1>&6 ! echo "configure:2961: checking size of long double" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2993,2999 ---- echo $ac_n "checking size of long double""... $ac_c" 1>&6 ! echo "configure:2997: checking size of long double" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2965,2971 **** { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() --- 3001,3007 ---- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() *************** *** 2976,2982 **** exit(0); } EOF ! if { (eval echo configure:2980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_double=`cat conftestval` else --- 3012,3018 ---- exit(0); } EOF ! if { (eval echo configure:3016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_double=`cat conftestval` else *************** *** 2997,3008 **** echo $ac_n "checking for strftime""... $ac_c" 1>&6 ! echo "configure:3001: checking for strftime" >&5 if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3037: checking for strftime" >&5 if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_strftime=yes" else --- 3061,3067 ---- ; return 0; } EOF ! if { (eval echo configure:3065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_strftime=yes" else *************** *** 3047,3053 **** echo "$ac_t""no" 1>&6 # strftime is in -lintl on SCO UNIX. echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 ! echo "configure:3051: checking for strftime in -lintl" >&5 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 3083,3089 ---- echo "$ac_t""no" 1>&6 # strftime is in -lintl on SCO UNIX. echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 ! echo "configure:3087: checking for strftime in -lintl" >&5 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 3055,3061 **** ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 3102,3108 ---- strftime() ; return 0; } EOF ! if { (eval echo configure:3106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 3093,3104 **** fi echo $ac_n "checking for vprintf""... $ac_c" 1>&6 ! echo "configure:3097: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3133: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else --- 3157,3163 ---- ; return 0; } EOF ! if { (eval echo configure:3161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else *************** *** 3145,3156 **** if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 ! echo "configure:3149: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3185: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else --- 3209,3215 ---- ; return 0; } EOF ! if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else *************** *** 3201,3212 **** for ac_func in strstr memcpy uname cftime getlogin cuserid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3205: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3241: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3265,3271 ---- ; return 0; } EOF ! if { (eval echo configure:3269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3256,3267 **** for ac_func in svc_unreg svc_unregister atexit on_exit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3260: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3296: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3320,3326 ---- ; return 0; } EOF ! if { (eval echo configure:3324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3313,3324 **** for ac_func in alloca do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3317: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3353: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3377,3383 ---- ; return 0; } EOF ! if { (eval echo configure:3381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 3410,3415 **** --- 3446,3452 ---- + trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure *************** *** 3566,3576 **** s%@dbhome@%$dbhome%g s%@builddir@%$builddir%g s%@version@%$version%g s%@SET_MAKE@%$SET_MAKE%g s%@A2K_proc@%$A2K_proc%g s%@A2K_entry@%$A2K_entry%g s%@U@%$U%g - s%@LFLAGS@%$LFLAGS%g s%@ALLOCA@%$ALLOCA%g s%@MCYCLE@%$MCYCLE%g s%@INT_SHELL@%$INT_SHELL%g --- 3603,3614 ---- s%@dbhome@%$dbhome%g s%@builddir@%$builddir%g s%@version@%$version%g + s%@YFLAGS@%$YFLAGS%g + s%@LFLAGS@%$LFLAGS%g s%@SET_MAKE@%$SET_MAKE%g s%@A2K_proc@%$A2K_proc%g s%@A2K_entry@%$A2K_entry%g s%@U@%$U%g s%@ALLOCA@%$ALLOCA%g s%@MCYCLE@%$MCYCLE%g s%@INT_SHELL@%$INT_SHELL%g diff -rc gnusql-0.7b5/configure.in gnusql-0.7b5.1/configure.in *** gnusql-0.7b5/configure.in Mon Apr 28 21:51:56 1997 --- gnusql-0.7b5.1/configure.in Tue May 6 02:01:36 1997 *************** *** 215,222 **** dnl ## actually we strongly need bison because we use @n construction if test "$YACC" = "bison -y" ; then YACC=bison else ! YACC='$(LIB)/preserve restore --bison' fi AC_PROG_LEX --- 215,224 ---- dnl ## actually we strongly need bison because we use @n construction if test "$YACC" = "bison -y" ; then YACC=bison + YFLAGS="-d -v -t" else ! YACC='$(LIB)/preserve' ! YFLAGS="restore --bison" fi AC_PROG_LEX *************** *** 227,233 **** #elif test "$LEX" = "lex" ; then # LFLAGS="-t" else ! LEX='$(LIB)/preserve restore --flex' fi AC_PROG_LN_S --- 229,236 ---- #elif test "$LEX" = "lex" ; then # LFLAGS="-t" else ! LEX='$(LIB)/preserve' ! LFLAGS='restore --flex' fi AC_PROG_LN_S *************** *** 235,241 **** ### we can found ranlib here but it's not enough : hpus used to have ### useless script with the same name. it's ok if you use standard 'ar' ! ### but if you install GNU's binutils some trouble can arise. dnl AC_PROG_AR --- 238,244 ---- ### we can found ranlib here but it's not enough : hpus used to have ### useless script with the same name. it's ok if you use standard 'ar' ! ### but if you install GNU's binutils some trouble can arise. dnl AC_PROG_AR *************** *** 342,350 **** } = 2 ; } = 3; EOF ! $RPCGEN -h -o mytest.h mytest.x ! stubs=simple ! AC_EGREP_HEADER(ct_p_2_svc,mytest.h,stubs=svc) AC_EGREP_CPP(Ok,[ #include "mytest.h" #ifdef _MYTEST_H_RPCGEN --- 345,353 ---- } = 2 ; } = 3; EOF ! $RPCGEN mytest.x ! AC_EGREP_HEADER(ct_p_2_svc,mytest.h, stubs=svc, stubs=simple) ! AC_EGREP_HEADER(main[ ]*(void),mytest_svc.c, main=void, main=proto) AC_EGREP_CPP(Ok,[ #include "mytest.h" #ifdef _MYTEST_H_RPCGEN *************** *** 352,358 **** #endif ],opts="." , opts="Ihdr" ) rm -f mytest.? ! gss_cv_RPCGEN_output="stubs=$stubs opts=\"$opts\"" ]) AC_MSG_RESULT($gss_cv_RPCGEN_output) for outparm in $gss_cv_RPCGEN_output; do --- 355,361 ---- #endif ],opts="." , opts="Ihdr" ) rm -f mytest.? ! gss_cv_RPCGEN_output="stubs=$stubs opts=\"$opts\" main=$main" ]) AC_MSG_RESULT($gss_cv_RPCGEN_output) for outparm in $gss_cv_RPCGEN_output; do *************** *** 365,382 **** opts=*) rpcgen_opts=`echo $outparm | sed -e "s/opts=//"` ;; *) ;; esac done RPCGEN="$srcdir/etc/rpcgen-sh $RPCGEN $rpcgen_opts" else ! RPCGEN="$srcdir/etc/preserve restore --rpcgen " changequote(, )dnl if grep '[0-9]*_svc' `find ${srcdir} -name '*.preserve'` >/dev/null; then changequote([, ])dnl AC_DEFINE(RPCSTUB_SVC_STYLE) fi fi ### Checks for libraries --- 368,397 ---- opts=*) rpcgen_opts=`echo $outparm | sed -e "s/opts=//"` ;; + main=*) + if test "$outparm" = "main=proto" ; then + AC_DEFINE(RPCMAIN_PROTO) + fi + ;; *) ;; esac done RPCGEN="$srcdir/etc/rpcgen-sh $RPCGEN $rpcgen_opts" else ! RPCGEN="$srcdir/etc/preserve restore --rpcgen" changequote(, )dnl if grep '[0-9]*_svc' `find ${srcdir} -name '*.preserve'` >/dev/null; then changequote([, ])dnl AC_DEFINE(RPCSTUB_SVC_STYLE) fi + changequote(, )dnl + if grep 'main[ ]*([ ]*\(void\)*[ ]*)' `find ${srcdir} -name '*_svc.c.preserve'` >/dev/null; then + changequote([, ])dnl + echo "do nothing" >/dev/null + else + AC_DEFINE(RPCMAIN_PROTO) + fi fi ### Checks for libraries *************** *** 465,478 **** AC_SUBST(RPCGEN) AC_SUBST(RANLIB) AC_SUBST(YACC) AC_SUBST(LEX) AC_SUBST(LEXLIB) AC_SUBST(SET_MAKE) AC_SUBST(host_os) AC_SUBST(A2K_proc) AC_SUBST(A2K_entry) AC_SUBST(U) - AC_SUBST(LFLAGS) AC_SUBST(ALLOCA) AC_SUBST(MCYCLE) AC_SUBST(INT_SHELL) --- 480,494 ---- AC_SUBST(RPCGEN) AC_SUBST(RANLIB) AC_SUBST(YACC) + AC_SUBST(YFLAGS) AC_SUBST(LEX) + AC_SUBST(LFLAGS) AC_SUBST(LEXLIB) AC_SUBST(SET_MAKE) AC_SUBST(host_os) AC_SUBST(A2K_proc) AC_SUBST(A2K_entry) AC_SUBST(U) AC_SUBST(ALLOCA) AC_SUBST(MCYCLE) AC_SUBST(INT_SHELL) diff -rc gnusql-0.7b5/etc/Makefile.in gnusql-0.7b5.1/etc/Makefile.in *** gnusql-0.7b5/etc/Makefile.in Mon Apr 28 21:52:09 1997 --- gnusql-0.7b5.1/etc/Makefile.in Wed May 7 10:42:25 1997 *************** *** 14,20 **** CP=cp -p DOC=$(SERVDIR)/doc ############################################################################# ! all : $(CP) dq $(srcdir)/boot $(SERVBIN) install : infos mans infos : $(DOC)/gss --- 14,20 ---- CP=cp -p DOC=$(SERVDIR)/doc ############################################################################# ! all : gss $(CP) dq $(srcdir)/boot $(SERVBIN) install : infos mans infos : $(DOC)/gss *************** *** 24,31 **** $(DOC)/gsqlc.1 : $(DOC) gsqlc.1 gsqls.1 cp $(srcdir)/*.1 $(DOC) gss : gss.texi gnu.texi ask.texi ! makeinfo $(srcdir)/gss.texi $(DOC) : - [ -d $(DOC) ] || mkdir -p $(DOC) clean : ! make-util clean "make clean" --- 24,31 ---- $(DOC)/gsqlc.1 : $(DOC) gsqlc.1 gsqls.1 cp $(srcdir)/*.1 $(DOC) gss : gss.texi gnu.texi ask.texi ! makeinfo -I$(srcdir) $(srcdir)/gss.texi $(DOC) : - [ -d $(DOC) ] || mkdir -p $(DOC) clean : ! $(srcdir)/make-util clean "make clean" diff -rc gnusql-0.7b5/etc/gss gnusql-0.7b5.1/etc/gss *** gnusql-0.7b5/etc/gss Mon Apr 28 21:52:01 1997 --- gnusql-0.7b5.1/etc/gss Sat May 3 19:23:27 1997 *************** *** 1,38 **** This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/Gsql/etc/gss.texi.  Indirect: ! gss-1: 100 ! gss-2: 44640  Tag Table: (Indirect) ! Node: Top100 ! Node: Distrib1395 ! Node: Copying3706 ! Node: Intro22891 ! Node: Architecture24491 ! Node: Dialect28329 ! Node: Requirements29191 ! Node: SQL Implementation30654 ! Node: Dialect Intro31141 ! Node: Data description32987 ! Node: Data types34563 ! Node: Schema35613 ! Node: Access37603 ! Node: Server38308 ! Node: Client39801 ! Node: Bugs41766 ! Node: Bug Criteria42515 ! Node: Understanding Bug Reporting43630 ! Node: Checklist44640 ! Node: Sending Patches50216 ! Node: Manifesto55204 ! Node: Acknowledgments81235 ! Node: Key Index81880 ! Node: Command Index82009 ! Node: Variable Index82229 ! Node: Concept Index82358  End Tag Table --- 1,36 ---- This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/0.7b5/etc/gss.texi.  Indirect: ! gss-1: 101 ! gss-2: 48322  Tag Table: (Indirect) ! Node: Top101 ! Node: Distrib1396 ! Node: Copying3707 ! Node: Intro22892 ! Node: Architecture24492 ! Node: Dialect28241 ! Node: Dialect Intro29283 ! Node: Data description31088 ! Node: Data types32653 ! Node: Schema33692 ! Node: Access35671 ! Node: Server36365 ! Node: Client37858 ! Node: Bugs39856 ! Node: Bug Criteria40610 ! Node: Understanding Bug Reporting41916 ! Node: Checklist43001 ! Node: Sending Patches48322 ! Node: Manifesto53310 ! Node: Acknowledgments79341 ! Node: Key Index79986 ! Node: Command Index80115 ! Node: Variable Index80335 ! Node: Concept Index80464  End Tag Table diff -rc gnusql-0.7b5/etc/gss-1 gnusql-0.7b5.1/etc/gss-1 *** gnusql-0.7b5/etc/gss-1 Mon Apr 28 21:52:07 1997 --- gnusql-0.7b5.1/etc/gss-1 Sat May 3 19:23:27 1997 *************** *** 1,5 **** This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/Gsql/etc/gss.texi.  File: gss, Node: Top, Next: Distrib, Prev: (dir), Up: (dir) --- 1,5 ---- This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/0.7b5/etc/gss.texi.  File: gss, Node: Top, Next: Distrib, Prev: (dir), Up: (dir) *************** *** 549,632 **** reference, the server part of the interpreter retrieves the code from data base and perform it with appropriate invocations of SDTM. ! We decided to use machine-independent internal representation of ! procedural SQL-code to provide more portability and reliability of the ! system. In principle, we could generate machine codes. But the main ! problem was that we often need to compile something dynamically (in ! runtime) and to load additional parts of code from the data base by ! linking them together with a running program. Standard loaders do not ! provide such facilities. So we would need to write a sufficient part of ! special code for each pair of processor and operating system. ! Moreover, the most overhead is paid not for interpretation but for ! data retrieval and may be for the analysis of retrieval conditions. ! Therefore this decision has very small influence on the system's ! performance.  File: gss, Node: Dialect, Next: Server, Prev: Architecture, Up: Top ! SQL-Language of GNU SQL Server Activities for standardization of SQL had started practically ! simultaneously with its first commercial implementations. SQL of System ! R was not developed with enough care. Commercial dialects were so ! different that no one could be accepted as a standard. The first ! International Standard SQL-89 in many parts is not defined precisely ! enough and allows different interpretations. Also, this standard ! doesn't include such important things as schema manipulation and ! dynamic SQL facilities. A much more complete and precise standard ! SQL-92 was adopted after the project of GSS had been started. ! ! * Menu: ! ! * Requirements:: Requirements for the SQL Dialect ! * SQL Implementation:: Implementation Dialect description ! !  ! File: gss, Node: Requirements, Next: SQL Implementation, Up: Dialect ! ! Requirements ! ============ ! ! Implementation Requirements for the SQL Dialect for GSS ! ! It was obvious that the basis for our project should be SQL. But ! the problem was to create some complete dialect of this language. It ! was not possible to use the SQL of System R - in this case the project ! would be a pure research. An absence of any full description prevented ! usage of a dialect of any commercial DBMS. The project was started at ! the end of 1991 when the standard of SQL-92 was not adopted. Available ! drafts of this standard were too preliminary to use them practically. ! ! Thus the only possibility was to base on SQL-89 with necessary ! additions and extensions. ! ! Generally, in forming implementation dialect of SQL we kept in mind ! following requirements: ! ! * the dialect should not contradict the standard; ! ! * the language should be powerful enough to provide practical use of ! the system; ! ! * the extensions should be approved from a practical point of view, ! and they should not complicate the implementation too greatly; ! ! * the reductions [<<- "reductions" ?? ] of the language should not ! lead to full absence of a corresponding mechanism in the ! implementation. ! ! We describe below the dialect of SQL which was used to develop ! applications with embedded C, to develop interactive applications, and ! to access the data base interactively. ! !  ! File: gss, Node: SQL Implementation, Next: Dialect Intro, Prev: Requirements, Up: Dialect ! ! SQL Implementation ! ================== ! ! The Dialect of SQL of GNU SQL Server * Menu: --- 549,580 ---- reference, the server part of the interpreter retrieves the code from data base and perform it with appropriate invocations of SDTM. ! We use machine-independent internal representation of procedural ! SQL-code to provide more portability and reliability of the system. In ! principle, we could generate machine codes. But the main problem was ! that we often need to compile something dynamically (in runtime) and to ! load additional parts of code from the data base by linking them ! together with a running program. Standard loaders do not provide such ! facilities. So we would need to write a sufficient part of special code ! for each pair of processor and operating system. Moreover, the ! most overhead is paid not for interpretation but for data retrieval and ! may be for the analysis of retrieval conditions.  File: gss, Node: Dialect, Next: Server, Prev: Architecture, Up: Top ! The Dialect of SQL of GNU SQL Server Activities for standardization of SQL had started practically ! simultaneously with its first commercial implementations. Original ! System R's SQL was not developed with enough care. Commercial dialects ! were so different that no one could be accepted as a standard. The ! first International Standard SQL-89 in many parts is not defined ! precisely enough and allows different interpretations. Also, this ! standard doesn't include such important things as schema manipulation ! and dynamic SQL facilities. A much more complete and precise SQL ! standard was adopted in 1992 but it still omit a lot of useful ! functionality. * Menu: *************** *** 637,657 **** * Access:: Data access control  ! File: gss, Node: Dialect Intro, Next: Data description, Prev: SQL Implementation, Up: SQL Implementation Dialect Intro ============= ! As we noted above, the dialect of the SQL of GSS is oriented to ! embedded C and uses an ASCII-compatible set of characters. The dialect ! supports data types that are adequate to the base set of types of C, ! and also strings of various length. Statements for data definitions ! allow us to create and to drop relations and views, and also to grant ! privileges to other users. Supported constraints allow us to prevent ! entrance of NULL-values, and to define constraints of uniqueness on ! tables. The language also allows us to declare check constraints on a ! table (conditions that should be true on every tuple of the relation) ! and referential constraints. The set of statements for data manipulations includes statements to insert, update and delete tuples from relations. The select statement --- 585,605 ---- * Access:: Data access control  ! File: gss, Node: Dialect Intro, Next: Data description, Prev: Dialect, Up: Dialect Dialect Intro ============= ! The dialect of the SQL of GSS is oriented to embedded C and uses an ! ASCII-compatible set of characters. The dialect supports data types ! that are adequate to the base set of types of C, and also strings of ! various length. Statements for data definitions allow us to create and ! to drop relations and views, and also to grant privileges to other ! users. Supported constraints allow us to prevent entrance of ! NULL-values, and to define constraints of uniqueness on tables. The ! language also allows us to declare check constraints on a table ! (conditions that should be true on every tuple of the relation) and ! referential constraints. The set of statements for data manipulations includes statements to insert, update and delete tuples from relations. The select statement *************** *** 674,680 **** Below we consider some issues of the dialect with some details.  ! File: gss, Node: Data description, Next: Data types, Prev: Dialect Intro, Up: SQL Implementation Data description ================ --- 622,628 ---- Below we consider some issues of the dialect with some details.  ! File: gss, Node: Data description, Next: Data types, Prev: Dialect Intro, Up: Dialect Data description ================ *************** *** 705,711 **** a value of the main variable is NULL.  ! File: gss, Node: Data types, Next: Schema, Prev: Data description, Up: SQL Implementation Data types ========== --- 653,659 ---- a value of the main variable is NULL.  ! File: gss, Node: Data types, Next: Schema, Prev: Data description, Up: Dialect Data types ========== *************** *** 734,740 **** yet been implemented.  ! File: gss, Node: Schema, Next: Access, Prev: Data types, Up: SQL Implementation Schema ====== --- 682,688 ---- yet been implemented.  ! File: gss, Node: Schema, Next: Access, Prev: Data types, Up: Dialect Schema ====== *************** *** 774,780 **** modules are created and maintained by the SQL compiler.  ! File: gss, Node: Access, Prev: Schema, Up: SQL Implementation Access ====== --- 722,728 ---- modules are created and maintained by the SQL compiler.  ! File: gss, Node: Access, Prev: Schema, Up: Dialect Access ====== *************** *** 853,875 **** Options `-dPASSES_IDS' asks the compiler to produce compiler tree dumps after given passes of compilation. PASSES_IDS is a set if characters representing each pass. Pass identification can be found in ! the file *src/include/options.def* in distribution directory. To link your program you should tell the linker to use the runtime library (either *sqlser/client/*.a* or *'-lgss'*). ! If you configured package to use debugger running the application ! program can ask you if you want to start debugger for the started ! transaction process. You can override this request by setting *NEEDGDB* ! environment variable to "n". ! Too see examples of using SQL in a program see examples in the distribution *test* subdirectory. ---------- Footnotes ---------- ! (1) Currently server doesn't check dependencies for compiled code. ! This has to be done in the future.  File: gss, Node: Bugs, Next: Key Index, Prev: Client, Up: Top --- 801,823 ---- Options `-dPASSES_IDS' asks the compiler to produce compiler tree dumps after given passes of compilation. PASSES_IDS is a set if characters representing each pass. Pass identification can be found in ! the file *src/include/options.def* in the distribution directory. To link your program you should tell the linker to use the runtime library (either *sqlser/client/*.a* or *'-lgss'*). ! If you configured the package to use a debugger, the running ! application program will ask you if you want to start the debugger for ! the starting transaction process. You can override this request by ! setting the *NEEDGDB* environment variable to "n". ! Too see examples of using SQL in a program see the examples in the distribution *test* subdirectory. ---------- Footnotes ---------- ! (1) Currently the server doesn't check dependencies for compiled ! code; this; this will be done in the future.  File: gss, Node: Bugs, Next: Key Index, Prev: Client, Up: Top *************** *** 877,885 **** Reporting Bugs ============== ! Sometimes you will encounter a bug in the SQL Server. Although we cannot promise we can or will fix the bug, and we might not even agree ! that it is a bug, we want to hear about any problems you encounter. Often we agree they are bugs and we want to fix them. To make it possible for us to fix a bug, you must report it. In --- 825,833 ---- Reporting Bugs ============== ! At sometimes you may encounter a bug in the SQL Server. Although we cannot promise we can or will fix the bug, and we might not even agree ! that it is a bug, we want to do hear about any problems you encounter. Often we agree they are bugs and we want to fix them. To make it possible for us to fix a bug, you must report it. In *************** *** 898,923 **** When Is There a Bug ------------------- ! If SQL Server or client runtime library executes an illegal instruction, or dies with an operating system error message that indicates a problem in the program (as opposed to something like "disk full"), then it is certainly a bug. ! If client programs reports: "service crash" then it is certainly a ! bug. ! If a database store wrong data or can't find yours, that is a bug. ! But be sure you know for certain what it ought to be. If you aren't ! familiar with SQL or don't know for certain how the statment is supposed to work, then it might actually be working right. Rather than ! jumping to conclusions, show the problem to someone who knows for ! certain. If after a careful rereading of the manual you still do not understand how to do some typical job, that indicates a bug in the manual, which you should report. The manual's job is to make everything clear to people who are not SQL experts--including you. It ! is just as important to report documentation bugs as program bugs.  File: gss, Node: Understanding Bug Reporting, Next: Checklist, Prev: Bug Criteria, Up: Bugs --- 846,873 ---- When Is There a Bug ------------------- ! If the SQL Server or client runtime library executes an illegal instruction, or dies with an operating system error message that indicates a problem in the program (as opposed to something like "disk full"), then it is certainly a bug. ! If the client programs reports: "service crash" then it is certainly ! a bug. ! If a database stores the wrong data or can't find yours, that is a ! bug. But be sure you know for certain what it ought to be. If you ! aren't familiar with SQL or don't know for certain how the statement is supposed to work, then it might actually be working right. Rather than ! jump to conclusions, show the problem to someone who knows for certain. If after a careful rereading of the manual you still do not understand how to do some typical job, that indicates a bug in the manual, which you should report. The manual's job is to make everything clear to people who are not SQL experts--including you. It ! is just as important to report documentation bugs as program bugs. ( ! We aer in the very beginning of the manual and your notes will be very ! helpfull - at least we will understand what should we describe and ! what is obvious for everybody. /kml )  File: gss, Node: Understanding Bug Reporting, Next: Checklist, Prev: Bug Criteria, Up: Bugs *************** *** 933,942 **** The most important principle in reporting a bug is to report *facts*, not hypotheses or categorizations. It is always easier to report the ! facts, but people seem to prefer to attempt to posit explanations and ! report them instead. If the explanations are based on guesses about ! how GSS is implemented, they will be useless; we will have to try to ! figure out what the facts must have been to lead to such speculations. ! Sometimes this is impossible. But in any case, it is unnecessary work ! for us. --- 883,1018 ---- The most important principle in reporting a bug is to report *facts*, not hypotheses or categorizations. It is always easier to report the ! facts, but people prefer to strain to speculate explanations of their ! own and report their speculations instead. If the explanations are ! based on guesses about how GSS is implemented, they will be useless; we ! will have to try to figure out what the facts must have been to lead to ! such speculations. Sometimes this is impossible. But in any case, it is ! unnecessary work for us to do when we could be doing something ! constructive. ! !  ! File: gss, Node: Checklist, Next: Sending Patches, Prev: Understanding Bug Reporting, Up: Bugs ! ! Checklist for Bug Reports ! ------------------------- ! ! The best way to send a bug report is to mail it electronically to the ! GNU SQL Server maintainers at `bug-gnu-sql@prep.ai.mit.edu'. (If you ! want to suggest a change as an improvement, use `gss@ispras.ru'.) ! ! If you'd like to read the bug reports, you can find them on the ! newsgroup `it has not created yet' or subscribe for bug report mail ! list. ( see `http://www.ispras.ru/~gsql' for details; keep in mind, ! however, that as a spectator you should not criticize anything about ! what you see there. The purpose of bug reports is to give information ! to the SQL server maintainers. Spectators are welcome only as long as ! they do not interfere with this. In particular, some bug reports ! contain large amounts of data; spectators should not complain about ! this. ! ! Please do not post bug reports using netnews; mail is more reliable ! than netnews about reporting your correct address, which we may need in ! order to ask you for more information. ! ! If you can't send electronic mail, then mail the bug report on paper ! or machine-readable media to this address: ! ! GNU SQL Server Bugs ! Free Software Foundation ! 59 Temple Place, Suite 330 ! Boston, MA 02111-1307 USA ! ! We do not promise to fix the bug; but if the bug is serious, or ! ugly, or easy to fix, chances are we will want to. ! ! To enable maintainers to investigate a bug, your report should ! include all these things: ! ! * The version number of the SQL server. Without this, we won't know ! whether there is any point in looking for the bug in the current ! version of the GNU SQL server. ! ! You can get the version number from the server log. At start time ! it reports that "GNU SQL server (version xxxxx) ". ! ! * The type of machine you are using, and the operating system name ! and version number. ! ! * The operands given to the `configure' command when the SQL Server ! was installed. ! ! * A complete list of any modifications you have made to the GSS ! source. (We may not have time to investigate the bug unless it ! happens in an unmodified SQL Server. But if you've made ! modifications and you don't tell us, you are sending us on a wild ! goose chase.) ! ! Be precise about these changes. A description in English is not ! enough--send a context diff for them. ! ! Adding files of your own, or porting to another machine, is a ! modification of the source. ! ! * Details of any other deviations from the standard procedure for ! installing the GNU SQL Server. ! ! * The complete text of any files needed to reproduce the bug. ! ! * The precise log of client program and server output. If would be a ! good idea if you comment them by timestamp or syncronization marks. ! ! * A description of what behavior you observe that you believe is ! incorrect. ! ! Even if the problem you experience is a fatal signal, you should ! still say it explicitly. Suppose something strange is going on, ! such as, your copy of the source is out of sync, or you have ! encountered a bug in the C library on your system. (This has ! happened!) Your copy might crash and the copy here might not. If ! you *said* to expect a crash, then when GSS here fails to crash, ! we would know that the bug was not happening. If you don't say to ! expect a crash, then we would not know whether the bug was ! happening--we would not be able to draw any conclusion from our ! observations. ! ! * If the manifestation of the bug is an SQL Server error message, it ! is important to report the precise text of the error message. ! ! This use of the debugger is possible only if you know how to make ! the bug happen again. If you can't make it happen again, at least ! copy the whole error message. ! ! Here are some things that are not necessary in a bug report: ! ! * A system call trace of SQL server or client execution. ! ! System call traces are very useful for certain special kinds of ! debugging, but in most cases they give little useful information. ! It is therefore strange that many people seem to think that *the* ! way to report information about a crash is to send a system call ! trace. ! ! In most programs, a backtrace is normally far, far more ! informative than a system call trace. Even in the SQL server, a ! simple backtrace is generally more informative. ! ! * A patch for the bug. ! ! A patch for the bug is useful if it is a good one. But don't omit ! the other information that a bug report needs, such as the test ! case, on the assumption that a patch is sufficient. We might see ! problems with your patch and decide to fix the problem another ! way, or we might not understand it at all. And if we can't ! understand what bug you are trying to fix, or why your patch ! should be an improvement, we will not install it. ! ! *Note Sending Patches::, for guidelines on how to make it easy for ! us to understand and install your patches. ! ! * A guess about what the bug is or what it depends on. ! ! Such guesses are usually wrong. Even experts can't guess right ! about such things without first using the debugger to find the ! facts. diff -rc gnusql-0.7b5/etc/gss-2 gnusql-0.7b5.1/etc/gss-2 *** gnusql-0.7b5/etc/gss-2 Mon Apr 28 21:52:07 1997 --- gnusql-0.7b5.1/etc/gss-2 Sat May 3 19:23:27 1997 *************** *** 1,134 **** This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/Gsql/etc/gss.texi. ! !  ! File: gss, Node: Checklist, Next: Sending Patches, Prev: Understanding Bug Reporting, Up: Bugs ! ! Checklist for Bug Reports ! ------------------------- ! ! The best way to send a bug report is to mail it electronically to the ! GNU SQL Server maintainers at `bug-gnu-sql@prep.ai.mit.edu'. (If you ! want to suggest a change as an improvement, use `gss@ispras.ru'.) ! ! If you'd like to read the bug reports, you can find them on the ! newsgroup `it has not created yet'; keep in mind, however, that as a ! spectator you should not criticize anything about what you see there. ! The purpose of bug reports is to give information to the SQL server ! maintainers. Spectators are welcome only as long as they do not ! interfere with this. In particular, some bug reports contain large ! amounts of data; spectators should not complain about this. ! ! Please do not post bug reports using netnews; mail is more reliable ! than netnews about reporting your correct address, which we may need in ! order to ask you for more information. ! ! If you can't send electronic mail, then mail the bug report on paper ! or machine-readable media to this address: ! ! GNU SQL Server Bugs ! Free Software Foundation ! 59 Temple Place, Suite 330 ! Boston, MA 02111-1307 USA ! ! We do not promise to fix the bug; but if the bug is serious, or ! ugly, or easy to fix, chances are we will want to. ! ! To enable maintainers to investigate a bug, your report should ! include all these things: ! ! * The version number of the SQL server. Without this, we won't know ! whether there is any point in looking for the bug in the current ! version of the GNU SQL server. ! ! You can get the version number from the server log. At start time ! it reports that "GNU SQL server (version xxxxx) is ready". If that ! command does not work, you probably have something other than GNU ! SQL Server, so you will have to report the bug to the appropriate ! maintainers. ! ! * The type of machine you are using, and the operating system name ! and version number. ! ! * The operands given to the `configure' command when the SQL Server ! was installed. ! ! * A complete list of any modifications you have made to the GSS ! source. (We may not have time to investigate the bug unless it ! happens in an unmodified SQL Server. But if you've made ! modifications and you don't tell us, you are sending us on a wild ! goose chase.) ! ! Be precise about these changes. A description in English is not ! enough--send a context diff for them. ! ! Adding files of your own, or porting to another machine, is a ! modification of the source. ! ! * Details of any other deviations from the standard procedure for ! installing the GNU SQL Server. ! ! * The complete text of any files needed to reproduce the bug. ! ! * The precise log of client program and server output. If would be a ! good idea if you comment them by timestamp or syncronization marks. ! ! * A description of what behavior you observe that you believe is ! incorrect. ! ! Even if the problem you experience is a fatal signal, you should ! still say it explicitly. Suppose something strange is going on, ! such as, your copy of the source is out of sync, or you have ! encountered a bug in the C library on your system. (This has ! happened!) Your copy might crash and the copy here might not. If ! you *said* to expect a crash, then when GSS here fails to crash, ! we would know that the bug was not happening. If you don't say to ! expect a crash, then we would not know whether the bug was ! happening--we would not be able to draw any conclusion from our ! observations. ! ! * If the manifestation of the bug is an SQL Server error message, it ! is important to report the precise text of the error message. ! ! This use of the debugger is possible only if you know how to make ! the bug happen again. If you can't make it happen again, at least ! copy the whole error message. ! ! Here are some things that are not necessary in a bug report: ! ! * A system call trace of SQL server or client execution. ! ! System call traces are very useful for certain special kinds of ! debugging, but in most cases they give little useful information. ! It is therefore strange that many people seem to think that *the* ! way to report information about a crash is to send a system call ! trace. ! ! In most programs, a backtrace is normally far, far more ! informative than a system call trace. Even in the SQL server, a ! simple backtrace is generally more informative, though to give ! full information you should supplement the backtrace by displaying ! variable values and print them as Lisp objects with `pr' (see ! above). ! ! * A patch for the bug. ! ! A patch for the bug is useful if it is a good one. But don't omit ! the other information that a bug report needs, such as the test ! case, on the assumption that a patch is sufficient. We might see ! problems with your patch and decide to fix the problem another ! way, or we might not understand it at all. And if we can't ! understand what bug you are trying to fix, or why your patch ! should be an improvement, we will not install it. ! ! *Note Sending Patches::, for guidelines on how to make it easy for ! us to understand and install your patches. ! ! * A guess about what the bug is or what it depends on. ! ! Such guesses are usually wrong. Even experts can't guess right ! about such things without first using the debugger to find the ! facts.  File: gss, Node: Sending Patches, Prev: Checklist, Up: Bugs --- 1,5 ---- This is Info file gss, produced by Makeinfo-1.63 from the input file ! /home/gsql/0.7b5/etc/gss.texi.  File: gss, Node: Sending Patches, Prev: Checklist, Up: Bugs diff -rc gnusql-0.7b5/etc/gss.texi gnusql-0.7b5.1/etc/gss.texi *** gnusql-0.7b5/etc/gss.texi Mon Apr 28 21:52:08 1997 --- gnusql-0.7b5.1/etc/gss.texi Sat May 3 19:23:26 1997 *************** *** 736,742 **** * Access:: Data access control @end menu ! @node Dialect Intro, Data description, SQL Implementation, SQL Implementation @section Dialect Intro The dialect of the SQL of GSS is --- 736,742 ---- * Access:: Data access control @end menu ! @node Dialect Intro, Data description, Dialect, Dialect @section Dialect Intro The dialect of the SQL of GSS is *************** *** 773,779 **** Below we consider some issues of the dialect with some details. ! @node Data description, Data types, Dialect Intro, SQL Implementation @section Data description @emph{Data description} --- 773,779 ---- Below we consider some issues of the dialect with some details. ! @node Data description, Data types, Dialect Intro, Dialect @section Data description @emph{Data description} *************** *** 803,809 **** NULL-value one should use an additional indicator variable that gets a value of -1 if a value of the main variable is NULL. ! @node Data types, Schema, Data description, SQL Implementation @section Data types @center Data types --- 803,809 ---- NULL-value one should use an additional indicator variable that gets a value of -1 if a value of the main variable is NULL. ! @node Data types, Schema, Data description, Dialect @section Data types @center Data types *************** *** 833,839 **** defined as zero. Processing of such data types as DATETIME and CHARVAR have not yet been implemented. ! @node Schema, Access, Data types, SQL Implementation @section Schema @center Schema manipulations and consistency constraints --- 833,839 ---- defined as zero. Processing of such data types as DATETIME and CHARVAR have not yet been implemented. ! @node Schema, Access, Data types, Dialect @section Schema @center Schema manipulations and consistency constraints *************** *** 872,878 **** special language construction to create explicit modules. In fact, implicit modules are created and maintained by the SQL compiler. ! @node Access, , Schema, SQL Implementation @section Access @center Data access control --- 872,878 ---- special language construction to create explicit modules. In fact, implicit modules are created and maintained by the SQL compiler. ! @node Access, , Schema, Dialect @section Access @center Data access control diff -rc gnusql-0.7b5/etc/make-util gnusql-0.7b5.1/etc/make-util *** gnusql-0.7b5/etc/make-util Mon Apr 28 21:52:07 1997 --- gnusql-0.7b5.1/etc/make-util Sat May 3 18:33:36 1997 *************** *** 38,49 **** prefix="$7" # put link to clients tools (compiler, runtime, mans, infos etc) # into commonly used places ! link_it () ## what to { ! if [ -h $2/$1 ]; then ! rm -f $2/$1 fi ! ${LN_S} `pwd`/$1 $2/$1 } ( cd ${dbhome}/client; --- 38,57 ---- prefix="$7" # put link to clients tools (compiler, runtime, mans, infos etc) # into commonly used places ! link_it () ## what to as { ! if [ -z "$3" ]; then ! linkname="$3" ! else ! linkname="$1" fi ! if [ -h $2/$linkname ]; then ! rm -f $2/$linkname ! fi ! current="`pwd`" ! cd $2 ! ${LN_S} $current/$1 $linkname ! cd $current } ( cd ${dbhome}/client; *************** *** 55,62 **** for f in `ls *.a` ; do link_it $f ${prefix}/lib done ) - link_it ${dbhome}/client ${prefix}/include/gnusql ( cd ${dbhome}/doc for f in `ls gss*` ; do --- 63,70 ---- for f in `ls *.a` ; do link_it $f ${prefix}/lib done + link_it include ${prefix}/include gnusql ) ( cd ${dbhome}/doc for f in `ls gss*` ; do diff -rc gnusql-0.7b5/make-dist gnusql-0.7b5.1/make-dist *** gnusql-0.7b5/make-dist Mon Apr 28 21:51:55 1997 --- gnusql-0.7b5.1/make-dist Sat May 3 20:18:25 1997 *************** *** 172,184 **** ### Find out which version of GSS this is. if [ "x$version" = x ]; then ! version=`cat version` ! else ! echo $version >version fi if [ ! "${version}" ]; then ! echo "${progname}: can't find current GSS version in `./version'." >&2 exit 1 fi shortversion=`echo $version | sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'` --- 172,185 ---- ### Find out which version of GSS this is. if [ "x$version" = x ]; then ! version=`cat version` ## read current version id ! minor_v=`expr $version : '.*\([0-9]+\)$'` ## and increment minor id ! version=`expr $version : '\(.*\)[0-9]+$'``expr $minor_v + 1` ## of version fi + echo $version >version ## store version id if [ ! "${version}" ]; then ! echo "${progname}: can\'t find current GSS version in \`./version'." >&2 exit 1 fi shortversion=`echo $version | sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'` *************** *** 361,379 **** rm src/Makefile_h ) - - if [ "${with_RCS}" = "no" -a -d RCS ]; then ## fix modes of distributed files for fn in `find ${tempparent} -type f -print`; do ! cp $fn $$ rm -f $fn ! mv $$ $fn done find ${tempparent} -perm -100 -exec chmod 755 {} \; find ${tempparent} ! -perm -100 -exec chmod 644 {} \; fi - } ####-------------------------------------------------------------------------------------------------- --- 362,377 ---- rm src/Makefile_h ) if [ "${with_RCS}" = "no" -a -d RCS ]; then ## fix modes of distributed files for fn in `find ${tempparent} -type f -print`; do ! cp -p $fn $$ rm -f $fn ! mv $$ $fn done find ${tempparent} -perm -100 -exec chmod 755 {} \; find ${tempparent} ! -perm -100 -exec chmod 644 {} \; fi } ####-------------------------------------------------------------------------------------------------- Only in gnusql-0.7b5.1: mytest_clnt.c Only in gnusql-0.7b5.1: mytest_svc.c diff -rc gnusql-0.7b5/src/Makefile_h.in gnusql-0.7b5.1/src/Makefile_h.in *** gnusql-0.7b5/src/Makefile_h.in Mon Apr 28 21:53:50 1997 --- gnusql-0.7b5.1/src/Makefile_h.in Wed May 7 10:42:31 1997 *************** *** 58,64 **** RPCGEN=@RPCGEN@ INSTALL=@INSTALL@ LN_S=@LN_S@ ! YACC=bison # @YACC@ -- yacc compatibility requires a lot of fixing @n problems LEX=@LEX@ A2K=@A2K_proc@ $(ETC)/ansi2knr-sh srcdir=$(srcdir) lib=$(LIB) --- 58,64 ---- RPCGEN=@RPCGEN@ INSTALL=@INSTALL@ LN_S=@LN_S@ ! YACC=@YACC@ # -- yacc compatibility requires a lot of fixing @n problems LEX=@LEX@ A2K=@A2K_proc@ $(ETC)/ansi2knr-sh srcdir=$(srcdir) lib=$(LIB) *************** *** 86,92 **** CFLAGS= @CFLAGS@ $(CFLAGS1) @DEFS@ LDFLAGS= @LDFLAGS@ -L$(LIB) -L$(CLNT) $(LDFLAGS1) LFLAGS=@LFLAGS@ ! YFLAGS=-d -v -t LD=$(CC) $(LDFLAGS) ARC=$(ETC)/arc --- 86,92 ---- CFLAGS= @CFLAGS@ $(CFLAGS1) @DEFS@ LDFLAGS= @LDFLAGS@ -L$(LIB) -L$(CLNT) $(LDFLAGS1) LFLAGS=@LFLAGS@ ! YFLAGS=@YFLAGS@ LD=$(CC) $(LDFLAGS) ARC=$(ETC)/arc *************** *** 154,165 **** echo -- refreshing $< $(RANLIB) $< [ ! -f $@ ] || $(RM) $@ ! echo .>$@ maintarget : announce all clean:: announce ! - $(ETC)/make-util clean "$(MAKECLEAN)" announce : echo "++ `pwd` processed" --- 154,165 ---- echo -- refreshing $< $(RANLIB) $< [ ! -f $@ ] || $(RM) $@ ! date >$@ maintarget : announce all clean:: announce ! $(ETC)/make-util clean "$(MAKECLEAN)" announce : echo "++ `pwd` processed" diff -rc gnusql-0.7b5/src/engine/dispatch.h.preserve gnusql-0.7b5.1/src/engine/dispatch.h.preserve *** gnusql-0.7b5/src/engine/dispatch.h.preserve Mon Apr 28 21:53:08 1997 --- gnusql-0.7b5.1/src/engine/dispatch.h.preserve Wed May 7 10:23:57 1997 *************** *** 4,20 **** */ #ifndef _DISPATCH_H_RPCGEN ! #define _DISPATCH_H_RPCGEN #include #include "setup_os.h" extern long adm_rpc_port; void fix_adm_port __P((char* opt)); ! #ifdef RPCSTUB_SVC_STYLE ! int adm_rpc_start __P((int,char**)); /* renamed main definition */ #define ADM_RPC_START adm_rpc_start(argc,argv) #else ! int adm_rpc_start __P((void)); /* renamed main definition */ #define ADM_RPC_START adm_rpc_start() #endif --- 4,21 ---- */ #ifndef _DISPATCH_H_RPCGEN ! #define _DISPATCH_H_RPCGEN #include + #include "setup_os.h" extern long adm_rpc_port; void fix_adm_port __P((char* opt)); ! #ifdef RPCMAIN_PROTO ! int adm_rpc_start __P((int,char**)); #define ADM_RPC_START adm_rpc_start(argc,argv) #else ! int adm_rpc_start __P((void)); #define ADM_RPC_START adm_rpc_start() #endif *************** *** 22,41 **** BOOT_SVC = 0, DYNAMIC_SVC = 0 + 1, COMPILE_SVC = DYNAMIC_SVC, ! INTERPR_SVC = DYNAMIC_SVC }; typedef enum rpc_svc_t rpc_svc_t; typedef struct { u_int opq_len; char *opq_val; } opq; struct res { opq proc_id; int rpc_id; }; typedef struct res res; struct init_arg { char *user_name; --- 23,66 ---- BOOT_SVC = 0, DYNAMIC_SVC = 0 + 1, COMPILE_SVC = DYNAMIC_SVC, ! INTERPR_SVC = DYNAMIC_SVC, }; typedef enum rpc_svc_t rpc_svc_t; + #ifdef __cplusplus + extern "C" bool_t xdr_rpc_svc_t(XDR *, rpc_svc_t*); + #elif __STDC__ + extern bool_t xdr_rpc_svc_t(XDR *, rpc_svc_t*); + #else /* Old Style C */ + bool_t xdr_rpc_svc_t(); + #endif /* Old Style C */ + typedef struct { u_int opq_len; char *opq_val; } opq; + #ifdef __cplusplus + extern "C" bool_t xdr_opq(XDR *, opq*); + #elif __STDC__ + extern bool_t xdr_opq(XDR *, opq*); + #else /* Old Style C */ + bool_t xdr_opq(); + #endif /* Old Style C */ + struct res { opq proc_id; int rpc_id; }; typedef struct res res; + #ifdef __cplusplus + extern "C" bool_t xdr_res(XDR *, res*); + #elif __STDC__ + extern bool_t xdr_res(XDR *, res*); + #else /* Old Style C */ + bool_t xdr_res(); + #endif /* Old Style C */ + struct init_arg { char *user_name; *************** *** 46,75 **** char *x_server; }; typedef struct init_arg init_arg; #define DEFAULT_TRN (SQL_DISP + 1) ! #define SQL_DISP ((unsigned long)(adm_rpc_port)) ! #define SQL_DISP_ONE ((unsigned long)(1)) ! #define CREATE_TRANSACTION ((unsigned long)(1)) extern res * create_transaction_1(); ! #define IS_READY ((unsigned long)(2)) extern int * is_ready_1(); ! #define KILL_ALL ((unsigned long)(3)) extern int * kill_all_1(); ! #define TRN_KILL ((unsigned long)(4)) extern int * trn_kill_1(); ! #define DISP_FINIT ((unsigned long)(5)) extern int * disp_finit_1(); ! #define COPY_LJ ((unsigned long)(6)) extern int * copy_lj_1(); ! #define CHANGE_PARAMS ((unsigned long)(7)) extern int * change_params_1(); ! extern int sql_disp_1_freeresult(); ! ! /* the xdr functions */ ! extern bool_t xdr_rpc_svc_t(); ! extern bool_t xdr_opq(); ! extern bool_t xdr_res(); ! extern bool_t xdr_init_arg(); #endif /* !_DISPATCH_H_RPCGEN */ --- 71,157 ---- char *x_server; }; typedef struct init_arg init_arg; + #ifdef __cplusplus + extern "C" bool_t xdr_init_arg(XDR *, init_arg*); + #elif __STDC__ + extern bool_t xdr_init_arg(XDR *, init_arg*); + #else /* Old Style C */ + bool_t xdr_init_arg(); + #endif /* Old Style C */ + #define DEFAULT_TRN (SQL_DISP + 1) ! #define SQL_DISP ((u_long)adm_rpc_port) ! #define SQL_DISP_ONE ((u_long)1) ! ! #ifdef __cplusplus ! #define CREATE_TRANSACTION ((u_long)1) ! extern "C" res * create_transaction_1(init_arg *, CLIENT *); ! extern "C" res * create_transaction_1_svc(init_arg *, struct svc_req *); ! #define IS_READY ((u_long)2) ! extern "C" int * is_ready_1(opq *, CLIENT *); ! extern "C" int * is_ready_1_svc(opq *, struct svc_req *); ! #define KILL_ALL ((u_long)3) ! extern "C" int * kill_all_1(int *, CLIENT *); ! extern "C" int * kill_all_1_svc(int *, struct svc_req *); ! #define TRN_KILL ((u_long)4) ! extern "C" int * trn_kill_1(opq *, CLIENT *); ! extern "C" int * trn_kill_1_svc(opq *, struct svc_req *); ! #define DISP_FINIT ((u_long)5) ! extern "C" int * disp_finit_1(int *, CLIENT *); ! extern "C" int * disp_finit_1_svc(int *, struct svc_req *); ! #define COPY_LJ ((u_long)6) ! extern "C" int * copy_lj_1(opq *, CLIENT *); ! extern "C" int * copy_lj_1_svc(opq *, struct svc_req *); ! #define CHANGE_PARAMS ((u_long)7) ! extern "C" int * change_params_1(int *, CLIENT *); ! extern "C" int * change_params_1_svc(int *, struct svc_req *); ! ! #elif __STDC__ ! #define CREATE_TRANSACTION ((u_long)1) ! extern res * create_transaction_1(init_arg *, CLIENT *); ! extern res * create_transaction_1_svc(init_arg *, struct svc_req *); ! #define IS_READY ((u_long)2) ! extern int * is_ready_1(opq *, CLIENT *); ! extern int * is_ready_1_svc(opq *, struct svc_req *); ! #define KILL_ALL ((u_long)3) ! extern int * kill_all_1(int *, CLIENT *); ! extern int * kill_all_1_svc(int *, struct svc_req *); ! #define TRN_KILL ((u_long)4) ! extern int * trn_kill_1(opq *, CLIENT *); ! extern int * trn_kill_1_svc(opq *, struct svc_req *); ! #define DISP_FINIT ((u_long)5) ! extern int * disp_finit_1(int *, CLIENT *); ! extern int * disp_finit_1_svc(int *, struct svc_req *); ! #define COPY_LJ ((u_long)6) ! extern int * copy_lj_1(opq *, CLIENT *); ! extern int * copy_lj_1_svc(opq *, struct svc_req *); ! #define CHANGE_PARAMS ((u_long)7) ! extern int * change_params_1(int *, CLIENT *); ! extern int * change_params_1_svc(int *, struct svc_req *); ! ! #else /* Old Style C */ ! #define CREATE_TRANSACTION ((u_long)1) extern res * create_transaction_1(); ! extern res * create_transaction_1_svc(); ! #define IS_READY ((u_long)2) extern int * is_ready_1(); ! extern int * is_ready_1_svc(); ! #define KILL_ALL ((u_long)3) extern int * kill_all_1(); ! extern int * kill_all_1_svc(); ! #define TRN_KILL ((u_long)4) extern int * trn_kill_1(); ! extern int * trn_kill_1_svc(); ! #define DISP_FINIT ((u_long)5) extern int * disp_finit_1(); ! extern int * disp_finit_1_svc(); ! #define COPY_LJ ((u_long)6) extern int * copy_lj_1(); ! extern int * copy_lj_1_svc(); ! #define CHANGE_PARAMS ((u_long)7) extern int * change_params_1(); ! extern int * change_params_1_svc(); ! #endif /* Old Style C */ #endif /* !_DISPATCH_H_RPCGEN */ diff -rc gnusql-0.7b5/src/engine/dispatch.x gnusql-0.7b5.1/src/engine/dispatch.x *** gnusql-0.7b5/src/engine/dispatch.x Mon Apr 28 21:53:06 1997 --- gnusql-0.7b5.1/src/engine/dispatch.x Tue May 6 01:03:35 1997 *************** *** 30,40 **** %#include "setup_os.h" %extern long adm_rpc_port; %void fix_adm_port __P((char* opt)); ! %#ifdef RPCSTUB_SVC_STYLE ! %int adm_rpc_start __P((int,char**)); /* renamed main definition */ %#define ADM_RPC_START adm_rpc_start(argc,argv) %#else ! %int adm_rpc_start __P((void)); /* renamed main definition */ %#define ADM_RPC_START adm_rpc_start() %#endif #endif --- 30,41 ---- %#include "setup_os.h" %extern long adm_rpc_port; %void fix_adm_port __P((char* opt)); ! /* renamed main() declaration */ ! %#ifdef RPCMAIN_PROTO ! %int adm_rpc_start __P((int,char**)); %#define ADM_RPC_START adm_rpc_start(argc,argv) %#else ! %int adm_rpc_start __P((void)); %#define ADM_RPC_START adm_rpc_start() %#endif #endif diff -rc gnusql-0.7b5/src/engine/dispatch_clnt.c.preserve gnusql-0.7b5.1/src/engine/dispatch_clnt.c.preserve *** gnusql-0.7b5/src/engine/dispatch_clnt.c.preserve Mon Apr 28 21:53:09 1997 --- gnusql-0.7b5.1/src/engine/dispatch_clnt.c.preserve Wed May 7 10:23:57 1997 *************** *** 3,127 **** * It was generated using rpcgen. */ #include "dispatch.h" /* Default timeout can be changed using clnt_control() */ static struct timeval TIMEOUT = { 25, 0 }; res * ! create_transaction_1(argp, clnt) ! init_arg *argp; ! CLIENT *clnt; { static res clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, CREATE_TRANSACTION, ! (xdrproc_t) xdr_init_arg, (caddr_t) argp, ! (xdrproc_t) xdr_res, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! is_ready_1(argp, clnt) ! opq *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, IS_READY, ! (xdrproc_t) xdr_opq, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! kill_all_1(argp, clnt) ! int *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, KILL_ALL, ! (xdrproc_t) xdr_int, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! trn_kill_1(argp, clnt) ! opq *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, TRN_KILL, ! (xdrproc_t) xdr_opq, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! disp_finit_1(argp, clnt) ! int *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, DISP_FINIT, ! (xdrproc_t) xdr_int, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! copy_lj_1(argp, clnt) ! opq *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, COPY_LJ, ! (xdrproc_t) xdr_opq, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! change_params_1(argp, clnt) ! int *argp; ! CLIENT *clnt; { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof (clnt_res)); ! if (clnt_call(clnt, CHANGE_PARAMS, ! (xdrproc_t) xdr_int, (caddr_t) argp, ! (xdrproc_t) xdr_int, (caddr_t) &clnt_res, ! TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); --- 3,93 ---- * It was generated using rpcgen. */ + #include /* for memset */ #include "dispatch.h" /* Default timeout can be changed using clnt_control() */ static struct timeval TIMEOUT = { 25, 0 }; res * ! create_transaction_1(init_arg *argp, CLIENT *clnt) { static res clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, CREATE_TRANSACTION, xdr_init_arg, argp, xdr_res, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! is_ready_1(opq *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, IS_READY, xdr_opq, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! kill_all_1(int *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, KILL_ALL, xdr_int, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! trn_kill_1(opq *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, TRN_KILL, xdr_opq, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! disp_finit_1(int *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, DISP_FINIT, xdr_int, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! copy_lj_1(opq *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, COPY_LJ, xdr_opq, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); } int * ! change_params_1(int *argp, CLIENT *clnt) { static int clnt_res; ! memset((char *)&clnt_res, 0, sizeof(clnt_res)); ! if (clnt_call(clnt, CHANGE_PARAMS, xdr_int, argp, xdr_int, &clnt_res, TIMEOUT) != RPC_SUCCESS) { return (NULL); } return (&clnt_res); diff -rc gnusql-0.7b5/src/engine/dispatch_svc.c.preserve gnusql-0.7b5.1/src/engine/dispatch_svc.c.preserve *** gnusql-0.7b5/src/engine/dispatch_svc.c.preserve Mon Apr 28 21:53:09 1997 --- gnusql-0.7b5.1/src/engine/dispatch_svc.c.preserve Wed May 7 10:23:57 1997 *************** *** 5,87 **** #include "dispatch.h" #include ! #include /* getenv, exit */ ! #include ! #include #include ! #include ! #include ! #include /* rlimit */ ! #include ! #ifdef DEBUG ! #define RPC_SVC_FG #endif - - #define _RPCSVC_CLOSEDOWN 120 #define main adm_rpc_start #define RPC_SVC_FG - static int _rpcpmstart; /* Started by a port monitor ? */ - - /* States a server can be in wrt request */ - - #define _IDLE 0 - #define _SERVED 1 - - static int _rpcsvcstate = _IDLE; /* Set when a request is serviced */ - static int _rpcsvccount = 0; /* Number of requests being serviced */ - - static - void _msgout(msg) - char *msg; - { - #ifdef RPC_SVC_FG - if (_rpcpmstart) - syslog(LOG_ERR, msg); - else - (void) fprintf(stderr, "%s\n", msg); - #else - syslog(LOG_ERR, msg); - #endif - } static void ! closedown(sig) ! int sig; ! { ! if (_rpcsvcstate == _IDLE && _rpcsvccount == 0) { ! extern fd_set svc_fdset; ! static int size; ! int i, openfd; ! struct t_info tinfo; ! ! if (!t_getinfo(0, &tinfo) && (tinfo.servtype == T_CLTS)) ! exit(0); ! if (size == 0) { ! struct rlimit rl; ! ! rl.rlim_max = 0; ! getrlimit(RLIMIT_NOFILE, &rl); ! if ((size = rl.rlim_max) == 0) { ! return; ! } ! } ! for (i = 0, openfd = 0; i < size && openfd < 2; i++) ! if (FD_ISSET(i, &svc_fdset)) ! openfd++; ! if (openfd <= 1) ! exit(0); ! } else ! _rpcsvcstate = _IDLE; ! ! (void) signal(SIGALRM, (void(*)()) closedown); ! (void) alarm(_RPCSVC_CLOSEDOWN/2); ! } ! ! static void ! sql_disp_1(rqstp, transp) ! struct svc_req *rqstp; ! register SVCXPRT *transp; { union { init_arg create_transaction_1_arg; --- 5,25 ---- #include "dispatch.h" #include ! #include /* getenv, exit */ ! #include /* for pmap_unset */ ! #include /* strcmp */ #include ! #include ! #include ! #ifdef __STDC__ ! #define SIG_PF void(*)(int) #endif #define main adm_rpc_start #define RPC_SVC_FG static void ! sql_disp_1(struct svc_req *rqstp, register SVCXPRT *transp) { union { init_arg create_transaction_1_arg; *************** *** 93,259 **** int change_params_1_arg; } argument; char *result; ! bool_t (*xdr_argument)(), (*xdr_result)(); ! char *(*local)(); - _rpcsvccount++; switch (rqstp->rq_proc) { case NULLPROC: ! (void) svc_sendreply(transp, xdr_void, ! (char *)NULL); ! _rpcsvccount--; ! _rpcsvcstate = _SERVED; return; case CREATE_TRANSACTION: ! xdr_argument = xdr_init_arg; ! xdr_result = xdr_res; ! local = (char *(*)()) create_transaction_1; break; case IS_READY: ! xdr_argument = xdr_opq; ! xdr_result = xdr_int; ! local = (char *(*)()) is_ready_1; break; case KILL_ALL: ! xdr_argument = xdr_int; ! xdr_result = xdr_int; ! local = (char *(*)()) kill_all_1; break; case TRN_KILL: ! xdr_argument = xdr_opq; ! xdr_result = xdr_int; ! local = (char *(*)()) trn_kill_1; break; case DISP_FINIT: ! xdr_argument = xdr_int; ! xdr_result = xdr_int; ! local = (char *(*)()) disp_finit_1; break; case COPY_LJ: ! xdr_argument = xdr_opq; ! xdr_result = xdr_int; ! local = (char *(*)()) copy_lj_1; break; case CHANGE_PARAMS: ! xdr_argument = xdr_int; ! xdr_result = xdr_int; ! local = (char *(*)()) change_params_1; break; default: svcerr_noproc(transp); - _rpcsvccount--; - _rpcsvcstate = _SERVED; return; } (void) memset((char *)&argument, 0, sizeof (argument)); ! if (!svc_getargs(transp, xdr_argument, &argument)) { svcerr_decode(transp); - _rpcsvccount--; - _rpcsvcstate = _SERVED; return; } ! result = (*local)(&argument, rqstp); if (result != NULL && !svc_sendreply(transp, xdr_result, result)) { svcerr_systemerr(transp); } ! if (!svc_freeargs(transp, xdr_argument, &argument)) { ! _msgout("unable to free arguments"); exit(1); } - _rpcsvccount--; - _rpcsvcstate = _SERVED; return; } ! main() { ! pid_t pid; ! int i; ! char mname[FMNAMESZ + 1]; ! ! (void) sigset(SIGPIPE, SIG_IGN); ! ! if (!ioctl(0, I_LOOK, mname) && ! (!strcmp(mname, "sockmod") || !strcmp(mname, "timod"))) { ! char *netid; ! struct netconfig *nconf = NULL; ! SVCXPRT *transp; ! int pmclose; ! ! _rpcpmstart = 1; ! openlog("dispatch", LOG_PID, LOG_DAEMON); ! ! if ((netid = getenv("NLSPROVIDER")) == NULL) { ! /* started from inetd */ ! pmclose = 1; ! } else { ! if ((nconf = getnetconfigent(netid)) == NULL) ! _msgout("cannot get transport info"); ! ! pmclose = (t_getstate(0) != T_DATAXFER); ! } ! if (strcmp(mname, "sockmod") == 0) { ! if (ioctl(0, I_POP, 0) || ioctl(0, I_PUSH, "timod")) { ! _msgout("could not get the right module"); ! exit(1); ! } ! } ! if ((transp = svc_tli_create(0, nconf, NULL, 0, 0)) == NULL) { ! _msgout("cannot create server handle"); ! exit(1); ! } ! if (nconf) ! freenetconfigent(nconf); ! if (!svc_reg(transp, SQL_DISP, SQL_DISP_ONE, sql_disp_1, 0)) { ! _msgout("unable to register (SQL_DISP, SQL_DISP_ONE)."); ! exit(1); ! } ! if (pmclose) { ! (void) signal(SIGALRM, (void(*)()) closedown); ! (void) alarm(_RPCSVC_CLOSEDOWN/2); ! } ! svc_run(); exit(1); - /* NOTREACHED */ - } else { - #ifndef RPC_SVC_FG - int size; - struct rlimit rl; - pid = fork(); - if (pid < 0) { - perror("cannot fork"); - exit(1); - } - if (pid) - exit(0); - rl.rlim_max = 0; - getrlimit(RLIMIT_NOFILE, &rl); - if ((size = rl.rlim_max) == 0) - exit(1); - for (i = 0; i < size; i++) - (void) close(i); - i = open("/dev/console", 2); - (void) dup2(i, 1); - (void) dup2(i, 2); - setsid(); - openlog("dispatch", LOG_PID, LOG_DAEMON); - #endif } ! if (!svc_create(sql_disp_1, SQL_DISP, SQL_DISP_ONE, "netpath")) { ! _msgout("unable to create (SQL_DISP, SQL_DISP_ONE) for netpath."); exit(1); } svc_run(); ! _msgout("svc_run returned"); exit(1); /* NOTREACHED */ } --- 31,135 ---- int change_params_1_arg; } argument; char *result; ! xdrproc_t xdr_argument, xdr_result; ! char *(*local)(char *, struct svc_req *); switch (rqstp->rq_proc) { case NULLPROC: ! (void) svc_sendreply(transp, (xdrproc_t) xdr_void, (char *)NULL); return; case CREATE_TRANSACTION: ! xdr_argument = (xdrproc_t) xdr_init_arg; ! xdr_result = (xdrproc_t) xdr_res; ! local = (char *(*)(char *, struct svc_req *)) create_transaction_1_svc; break; case IS_READY: ! xdr_argument = (xdrproc_t) xdr_opq; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) is_ready_1_svc; break; case KILL_ALL: ! xdr_argument = (xdrproc_t) xdr_int; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) kill_all_1_svc; break; case TRN_KILL: ! xdr_argument = (xdrproc_t) xdr_opq; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) trn_kill_1_svc; break; case DISP_FINIT: ! xdr_argument = (xdrproc_t) xdr_int; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) disp_finit_1_svc; break; case COPY_LJ: ! xdr_argument = (xdrproc_t) xdr_opq; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) copy_lj_1_svc; break; case CHANGE_PARAMS: ! xdr_argument = (xdrproc_t) xdr_int; ! xdr_result = (xdrproc_t) xdr_int; ! local = (char *(*)(char *, struct svc_req *)) change_params_1_svc; break; default: svcerr_noproc(transp); return; } (void) memset((char *)&argument, 0, sizeof (argument)); ! if (!svc_getargs(transp, xdr_argument, (caddr_t) &argument)) { svcerr_decode(transp); return; } ! result = (*local)((char *)&argument, rqstp); if (result != NULL && !svc_sendreply(transp, xdr_result, result)) { svcerr_systemerr(transp); } ! if (!svc_freeargs(transp, xdr_argument, (caddr_t) &argument)) { ! fprintf(stderr, "unable to free arguments"); exit(1); } return; } ! int ! main(int argc, char **argv) { ! register SVCXPRT *transp; ! ! (void) pmap_unset(SQL_DISP, SQL_DISP_ONE); ! ! transp = svcudp_create(RPC_ANYSOCK); ! if (transp == NULL) { ! fprintf(stderr, "cannot create udp service."); ! exit(1); ! } ! if (!svc_register(transp, SQL_DISP, SQL_DISP_ONE, sql_disp_1, IPPROTO_UDP)) { ! fprintf(stderr, "unable to register (SQL_DISP, SQL_DISP_ONE, udp)."); ! exit(1); ! } ! ! transp = svctcp_create(RPC_ANYSOCK, 0, 0); ! if (transp == NULL) { ! fprintf(stderr, "cannot create tcp service."); exit(1); } ! if (!svc_register(transp, SQL_DISP, SQL_DISP_ONE, sql_disp_1, IPPROTO_TCP)) { ! fprintf(stderr, "unable to register (SQL_DISP, SQL_DISP_ONE, tcp)."); exit(1); } svc_run(); ! fprintf(stderr, "svc_run returned"); exit(1); /* NOTREACHED */ } diff -rc gnusql-0.7b5/src/engine/dispatch_xdr.c.preserve gnusql-0.7b5.1/src/engine/dispatch_xdr.c.preserve *** gnusql-0.7b5/src/engine/dispatch_xdr.c.preserve Mon Apr 28 21:53:09 1997 --- gnusql-0.7b5.1/src/engine/dispatch_xdr.c.preserve Wed May 7 10:23:57 1997 *************** *** 6,71 **** #include "dispatch.h" bool_t ! xdr_rpc_svc_t(xdrs, objp) ! register XDR *xdrs; ! rpc_svc_t *objp; { ! register long *buf; ! if (!xdr_enum(xdrs, (enum_t *)objp)) ! return (FALSE); return (TRUE); } bool_t ! xdr_opq(xdrs, objp) ! register XDR *xdrs; ! opq *objp; { ! register long *buf; ! if (!xdr_bytes(xdrs, (char **)&objp->opq_val, (u_int *) &objp->opq_len, ~0)) ! return (FALSE); return (TRUE); } bool_t ! xdr_res(xdrs, objp) ! register XDR *xdrs; ! res *objp; { ! register long *buf; ! if (!xdr_opq(xdrs, &objp->proc_id)) ! return (FALSE); ! if (!xdr_int(xdrs, &objp->rpc_id)) ! return (FALSE); return (TRUE); } bool_t ! xdr_init_arg(xdrs, objp) ! register XDR *xdrs; ! init_arg *objp; { ! register long *buf; ! if (!xdr_string(xdrs, &objp->user_name, ~0)) ! return (FALSE); ! if (!xdr_int(xdrs, &objp->wait_time)) ! return (FALSE); ! if (!xdr_int(xdrs, &objp->total_time)) ! return (FALSE); ! if (!xdr_int(xdrs, &objp->type)) ! return (FALSE); ! if (!xdr_int(xdrs, &objp->need_gdb)) ! return (FALSE); ! if (!xdr_string(xdrs, &objp->x_server, ~0)) ! return (FALSE); return (TRUE); } long adm_rpc_port = 0x30001001; --- 6,137 ---- #include "dispatch.h" bool_t ! xdr_rpc_svc_t(XDR *xdrs, rpc_svc_t *objp) { ! register long *buf; ! if (!xdr_enum(xdrs, (enum_t *)objp)) { ! return (FALSE); ! } return (TRUE); } bool_t ! xdr_opq(XDR *xdrs, opq *objp) { ! register long *buf; ! if (!xdr_bytes(xdrs, (char **)&objp->opq_val, (u_int *)&objp->opq_len, ~0)) { ! return (FALSE); ! } return (TRUE); } bool_t ! xdr_res(XDR *xdrs, res *objp) { ! register long *buf; ! if (!xdr_opq(xdrs, &objp->proc_id)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->rpc_id)) { ! return (FALSE); ! } return (TRUE); } bool_t ! xdr_init_arg(XDR *xdrs, init_arg *objp) { ! register long *buf; ! ! if (xdrs->x_op == XDR_ENCODE) { ! if (!xdr_string(xdrs, &objp->user_name, ~0)) { ! return (FALSE); ! } ! buf = XDR_INLINE(xdrs,4 * BYTES_PER_XDR_UNIT); ! if (buf == NULL) { ! if (!xdr_int(xdrs, &objp->wait_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->total_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->type)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->need_gdb)) { ! return (FALSE); ! } ! ! } ! else { ! IXDR_PUT_LONG(buf,objp->wait_time); ! IXDR_PUT_LONG(buf,objp->total_time); ! IXDR_PUT_LONG(buf,objp->type); ! IXDR_PUT_LONG(buf,objp->need_gdb); ! } ! if (!xdr_string(xdrs, &objp->x_server, ~0)) { ! return (FALSE); ! } ! ! return (TRUE); ! } else if (xdrs->x_op == XDR_DECODE) { ! if (!xdr_string(xdrs, &objp->user_name, ~0)) { ! return (FALSE); ! } ! buf = XDR_INLINE(xdrs,4 * BYTES_PER_XDR_UNIT); ! if (buf == NULL) { ! if (!xdr_int(xdrs, &objp->wait_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->total_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->type)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->need_gdb)) { ! return (FALSE); ! } ! ! } ! else { ! objp->wait_time = IXDR_GET_LONG(buf); ! objp->total_time = IXDR_GET_LONG(buf); ! objp->type = IXDR_GET_LONG(buf); ! objp->need_gdb = IXDR_GET_LONG(buf); ! } ! if (!xdr_string(xdrs, &objp->x_server, ~0)) { ! return (FALSE); ! } ! return(TRUE); ! } ! ! if (!xdr_string(xdrs, &objp->user_name, ~0)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->wait_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->total_time)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->type)) { ! return (FALSE); ! } ! if (!xdr_int(xdrs, &objp->need_gdb)) { ! return (FALSE); ! } ! if (!xdr_string(xdrs, &objp->x_server, ~0)) { ! return (FALSE); ! } return (TRUE); } long adm_rpc_port = 0x30001001; diff -rc gnusql-0.7b5/src/include/Makefile.in gnusql-0.7b5.1/src/include/Makefile.in *** gnusql-0.7b5/src/include/Makefile.in Mon Apr 28 21:53:22 1997 --- gnusql-0.7b5.1/src/include/Makefile.in Wed May 7 10:42:28 1997 *************** *** 33,39 **** ########################################################################## # make program # ########################################################################## ! all: headers $(srcdir)/gnusql gnusql headers : trlheaders engheaders rpc_headers global.h cycler.h kitty.h typepf.h tree_gen.h sql.h exti.h cl_lib.h svr_lib.h inprtyp.h const.h dyn_funcs.h setup_os.h : config.h const.h : engine/pupsi.h --- 33,39 ---- ########################################################################## # make program # ########################################################################## ! all: headers link headers : trlheaders engheaders rpc_headers global.h cycler.h kitty.h typepf.h tree_gen.h sql.h exti.h cl_lib.h svr_lib.h inprtyp.h const.h dyn_funcs.h setup_os.h : config.h const.h : engine/pupsi.h *************** *** 53,66 **** type_lib.h : global.h gsqltrn.h sql_type.h : sql_type.def trlheaders : vmemory.h xmem.h setup_os.h sql_type.h ! ( cd ../trl; $(MAKERT) headers ) engheaders : engine ! ( cd engine; $(MAKERT) headers;) ! engine: ! $(srcdir)/gnusql: ! cd $(srcdir) && $(LN_S) . gnusql ! gnusql : ! $(LN_S) . gnusql rpc_headers: ( cd ../main; $(MAKERT) headers ; ) clean:: --- 53,65 ---- type_lib.h : global.h gsqltrn.h sql_type.h : sql_type.def trlheaders : vmemory.h xmem.h setup_os.h sql_type.h ! ( cd ../trl; $(MAKERT) headers ) engheaders : engine ! ( cd engine; $(MAKERT) headers; ) ! engine : ! link : ! test -d $(srcdir)/gnusql || (cd $(srcdir) && $(LN_S) . gnusql) ! test -d gnusql || $(LN_S) . gnusql rpc_headers: ( cd ../main; $(MAKERT) headers ; ) clean:: diff -rc gnusql-0.7b5/src/interpr/int_servlib.c gnusql-0.7b5.1/src/interpr/int_servlib.c *** gnusql-0.7b5/src/interpr/int_servlib.c Mon Apr 28 21:53:23 1997 --- gnusql-0.7b5.1/src/interpr/int_servlib.c Tue May 6 01:26:56 1997 *************** *** 322,330 **** for (cinsn = insn; cinsn && (SQLCODE==0) && (count next) ! while ((cinsn->options-- >=0) && (SQLCODE==0) && (count next) ! while ((cinsn->options-- >=0) && (count1) *************** *** 349,361 **** do_insn(insn); if (cnt_res) { ! gsqltrn_rc.info.rett = RET_ROW; ! put_in_row(&gsqltrn_rc.info.return_data_u.row); } else assert(gsqltrn_rc.info.rett == RET_VOID); } - gsqltrn_rc.sqlcode = SQLCODE; return &gsqltrn_rc; } --- 352,368 ---- do_insn(insn); if (cnt_res) { ! if (SQLCODE>=0) ! { ! gsqltrn_rc.info.rett = RET_ROW; ! put_in_row(&gsqltrn_rc.info.return_data_u.row); ! } ! else ! gsqltrn_rc.info.rett = RET_VOID; } else assert(gsqltrn_rc.info.rett == RET_VOID); } gsqltrn_rc.sqlcode = SQLCODE; return &gsqltrn_rc; } diff -rc gnusql-0.7b5/src/other/xmem.c gnusql-0.7b5.1/src/other/xmem.c *** gnusql-0.7b5/src/other/xmem.c Mon Apr 28 21:53:35 1997 --- gnusql-0.7b5.1/src/other/xmem.c Wed May 7 10:17:19 1997 *************** *** 74,80 **** va_list va; va_start(va,fmt); ! if (progname) fprintf (STDERR, "%s:", progname); if (file_pos) fprintf (STDERR, "%d:", (int)file_pos); --- 74,80 ---- va_list va; va_start(va,fmt); ! if (progname && *progname) fprintf (STDERR, "%s:", progname); if (file_pos) fprintf (STDERR, "%d:", (int)file_pos); *************** *** 87,93 **** # error Nether 'vprintf' nor 'doprnt' can be found -- fail #endif if (-comp_nerr < rc && rc < 0) ! fprintf (STDERR, ": %s", comp_errlist[-errno]); fprintf (STDERR, "\n"); errors++; --- 87,93 ---- # error Nether 'vprintf' nor 'doprnt' can be found -- fail #endif if (-comp_nerr < rc && rc < 0) ! fprintf (STDERR, "%s", comp_errlist[-errno]); fprintf (STDERR, "\n"); errors++; diff -rc gnusql-0.7b5/src/synthes/moddump.c gnusql-0.7b5.1/src/synthes/moddump.c *** gnusql-0.7b5/src/synthes/moddump.c Mon Apr 28 21:53:44 1997 --- gnusql-0.7b5.1/src/synthes/moddump.c Tue May 6 01:26:57 1997 *************** *** 217,222 **** --- 217,223 ---- fprintf (out, "\n-- %i ", cur); code = *V_PTR (cur, enum CmdCode); cur += sizeof (enum CmdCode); + ALIGN(cur,SZ_LNG); switch (code) { /*----------------------------------*/ diff -rc gnusql-0.7b5/src/synthes/struct.c gnusql-0.7b5.1/src/synthes/struct.c *** gnusql-0.7b5/src/synthes/struct.c Mon Apr 28 21:53:44 1997 --- gnusql-0.7b5.1/src/synthes/struct.c Tue May 6 03:11:26 1997 *************** *** 66,71 **** --- 66,72 ---- ADD_CUR_PG (SIZES (S_GoTo)); SET_ENUM (next_vm_piece); CurPg = NewPg; + ALIGN(CurPg,SZ_LNG); MaxPg = CurPg + INTERP_MODULE_DELTA; } *************** *** 74,81 **** if (com_adr) { bcopy (com_adr, V_PTR(CurPg,char), com_size); } - ADD_CUR_PG (com_size); return adr_res; } /* set_command */ --- 75,82 ---- if (com_adr) { bcopy (com_adr, V_PTR(CurPg,char), com_size); + ADD_CUR_PG (com_size); } return adr_res; } /* set_command */ diff -rc gnusql-0.7b5/test/Makefile.in gnusql-0.7b5.1/test/Makefile.in *** gnusql-0.7b5/test/Makefile.in Mon Apr 28 21:52:32 1997 --- gnusql-0.7b5.1/test/Makefile.in Wed May 7 10:42:25 1997 *************** *** 24,34 **** ## Contacts: gss@ispras.ru ## - srcdir=@srcdir@ VPATH=@srcdir@ SRC=$(srcdir)/../src ! TOUCH=@top_srcdir@/etc/Touch RM=rm -f LIB=../sqlser/client --- 24,34 ---- ## Contacts: gss@ispras.ru ## srcdir=@srcdir@ VPATH=@srcdir@ SRC=$(srcdir)/../src ! ETC=@top_srcdir@/etc ! TOUCH=$(ETC)/Touch RM=rm -f LIB=../sqlser/client *************** *** 38,44 **** CC=@CC@ GSQLF=# -Dl # disable BASE debug printing (redirecting to /dev/null) ! SHELL=/bin/csh ESQL=$(LIB)/gsqlc SQLCPP= $(ESQL) $(LIB)/../bin/gsqlt-dyn $(LIB)/../gsqls $(LIB)/../db/base.dat ############################################## --- 38,44 ---- CC=@CC@ GSQLF=# -Dl # disable BASE debug printing (redirecting to /dev/null) ! SHELL=/bin/sh ESQL=$(LIB)/gsqlc SQLCPP= $(ESQL) $(LIB)/../bin/gsqlt-dyn $(LIB)/../gsqls $(LIB)/../db/base.dat ############################################## *************** *** 59,65 **** $(ESQL) $(GSQLF) -rC $< .exe.stamp: echo "-- run $<" ! $< .SQL.stamp: echo "-- processing $<" monitor $< --- 59,65 ---- $(ESQL) $(GSQLF) -rC $< .exe.stamp: echo "-- run $<" ! ./$< .SQL.stamp: echo "-- processing $<" monitor $< *************** *** 67,85 **** all: do_all cleanall: clean ! - ../etc/Tdeps clean : - $(RM) *~ \#*\# core aaa *.tmp d log - mkdir -p tmptest ! cp -p *.ec *.sql *.txt *.h *.EC *.SQL tmptest - $(RM) test* dynlog.* - find . -size +100 -exec rm {} \; mv tmptest/* . - $(RM) -r tmptest - .SUFFIXES: .stamp .exe .c .Sc .SQL .EC .ec .sql - #.SILENT: - include makefile.dep --- 67,84 ---- all: do_all cleanall: clean ! $(ETC)/Tdeps clean : - $(RM) *~ \#*\# core aaa *.tmp d log - mkdir -p tmptest ! - cp -p *.ec *.sql *.txt *.h *.EC *.SQL tmptest - $(RM) test* dynlog.* - find . -size +100 -exec rm {} \; mv tmptest/* . - $(RM) -r tmptest include makefile.dep + .SUFFIXES: .stamp .exe .c .Sc .SQL .EC .ec .sql + #.SILENT: Only in gnusql-0.7b5/test: n diff -rc gnusql-0.7b5/version gnusql-0.7b5.1/version *** gnusql-0.7b5/version Mon Apr 28 21:52:00 1997 --- gnusql-0.7b5.1/version Wed May 7 10:41:49 1997 *************** *** 1 **** ! 0.7b5 --- 1 ---- ! 0.7b5.1