]> err.no Git - varnish/commitdiff
Clean up some of the fallout from the Solaris patch - mostly configure
authordes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 20 Oct 2008 20:02:48 +0000 (20:02 +0000)
committerdes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 20 Oct 2008 20:02:48 +0000 (20:02 +0000)
script breakage.  In particular, disable the sendfile() check, as Solaris
doesn't have a working sendfile() any more than Linux does.  Actually, the
Solaris sendfile code was never compiled or used, because the #ifdefs in
cache_pool.c were all wrong.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3338 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/Makefile.am
varnish-cache/bin/varnishd/cache_pool.c
varnish-cache/bin/varnishd/storage_umem.c
varnish-cache/configure.ac

index b94a9d31534f7ba5f20e4e286b899af06c3e4333..d4409a32fb91de0438f6927b2a96c084470c0ca0 100644 (file)
@@ -80,7 +80,7 @@ varnishd_LDADD = \
        $(top_builddir)/lib/libvarnishcompat/libvarnishcompat.la \
        $(top_builddir)/lib/libvcl/libvcl.la \
        @JEMALLOC_LDADD@ \
-       ${DL_LIBS} ${PTHREAD_LIBS} ${NET_LIBS} ${LIBM}
+       ${DL_LIBS} ${PTHREAD_LIBS} ${NET_LIBS} ${LIBM} ${LIBUMEM}
 
 EXTRA_DIST = default.vcl
 DISTCLEANFILES = default_vcl.h
@@ -93,4 +93,3 @@ default_vcl.h:        default.vcl Makefile
 
 # Explicitly record dependency
 mgt_vcc.c:     default_vcl.h
-
index 54facbaa0508895672da937c0f88bd5ab0cea0d7..cbd8d8c354a87911c6ad966563ceb06ce9fec6e5 100644 (file)
@@ -193,8 +193,7 @@ WRK_Sendfile(struct worker *w, int fd, off_t off, unsigned len)
                    sendfile(*w->wfd, fd, &off, len) != len)
                        w->werr++;
        } while (0);
-#elif defined(__sun)
-#ifdef HAVE_SENDFILEV
+#elif defined(__sun) && defined(HAVE_SENDFILEV)
        do {
                sendfilevec_t svvec[HTTP_HDR_MAX * 2 + 1];
                size_t xferred = 0, expected = 0;
@@ -217,13 +216,12 @@ WRK_Sendfile(struct worker *w, int fd, off_t off, unsigned len)
                w->liov = 0;
                w->niov = 0;
        } while (0);
-#else
+#elif defined(__sun) && defined(HAVE_SENDFILE)
        do {
                if (WRK_Flush(w) == 0 &&
                    sendfile(*w->wfd, fd, &off, len) != len)
                        w->werr++;
        } while (0);
-#endif
 #else
 #error Unknown sendfile() implementation
 #endif
index e4d27b56955cc001901e3f3bb1713dd0de140f70..8912754fb00c3695fd462a3ca1d76305fb1b1a69 100644 (file)
@@ -33,7 +33,7 @@
 
 #include "config.h"
 
-#ifdef HAVE_UMEM_H
+#ifdef HAVE_LIBUMEM
 
 #include <sys/types.h>
 
index 12690460b6948b8781201e7c5cac43ae0c2c82af..23ed252f8607f87bc2666f3d48e2ed1972e372ce 100644 (file)
@@ -70,8 +70,9 @@ AC_SUBST(LIBM)
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
 AC_HEADER_TIME
-AC_CHECK_HEADERS([sys/socket.h])
+AC_CHECK_HEADERS([sys/filio.h])
 AC_CHECK_HEADERS([sys/mount.h])
+AC_CHECK_HEADERS([sys/socket.h])
 AC_CHECK_HEADERS([sys/statvfs.h])
 AC_CHECK_HEADERS([sys/vfs.h])
 AC_CHECK_HEADERS([netinet/in.h])
@@ -109,7 +110,8 @@ AC_CHECK_FUNCS([pthread_set_name_np])
 AC_CHECK_FUNCS([pthread_mutex_isowned_np])
 LIBS="${save_LIBS}"
 
-## This one is tricky, there are multiple versions
+# sendfile is tricky: there are multiple versions, and most of them
+# don't work.
 case $target in
 *-*-freebsd*)
        AC_CACHE_CHECK([whether sendfile works],
@@ -125,28 +127,37 @@ case $target in
            [ac_cv_so_sendfile_works=yes],
            [ac_cv_so_sendfile_works=no])
          ])
-       if test "$ac_cv_so_sendfile_works" = yes; then
-          AC_DEFINE([SENDFILE_WORKS], [1], [Define if SENDFILE works])
-       fi
-       ;;
+       ;;
+#*-*-solaris*)
+#      save_LIBS="${LIBS}"
+#      LIBS="${NET_LIBS}"
+#      AC_CHECK_LIB(sendfile, sendfile)
+#      AC_CHECK_FUNCS([sendfile])
+#      AC_CHECK_FUNCS([sendfilev])
+#      NET_LIBS="${LIBS}"
+#      LIBS="${save_LIBS}"
+*)
+       AC_MSG_WARN([won't look for sendfile() on $target])
+       ;;
+esac
+if test "$ac_cv_so_sendfile_works" = yes; then
+       AC_DEFINE([SENDFILE_WORKS], [1], [Define if SENDFILE works])
+fi
+
+# Userland slab allocator, available only on Solaris
+case $target in
 *-*-solaris*)
-       AC_CHECK_HEADERS([sys/filio.h])
-       AC_CHECK_LIB(sendfile, sendfile)
-       AC_CHECK_LIB(umem, malloc)
        AC_CHECK_HEADERS([umem.h])
-
-       if test "$ac_cv_lib_sendfile_sendfile" = yes; then
+       if test "$ac_cv_have_umem_h" = yes; then
                save_LIBS="${LIBS}"
-               LIBS="${NET_LIBS}"
-               AC_CHECK_FUNCS([sendfile])
-               AC_CHECK_FUNCS([sendfilev])
+               LIBS=""
+               AC_CHECK_LIB(umem, umem_alloc)
+               LIBUMEM="${LIBS}"
                LIBS="${save_LIBS}"
        fi
        ;;
-*)
-       AC_MSG_WARN([won't look for sendfile() on $target])
-       ;;
 esac
+AC_SUBST(LIBUMEM)
 
 # These functions are provided by libcompat on platforms where they
 # are not available