Thread: SunOS patch for memcmp()
> > SunOS Tatsuo Ishii > > Are we giving up on this one? Still relevant? > > What should we do? The only remaining issue is a non-8-bit-clean > memcmp, which seems pretty easy to fix it. OK, here is a patch to allow SunOS to pass the regression tests. One attachment is the patch, which is quite small except that the line numbers in configure changed with autoconf, and that bloated the patch. The second attachment is the file memcmp.c which should be placed in src/utils. I got this from NetBSD. I tested the patch several ways. First I tested the regression tests without the new memcmp(). Then I enabled the memcmp(). Thirdly, I had the memcmp() always return '1' on non-equals rather than +/- 1, and saw the same failures Tatuso saw. One interesting item is that I had to compile with backend/utils/adt/varbit.c with -fno-builtin because my gcc 2.X manual says: -fno-builtin Don't recognize built-in functions that do not be- gin with two leading underscores. Currently, the functions affected include _exit, abort, abs, allo- ca, cos, exit, fabs, labs, memcmp, memcpy, sin, sqrt, strcmp, strcpy, and strlen. So if you don't give that flag on BSD/OS, the memcmp() is inlined and never called. Nice feature. Tatsuo, is there a newer compiler for SunOS that will do this and bypass the broken libc memcmp() on that platform? -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 Index: configure.in =================================================================== RCS file: /cvsroot/pgsql/configure.in,v retrieving revision 1.158 diff -c -r1.158 configure.in *** configure.in 2001/12/13 22:00:22 1.158 --- configure.in 2001/12/17 05:22:05 *************** *** 809,814 **** --- 809,817 ---- AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG + # SunOS doesn't handle negative byte comparisons properly with +/- return + PGAC_FUNC_MEMCMP + AC_CHECK_FUNCS([fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync]) dnl Check whether <unistd.h> declares fdatasync(). Index: config/c-library.m4 =================================================================== RCS file: /cvsroot/pgsql/config/c-library.m4,v retrieving revision 1.9 diff -c -r1.9 c-library.m4 *** config/c-library.m4 2001/09/07 19:52:53 1.9 --- config/c-library.m4 2001/12/17 05:22:05 *************** *** 36,41 **** --- 36,65 ---- fi])# PGAC_FUNC_GETTIMEOFDAY_1ARG + # PGAC_FUNC_MEMCMP + # ----------- + # Check if memcmp() properly handles negative bytes and returns +/-. + # SunOS does not. + # AC_FUNC_MEMCMP + AC_DEFUN(PGAC_FUNC_MEMCMP, + [AC_CACHE_CHECK(for 8-bit clean memcmp, pgac_cv_func_memcmp_clean, + [AC_TRY_RUN([ + main() + { + char c0 = 0x40, c1 = 0x80, c2 = 0x81; + exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1); + } + ], pgac_cv_func_memcmp_clean=yes, pgac_cv_func_memcmp_clean=no, + pgac_cv_func_memcmp_clean=no)]) + if test $pgac_cv_func_memcmp_clean = no ; then + MEMCMP=memcmp.o + else + MEMCMP= + fi + AC_SUBST(MEMCMP)dnl + ]) + + # PGAC_UNION_SEMUN # ---------------- # Check if `union semun' exists. Define HAVE_UNION_SEMUN if so. Index: src/Makefile.global.in =================================================================== RCS file: /cvsroot/pgsql/src/Makefile.global.in,v retrieving revision 1.140 diff -c -r1.140 Makefile.global.in *** src/Makefile.global.in 2001/10/13 15:24:23 1.140 --- src/Makefile.global.in 2001/12/17 05:22:06 *************** *** 328,333 **** --- 328,334 ---- STRERROR = @STRERROR@ SNPRINTF = @SNPRINTF@ STRDUP = @STRDUP@ + MEMCMP = @MEMCMP@ STRTOUL = @STRTOUL@ Index: src/backend/port/Makefile.in =================================================================== RCS file: /cvsroot/pgsql/src/backend/port/Makefile.in,v retrieving revision 1.29 diff -c -r1.29 Makefile.in *** src/backend/port/Makefile.in 2001/05/08 19:38:57 1.29 --- src/backend/port/Makefile.in 2001/12/17 05:22:06 *************** *** 26,32 **** --- 26,39 ---- OBJS+= @STRTOL@ @STRTOUL@ @SNPRINTF@ ifdef STRDUP OBJS += $(top_builddir)/src/utils/strdup.o + $(top_builddir)/src/utils/strdup.o: + $(MAKE) -C $(top_builddir)/src/utils strdup.o endif + ifdef MEMCMP + OBJS += $(top_builddir)/src/utils/memcmp.o + $(top_builddir)/src/utils/memcmp.o: + $(MAKE) -C $(top_builddir)/src/utils memcmp.o + endif ifeq ($(PORTNAME), qnx4) OBJS += getrusage.o qnx4/SUBSYS.o endif *************** *** 59,68 **** tas.o: tas.s $(CC) $(CFLAGS) -c $< - - $(top_builddir)/src/utils/strdup.o: - $(MAKE) -C $(top_builddir)/src/utils strdup.o - distclean clean: rm -f SUBSYS.o $(OBJS) --- 66,71 ---- Index: src/utils/Makefile =================================================================== RCS file: /cvsroot/pgsql/src/utils/Makefile,v retrieving revision 1.9 diff -c -r1.9 Makefile *** src/utils/Makefile 2000/08/31 16:12:35 1.9 --- src/utils/Makefile 2001/12/17 05:22:08 *************** *** 24,30 **** all: clean distclean maintainer-clean: ! rm -f dllinit.o getopt.o strdup.o depend dep: $(CC) $(CFLAGS) -MM *.c >depend --- 24,30 ---- all: clean distclean maintainer-clean: ! rm -f dllinit.o getopt.o strdup.o memcmp.o depend dep: $(CC) $(CFLAGS) -MM *.c >depend Index: configure =================================================================== RCS file: /cvsroot/pgsql/configure,v retrieving revision 1.166 diff -c -r1.166 configure *** configure 2001/12/13 22:00:22 1.166 --- configure 2001/12/17 05:22:04 *************** *** 6149,6163 **** fi for ac_func in fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6156: 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 <<EOF ! #line 6161 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 6149,6205 ---- fi + # SunOS doesn't handle negative byte comparisons properly with +/- return + echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 + echo "configure:6155: checking for 8-bit clean memcmp" >&5 + if eval "test \"`echo '$''{'pgac_cv_func_memcmp_clean'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test "$cross_compiling" = yes; then + pgac_cv_func_memcmp_clean=no + else + cat > conftest.$ac_ext <<EOF + #line 6163 "configure" + #include "confdefs.h" + + main() + { + char c0 = 0x40, c1 = 0x80, c2 = 0x81; + exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1); + } + + EOF + if { (eval echo configure:6173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null + then + pgac_cv_func_memcmp_clean=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + pgac_cv_func_memcmp_clean=no + fi + rm -fr conftest* + fi + + fi + + echo "$ac_t""$pgac_cv_func_memcmp_clean" 1>&6 + if test $pgac_cv_func_memcmp_clean = no ; then + MEMCMP=memcmp.o + else + MEMCMP= + fi + + for ac_func in fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6198: 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 <<EOF ! #line 6203 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 6180,6186 **** ; return 0; } EOF ! if { (eval echo configure:6184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6222,6228 ---- ; return 0; } EOF ! if { (eval echo configure:6226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 6206,6212 **** cat > conftest.$ac_ext <<EOF ! #line 6210 "configure" #include "confdefs.h" #include <unistd.h> EOF --- 6248,6254 ---- cat > conftest.$ac_ext <<EOF ! #line 6252 "configure" #include "confdefs.h" #include <unistd.h> EOF *************** *** 6222,6233 **** echo $ac_n "checking for PS_STRINGS""... $ac_c" 1>&6 ! echo "configure:6226: checking for PS_STRINGS" >&5 if eval "test \"`echo '$''{'pgac_cv_var_PS_STRINGS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6231 "configure" #include "confdefs.h" #include <machine/vmparam.h> #include <sys/exec.h> --- 6264,6275 ---- echo $ac_n "checking for PS_STRINGS""... $ac_c" 1>&6 ! echo "configure:6268: checking for PS_STRINGS" >&5 if eval "test \"`echo '$''{'pgac_cv_var_PS_STRINGS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6273 "configure" #include "confdefs.h" #include <machine/vmparam.h> #include <sys/exec.h> *************** *** 6237,6243 **** PS_STRINGS->ps_argvstr = "foo"; ; return 0; } EOF ! if { (eval echo configure:6241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_var_PS_STRINGS=yes else --- 6279,6285 ---- PS_STRINGS->ps_argvstr = "foo"; ; return 0; } EOF ! if { (eval echo configure:6283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_var_PS_STRINGS=yes else *************** *** 6259,6270 **** SNPRINTF='' echo $ac_n "checking for snprintf""... $ac_c" 1>&6 ! echo "configure:6263: checking for snprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6268 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char snprintf(); below. */ --- 6301,6312 ---- SNPRINTF='' echo $ac_n "checking for snprintf""... $ac_c" 1>&6 ! echo "configure:6305: checking for snprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6310 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char snprintf(); below. */ *************** *** 6287,6293 **** ; return 0; } EOF ! if { (eval echo configure:6291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_snprintf=yes" else --- 6329,6335 ---- ; return 0; } EOF ! if { (eval echo configure:6333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_snprintf=yes" else *************** *** 6311,6322 **** fi echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6 ! echo "configure:6315: checking for vsnprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6320 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vsnprintf(); below. */ --- 6353,6364 ---- fi echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6 ! echo "configure:6357: checking for vsnprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6362 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vsnprintf(); below. */ *************** *** 6339,6345 **** ; return 0; } EOF ! if { (eval echo configure:6343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vsnprintf=yes" else --- 6381,6387 ---- ; return 0; } EOF ! if { (eval echo configure:6385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vsnprintf=yes" else *************** *** 6364,6370 **** cat > conftest.$ac_ext <<EOF ! #line 6368 "configure" #include "confdefs.h" #include <stdio.h> EOF --- 6406,6412 ---- cat > conftest.$ac_ext <<EOF ! #line 6410 "configure" #include "confdefs.h" #include <stdio.h> EOF *************** *** 6379,6385 **** rm -f conftest* cat > conftest.$ac_ext <<EOF ! #line 6383 "configure" #include "confdefs.h" #include <stdio.h> EOF --- 6421,6427 ---- rm -f conftest* cat > conftest.$ac_ext <<EOF ! #line 6425 "configure" #include "confdefs.h" #include <stdio.h> EOF *************** *** 6396,6407 **** # do this one the hard way in case isinf() is a macro echo $ac_n "checking for isinf""... $ac_c" 1>&6 ! echo "configure:6400: checking for isinf" >&5 if eval "test \"`echo '$''{'ac_cv_func_isinf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6405 "configure" #include "confdefs.h" #include <math.h> --- 6438,6449 ---- # do this one the hard way in case isinf() is a macro echo $ac_n "checking for isinf""... $ac_c" 1>&6 ! echo "configure:6442: checking for isinf" >&5 if eval "test \"`echo '$''{'ac_cv_func_isinf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6447 "configure" #include "confdefs.h" #include <math.h> *************** *** 6409,6415 **** double x = 0.0; int res = isinf(x); ; return 0; } EOF ! if { (eval echo configure:6413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_isinf=yes else --- 6451,6457 ---- double x = 0.0; int res = isinf(x); ; return 0; } EOF ! if { (eval echo configure:6455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_isinf=yes else *************** *** 6435,6446 **** for ac_func in fpclass fp_class fp_class_d class do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6439: 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 <<EOF ! #line 6444 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 6477,6488 ---- for ac_func in fpclass fp_class fp_class_d class do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6481: 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 <<EOF ! #line 6486 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 6463,6469 **** ; return 0; } EOF ! if { (eval echo configure:6467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6505,6511 ---- ; return 0; } EOF ! if { (eval echo configure:6509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 6491,6502 **** echo $ac_n "checking for getrusage""... $ac_c" 1>&6 ! echo "configure:6495: checking for getrusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_getrusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6500 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getrusage(); below. */ --- 6533,6544 ---- echo $ac_n "checking for getrusage""... $ac_c" 1>&6 ! echo "configure:6537: checking for getrusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_getrusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6542 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getrusage(); below. */ *************** *** 6519,6525 **** ; return 0; } EOF ! if { (eval echo configure:6523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getrusage=yes" else --- 6561,6567 ---- ; return 0; } EOF ! if { (eval echo configure:6565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getrusage=yes" else *************** *** 6544,6555 **** echo $ac_n "checking for srandom""... $ac_c" 1>&6 ! echo "configure:6548: checking for srandom" >&5 if eval "test \"`echo '$''{'ac_cv_func_srandom'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6553 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char srandom(); below. */ --- 6586,6597 ---- echo $ac_n "checking for srandom""... $ac_c" 1>&6 ! echo "configure:6590: checking for srandom" >&5 if eval "test \"`echo '$''{'ac_cv_func_srandom'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6595 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char srandom(); below. */ *************** *** 6572,6578 **** ; return 0; } EOF ! if { (eval echo configure:6576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_srandom=yes" else --- 6614,6620 ---- ; return 0; } EOF ! if { (eval echo configure:6618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_srandom=yes" else *************** *** 6597,6608 **** echo $ac_n "checking for gethostname""... $ac_c" 1>&6 ! echo "configure:6601: checking for gethostname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6606 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostname(); below. */ --- 6639,6650 ---- echo $ac_n "checking for gethostname""... $ac_c" 1>&6 ! echo "configure:6643: checking for gethostname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6648 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostname(); below. */ *************** *** 6625,6631 **** ; return 0; } EOF ! if { (eval echo configure:6629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostname=yes" else --- 6667,6673 ---- ; return 0; } EOF ! if { (eval echo configure:6671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostname=yes" else *************** *** 6650,6661 **** echo $ac_n "checking for random""... $ac_c" 1>&6 ! echo "configure:6654: checking for random" >&5 if eval "test \"`echo '$''{'ac_cv_func_random'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6659 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char random(); below. */ --- 6692,6703 ---- echo $ac_n "checking for random""... $ac_c" 1>&6 ! echo "configure:6696: checking for random" >&5 if eval "test \"`echo '$''{'ac_cv_func_random'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6701 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char random(); below. */ *************** *** 6678,6684 **** ; return 0; } EOF ! if { (eval echo configure:6682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_random=yes" else --- 6720,6726 ---- ; return 0; } EOF ! if { (eval echo configure:6724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_random=yes" else *************** *** 6698,6714 **** else echo "$ac_t""no" 1>&6 ! MISSING_RANDOM='random.o' fi echo $ac_n "checking for inet_aton""... $ac_c" 1>&6 ! echo "configure:6707: checking for inet_aton" >&5 if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6712 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char inet_aton(); below. */ --- 6740,6756 ---- else echo "$ac_t""no" 1>&6 ! RANDOM='random.o' fi echo $ac_n "checking for inet_aton""... $ac_c" 1>&6 ! echo "configure:6749: checking for inet_aton" >&5 if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6754 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char inet_aton(); below. */ *************** *** 6731,6737 **** ; return 0; } EOF ! if { (eval echo configure:6735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_inet_aton=yes" else --- 6773,6779 ---- ; return 0; } EOF ! if { (eval echo configure:6777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_inet_aton=yes" else *************** *** 6756,6767 **** echo $ac_n "checking for strerror""... $ac_c" 1>&6 ! echo "configure:6760: checking for strerror" >&5 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6765 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strerror(); below. */ --- 6798,6809 ---- echo $ac_n "checking for strerror""... $ac_c" 1>&6 ! echo "configure:6802: checking for strerror" >&5 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6807 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strerror(); below. */ *************** *** 6784,6790 **** ; return 0; } EOF ! if { (eval echo configure:6788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strerror=yes" else --- 6826,6832 ---- ; return 0; } EOF ! if { (eval echo configure:6830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strerror=yes" else *************** *** 6809,6820 **** echo $ac_n "checking for strdup""... $ac_c" 1>&6 ! echo "configure:6813: checking for strdup" >&5 if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6818 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strdup(); below. */ --- 6851,6862 ---- echo $ac_n "checking for strdup""... $ac_c" 1>&6 ! echo "configure:6855: checking for strdup" >&5 if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6860 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strdup(); below. */ *************** *** 6837,6843 **** ; return 0; } EOF ! if { (eval echo configure:6841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strdup=yes" else --- 6879,6885 ---- ; return 0; } EOF ! if { (eval echo configure:6883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strdup=yes" else *************** *** 6862,6873 **** echo $ac_n "checking for strtol""... $ac_c" 1>&6 ! echo "configure:6866: checking for strtol" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6871 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strtol(); below. */ --- 6904,6915 ---- echo $ac_n "checking for strtol""... $ac_c" 1>&6 ! echo "configure:6908: checking for strtol" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6913 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strtol(); below. */ *************** *** 6890,6896 **** ; return 0; } EOF ! if { (eval echo configure:6894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtol=yes" else --- 6932,6938 ---- ; return 0; } EOF ! if { (eval echo configure:6936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtol=yes" else *************** *** 6915,6926 **** echo $ac_n "checking for strtoul""... $ac_c" 1>&6 ! echo "configure:6919: checking for strtoul" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtoul'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6924 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strtoul(); below. */ --- 6957,6968 ---- echo $ac_n "checking for strtoul""... $ac_c" 1>&6 ! echo "configure:6961: checking for strtoul" >&5 if eval "test \"`echo '$''{'ac_cv_func_strtoul'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6966 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strtoul(); below. */ *************** *** 6943,6949 **** ; return 0; } EOF ! if { (eval echo configure:6947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtoul=yes" else --- 6985,6991 ---- ; return 0; } EOF ! if { (eval echo configure:6989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strtoul=yes" else *************** *** 6968,6979 **** echo $ac_n "checking for strcasecmp""... $ac_c" 1>&6 ! echo "configure:6972: checking for strcasecmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_strcasecmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 6977 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strcasecmp(); below. */ --- 7010,7021 ---- echo $ac_n "checking for strcasecmp""... $ac_c" 1>&6 ! echo "configure:7014: checking for strcasecmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_strcasecmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7019 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strcasecmp(); below. */ *************** *** 6996,7002 **** ; return 0; } EOF ! if { (eval echo configure:7000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strcasecmp=yes" else --- 7038,7044 ---- ; return 0; } EOF ! if { (eval echo configure:7042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strcasecmp=yes" else *************** *** 7021,7032 **** echo $ac_n "checking for cbrt""... $ac_c" 1>&6 ! echo "configure:7025: checking for cbrt" >&5 if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7030 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char cbrt(); below. */ --- 7063,7074 ---- echo $ac_n "checking for cbrt""... $ac_c" 1>&6 ! echo "configure:7067: checking for cbrt" >&5 if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7072 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char cbrt(); below. */ *************** *** 7049,7055 **** ; return 0; } EOF ! if { (eval echo configure:7053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cbrt=yes" else --- 7091,7097 ---- ; return 0; } EOF ! if { (eval echo configure:7095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cbrt=yes" else *************** *** 7070,7076 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for cbrt in -lm""... $ac_c" 1>&6 ! echo "configure:7074: checking for cbrt in -lm" >&5 ac_lib_var=`echo m'_'cbrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7112,7118 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for cbrt in -lm""... $ac_c" 1>&6 ! echo "configure:7116: checking for cbrt in -lm" >&5 ac_lib_var=`echo m'_'cbrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 7078,7084 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF ! #line 7082 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 --- 7120,7126 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF ! #line 7124 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 *************** *** 7089,7095 **** cbrt() ; return 0; } EOF ! if { (eval echo configure:7093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7131,7137 ---- cbrt() ; return 0; } EOF ! if { (eval echo configure:7135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 7127,7138 **** echo $ac_n "checking for rint""... $ac_c" 1>&6 ! echo "configure:7131: checking for rint" >&5 if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7136 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char rint(); below. */ --- 7169,7180 ---- echo $ac_n "checking for rint""... $ac_c" 1>&6 ! echo "configure:7173: checking for rint" >&5 if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7178 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char rint(); below. */ *************** *** 7155,7161 **** ; return 0; } EOF ! if { (eval echo configure:7159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_rint=yes" else --- 7197,7203 ---- ; return 0; } EOF ! if { (eval echo configure:7201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_rint=yes" else *************** *** 7176,7182 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for rint in -lm""... $ac_c" 1>&6 ! echo "configure:7180: checking for rint in -lm" >&5 ac_lib_var=`echo m'_'rint | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7218,7224 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for rint in -lm""... $ac_c" 1>&6 ! echo "configure:7222: checking for rint in -lm" >&5 ac_lib_var=`echo m'_'rint | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 7184,7190 **** ac_save_LIBS="$LIBS" LIBS="-lm $HPUXMATHLIB $LIBS" cat > conftest.$ac_ext <<EOF ! #line 7188 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 --- 7226,7232 ---- ac_save_LIBS="$LIBS" LIBS="-lm $HPUXMATHLIB $LIBS" cat > conftest.$ac_ext <<EOF ! #line 7230 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 *************** *** 7195,7201 **** rint() ; return 0; } EOF ! if { (eval echo configure:7199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7237,7243 ---- rint() ; return 0; } EOF ! if { (eval echo configure:7241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** *** 7224,7232 **** # Readline versions < 2.1 don't have rl_completion_append_character echo $ac_n "checking for rl_completion_append_character""... $ac_c" 1>&6 ! echo "configure:7228: checking for rl_completion_append_character" >&5 cat > conftest.$ac_ext <<EOF ! #line 7230 "configure" #include "confdefs.h" #include <stdio.h> #ifdef HAVE_READLINE_READLINE_H --- 7266,7274 ---- # Readline versions < 2.1 don't have rl_completion_append_character echo $ac_n "checking for rl_completion_append_character""... $ac_c" 1>&6 ! echo "configure:7270: checking for rl_completion_append_character" >&5 cat > conftest.$ac_ext <<EOF ! #line 7272 "configure" #include "confdefs.h" #include <stdio.h> #ifdef HAVE_READLINE_READLINE_H *************** *** 7239,7245 **** rl_completion_append_character = 'x'; ; return 0; } EOF ! if { (eval echo configure:7243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF --- 7281,7287 ---- rl_completion_append_character = 'x'; ; return 0; } EOF ! if { (eval echo configure:7285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF *************** *** 7257,7268 **** for ac_func in rl_completion_matches rl_filename_completion_function do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7261: 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 <<EOF ! #line 7266 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 7299,7310 ---- for ac_func in rl_completion_matches rl_filename_completion_function do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7303: 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 <<EOF ! #line 7308 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 7285,7291 **** ; return 0; } EOF ! if { (eval echo configure:7289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7327,7333 ---- ; return 0; } EOF ! if { (eval echo configure:7331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 7312,7327 **** echo $ac_n "checking for finite""... $ac_c" 1>&6 ! echo "configure:7316: checking for finite" >&5 cat > conftest.$ac_ext <<EOF ! #line 7318 "configure" #include "confdefs.h" #include <math.h> int main() { int dummy=finite(1.0); ; return 0; } EOF ! if { (eval echo configure:7325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_FINITE 1 --- 7354,7369 ---- echo $ac_n "checking for finite""... $ac_c" 1>&6 ! echo "configure:7358: checking for finite" >&5 cat > conftest.$ac_ext <<EOF ! #line 7360 "configure" #include "confdefs.h" #include <math.h> int main() { int dummy=finite(1.0); ; return 0; } EOF ! if { (eval echo configure:7367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_FINITE 1 *************** *** 7336,7351 **** rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 ! echo "configure:7340: checking for sigsetjmp" >&5 cat > conftest.$ac_ext <<EOF ! #line 7342 "configure" #include "confdefs.h" #include <setjmp.h> int main() { sigjmp_buf x; sigsetjmp(x, 1); ; return 0; } EOF ! if { (eval echo configure:7349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 7378,7393 ---- rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 ! echo "configure:7382: checking for sigsetjmp" >&5 cat > conftest.$ac_ext <<EOF ! #line 7384 "configure" #include "confdefs.h" #include <setjmp.h> int main() { sigjmp_buf x; sigsetjmp(x, 1); ; return 0; } EOF ! if { (eval echo configure:7391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** *** 7365,7376 **** case $enable_syslog in yes) echo $ac_n "checking for syslog""... $ac_c" 1>&6 ! echo "configure:7369: checking for syslog" >&5 if eval "test \"`echo '$''{'ac_cv_func_syslog'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7374 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char syslog(); below. */ --- 7407,7418 ---- case $enable_syslog in yes) echo $ac_n "checking for syslog""... $ac_c" 1>&6 ! echo "configure:7411: checking for syslog" >&5 if eval "test \"`echo '$''{'ac_cv_func_syslog'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7416 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char syslog(); below. */ *************** *** 7393,7399 **** ; return 0; } EOF ! if { (eval echo configure:7397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_syslog=yes" else --- 7435,7441 ---- ; return 0; } EOF ! if { (eval echo configure:7439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_syslog=yes" else *************** *** 7432,7450 **** echo $ac_n "checking for optreset""... $ac_c" 1>&6 ! echo "configure:7436: checking for optreset" >&5 if eval "test \"`echo '$''{'pgac_cv_var_int_optreset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7441 "configure" #include "confdefs.h" #include <unistd.h> int main() { extern int optreset; optreset = 1; ; return 0; } EOF ! if { (eval echo configure:7448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_var_int_optreset=yes else --- 7474,7492 ---- echo $ac_n "checking for optreset""... $ac_c" 1>&6 ! echo "configure:7478: checking for optreset" >&5 if eval "test \"`echo '$''{'pgac_cv_var_int_optreset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7483 "configure" #include "confdefs.h" #include <unistd.h> int main() { extern int optreset; optreset = 1; ; return 0; } EOF ! if { (eval echo configure:7490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_var_int_optreset=yes else *************** *** 7470,7485 **** # This check should come after all modifications of compiler or linker # variables, and before any other run tests. echo $ac_n "checking test program""... $ac_c" 1>&6 ! echo "configure:7474: checking test program" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""cross-compiling" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7479 "configure" #include "confdefs.h" int main() { return 0; } EOF ! if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""ok" 1>&6 else --- 7512,7527 ---- # This check should come after all modifications of compiler or linker # variables, and before any other run tests. echo $ac_n "checking test program""... $ac_c" 1>&6 ! echo "configure:7516: checking test program" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""cross-compiling" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7521 "configure" #include "confdefs.h" int main() { return 0; } EOF ! if { (eval echo configure:7525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""ok" 1>&6 else *************** *** 7499,7505 **** echo $ac_n "checking whether long int is 64 bits""... $ac_c" 1>&6 ! echo "configure:7503: checking whether long int is 64 bits" >&5 if eval "test \"`echo '$''{'pgac_cv_type_long_int_64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7541,7547 ---- echo $ac_n "checking whether long int is 64 bits""... $ac_c" 1>&6 ! echo "configure:7545: checking whether long int is 64 bits" >&5 if eval "test \"`echo '$''{'pgac_cv_type_long_int_64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 7508,7514 **** echo "configure: warning: 64 bit arithmetic disabled when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF ! #line 7512 "configure" #include "confdefs.h" typedef long int int64; --- 7550,7556 ---- echo "configure: warning: 64 bit arithmetic disabled when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF ! #line 7554 "configure" #include "confdefs.h" typedef long int int64; *************** *** 7537,7543 **** exit(! does_int64_work()); } EOF ! if { (eval echo configure:7541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_type_long_int_64=yes else --- 7579,7585 ---- exit(! does_int64_work()); } EOF ! if { (eval echo configure:7583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_type_long_int_64=yes else *************** *** 7564,7570 **** if test x"$HAVE_LONG_INT_64" = x"no" ; then echo $ac_n "checking whether long long int is 64 bits""... $ac_c" 1>&6 ! echo "configure:7568: checking whether long long int is 64 bits" >&5 if eval "test \"`echo '$''{'pgac_cv_type_long_long_int_64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7606,7612 ---- if test x"$HAVE_LONG_INT_64" = x"no" ; then echo $ac_n "checking whether long long int is 64 bits""... $ac_c" 1>&6 ! echo "configure:7610: checking whether long long int is 64 bits" >&5 if eval "test \"`echo '$''{'pgac_cv_type_long_long_int_64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 7573,7579 **** echo "configure: warning: 64 bit arithmetic disabled when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF ! #line 7577 "configure" #include "confdefs.h" typedef long long int int64; --- 7615,7621 ---- echo "configure: warning: 64 bit arithmetic disabled when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF ! #line 7619 "configure" #include "confdefs.h" typedef long long int int64; *************** *** 7602,7608 **** exit(! does_int64_work()); } EOF ! if { (eval echo configure:7606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_type_long_long_int_64=yes else --- 7644,7650 ---- exit(! does_int64_work()); } EOF ! if { (eval echo configure:7648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_type_long_long_int_64=yes else *************** *** 7632,7638 **** if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then cat > conftest.$ac_ext <<EOF ! #line 7636 "configure" #include "confdefs.h" #define INT64CONST(x) x##LL --- 7674,7680 ---- if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then cat > conftest.$ac_ext <<EOF ! #line 7678 "configure" #include "confdefs.h" #define INT64CONST(x) x##LL *************** *** 7642,7648 **** ; return 0; } EOF ! if { (eval echo configure:7646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_LL_CONSTANTS 1 --- 7684,7690 ---- ; return 0; } EOF ! if { (eval echo configure:7688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_LL_CONSTANTS 1 *************** *** 7660,7666 **** if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then if [ x$SNPRINTF = x ] ; then echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6 ! echo "configure:7664: checking whether snprintf handles 'long long int' as %lld" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf --- 7702,7708 ---- if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then if [ x$SNPRINTF = x ] ; then echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6 ! echo "configure:7706: checking whether snprintf handles 'long long int' as %lld" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf *************** *** 7669,7675 **** else cat > conftest.$ac_ext <<EOF ! #line 7673 "configure" #include "confdefs.h" #include <stdio.h> typedef long long int int64; --- 7711,7717 ---- else cat > conftest.$ac_ext <<EOF ! #line 7715 "configure" #include "confdefs.h" #include <stdio.h> typedef long long int int64; *************** *** 7696,7702 **** exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:7700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%lld"' --- 7738,7744 ---- exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:7742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%lld"' *************** *** 7707,7713 **** rm -fr conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6 ! echo "configure:7711: checking whether snprintf handles 'long long int' as %qd" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf --- 7749,7755 ---- rm -fr conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6 ! echo "configure:7753: checking whether snprintf handles 'long long int' as %qd" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""assuming not on target machine" 1>&6 # Force usage of our own snprintf, since we cannot test foreign snprintf *************** *** 7716,7722 **** else cat > conftest.$ac_ext <<EOF ! #line 7720 "configure" #include "confdefs.h" #include <stdio.h> typedef long long int int64; --- 7758,7764 ---- else cat > conftest.$ac_ext <<EOF ! #line 7762 "configure" #include "confdefs.h" #include <stdio.h> typedef long long int int64; *************** *** 7743,7749 **** exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:7747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%qd"' --- 7785,7791 ---- exit(! does_int64_snprintf_work()); } EOF ! if { (eval echo configure:7789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 INT64_FORMAT='"%qd"' *************** *** 7783,7794 **** for ac_func in strtoll strtoq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7787: 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 <<EOF ! #line 7792 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 7825,7836 ---- for ac_func in strtoll strtoq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7829: 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 <<EOF ! #line 7834 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 7811,7817 **** ; return 0; } EOF ! if { (eval echo configure:7815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7853,7859 ---- ; return 0; } EOF ! if { (eval echo configure:7857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 7838,7849 **** for ac_func in strtoull strtouq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7842: 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 <<EOF ! #line 7847 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 7880,7891 ---- for ac_func in strtoull strtouq do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7884: 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 <<EOF ! #line 7889 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 7866,7872 **** ; return 0; } EOF ! if { (eval echo configure:7870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7908,7914 ---- ; return 0; } EOF ! if { (eval echo configure:7912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 7892,7903 **** echo $ac_n "checking for atexit""... $ac_c" 1>&6 ! echo "configure:7896: checking for atexit" >&5 if eval "test \"`echo '$''{'ac_cv_func_atexit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7901 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char atexit(); below. */ --- 7934,7945 ---- echo $ac_n "checking for atexit""... $ac_c" 1>&6 ! echo "configure:7938: checking for atexit" >&5 if eval "test \"`echo '$''{'ac_cv_func_atexit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 7943 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char atexit(); below. */ *************** *** 7920,7926 **** ; return 0; } EOF ! if { (eval echo configure:7924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_atexit=yes" else --- 7962,7968 ---- ; return 0; } EOF ! if { (eval echo configure:7966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_atexit=yes" else *************** *** 7943,7954 **** for ac_func in on_exit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7947: 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 <<EOF ! #line 7952 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ --- 7985,7996 ---- for ac_func in on_exit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7989: 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 <<EOF ! #line 7994 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ *************** *** 7971,7977 **** ; return 0; } EOF ! if { (eval echo configure:7975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 8013,8019 ---- ; return 0; } EOF ! if { (eval echo configure:8017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 8004,8010 **** echo $ac_n "checking size of unsigned long""... $ac_c" 1>&6 ! echo "configure:8008: checking size of unsigned long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8046,8052 ---- echo $ac_n "checking size of unsigned long""... $ac_c" 1>&6 ! echo "configure:8050: checking size of unsigned long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8012,8018 **** ac_cv_sizeof_unsigned_long=4 else cat > conftest.$ac_ext <<EOF ! #line 8016 "configure" #include "confdefs.h" #include <stdio.h> main() --- 8054,8060 ---- ac_cv_sizeof_unsigned_long=4 else cat > conftest.$ac_ext <<EOF ! #line 8058 "configure" #include "confdefs.h" #include <stdio.h> main() *************** *** 8023,8029 **** exit(0); } EOF ! if { (eval echo configure:8027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then ac_cv_sizeof_unsigned_long=`cat conftestval` else --- 8065,8071 ---- exit(0); } EOF ! if { (eval echo configure:8069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then ac_cv_sizeof_unsigned_long=`cat conftestval` else *************** *** 8049,8055 **** echo $ac_n "checking alignment of short""... $ac_c" 1>&6 ! echo "configure:8053: checking alignment of short" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8091,8097 ---- echo $ac_n "checking alignment of short""... $ac_c" 1>&6 ! echo "configure:8095: checking alignment of short" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8057,8063 **** pgac_cv_alignof_short='sizeof(short)' else cat > conftest.$ac_ext <<EOF ! #line 8061 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; short field; } mystruct; --- 8099,8105 ---- pgac_cv_alignof_short='sizeof(short)' else cat > conftest.$ac_ext <<EOF ! #line 8103 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; short field; } mystruct; *************** *** 8069,8075 **** exit(0); } EOF ! if { (eval echo configure:8073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_short=`cat conftestval` else --- 8111,8117 ---- exit(0); } EOF ! if { (eval echo configure:8115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_short=`cat conftestval` else *************** *** 8089,8095 **** echo $ac_n "checking alignment of int""... $ac_c" 1>&6 ! echo "configure:8093: checking alignment of int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8131,8137 ---- echo $ac_n "checking alignment of int""... $ac_c" 1>&6 ! echo "configure:8135: checking alignment of int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8097,8103 **** pgac_cv_alignof_int='sizeof(int)' else cat > conftest.$ac_ext <<EOF ! #line 8101 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; int field; } mystruct; --- 8139,8145 ---- pgac_cv_alignof_int='sizeof(int)' else cat > conftest.$ac_ext <<EOF ! #line 8143 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; int field; } mystruct; *************** *** 8109,8115 **** exit(0); } EOF ! if { (eval echo configure:8113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_int=`cat conftestval` else --- 8151,8157 ---- exit(0); } EOF ! if { (eval echo configure:8155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_int=`cat conftestval` else *************** *** 8129,8135 **** echo $ac_n "checking alignment of long""... $ac_c" 1>&6 ! echo "configure:8133: checking alignment of long" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8171,8177 ---- echo $ac_n "checking alignment of long""... $ac_c" 1>&6 ! echo "configure:8175: checking alignment of long" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8137,8143 **** pgac_cv_alignof_long='sizeof(long)' else cat > conftest.$ac_ext <<EOF ! #line 8141 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; long field; } mystruct; --- 8179,8185 ---- pgac_cv_alignof_long='sizeof(long)' else cat > conftest.$ac_ext <<EOF ! #line 8183 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; long field; } mystruct; *************** *** 8149,8155 **** exit(0); } EOF ! if { (eval echo configure:8153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_long=`cat conftestval` else --- 8191,8197 ---- exit(0); } EOF ! if { (eval echo configure:8195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_long=`cat conftestval` else *************** *** 8170,8176 **** if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6 ! echo "configure:8174: checking alignment of long long int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long_long_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8212,8218 ---- if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6 ! echo "configure:8216: checking alignment of long long int" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_long_long_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8178,8184 **** pgac_cv_alignof_long_long_int='sizeof(long long int)' else cat > conftest.$ac_ext <<EOF ! #line 8182 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; long long int field; } mystruct; --- 8220,8226 ---- pgac_cv_alignof_long_long_int='sizeof(long long int)' else cat > conftest.$ac_ext <<EOF ! #line 8224 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; long long int field; } mystruct; *************** *** 8190,8196 **** exit(0); } EOF ! if { (eval echo configure:8194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_long_long_int=`cat conftestval` else --- 8232,8238 ---- exit(0); } EOF ! if { (eval echo configure:8236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_long_long_int=`cat conftestval` else *************** *** 8211,8217 **** fi echo $ac_n "checking alignment of double""... $ac_c" 1>&6 ! echo "configure:8215: checking alignment of double" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8253,8259 ---- fi echo $ac_n "checking alignment of double""... $ac_c" 1>&6 ! echo "configure:8257: checking alignment of double" >&5 if eval "test \"`echo '$''{'pgac_cv_alignof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8219,8225 **** pgac_cv_alignof_double='sizeof(double)' else cat > conftest.$ac_ext <<EOF ! #line 8223 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; double field; } mystruct; --- 8261,8267 ---- pgac_cv_alignof_double='sizeof(double)' else cat > conftest.$ac_ext <<EOF ! #line 8265 "configure" #include "confdefs.h" #include <stdio.h> struct { char filler; double field; } mystruct; *************** *** 8231,8237 **** exit(0); } EOF ! if { (eval echo configure:8235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_double=`cat conftestval` else --- 8273,8279 ---- exit(0); } EOF ! if { (eval echo configure:8277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest;exit) 2>/dev/null then pgac_cv_alignof_double=`cat conftestval` else *************** *** 8281,8292 **** #endif" echo $ac_n "checking for int8""... $ac_c" 1>&6 ! echo "configure:8285: checking for int8" >&5 if eval "test \"`echo '$''{'pgac_cv_have_int8'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8290 "configure" #include "confdefs.h" $pgac_type_includes int main() { --- 8323,8334 ---- #endif" echo $ac_n "checking for int8""... $ac_c" 1>&6 ! echo "configure:8327: checking for int8" >&5 if eval "test \"`echo '$''{'pgac_cv_have_int8'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8332 "configure" #include "confdefs.h" $pgac_type_includes int main() { *************** *** 8296,8302 **** return 0; ; return 0; } EOF ! if { (eval echo configure:8300: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_int8=yes else --- 8338,8344 ---- return 0; ; return 0; } EOF ! if { (eval echo configure:8342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_int8=yes else *************** *** 8317,8328 **** fi echo $ac_n "checking for uint8""... $ac_c" 1>&6 ! echo "configure:8321: checking for uint8" >&5 if eval "test \"`echo '$''{'pgac_cv_have_uint8'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8326 "configure" #include "confdefs.h" $pgac_type_includes int main() { --- 8359,8370 ---- fi echo $ac_n "checking for uint8""... $ac_c" 1>&6 ! echo "configure:8363: checking for uint8" >&5 if eval "test \"`echo '$''{'pgac_cv_have_uint8'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8368 "configure" #include "confdefs.h" $pgac_type_includes int main() { *************** *** 8332,8338 **** return 0; ; return 0; } EOF ! if { (eval echo configure:8336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_uint8=yes else --- 8374,8380 ---- return 0; ; return 0; } EOF ! if { (eval echo configure:8378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_uint8=yes else *************** *** 8353,8364 **** fi echo $ac_n "checking for int64""... $ac_c" 1>&6 ! echo "configure:8357: checking for int64" >&5 if eval "test \"`echo '$''{'pgac_cv_have_int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8362 "configure" #include "confdefs.h" $pgac_type_includes int main() { --- 8395,8406 ---- fi echo $ac_n "checking for int64""... $ac_c" 1>&6 ! echo "configure:8399: checking for int64" >&5 if eval "test \"`echo '$''{'pgac_cv_have_int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8404 "configure" #include "confdefs.h" $pgac_type_includes int main() { *************** *** 8368,8374 **** return 0; ; return 0; } EOF ! if { (eval echo configure:8372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_int64=yes else --- 8410,8416 ---- return 0; ; return 0; } EOF ! if { (eval echo configure:8414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_int64=yes else *************** *** 8389,8400 **** fi echo $ac_n "checking for uint64""... $ac_c" 1>&6 ! echo "configure:8393: checking for uint64" >&5 if eval "test \"`echo '$''{'pgac_cv_have_uint64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8398 "configure" #include "confdefs.h" $pgac_type_includes int main() { --- 8431,8442 ---- fi echo $ac_n "checking for uint64""... $ac_c" 1>&6 ! echo "configure:8435: checking for uint64" >&5 if eval "test \"`echo '$''{'pgac_cv_have_uint64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8440 "configure" #include "confdefs.h" $pgac_type_includes int main() { *************** *** 8404,8410 **** return 0; ; return 0; } EOF ! if { (eval echo configure:8408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_uint64=yes else --- 8446,8452 ---- return 0; ; return 0; } EOF ! if { (eval echo configure:8450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_uint64=yes else *************** *** 8425,8436 **** fi echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6 ! echo "configure:8429: checking for sig_atomic_t" >&5 if eval "test \"`echo '$''{'pgac_cv_have_sig_atomic_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8434 "configure" #include "confdefs.h" $pgac_type_includes int main() { --- 8467,8478 ---- fi echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6 ! echo "configure:8471: checking for sig_atomic_t" >&5 if eval "test \"`echo '$''{'pgac_cv_have_sig_atomic_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8476 "configure" #include "confdefs.h" $pgac_type_includes int main() { *************** *** 8440,8446 **** return 0; ; return 0; } EOF ! if { (eval echo configure:8444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_sig_atomic_t=yes else --- 8482,8488 ---- return 0; ; return 0; } EOF ! if { (eval echo configure:8486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pgac_cv_have_sig_atomic_t=yes else *************** *** 8463,8474 **** echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6 ! echo "configure:8467: checking for POSIX signal interface" >&5 if eval "test \"`echo '$''{'pgac_cv_func_posix_signals'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8472 "configure" #include "confdefs.h" #include <signal.h> --- 8505,8516 ---- echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6 ! echo "configure:8509: checking for POSIX signal interface" >&5 if eval "test \"`echo '$''{'pgac_cv_func_posix_signals'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF ! #line 8514 "configure" #include "confdefs.h" #include <signal.h> *************** *** 8479,8485 **** sigaction(0, &act, &oact); ; return 0; } EOF ! if { (eval echo configure:8483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_func_posix_signals=yes else --- 8521,8527 ---- sigaction(0, &act, &oact); ; return 0; } EOF ! if { (eval echo configure:8525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* pgac_cv_func_posix_signals=yes else *************** *** 8509,8515 **** # 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:8513: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8551,8557 ---- # 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:8555: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8545,8551 **** done echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6 ! echo "configure:8549: checking for tclConfig.sh" >&5 # Let user override test if test -z "$TCL_CONFIG_SH"; then pgac_test_dirs="$with_tclconfig" --- 8587,8593 ---- done echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6 ! echo "configure:8591: checking for tclConfig.sh" >&5 # Let user override test if test -z "$TCL_CONFIG_SH"; then pgac_test_dirs="$with_tclconfig" *************** *** 8578,8584 **** # Check for Tk configuration script tkConfig.sh if test "$with_tk" = yes; then echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6 ! echo "configure:8582: checking for tkConfig.sh" >&5 # Let user override test if test -z "$TK_CONFIG_SH"; then pgac_test_dirs="$with_tkconfig $with_tclconfig" --- 8620,8626 ---- # Check for Tk configuration script tkConfig.sh if test "$with_tk" = yes; then echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6 ! echo "configure:8624: checking for tkConfig.sh" >&5 # Let user override test if test -z "$TK_CONFIG_SH"; then pgac_test_dirs="$with_tkconfig $with_tclconfig" *************** *** 8617,8623 **** # 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:8621: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NSGMLS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8659,8665 ---- # 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:8663: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NSGMLS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8653,8659 **** # 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:8657: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_JADE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8695,8701 ---- # 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:8699: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_JADE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8684,8690 **** echo $ac_n "checking for DocBook V3.1""... $ac_c" 1>&6 ! echo "configure:8688: checking for DocBook V3.1" >&5 if eval "test \"`echo '$''{'pgac_cv_check_docbook'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8726,8732 ---- echo $ac_n "checking for DocBook V3.1""... $ac_c" 1>&6 ! echo "configure:8730: checking for DocBook V3.1" >&5 if eval "test \"`echo '$''{'pgac_cv_check_docbook'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8717,8723 **** echo $ac_n "checking for DocBook stylesheets""... $ac_c" 1>&6 ! echo "configure:8721: checking for DocBook stylesheets" >&5 if eval "test \"`echo '$''{'pgac_cv_path_stylesheets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8759,8765 ---- echo $ac_n "checking for DocBook stylesheets""... $ac_c" 1>&6 ! echo "configure:8763: checking for DocBook stylesheets" >&5 if eval "test \"`echo '$''{'pgac_cv_path_stylesheets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 8756,8762 **** # 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:8760: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_SGMLSPL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 8798,8804 ---- # 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:8802: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_SGMLSPL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 9011,9022 **** s%@MSGMERGE@%$MSGMERGE%g s%@XGETTEXT@%$XGETTEXT%g s%@localedir@%$localedir%g s%@SNPRINTF@%$SNPRINTF%g s%@ISINF@%$ISINF%g s%@GETRUSAGE@%$GETRUSAGE%g s%@SRANDOM@%$SRANDOM%g s%@GETHOSTNAME@%$GETHOSTNAME%g ! s%@MISSING_RANDOM@%$MISSING_RANDOM%g s%@INET_ATON@%$INET_ATON%g s%@STRERROR@%$STRERROR%g s%@STRDUP@%$STRDUP%g --- 9053,9065 ---- s%@MSGMERGE@%$MSGMERGE%g s%@XGETTEXT@%$XGETTEXT%g s%@localedir@%$localedir%g + s%@MEMCMP@%$MEMCMP%g s%@SNPRINTF@%$SNPRINTF%g s%@ISINF@%$ISINF%g s%@GETRUSAGE@%$GETRUSAGE%g s%@SRANDOM@%$SRANDOM%g s%@GETHOSTNAME@%$GETHOSTNAME%g ! s%@RANDOM@%$RANDOM%g s%@INET_ATON@%$INET_ATON%g s%@STRERROR@%$STRERROR%g s%@STRDUP@%$STRDUP%g /*------------------------------------------------------------------------- * * memcmp.c * compares memory bytes * * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION * $Header: /cvsroot/pgsql/src/utils/memcmp.c,v 1.8 2001/01/24 19:43:33 momjian Exp $ * * This file was taken from NetBSD and is used by SunOS because memcmp * on that platform does not properly compare negative bytes. * *------------------------------------------------------------------------- */ #include <string.h> /* * Compare memory regions. */ int memcmp(const void *s1, const void *s2, size_t n) { if (n != 0) { const unsigned char *p1 = s1, *p2 = s2; do { if (*p1++ != *p2++) return (*--p1 - *--p2); } while (--n != 0); } return 0; }
Bruce Momjian writes: > > What should we do? The only remaining issue is a non-8-bit-clean > > memcmp, which seems pretty easy to fix it. > > OK, here is a patch to allow SunOS to pass the regression tests. At a glance, this patch looks okay. However, since this issue does not represent a regression from 7.1 I'm not exactly in favour of installing it now. We want to get a release out, so I think we need to get stricter in those matters. And this patch is not exactly trivial. > One interesting item is that I had to compile with > backend/utils/adt/varbit.c with -fno-builtin because my gcc 2.X manual > says: Yeah, if you use GCC with optimization on SunOS 4 then the issue should be moot because the GCC version is used. However, I don't think that's the setup in question. This is actually a good situation to show that configuring with one kind of compiler flag and building with another is not reliable, even if it's only the optimization level. -- Peter Eisentraut peter_e@gmx.net
> Bruce Momjian writes: > > > > What should we do? The only remaining issue is a non-8-bit-clean > > > memcmp, which seems pretty easy to fix it. > > > > OK, here is a patch to allow SunOS to pass the regression tests. > > At a glance, this patch looks okay. However, since this issue does not > represent a regression from 7.1 I'm not exactly in favor of installing it > now. We want to get a release out, so I think we need to get stricter in > those matters. And this patch is not exactly trivial. I have attached the patch without the autoconf run and without the new memcmp.c file. Looks pretty small to me, but I understand. If we don't want the patch, I will put it on an FTP site somewhere. However, the configure line numbers changes will be tough to keep working if a subrelease changes configure. It seemed worth it to me because it was to enable another port, and I thought that is what beta was for. Maybe I can put it in a minor release. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 Index: configure.in =================================================================== RCS file: /cvsroot/pgsql/configure.in,v retrieving revision 1.158 diff -c -r1.158 configure.in *** configure.in 2001/12/13 22:00:22 1.158 --- configure.in 2001/12/17 19:05:47 *************** *** 809,814 **** --- 809,817 ---- AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG + # SunOS doesn't handle negative byte comparisons properly with +/- return + PGAC_FUNC_MEMCMP + AC_CHECK_FUNCS([fcvt getopt_long memmove pstat setproctitle setsid sigprocmask sysconf waitpid dlopen fdatasync]) dnl Check whether <unistd.h> declares fdatasync(). Index: config/c-library.m4 =================================================================== RCS file: /cvsroot/pgsql/config/c-library.m4,v retrieving revision 1.9 diff -c -r1.9 c-library.m4 *** config/c-library.m4 2001/09/07 19:52:53 1.9 --- config/c-library.m4 2001/12/17 19:05:47 *************** *** 36,41 **** --- 36,65 ---- fi])# PGAC_FUNC_GETTIMEOFDAY_1ARG + # PGAC_FUNC_MEMCMP + # ----------- + # Check if memcmp() properly handles negative bytes and returns +/-. + # SunOS does not. + # AC_FUNC_MEMCMP + AC_DEFUN(PGAC_FUNC_MEMCMP, + [AC_CACHE_CHECK(for 8-bit clean memcmp, pgac_cv_func_memcmp_clean, + [AC_TRY_RUN([ + main() + { + char c0 = 0x40, c1 = 0x80, c2 = 0x81; + exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1); + } + ], pgac_cv_func_memcmp_clean=yes, pgac_cv_func_memcmp_clean=no, + pgac_cv_func_memcmp_clean=no)]) + if test $pgac_cv_func_memcmp_clean = no ; then + MEMCMP=memcmp.o + else + MEMCMP= + fi + AC_SUBST(MEMCMP)dnl + ]) + + # PGAC_UNION_SEMUN # ---------------- # Check if `union semun' exists. Define HAVE_UNION_SEMUN if so. Index: src/Makefile.global.in =================================================================== RCS file: /cvsroot/pgsql/src/Makefile.global.in,v retrieving revision 1.140 diff -c -r1.140 Makefile.global.in *** src/Makefile.global.in 2001/10/13 15:24:23 1.140 --- src/Makefile.global.in 2001/12/17 19:05:48 *************** *** 328,333 **** --- 328,334 ---- STRERROR = @STRERROR@ SNPRINTF = @SNPRINTF@ STRDUP = @STRDUP@ + MEMCMP = @MEMCMP@ STRTOUL = @STRTOUL@ Index: src/backend/port/Makefile.in =================================================================== RCS file: /cvsroot/pgsql/src/backend/port/Makefile.in,v retrieving revision 1.29 diff -c -r1.29 Makefile.in *** src/backend/port/Makefile.in 2001/05/08 19:38:57 1.29 --- src/backend/port/Makefile.in 2001/12/17 19:05:48 *************** *** 22,28 **** include $(top_builddir)/src/Makefile.global OBJS = dynloader.o @INET_ATON@ @STRERROR@ @MISSING_RANDOM@ @SRANDOM@ ! OBJS+= @GETHOSTNAME@ @GETRUSAGE@ @STRCASECMP@ @TAS@ @ISINF@ OBJS+= @STRTOL@ @STRTOUL@ @SNPRINTF@ ifdef STRDUP OBJS += $(top_builddir)/src/utils/strdup.o --- 22,28 ---- include $(top_builddir)/src/Makefile.global OBJS = dynloader.o @INET_ATON@ @STRERROR@ @MISSING_RANDOM@ @SRANDOM@ ! OBJS+= @GETHOSTNAME@ @GETRUSAGE@ @MEMCMP@ @STRCASECMP@ @TAS@ @ISINF@ OBJS+= @STRTOL@ @STRTOUL@ @SNPRINTF@ ifdef STRDUP OBJS += $(top_builddir)/src/utils/strdup.o
Peter Eisentraut <peter_e@gmx.net> writes: > At a glance, this patch looks okay. However, since this issue does not > represent a regression from 7.1 I'm not exactly in favour of installing it > now. We want to get a release out, so I think we need to get stricter in > those matters. And this patch is not exactly trivial. You're being way too harsh on it. The configure test is exactly the standard AC_FUNC_MEMCMP test, tweaked to output its result the same way our other port inclusions do. The memcmp implementation is also well tested, being lifted from NetBSD. Where's the problem? Clearly it should be tested, and I presume Tatsuo will do that, but my vote is to apply it. Why should we drop SunOS off the list of supported ports? regards, tom lane
> Clearly it should be tested, and I presume Tatsuo will do that, > but my vote is to apply it. Why should we drop SunOS off the list > of supported ports? Ok. I have tested patches from Bruce. Now tests for bit passed. Remaining issues seem that strtol() is broken on SunOS4, not detecting an overflow, which causes int4 and some of other tests failure. Should we use our own strtol()? -- Tatsuo Ishii *** ./expected/int4.out Wed Mar 15 08:06:56 2000 --- ./results/int4.out Thu Dec 20 10:22:52 2001 *************** *** 14,20 **** INSERT INTO INT4_TBL(f1) VALUES ('-2147483647'); -- bad input values -- should give warnings INSERT INTO INT4_TBL(f1) VALUES ('1000000000000'); - ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range INSERT INTO INT4_TBL(f1) VALUES ('asdf'); ERROR: pg_atoi: error in "asdf": can't parse "asdf" SELECT '' AS five, INT4_TBL.*; --- 14,19 ---- *************** *** 25,31 **** | -123456 | 2147483647 | -2147483647 ! (5 rows) SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0'; four | f1 --- 24,31 ---- | -123456 | 2147483647 | -2147483647 ! | -727379968 ! (6 rows) SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0'; four | f1 *************** *** 34,40 **** | -123456 | 2147483647 | -2147483647 ! (4 rows) SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0'; four | f1 --- 34,41 ---- | -123456 | 2147483647 | -2147483647 ! | -727379968 ! (5 rows) SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0'; four | f1 *************** *** 43,49 **** | -123456 | 2147483647 | -2147483647 ! (4 rows) SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0'; one | f1 --- 44,51 ---- | -123456 | 2147483647 | -2147483647 ! | -727379968 ! (5 rows) SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0'; one | f1 *************** *** 62,75 **** -----+------------- | -123456 | -2147483647 ! (2 rows) SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0'; two | f1 -----+------------- | -123456 | -2147483647 ! (2 rows) SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0'; three | f1 --- 64,79 ---- -----+------------- | -123456 | -2147483647 ! | -727379968 ! (3 rows) SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0'; two | f1 -----+------------- | -123456 | -2147483647 ! | -727379968 ! (3 rows) SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0'; three | f1 *************** *** 77,83 **** | 0 | -123456 | -2147483647 ! (3 rows) SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0'; three | f1 --- 81,88 ---- | 0 | -123456 | -2147483647 ! | -727379968 ! (4 rows) SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0'; three | f1 *************** *** 85,91 **** | 0 | -123456 | -2147483647 ! (3 rows) SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0'; two | f1 --- 90,97 ---- | 0 | -123456 | -2147483647 ! | -727379968 ! (4 rows) SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0'; two | f1 *************** *** 127,157 **** -- any evens SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0'; three | f1 ! -------+--------- | 0 | 123456 | -123456 ! (3 rows) SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i; five | f1 | x ! ------+-------------+--------- | 0 | 0 | 123456 | 246912 | -123456 | -246912 | 2147483647 | -2 | -2147483647 | 2 ! (5 rows) SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i; five | f1 | x ! ------+-------------+--------- | 0 | 0 | 123456 | 246912 | -123456 | -246912 | 2147483647 | -2 | -2147483647 | 2 ! (5 rows) SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i; five | f1 | x --- 133,166 ---- -- any evens SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0'; three | f1 ! -------+------------ | 0 | 123456 | -123456 ! | -727379968 ! (4 rows) SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i; five | f1 | x ! ------+-------------+------------- | 0 | 0 | 123456 | 246912 | -123456 | -246912 | 2147483647 | -2 | -2147483647 | 2 ! | -727379968 | -1454759936 ! (6 rows) SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i; five | f1 | x ! ------+-------------+------------- | 0 | 0 | 123456 | 246912 | -123456 | -246912 | 2147483647 | -2 | -2147483647 | 2 ! | -727379968 | -1454759936 ! (6 rows) SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 161,167 **** | -123456 | -123454 | 2147483647 | -2147483647 | -2147483647 | -2147483645 ! (5 rows) SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i; five | f1 | x --- 170,177 ---- | -123456 | -123454 | 2147483647 | -2147483647 | -2147483647 | -2147483645 ! | -727379968 | -727379966 ! (6 rows) SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 171,177 **** | -123456 | -123454 | 2147483647 | -2147483647 | -2147483647 | -2147483645 ! (5 rows) SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i; five | f1 | x --- 181,188 ---- | -123456 | -123454 | 2147483647 | -2147483647 | -2147483647 | -2147483645 ! | -727379968 | -727379966 ! (6 rows) SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 181,187 **** | -123456 | -123458 | 2147483647 | 2147483645 | -2147483647 | 2147483647 ! (5 rows) SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i; five | f1 | x --- 192,199 ---- | -123456 | -123458 | 2147483647 | 2147483645 | -2147483647 | 2147483647 ! | -727379968 | -727379970 ! (6 rows) SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 191,197 **** | -123456 | -123458 | 2147483647 | 2147483645 | -2147483647 | 2147483647 ! (5 rows) SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i; five | f1 | x --- 203,210 ---- | -123456 | -123458 | 2147483647 | 2147483645 | -2147483647 | 2147483647 ! | -727379968 | -727379970 ! (6 rows) SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 201,207 **** | -123456 | -61728 | 2147483647 | 1073741823 | -2147483647 | -1073741823 ! (5 rows) SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i; five | f1 | x --- 214,221 ---- | -123456 | -61728 | 2147483647 | 1073741823 | -2147483647 | -1073741823 ! | -727379968 | -363689984 ! (6 rows) SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i; five | f1 | x *************** *** 211,217 **** | -123456 | -61728 | 2147483647 | 1073741823 | -2147483647 | -1073741823 ! (5 rows) -- -- more complex expressions --- 225,232 ---- | -123456 | -61728 | 2147483647 | 1073741823 | -2147483647 | -1073741823 ! | -727379968 | -363689984 ! (6 rows) -- -- more complex expressions ====================================================================== *** ./expected/numerology.out Thu Mar 16 08:31:06 2000 --- ./results/numerology.out Thu Dec 20 10:25:54 2001 *************** *** 17,22 **** --- 17,23 ---- ten | f1 -----+------------- | -2147483647 + | -727379968 | -123456 | -32767 | -1234 *************** *** 26,32 **** | 32767 | 123456 | 2147483647 ! (10 rows) -- int4 CREATE TABLE TEMP_INT4 (f1 INT4); --- 27,33 ---- | 32767 | 123456 | 2147483647 ! (11 rows) -- int4 CREATE TABLE TEMP_INT4 (f1 INT4); ====================================================================== *** ./expected/geometry.out Fri Nov 30 03:57:31 2001 --- ./results/geometry.out Thu Dec 20 10:26:46 2001 *************** *** 150,160 **** six | box -----+---------------------------------------------------------------------------- | (2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964) ! | (71.7106781186548,72.7106781186548),(-69.7106781186548,-68.7106781186548) ! | (4.53553390593274,6.53553390593274),(-2.53553390593274,-0.535533905932738) ! | (3.12132034355964,4.12132034355964),(-1.12132034355964,-0.121320343559643) | (107.071067811865,207.071067811865),(92.9289321881345,192.928932188135) ! | (170.710678118655,70.7106781186548),(29.2893218813452,-70.7106781186548) (6 rows) -- translation --- 150,160 ---- six | box -----+---------------------------------------------------------------------------- | (2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964) ! | (71.7106781186547,72.7106781186547),(-69.7106781186547,-68.7106781186547) ! | (4.53553390593274,6.53553390593274),(-2.53553390593274,-0.535533905932737) ! | (3.12132034355964,4.12132034355964),(-1.12132034355964,-0.121320343559642) | (107.071067811865,207.071067811865),(92.9289321881345,192.928932188135) ! | (170.710678118655,70.7106781186547),(29.2893218813453,-70.7106781186547) (6 rows) -- translation *************** *** 445,452 **** -----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ((-3,0),(-2.59807621135076,1.50000000000442),(-1.49999999999116,2.59807621135842),(1.53102359078377e-11,3),(1.50000000001768,2.59807621134311),(2.59807621136607,1.4999999999779),(3,-3.06204718156754e-11),(2.59807621133545,-1.50000000003094),(1.49999999996464,-2.59807621137373),(-4.59307077235131e-11,-3),(-1.5000000000442,-2.5980762113278),(-2.59807621138138,-1.49999999995138)) | ((-99,2),(-85.6025403783588,52.0000000001473),(-48.9999999997054,88.602540378614),(1.00000000051034,102),(51.0000000005893,88.6025403781036),(87.6025403788692,51.9999999992634),(101,1.99999999897932),(87.6025403778485,-48.0000000010313),(50.9999999988214,-84.6025403791243),(0.999999998468976,-98),(-49.0000000014732,-84.6025403775933),(-85.6025403793795,-47.9999999983795)) ! | ((-4,3),(-3.33012701891794,5.50000000000737),(-1.49999999998527,7.3301270189307),(1.00000000002552,8),(3.50000000002946,7.33012701890518),(5.33012701894346,5.49999999996317),(6,2.99999999994897),(5.33012701889242,0.499999999948437),(3.49999999994107,-1.33012701895622),(0.999999999923449,-2),(-1.50000000007366,-1.33012701887966),(-3.33012701896897,0.500000000081028)) ! | ((-2,2),(-1.59807621135076,3.50000000000442),(-0.499999999991161,4.59807621135842),(1.00000000001531,5),(2.50000000001768,4.59807621134311),(3.59807621136607,3.4999999999779),(4,1.99999999996938),(3.59807621133545,0.499999999969062),(2.49999999996464,-0.59807621137373),(0.999999999954069,-1),(-0.500000000044197,-0.598076211327799),(-1.59807621138138,0.500000000048617)) | ((90,200),(91.3397459621641,205.000000000015),(95.0000000000295,208.660254037861),(100.000000000051,210),(105.000000000059,208.66025403781),(108.660254037887,204.999999999926),(110,199.999999999898),(108.660254037785,194.999999999897),(104.999999999882,191.339745962088),(99.9999999998469,190),(94.9999999998527,191.339745962241),(91.3397459620621,195.000000000162)) | ((0,0),(13.3974596216412,50.0000000001473),(50.0000000002946,86.602540378614),(100.00000000051,100),(150.000000000589,86.6025403781036),(186.602540378869,49.9999999992634),(200,-1.02068239385585e-09),(186.602540377848,-50.0000000010313),(149.999999998821,-86.6025403791243),(99.999999998469,-100),(49.9999999985268,-86.6025403775933),(13.3974596206205,-49.9999999983795)) (6 rows) --- 445,452 ---- -----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ((-3,0),(-2.59807621135076,1.50000000000442),(-1.49999999999116,2.59807621135842),(1.53102359078377e-11,3),(1.50000000001768,2.59807621134311),(2.59807621136607,1.4999999999779),(3,-3.06204718156754e-11),(2.59807621133545,-1.50000000003094),(1.49999999996464,-2.59807621137373),(-4.59307077235131e-11,-3),(-1.5000000000442,-2.5980762113278),(-2.59807621138138,-1.49999999995138)) | ((-99,2),(-85.6025403783588,52.0000000001473),(-48.9999999997054,88.602540378614),(1.00000000051034,102),(51.0000000005893,88.6025403781036),(87.6025403788692,51.9999999992634),(101,1.99999999897932),(87.6025403778485,-48.0000000010313),(50.9999999988214,-84.6025403791243),(0.999999998468976,-98),(-49.0000000014732,-84.6025403775933),(-85.6025403793795,-47.9999999983795)) ! | ((-4,3),(-3.33012701891794,5.50000000000737),(-1.49999999998527,7.3301270189307),(1.00000000002552,8),(3.50000000002946,7.33012701890518),(5.33012701894346,5.49999999996317),(6,2.99999999994897),(5.33012701889242,0.499999999948437),(3.49999999994107,-1.33012701895622),(0.999999999923449,-2),(-1.50000000007366,-1.33012701887967),(-3.33012701896897,0.500000000081028)) ! | ((-2,2),(-1.59807621135076,3.50000000000442),(-0.499999999991161,4.59807621135842),(1.00000000001531,5),(2.50000000001768,4.59807621134311),(3.59807621136607,3.4999999999779),(4,1.99999999996938),(3.59807621133545,0.499999999969062),(2.49999999996464,-0.598076211373729),(0.999999999954069,-1),(-0.500000000044197,-0.598076211327799),(-1.59807621138138,0.500000000048616)) | ((90,200),(91.3397459621641,205.000000000015),(95.0000000000295,208.660254037861),(100.000000000051,210),(105.000000000059,208.66025403781),(108.660254037887,204.999999999926),(110,199.999999999898),(108.660254037785,194.999999999897),(104.999999999882,191.339745962088),(99.9999999998469,190),(94.9999999998527,191.339745962241),(91.3397459620621,195.000000000162)) | ((0,0),(13.3974596216412,50.0000000001473),(50.0000000002946,86.602540378614),(100.00000000051,100),(150.000000000589,86.6025403781036),(186.602540378869,49.9999999992634),(200,-1.02068239385585e-09),(186.602540377848,-50.0000000010313),(149.999999998821,-86.6025403791243),(99.999999998469,-100),(49.9999999985268,-86.6025403775933),(13.3974596206205,-49.9999999983795)) (6 rows) *************** *** 457,467 **** six | polygon -----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ((-3,0),(-2.12132034355423,2.12132034356506),(1.53102359078377e-11,3),(2.12132034357588,2.1213203435434),(3,-3.06204718156754e-11),(2.12132034353258,-2.12132034358671),(-4.59307077235131e-11,-3),(-2.12132034359753,-2.12132034352175)) ! | ((-99,2),(-69.7106781184743,72.7106781188352),(1.00000000051034,102),(71.710678119196,72.7106781181134),(101,1.99999999897932),(71.7106781177526,-68.7106781195569),(0.999999998468976,-98),(-69.7106781199178,-68.7106781173917)) | ((-4,3),(-2.53553390592372,6.53553390594176),(1.00000000002552,8),(4.5355339059598,6.53553390590567),(6,2.99999999994897),(4.53553390588763,-0.535533905977846),(0.999999999923449,-2),(-2.53553390599589,-0.535533905869586)) | ((-2,2),(-1.12132034355423,4.12132034356506),(1.00000000001531,5),(3.12132034357588,4.1213203435434),(4,1.99999999996938),(3.12132034353258,-0.121320343586707),(0.999999999954069,-1),(-1.12132034359753,-0.121320343521752)) | ((90,200),(92.9289321881526,207.071067811884),(100.000000000051,210),(107.07106781192,207.071067811811),(110,199.999999999898),(107.071067811775,192.928932188044),(99.9999999998469,190),(92.9289321880082,192.928932188261)) ! | ((0,0),(29.2893218815257,70.7106781188352),(100.00000000051,100),(170.710678119196,70.7106781181134),(200,-1.02068239385585e-09),(170.710678117753,-70.7106781195569),(99.999999998469,-100),(29.2893218800822,-70.7106781173917)) (6 rows) -- --- 457,467 ---- six | polygon -----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ((-3,0),(-2.12132034355423,2.12132034356506),(1.53102359078377e-11,3),(2.12132034357588,2.1213203435434),(3,-3.06204718156754e-11),(2.12132034353258,-2.12132034358671),(-4.59307077235131e-11,-3),(-2.12132034359753,-2.12132034352175)) ! | ((-99,2),(-69.7106781184743,72.7106781188352),(1.00000000051034,102),(71.710678119196,72.7106781181135),(101,1.99999999897932),(71.7106781177526,-68.7106781195569),(0.999999998468976,-98),(-69.7106781199178,-68.7106781173917)) | ((-4,3),(-2.53553390592372,6.53553390594176),(1.00000000002552,8),(4.5355339059598,6.53553390590567),(6,2.99999999994897),(4.53553390588763,-0.535533905977846),(0.999999999923449,-2),(-2.53553390599589,-0.535533905869586)) | ((-2,2),(-1.12132034355423,4.12132034356506),(1.00000000001531,5),(3.12132034357588,4.1213203435434),(4,1.99999999996938),(3.12132034353258,-0.121320343586707),(0.999999999954069,-1),(-1.12132034359753,-0.121320343521752)) | ((90,200),(92.9289321881526,207.071067811884),(100.000000000051,210),(107.07106781192,207.071067811811),(110,199.999999999898),(107.071067811775,192.928932188044),(99.9999999998469,190),(92.9289321880082,192.928932188261)) ! | ((0,0),(29.2893218815257,70.7106781188352),(100.00000000051,100),(170.710678119196,70.7106781181135),(200,-1.02068239385585e-09),(170.710678117753,-70.7106781195569),(99.999999998469,-100),(29.2893218800822,-70.7106781173917)) (6 rows) -- *************** *** 503,513 **** WHERE (p1.f1 <-> c1.f1) > 0 ORDER BY distance, circle, point using <<; twentyfour | circle | point | distance ! ------------+----------------+------------+------------------- ! | <(100,0),100> | (5.1,34.5) | 0.976531926977964 | <(1,2),3> | (-3,4) | 1.47213595499958 | <(0,0),3> | (-3,4) | 2 ! | <(100,0),100> | (-3,4) | 3.07764064044151 | <(100,0),100> | (-5,-12) | 5.68348972285122 | <(1,3),5> | (-10,0) | 6.40175425099138 | <(1,3),5> | (10,10) | 6.40175425099138 --- 503,513 ---- WHERE (p1.f1 <-> c1.f1) > 0 ORDER BY distance, circle, point using <<; twentyfour | circle | point | distance ! ------------+----------------+------------+------------------ ! | <(100,0),100> | (5.1,34.5) | 0.97653192697797 | <(1,2),3> | (-3,4) | 1.47213595499958 | <(0,0),3> | (-3,4) | 2 ! | <(100,0),100> | (-3,4) | 3.07764064044152 | <(100,0),100> | (-5,-12) | 5.68348972285122 | <(1,3),5> | (-10,0) | 6.40175425099138 | <(1,3),5> | (10,10) | 6.40175425099138 *************** *** 519,525 **** | <(0,0),3> | (10,10) | 11.142135623731 | <(1,3),5> | (-5,-12) | 11.1554944214035 | <(1,2),3> | (-5,-12) | 12.2315462117278 ! | <(1,3),5> | (5.1,34.5) | 26.7657047773224 | <(1,2),3> | (5.1,34.5) | 29.757594539282 | <(0,0),3> | (5.1,34.5) | 31.8749193547455 | <(100,200),10> | (5.1,34.5) | 180.778038568384 --- 519,525 ---- | <(0,0),3> | (10,10) | 11.142135623731 | <(1,3),5> | (-5,-12) | 11.1554944214035 | <(1,2),3> | (-5,-12) | 12.2315462117278 ! | <(1,3),5> | (5.1,34.5) | 26.7657047773223 | <(1,2),3> | (5.1,34.5) | 29.757594539282 | <(0,0),3> | (5.1,34.5) | 31.8749193547455 | <(100,200),10> | (5.1,34.5) | 180.778038568384 ====================================================================== *** ./expected/horology.out Thu Nov 22 03:27:25 2001 --- ./results/horology.out Thu Dec 20 10:26:49 2001 *************** *** 1499,1508 **** | Wed Mar 15 13:14:02 2000 PST | @ 34 years | Tue Mar 15 13:14:02 1966 PST | Sun Dec 31 17:32:01 2000 PST | @ 34 years | Sat Dec 31 17:32:01 1966 PST | Mon Jan 01 17:32:01 2001 PST | @ 34 years | Sun Jan 01 17:32:01 1967 PST ! | Sat Sep 22 18:19:20 2001 PDT | @ 34 years | Fri Sep 22 18:19:20 1967 PDT ! | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours | Thu Jul 31 13:00:00 1969 PDT ! | Thu Jan 01 00:00:00 1970 PST | @ 5 mons | Fri Aug 01 01:00:00 1969 PDT ! | Thu Jan 01 00:00:00 1970 PST | @ 3 mons | Wed Oct 01 01:00:00 1969 PDT | Thu Jan 01 00:00:00 1970 PST | @ 10 days | Mon Dec 22 00:00:00 1969 PST | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 21:56:56 1969 PST | Thu Jan 01 00:00:00 1970 PST | @ 5 hours | Wed Dec 31 19:00:00 1969 PST --- 1499,1508 ---- | Wed Mar 15 13:14:02 2000 PST | @ 34 years | Tue Mar 15 13:14:02 1966 PST | Sun Dec 31 17:32:01 2000 PST | @ 34 years | Sat Dec 31 17:32:01 1966 PST | Mon Jan 01 17:32:01 2001 PST | @ 34 years | Sun Jan 01 17:32:01 1967 PST ! | Sat Sep 22 18:19:20 2001 PDT | @ 34 years | Fri Sep 22 17:19:20 1967 PST ! | Thu Jan 01 00:00:00 1970 PST | @ 5 mons 12 hours | Thu Jul 31 12:00:00 1969 PST ! | Thu Jan 01 00:00:00 1970 PST | @ 5 mons | Fri Aug 01 00:00:00 1969 PST ! | Thu Jan 01 00:00:00 1970 PST | @ 3 mons | Wed Oct 01 00:00:00 1969 PST | Thu Jan 01 00:00:00 1970 PST | @ 10 days | Mon Dec 22 00:00:00 1969 PST | Thu Jan 01 00:00:00 1970 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 21:56:56 1969 PST | Thu Jan 01 00:00:00 1970 PST | @ 5 hours | Wed Dec 31 19:00:00 1969 PST ====================================================================== *** ./expected/union.out Thu Nov 9 11:47:49 2000 --- ./results/union.out Thu Dec 20 10:28:50 2001 *************** *** 163,168 **** --- 163,169 ---- ----------------------- -1.2345678901234e+200 -2147483647 + -727379968 -123456 -1004.3 -34.84 *************** *** 170,176 **** 0 123456 2147483647 ! (9 rows) SELECT f1 AS ten FROM FLOAT8_TBL UNION ALL --- 171,177 ---- 0 123456 2147483647 ! (10 rows) SELECT f1 AS ten FROM FLOAT8_TBL UNION ALL *************** *** 187,193 **** -123456 2147483647 -2147483647 ! (10 rows) SELECT f1 AS five FROM FLOAT8_TBL WHERE f1 BETWEEN -1e6 AND 1e6 --- 188,195 ---- -123456 2147483647 -2147483647 ! -727379968 ! (11 rows) SELECT f1 AS five FROM FLOAT8_TBL WHERE f1 BETWEEN -1e6 AND 1e6 ====================================================================== *** ./expected/random.out Thu Jan 6 15:40:54 2000 --- ./results/random.out Thu Dec 20 10:28:58 2001 *************** *** 25,31 **** GROUP BY random HAVING count(random) > 1; random | count --------+------- ! (0 rows) SELECT random FROM RANDOM_TBL WHERE random NOT BETWEEN 80 AND 120; --- 25,32 ---- GROUP BY random HAVING count(random) > 1; random | count --------+------- ! 105 | 2 ! (1 row) SELECT random FROM RANDOM_TBL WHERE random NOT BETWEEN 80 AND 120; ======================================================================
Tatsuo Ishii <t-ishii@sra.co.jp> writes: > Ok. I have tested patches from Bruce. Now tests for bit passed. > Remaining issues seem that strtol() is broken on SunOS4, not detecting > an overflow, which causes int4 and some of other tests failure. Looks like you might also want to use horology-no-DST-before-1970.out. > Should we use our own strtol()? Mumble. The memcmp fix was all from well-tested parts, but I don't think we have a canned test for strtol breakage available. Also, I believe that the SunOS strtol lossage has been known and tolerated in previous Postgres releases. Since it's not a regression, I'm going to change sides and vote with Peter: let's not fix this one now. regards, tom lane
> Looks like you might also want to use horology-no-DST-before-1970.out. Done. > > Should we use our own strtol()? > > Mumble. The memcmp fix was all from well-tested parts, but I don't > think we have a canned test for strtol breakage available. Also, > I believe that the SunOS strtol lossage has been known and tolerated > in previous Postgres releases. Since it's not a regression, I'm going > to change sides and vote with Peter: let's not fix this one now. Ok. -- Tatsuo Ishii
> Tatsuo Ishii <t-ishii@sra.co.jp> writes: > > Ok. I have tested patches from Bruce. Now tests for bit passed. > > Remaining issues seem that strtol() is broken on SunOS4, not detecting > > an overflow, which causes int4 and some of other tests failure. > > Looks like you might also want to use horology-no-DST-before-1970.out. > > > Should we use our own strtol()? > > Mumble. The memcmp fix was all from well-tested parts, but I don't > think we have a canned test for strtol breakage available. Also, > I believe that the SunOS strtol lossage has been known and tolerated > in previous Postgres releases. Since it's not a regression, I'm going > to change sides and vote with Peter: let's not fix this one now. OK, what do people want with the memcmp() fix? Tatsuo and I say apply, Tom is yes, or was, and Peter is probably no. Can I have more vote either way? I have already posted the patch. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
> Bruce Momjian <pgman@candle.pha.pa.us> writes: > > OK, what do people want with the memcmp() fix? Tatsuo and I say apply, > > Tom is yes, or was, > > Still is. I don't want to gin up a strtol fix from scratch at this > late date in our cycle, but I think that the memcmp fix is safe. OK, good. I will put the strtol on my list for 7.3. The memcmp is much more significant. Overflow is minor for most uses. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Bruce Momjian <pgman@candle.pha.pa.us> writes: > OK, what do people want with the memcmp() fix? Tatsuo and I say apply, > Tom is yes, or was, Still is. I don't want to gin up a strtol fix from scratch at this late date in our cycle, but I think that the memcmp fix is safe. regards, tom lane
> > > OK, what do people want with the memcmp() fix? Tatsuo and I say apply, > > > Tom is yes, or was, > > Still is. I don't want to gin up a strtol fix from scratch at this > > late date in our cycle, but I think that the memcmp fix is safe. > OK, good. I will put the strtol on my list for 7.3. The memcmp is much > more significant. Overflow is minor for most uses. Right. I'll plop SunOS back into the list of supported platforms for this release. Thanks for the work Tatsuo and Bruce! - Thomas
> > > > OK, what do people want with the memcmp() fix? Tatsuo and I say apply, > > > > Tom is yes, or was, > > > Still is. I don't want to gin up a strtol fix from scratch at this > > > late date in our cycle, but I think that the memcmp fix is safe. > > OK, good. I will put the strtol on my list for 7.3. The memcmp is much > > more significant. Overflow is minor for most uses. > > Right. I'll plop SunOS back into the list of supported platforms for > this release. Thanks for the work Tatsuo and Bruce! OK, I have four votes for the patch, and one against. I will apply it now. We can consider SunOS supported. There is the the problem that overflow is not detected by strtol but that is not a critical feature: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000'); - ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range I will try to get that fixed for 7.3. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
> Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Actually, here is a fix for that too. Patch attached but not applied. > > I merely enabled our existing strtol.c for SunOS. > > Ugh. You don't like the unconditional incusion of object files for a port? Is that it? -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Bruce Momjian <pgman@candle.pha.pa.us> writes: > You don't like the unconditional incusion of object files for a port? Right. At least not when there is also a conditional inclusion. regards, tom lane
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Actually, here is a fix for that too. Patch attached but not applied. > I merely enabled our existing strtol.c for SunOS. Ugh. regards, tom lane
> > > > > OK, what do people want with the memcmp() fix? Tatsuo and I say apply, > > > > > Tom is yes, or was, > > > > Still is. I don't want to gin up a strtol fix from scratch at this > > > > late date in our cycle, but I think that the memcmp fix is safe. > > > OK, good. I will put the strtol on my list for 7.3. The memcmp is much > > > more significant. Overflow is minor for most uses. > > > > Right. I'll plop SunOS back into the list of supported platforms for > > this release. Thanks for the work Tatsuo and Bruce! > > OK, I have four votes for the patch, and one against. I will apply it > now. We can consider SunOS supported. There is the the problem that > overflow is not detected by strtol but that is not a critical feature: > > INSERT INTO INT4_TBL(f1) VALUES ('1000000000000'); > - ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range > > I will try to get that fixed for 7.3. Actually, here is a fix for that too. Patch attached but not applied. I merely enabled our existing strtol.c for SunOS. Peter, if you would prefer memcmp.c to be handled the same way, I can do that too, with no configure test at all, merely forcing use on SunOS. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 Index: src/backend/port/Makefile.in =================================================================== RCS file: /cvsroot/pgsql/src/backend/port/Makefile.in,v retrieving revision 1.30 diff -c -r1.30 Makefile.in *** src/backend/port/Makefile.in 2001/12/20 21:23:05 1.30 --- src/backend/port/Makefile.in 2001/12/20 21:25:04 *************** *** 36,41 **** --- 36,44 ---- ifeq ($(PORTNAME), darwin) OBJS += darwin/SUBSYS.o endif + ifeq ($(PORTNAME), sunos) + OBJS += strtol.o + endif all: SUBSYS.o
> Bruce Momjian <pgman@candle.pha.pa.us> writes: > > You don't like the unconditional incusion of object files for a port? > > Right. At least not when there is also a conditional inclusion. Wow, that would be bad. :-) Anyway, I just threw out the idea, particularly if Peter wants to remove the configure test for memcmp(). However, I am sure others like the memcmp configures test more. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
> > Right. I'll plop SunOS back into the list of supported platforms for > > this release. Thanks for the work Tatsuo and Bruce! > > OK, I have four votes for the patch, and one against. I will apply it > now. We can consider SunOS supported. There is the the problem that > overflow is not detected by strtol but that is not a critical feature: > > INSERT INTO INT4_TBL(f1) VALUES ('1000000000000'); > - ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range > > I will try to get that fixed for 7.3. Please note that (as I said before), I only tested the serial regression test. I did not execute the parallel test. -- Tatsuo Ishii