From: Alexander Wirt
Date: Mon, 18 Feb 2008 23:19:55 +0000 (+0100)
Subject: Imported upstream version 1.2.27
X-Git-Tag: upstream/1.2.27
X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=2eedf5c4e7a94d87d4733234675d79b9c454217b;p=pkg-rrdtool.git
Imported upstream version 1.2.27
---
diff --git a/CHANGES b/CHANGES
index 56bf7d0..cf537f8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,75 @@
+2008-02-17 10:09 oetiker
+
+ * rrdtool-1.2-release: prepare for the release of rrdtool-1.2.27
+
+2008-02-17 10:08 oetiker
+
+ * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+ configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/Makefile.am,
+ src/gdpng.c, src/pngsize.c, src/rrd.h, src/rrd_afm.c,
+ src/rrd_afm.h, src/rrd_afm_data.c, src/rrd_afm_data.h,
+ src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+ src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+ src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+ src/rrd_gfx.c, src/rrd_gfx.h, src/rrd_graph.c,
+ src/rrd_graph_helper.c, src/rrd_hw.c, src/rrd_hw.h,
+ src/rrd_info.c, src/rrd_is_thread_safe.h, src/rrd_last.c,
+ src/rrd_lastupdate.c, src/rrd_not_thread_safe.c, src/rrd_open.c,
+ src/rrd_resize.c, src/rrd_restore.c, src/rrd_rpncalc.c,
+ src/rrd_rpncalc.h, src/rrd_stat.c, src/rrd_thread_safe.c,
+ src/rrd_thread_safe_nt.c, src/rrd_tool.c, src/rrd_tool.h,
+ src/rrd_tune.c, src/rrd_update.c, src/rrd_version.c,
+ src/rrd_xport.c, src/rrd_xport.h, src/rrdupdate.c: prepare for
+ 1.2.27 release
+
+2008-02-14 07:25 oetiker
+
+ * doc/rrdcreate.pod, doc/rrdgraph.pod, doc/rrdgraph_graph.pod,
+ doc/rrdgraph_rpn.pod, doc/rrdtutorial.pod: fixes for better web
+ rendering
+
+2008-02-04 18:17 oetiker
+
+ * COPYRIGHT: added ZPL 2.1 to floss exception
+
+2008-02-01 06:52 oetiker
+
+ * src/rrd_graph.c, trunk/program/src/rrd_graph.c: fixed parsing of
+ fontnames with embeded spaces
+
+2008-01-14 16:47 oetiker
+
+ * bindings/tcl/tclrrd.c, configure.ac, src/rrd_cgi.c: * fix fadvice
+ and madvice inclusion ... again * fix rrdcgi warning * fix
+ warnings in tcl bindings -- Peter Breitenlohner peb mppmu.mpg.de
+
+2008-01-12 18:36 oetiker
+
+ * src/rrd_graph.c: weekday and time are too tight
+
+2007-12-08 22:17 oetiker
+
+ * configure.ac: fixing the solaris build
+
+2007-11-23 18:18 oetiker
+
+ * netware/Makefile, src/rrd_update.c, win32/Makefile: updates for
+ netware and mingw32 ... allows for crosscompilation
+
+2007-11-22 12:33 oetiker
+
+ * src/rrd_update.c: make update compile for mingw32 3.4.5
+
+2007-11-21 10:51 oetiker
+
+ * configure.ac: fixedspellingfor netbsd
+
+2007-11-21 06:57 oetiker
+
+ * bindings/perl-shared/Makefile.PL, configure.ac, src/rrd_tool.h,
+ src/rrd_update.c: * improve portability of compile environment to
+ netbsd and solaris
+
2007-11-20 00:15 oetiker
* bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
diff --git a/COPYRIGHT b/COPYRIGHT
index ab5c695..22c971f 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,90 +1,90 @@
- RRDTOOL - Round Robin Database Tool
- A tool for fast logging of numerical data graphical display
- of this data.
-
- Copyright (c) 1998-2006 Tobias Oetiker
- All rights reserved.
-
- GNU GPL License
- ===============
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
- FLOSS License Exception
- =======================
- (Adapted from http://www.mysql.com/company/legal/licensing/foss-exception.html)
-
- I want specified Free/Libre and Open Source Software ("FLOSS")
- applications to be able to use specified GPL-licensed RRDtool
- libraries (the "Program") despite the fact that not all FLOSS licenses are
- compatible with version 2 of the GNU General Public License (the "GPL").
-
- As a special exception to the terms and conditions of version 2.0 of the GPL:
-
- You are free to distribute a Derivative Work that is formed entirely from
- the Program and one or more works (each, a "FLOSS Work") licensed under one
- or more of the licenses listed below, as long as:
-
- 1. You obey the GPL in all respects for the Program and the Derivative
- Work, except for identifiable sections of the Derivative Work which are
- not derived from the Program, and which can reasonably be considered
- independent and separate works in themselves,
-
- 2. all identifiable sections of the Derivative Work which are not derived
- from the Program, and which can reasonably be considered independent and
- separate works in themselves,
-
- 1. are distributed subject to one of the FLOSS licenses listed
- below, and
-
- 2. the object code or executable form of those sections are
- accompanied by the complete corresponding machine-readable source
- code for those sections on the same medium and under the same FLOSS
- license as the corresponding object code or executable forms of
- those sections, and
-
- 3. any works which are aggregated with the Program or with a Derivative
- Work on a volume of a storage or distribution medium in accordance with
- the GPL, can reasonably be considered independent and separate works in
- themselves which are not derivatives of either the Program, a Derivative
- Work or a FLOSS Work.
-
- If the above conditions are not met, then the Program may only be copied,
- modified, distributed or used under the terms and conditions of the GPL.
-
- FLOSS License List
- ==================
- License name Version(s)/Copyright Date
- Academic Free License 2.0
- Apache Software License 1.0/1.1/2.0
- Apple Public Source License 2.0
- Artistic license From Perl 5.8.0
- BSD license "July 22 1999"
- Common Public License 1.0
- GNU Library or "Lesser" General Public License (LGPL) 2.0/2.1
- IBM Public License, Version 1.0
- Jabber Open Source License 1.0
- MIT License (As listed in file MIT-License.txt) -
- Mozilla Public License (MPL) 1.0/1.1
- Open Software License 2.0
- OpenSSL license (with original SSLeay license) "2003" ("1998")
- PHP License 3.0
- Python license (CNRI Python License) -
- Python Software Foundation License 2.1.1
- Sleepycat License "1999"
- W3C License "2001"
- X11 License "2001"
- Zlib/libpng License -
- Zope Public License 2.0
+RRDTOOL - Round Robin Database Tool
+A tool for fast logging of numerical data graphical display
+of this data.
+
+Copyright (c) 1998-2008 Tobias Oetiker
+All rights reserved.
+
+GNU GPL License
+===============
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+FLOSS License Exception
+=======================
+(Adapted from http://www.mysql.com/company/legal/licensing/foss-exception.html)
+
+I want specified Free/Libre and Open Source Software ("FLOSS")
+applications to be able to use specified GPL-licensed RRDtool
+libraries (the "Program") despite the fact that not all FLOSS licenses are
+compatible with version 2 of the GNU General Public License (the "GPL").
+
+As a special exception to the terms and conditions of version 2.0 of the GPL:
+
+You are free to distribute a Derivative Work that is formed entirely from
+the Program and one or more works (each, a "FLOSS Work") licensed under one
+or more of the licenses listed below, as long as:
+
+1. You obey the GPL in all respects for the Program and the Derivative
+Work, except for identifiable sections of the Derivative Work which are
+not derived from the Program, and which can reasonably be considered
+independent and separate works in themselves,
+
+2. all identifiable sections of the Derivative Work which are not derived
+from the Program, and which can reasonably be considered independent and
+separate works in themselves,
+
+1. are distributed subject to one of the FLOSS licenses listed
+below, and
+
+2. the object code or executable form of those sections are
+accompanied by the complete corresponding machine-readable source
+code for those sections on the same medium and under the same FLOSS
+license as the corresponding object code or executable forms of
+those sections, and
+
+3. any works which are aggregated with the Program or with a Derivative
+Work on a volume of a storage or distribution medium in accordance with
+the GPL, can reasonably be considered independent and separate works in
+themselves which are not derivatives of either the Program, a Derivative
+Work or a FLOSS Work.
+
+If the above conditions are not met, then the Program may only be copied,
+modified, distributed or used under the terms and conditions of the GPL.
+
+FLOSS License List
+==================
+License name Version(s)/Copyright Date
+Academic Free License 2.0
+Apache Software License 1.0/1.1/2.0
+Apple Public Source License 2.0
+Artistic license From Perl 5.8.0
+BSD license "July 22 1999"
+Common Public License 1.0
+GNU Library or "Lesser" General Public License (LGPL) 2.0/2.1
+IBM Public License, Version 1.0
+Jabber Open Source License 1.0
+MIT License (As listed in file MIT-License.txt) -
+Mozilla Public License (MPL) 1.0/1.1
+Open Software License 2.0
+OpenSSL license (with original SSLeay license) "2003" ("1998")
+PHP License 3.0
+Python license (CNRI Python License) -
+Python Software Foundation License 2.1.1
+Sleepycat License "1999"
+W3C License "2001"
+X11 License "2001"
+Zlib/libpng License -
+Zope Public License 2.0/2.1
diff --git a/bindings/perl-piped/RRDp.pm b/bindings/perl-piped/RRDp.pm
index 3dce004..bc95a12 100644
--- a/bindings/perl-piped/RRDp.pm
+++ b/bindings/perl-piped/RRDp.pm
@@ -120,7 +120,7 @@ sub cmd (@);
sub end ();
sub read ();
-$VERSION=1.2026;
+$VERSION=1.2027;
sub start ($){
croak "rrdtool is already running"
diff --git a/bindings/perl-shared/Makefile.PL b/bindings/perl-shared/Makefile.PL
index 863444c..c31f3b9 100644
--- a/bindings/perl-shared/Makefile.PL
+++ b/bindings/perl-shared/Makefile.PL
@@ -30,8 +30,11 @@ WriteMakefile(
'VERSION_FROM' => 'RRDs.pm', # finds $VERSION
'DEFINE' => "-DPERLPATCHLEVEL=$Config{PATCHLEVEL}",
'INC' => '-I../../src',
+ 'LIBS' => '-lm -lpng -lz -lfreetype',
# Perl will figure out which one is valid
- 'dynamic_lib' => {'OTHERLDFLAGS' => "$librrd -lm"},
+ #'dynamic_lib' => {'OTHERLDFLAGS' => "$librrd -lm"},
+ 'depend' => {'RRDs.c' => "../../src/librrd.la"},
+ 'LDFROM' => '$(OBJECT) '.$librrd,
'realclean' => {FILES => 't/demo?.rrd t/demo?.png' }
);
diff --git a/bindings/perl-shared/RRDs.pm b/bindings/perl-shared/RRDs.pm
index 2c02dad..44b4d8c 100644
--- a/bindings/perl-shared/RRDs.pm
+++ b/bindings/perl-shared/RRDs.pm
@@ -7,7 +7,7 @@ use vars qw(@ISA $VERSION);
require DynaLoader;
-$VERSION=1.2026;
+$VERSION=1.2027;
bootstrap RRDs $VERSION;
diff --git a/bindings/tcl/tclrrd.c b/bindings/tcl/tclrrd.c
index b1b43cc..0086cc8 100644
--- a/bindings/tcl/tclrrd.c
+++ b/bindings/tcl/tclrrd.c
@@ -8,7 +8,7 @@
* See the file "COPYING" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * $Id: tclrrd.c 1044 2007-05-02 05:08:21Z oetiker $
+ * $Id: tclrrd.c 1268 2008-01-14 16:47:23Z oetiker $
*/
@@ -100,6 +100,8 @@ Rrd_Create(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
unsigned long int pdp_step = 300;
struct rrd_time_value last_up_tv;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
for (argv_i = 1; argv_i < argc; argv_i++) {
@@ -169,7 +171,7 @@ Rrd_Create(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
return TCL_ERROR;
}
- rrd_create_r(argv2[1], pdp_step, last_up, argc - 2, argv2 + 2);
+ rrd_create_r(argv2[1], pdp_step, last_up, argc - 2, (const char **) argv2 + 2);
getopt_cleanup(argc, argv2);
@@ -189,6 +191,8 @@ Rrd_Create(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
static int
Rrd_Dump(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
+ (void) clientData; /* slience gcc */
+
if (argc < 2) {
Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
(char *) NULL);
@@ -215,6 +219,8 @@ Rrd_Dump(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv
static int
Rrd_Last(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv[])
{
+ (void) clientData; /* slience gcc */
+
time_t t;
if (argc < 2) {
@@ -246,6 +252,8 @@ Rrd_Update(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
int argv_i;
char **argv2, *template = NULL;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
for (argv_i = 1; argv_i < argc; argv_i++) {
@@ -291,7 +299,7 @@ Rrd_Update(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
return TCL_ERROR;
}
- rrd_update_r(argv2[1], template, argc - 2, argv2 + 2);
+ rrd_update_r(argv2[1], template, argc - 2, (const char **) argv2 + 2);
if (template != NULL) {
free(template);
@@ -319,6 +327,8 @@ Rrd_Lastupdate(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char
Tcl_Obj *listPtr;
unsigned long ds_cnt, i;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
if (rrd_lastupdate(argc-1, argv2, &last_update,
&ds_cnt, &ds_namv, &last_ds) == 0) {
@@ -358,6 +368,8 @@ Rrd_Fetch(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *arg
char s[30];
char **argv2;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
if (rrd_fetch(argc, argv2, &start, &end, &step,
&ds_cnt, &ds_namv, &data) != -1) {
@@ -402,6 +414,8 @@ Rrd_Graph(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *arg
char **argv2;
CONST84 char *save;
+ (void) clientData; /* slience gcc */
+
/*
* If the "filename" is a Tcl fileID, then arrange for rrd_graph() to write to
* that file descriptor. Will this work with windoze? I have no idea.
@@ -496,6 +510,8 @@ Rrd_Tune(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *argv
{
char **argv2;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
rrd_tune(argc, argv2);
getopt_cleanup(argc, argv2);
@@ -517,6 +533,8 @@ Rrd_Resize(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *ar
{
char **argv2;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
rrd_resize(argc, argv2);
getopt_cleanup(argc, argv2);
@@ -538,6 +556,8 @@ Rrd_Restore(ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char *a
{
char **argv2;
+ (void) clientData; /* slience gcc */
+
argv2 = getopt_init(argc, argv);
rrd_restore(argc, argv2);
getopt_cleanup(argc, argv2);
diff --git a/configure b/configure
index 715e1f9..105dfce 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for rrdtool 1.2.26.
+# Generated by GNU Autoconf 2.61 for rrdtool 1.2.27.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -726,8 +726,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='rrdtool'
PACKAGE_TARNAME='rrdtool'
-PACKAGE_VERSION='1.2.26'
-PACKAGE_STRING='rrdtool 1.2.26'
+PACKAGE_VERSION='1.2.27'
+PACKAGE_STRING='rrdtool 1.2.27'
PACKAGE_BUGREPORT=''
ac_default_prefix=/usr/local/rrdtool-$PACKAGE_VERSION
@@ -1453,7 +1453,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures rrdtool 1.2.26 to adapt to many kinds of systems.
+\`configure' configures rrdtool 1.2.27 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1524,7 +1524,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rrdtool 1.2.26:";;
+ short | recursive ) echo "Configuration of rrdtool 1.2.27:";;
esac
cat <<\_ACEOF
@@ -1660,7 +1660,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rrdtool configure 1.2.26
+rrdtool configure 1.2.27
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1674,7 +1674,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by rrdtool $as_me 1.2.26, which was
+It was created by rrdtool $as_me 1.2.27, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2027,7 +2027,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-NUMVERS=1.2026
+NUMVERS=1.2027
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2472,7 +2472,7 @@ fi
# Define the identity of the package.
PACKAGE='rrdtool'
- VERSION='1.2.26'
+ VERSION='1.2.27'
cat >>confdefs.h <<_ACEOF
@@ -19844,7 +19844,8 @@ fi
-for ac_header in sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h float.h strings.h
+
+for ac_header in features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h float.h strings.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
@@ -21170,9 +21171,18 @@ _ACEOF
fi
-{ echo "$as_me:$LINENO: checking whether posix_fadvise is declared" >&5
-echo $ECHO_N "checking whether posix_fadvise is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_posix_fadvise+set}" = set; then
+
+if test "x$enable_mmap" = "xyes"; then
+ case "$host" in
+ *cygwin*)
+ # the normal mmap test does not work in cygwin
+
+for ac_func in mmap
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -21181,28 +21191,53 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#define _XOPEN_SOURCE 600
-#include
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
int
main ()
{
-#ifndef posix_fadvise
- (void) posix_fadvise;
-#endif
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -21211,58 +21246,60 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_cv_have_decl_posix_fadvise=yes
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_have_decl_posix_fadvise=no
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_posix_fadvise" >&5
-echo "${ECHO_T}$ac_cv_have_decl_posix_fadvise" >&6; }
-if test $ac_cv_have_decl_posix_fadvise = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POSIX_FADVISE 1
-_ACEOF
-
-
-else
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POSIX_FADVISE 0
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-
fi
+done
+ if test "x$ac_cv_func_mmap" = "xyes"; then
+ ac_cv_func_mmap_fixed_mapped=yes
+ fi
+ ;;
+ *)
-{ echo "$as_me:$LINENO: checking whether madvise is declared" >&5
-echo $ECHO_N "checking whether madvise is declared... $ECHO_C" >&6; }
-if test "${ac_cv_have_decl_madvise+set}" = set; then
+for ac_header in sys/mman.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
else
- cat >conftest.$ac_ext <<_ACEOF
+ # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include
-
-int
-main ()
-{
-#ifndef madvise
- (void) madvise;
-#endif
-
- ;
- return 0;
-}
+$ac_includes_default
+#include <$ac_header>
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
@@ -21281,33 +21318,1060 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- ac_cv_have_decl_madvise=yes
+ ac_header_compiler=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_have_decl_madvise=no
+ ac_header_compiler=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_madvise" >&5
-echo "${ECHO_T}$ac_cv_have_decl_madvise" >&6; }
-if test $ac_cv_have_decl_madvise = yes; then
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MADVISE 1
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MADVISE 0
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
+fi
+
+done
+
+
+for ac_header in stdlib.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+ ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_func in getpagesize
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+{ echo "$as_me:$LINENO: checking for working mmap" >&5
+echo $ECHO_N "checking for working mmap... $ECHO_C" >&6; }
+if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_mmap_fixed_mapped=no
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+/* malloc might have been renamed as rpl_malloc. */
+#undef malloc
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+ Here is a matrix of mmap possibilities:
+ mmap private not fixed
+ mmap private fixed at somewhere currently unmapped
+ mmap private fixed at somewhere already mapped
+ mmap shared not fixed
+ mmap shared fixed at somewhere currently unmapped
+ mmap shared fixed at somewhere already mapped
+ For private mappings, we should verify that changes cannot be read()
+ back from the file, nor mmap's back from the file at a different
+ address. (There have been systems where private was not correctly
+ implemented like the infamous i386 svr4.0, and systems where the
+ VM page cache was not coherent with the file system buffer cache
+ like early versions of FreeBSD and possibly contemporary NetBSD.)
+ For shared mappings, we should conversely verify that changes get
+ propagated back to all the places they're supposed to be.
+
+ Grep wants private fixed already mapped.
+ The main things grep needs to know about mmap are:
+ * does it exist and is it safe to write into the mmap'd area
+ * how to use it (BSD variants) */
+
+#include
+#include
+
+#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
+char *malloc ();
+#endif
+
+/* This mess was copied from the GNU getpagesize.h. */
+#ifndef HAVE_GETPAGESIZE
+/* Assume that all systems that can run configure have sys/param.h. */
+# ifndef HAVE_SYS_PARAM_H
+# define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+int
+main ()
+{
+ char *data, *data2, *data3;
+ int i, pagesize;
+ int fd;
+
+ pagesize = getpagesize ();
+
+ /* First, make a file with some known garbage in it. */
+ data = (char *) malloc (pagesize);
+ if (!data)
+ return 1;
+ for (i = 0; i < pagesize; ++i)
+ *(data + i) = rand ();
+ umask (0);
+ fd = creat ("conftest.mmap", 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, data, pagesize) != pagesize)
+ return 1;
+ close (fd);
+
+ /* Next, try to mmap the file at a fixed address which already has
+ something else allocated at it. If we can, also make sure that
+ we see the same garbage. */
+ fd = open ("conftest.mmap", O_RDWR);
+ if (fd < 0)
+ return 1;
+ data2 = (char *) malloc (2 * pagesize);
+ if (!data2)
+ return 1;
+ data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
+ if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_FIXED, fd, 0L))
+ return 1;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data2 + i))
+ return 1;
+
+ /* Finally, make sure that changes to the mapped area do not
+ percolate back to the file as seen by read(). (This is a bug on
+ some variants of i386 svr4.0.) */
+ for (i = 0; i < pagesize; ++i)
+ *(data2 + i) = *(data2 + i) + 1;
+ data3 = (char *) malloc (pagesize);
+ if (!data3)
+ return 1;
+ if (read (fd, data3, pagesize) != pagesize)
+ return 1;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data3 + i))
+ return 1;
+ close (fd);
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_mmap_fixed_mapped=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
+echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6; }
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MMAP 1
+_ACEOF
+
+fi
+rm -f conftest.mmap
+
+
+
+
+for ac_func in mmap munmap msync
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ { echo "$as_me:$LINENO: checking whether madvise is declared" >&5
+echo $ECHO_N "checking whether madvise is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_madvise+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef HAVE_SYS_MMAN_H
+ # include
+ #endif
+
+int
+main ()
+{
+#ifndef madvise
+ (void) madvise;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_have_decl_madvise=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_have_decl_madvise=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_madvise" >&5
+echo "${ECHO_T}$ac_cv_have_decl_madvise" >&6; }
+if test $ac_cv_have_decl_madvise = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MADVISE 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MADVISE 0
+_ACEOF
+
+
+fi
+
+
+ if test "x$ac_cv_have_decl_madvise" = "xyes";
+ then
+
+for ac_func in madvise
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ else
+
+for ac_func in posix_madvise
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ if test "x$ac_cv_func_posix_madvise" != "xyes"; then
+ { echo "$as_me:$LINENO: WARNING: madvise() nor posix_madvise() found." >&5
+echo "$as_me: WARNING: madvise() nor posix_madvise() found." >&2;}
+ fi
+ fi
+ ;;
+ esac
+ if test "x$ac_cv_func_mmap" != "xyes";
+ then
+ { { echo "$as_me:$LINENO: error: --enable-mmap requested but mmap() was not detected" >&5
+echo "$as_me: error: --enable-mmap requested but mmap() was not detected" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+{ echo "$as_me:$LINENO: checking whether posix_fadvise is declared" >&5
+echo $ECHO_N "checking whether posix_fadvise is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_posix_fadvise+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#define _XOPEN_SOURCE 600
+#include
+
+int
+main ()
+{
+#ifndef posix_fadvise
+ (void) posix_fadvise;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_have_decl_posix_fadvise=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_have_decl_posix_fadvise=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_posix_fadvise" >&5
+echo "${ECHO_T}$ac_cv_have_decl_posix_fadvise" >&6; }
+if test $ac_cv_have_decl_posix_fadvise = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_POSIX_FADVISE 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_POSIX_FADVISE 0
+_ACEOF
+
+
+fi
+
+
+
+for ac_func in posix_fadvise
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
if test "x$enable_mmap" = xyes; then
@@ -27972,7 +29036,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by rrdtool $as_me 1.2.26, which was
+This file was extended by rrdtool $as_me 1.2.27, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -28025,7 +29089,7 @@ Report bugs to ."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-rrdtool config.status 1.2.26
+rrdtool config.status 1.2.27
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index e09c051..f238427 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,13 +8,13 @@ dnl Inspiration from http://autoconf-archive.cryp.to
dnl tell automake the this script is for rrdtool
dnl the official version number is
dnl a.b.c
-AC_INIT([rrdtool],[1.2.26])
+AC_INIT([rrdtool],[1.2.27])
dnl for testing a numberical version number comes handy
dnl the released version are
dnl a.bccc
dnl the devl versions will be something like
dnl a.b999yymmddhh
-NUMVERS=1.2026
+NUMVERS=1.2027
AC_SUBST(NUMVERS)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
@@ -49,15 +49,106 @@ AH_TOP([
/* realloc does not support NULL as argument */
#undef NO_NULL_REALLOC
+/* lets enable madvise defines in NetBSD */
+#if defined(__NetBSD__)
+# if !defined(_NETBSD_SOURCE)
+# define _NETBSD_SOURCE
+# endif
+#endif
+
])
AH_BOTTOM([
-/* enable posix_fadvise on linux */
-#if defined(HAVE_POSIX_FADVISE) && defined(HAVE_FCNTL_H)
+#ifdef HAVE_FEATURES_H
#define _XOPEN_SOURCE 600
+#undef _BSD_SOURCE /* comment to prevent configure from modifying this line */
+#define _BSD_SOURCE 1
+# include
+#endif
+
+#ifdef HAVE_ERRNO_H
+# include
+#endif
+
+#if defined(HAVE_SYS_MMAN_H)
+#include
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+# include
+#endif
+
+#ifdef HAVE_SYS_PARAM_H
+# include
+#endif
+#ifndef MAXPATH
+# ifdef PATH_MAX
+# define MAXPATH PATH_MAX
+# endif
+#endif
+#ifndef MAXPATH
+/* else try the BSD variant */
+# ifdef MAXPATHLEN
+# define MAXPATH MAXPATHLEN
+# endif
+#endif
+
+#if !defined HAVE_MADVISE && defined HAVE_POSIX_MADVISE
+/* use posix_madvise family */
+# define madvise posix_madvise
+# define MADV_NORMAL POSIX_MADV_NORMAL
+# define MADV_RANDOM POSIX_MADV_RANDOM
+# define MADV_SEQUENTIAL POSIX_MADV_SEQUENTIAL
+# define MADV_WILLNEED POSIX_MADV_WILLNEED
+# define MADV_DONTNEED POSIX_MADV_DONTNEED
+#endif
+
+#if defined POSIX_MADV_RANDOM && !defined MADV_RANDOM
+#define MADV_RANDOM POSIX_MADV_RANDOM
+#endif
+
+
+
+#if defined HAVE_MADVISE || defined HAVE_POSIX_MADVISE
+# define USE_MADVISE 1
+#endif
+
+#ifdef HAVE_SYS_STAT_H
+# include
+#endif
+
+#ifdef HAVE_FCNTL_H
#include
#endif
+#ifdef HAVE_UNISTD_H
+# include
+#endif
+
+#ifdef TIME_WITH_SYS_TIME
+# include
+# include
+#else
+# ifdef HAVE_SYS_TIME_H
+# include
+# else
+# include
+# endif
+#endif
+
+#ifdef HAVE_SYS_TIMES_H
+# include
+#endif
+
+#ifdef HAVE_SYS_RESOURCE_H
+# include
+#if (defined(__svr4__) && defined(__sun__))
+/* Solaris headers (pre 2.6) don't have a getrusage prototype.
+ Use this instead. */
+extern int getrusage(int, struct rusage *);
+#endif /* __svr4__ && __sun__ */
+#endif
+
/* define strrchr, strchr and memcpy, memmove in terms of bsd funcs
make sure you are NOT using bcopy, index or rindex in the code */
@@ -104,12 +195,15 @@ char *strchr (), *strrchr ();
/* for Solaris */
#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
# define HAVE_ISINF 1
+# ifdef isinf
+# undef isinf /* confuse autoconf */
+# endif
# define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
#endif
/* solaris 10 it defines isnan such that only forte can compile it ... bad bad */
#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-# undef isnan
+# undef isnan /* confuse autoconf to NOT remove this */
# define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
#endif
@@ -222,7 +316,7 @@ CONFIGURE_PART(Checking for Header Files)
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_DIRENT
-AC_CHECK_HEADERS(sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h float.h strings.h)
+AC_CHECK_HEADERS( features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h float.h strings.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -250,9 +344,46 @@ dnl of the form HAVE_FUNCTION
AC_CHECK_FUNCS(tzset mbstowcs opendir readdir chdir chroot getuid setlocale strerror strerror_r snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday posix_fadvise madvise)
AC_CHECK_DECLS(fdatasync, [], [], [#include ])
+
+dnl XXX: dunno about windows.. add AC_CHECK_FUNCS(munmap) there too?
+if test "x$enable_mmap" = "xyes"; then
+ case "$host" in
+ *cygwin*)
+ # the normal mmap test does not work in cygwin
+ AC_CHECK_FUNCS(mmap)
+ if test "x$ac_cv_func_mmap" = "xyes"; then
+ ac_cv_func_mmap_fixed_mapped=yes
+ fi
+ ;;
+ *)
+ AC_CHECK_HEADERS(sys/mman.h)
+ AC_FUNC_MMAP
+ AC_CHECK_FUNCS(mmap munmap msync)
+ AC_CHECK_DECLS(madvise, [], [], [#ifdef HAVE_SYS_MMAN_H
+ # include
+ #endif])
+ if test "x$ac_cv_have_decl_madvise" = "xyes";
+ then
+ AC_CHECK_FUNCS(madvise)
+ else
+ AC_CHECK_FUNCS(posix_madvise)
+ if test "x$ac_cv_func_posix_madvise" != "xyes"; then
+ AC_MSG_WARN([madvise() nor posix_madvise() found.])
+ fi
+ fi
+ ;;
+ esac
+ if test "x$ac_cv_func_mmap" != "xyes";
+ then
+ AC_MSG_ERROR([--enable-mmap requested but mmap() was not detected])
+dnl enable_mmap="no"
+ fi
+fi
+
+dnl can we use posix_fadvise
AC_CHECK_DECLS(posix_fadvise, [], [], [#define _XOPEN_SOURCE 600
#include ])
-AC_CHECK_DECLS(madvise, [], [], [#include ])
+AC_CHECK_FUNCS(posix_fadvise)
if test "x$enable_mmap" = xyes; then
case "$host" in
diff --git a/doc/bin_dec_hex.1 b/doc/bin_dec_hex.1
index 7744188..f09d6e2 100644
--- a/doc/bin_dec_hex.1
+++ b/doc/bin_dec_hex.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "BIN_DEC_HEX 1"
-.TH BIN_DEC_HEX 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH BIN_DEC_HEX 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
bin_dec_hex \- How to use binary, decimal, and hexadecimal notation.
.SH "DESCRIPTION"
diff --git a/doc/bin_dec_hex.txt b/doc/bin_dec_hex.txt
index 3063ee6..8b86f19 100644
--- a/doc/bin_dec_hex.txt
+++ b/doc/bin_dec_hex.txt
@@ -371,4 +371,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 BIN_DEC_HEX(1)
+1.2.27 2008-02-17 BIN_DEC_HEX(1)
diff --git a/doc/cdeftutorial.1 b/doc/cdeftutorial.1
index 052edf5..26cd3e9 100644
--- a/doc/cdeftutorial.1
+++ b/doc/cdeftutorial.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "CDEFTUTORIAL 1"
-.TH CDEFTUTORIAL 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH CDEFTUTORIAL 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
cdeftutorial \- Alex van den Bogaerdt's CDEF tutorial
.SH "DESCRIPTION"
diff --git a/doc/cdeftutorial.txt b/doc/cdeftutorial.txt
index 3d01aa7..647b758 100644
--- a/doc/cdeftutorial.txt
+++ b/doc/cdeftutorial.txt
@@ -799,4 +799,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 CDEFTUTORIAL(1)
+1.2.27 2008-02-17 CDEFTUTORIAL(1)
diff --git a/doc/rpntutorial.1 b/doc/rpntutorial.1
index a3b0707..83734a8 100644
--- a/doc/rpntutorial.1
+++ b/doc/rpntutorial.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RPNTUTORIAL 1"
-.TH RPNTUTORIAL 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RPNTUTORIAL 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rpntutorial \- Reading RRDtool RPN Expressions by Steve Rader
.SH "DESCRIPTION"
diff --git a/doc/rpntutorial.txt b/doc/rpntutorial.txt
index 0e733c2..f936d2d 100644
--- a/doc/rpntutorial.txt
+++ b/doc/rpntutorial.txt
@@ -187,4 +187,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RPNTUTORIAL(1)
+1.2.27 2008-02-17 RPNTUTORIAL(1)
diff --git a/doc/rrd-beginners.1 b/doc/rrd-beginners.1
index 9a2772a..5c67f83 100644
--- a/doc/rrd-beginners.1
+++ b/doc/rrd-beginners.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRD-BEGINNERS 1"
-.TH RRD-BEGINNERS 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRD-BEGINNERS 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrd\-beginners \- RRDtool Beginners' Guide
.SH "SYNOPSIS"
diff --git a/doc/rrd-beginners.txt b/doc/rrd-beginners.txt
index dad5251..8c60eeb 100644
--- a/doc/rrd-beginners.txt
+++ b/doc/rrd-beginners.txt
@@ -318,4 +318,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRD-BEGINNERS(1)
+1.2.27 2008-02-17 RRD-BEGINNERS(1)
diff --git a/doc/rrdbuild.1 b/doc/rrdbuild.1
index 964629a..52b88b9 100644
--- a/doc/rrdbuild.1
+++ b/doc/rrdbuild.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDBUILD 1"
-.TH RRDBUILD 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDBUILD 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdbuild \- Instructions for building RRDtool
.SH "DESCRIPTION"
@@ -157,14 +157,14 @@ Depending on the shell you are using, you can do either (bash,zsh):
.PP
.Vb 2
\& BUILD_DIR=/tmp/rrdbuild
-\& INSTALL_DIR=/usr/local/rrdtool\-1.2.26
+\& INSTALL_DIR=/usr/local/rrdtool\-1.2.27
.Ve
.PP
Or if you run tcsh:
.PP
.Vb 2
\& set BUILD_DIR=/tmp/rrdbuild
-\& set INSTALL_DIR=/usr/local/rrdtool\-1.2.26
+\& set INSTALL_DIR=/usr/local/rrdtool\-1.2.27
.Ve
.PP
If your \fI/tmp\fR is mounted with the option noexec (\s-1RHEL\s0 seems todo that) you have to choose
@@ -183,9 +183,9 @@ pre\-installed. Note that these instructions assume that your copies of
could be that they are installed as \fBgtar\fR and \fBgmake\fR on your system.
.PP
.Vb 4
-\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.2.26.tar.gz
-\& tar zxf rrdtool\-1.2.26.tar.gz
-\& cd rrdtool\-1.2.26
+\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.2.27.tar.gz
+\& tar zxf rrdtool\-1.2.27.tar.gz
+\& cd rrdtool\-1.2.27
\& ./configure \-\-prefix=$INSTALL_DIR && make && make install
.Ve
.PP
@@ -322,7 +322,7 @@ tcl setups that would prevent rrdtool from building if they are included in
their current state.
.PP
.Vb 5
-\& cd $BUILD_DIR/rrdtool\-1.2.26
+\& cd $BUILD_DIR/rrdtool\-1.2.27
\& ./configure \-\-prefix=$INSTALL_DIR \-\-disable\-python \-\-disable\-tcl
\& make clean
\& make
diff --git a/doc/rrdbuild.html b/doc/rrdbuild.html
index 2202ec7..455b85d 100644
--- a/doc/rrdbuild.html
+++ b/doc/rrdbuild.html
@@ -67,11 +67,11 @@ ones before you can build RRDtool.
Depending on the shell you are using, you can do either (bash,zsh):
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.26
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.27
If your /tmp is mounted with the option noexec (RHEL seems todo that) you have to choose
a different directory!
Now make sure the BUILD_DIR exists and go there:
@@ -83,9 +83,9 @@ pre-installed. Note that these instructions assume that your copies of
tar and make are actually GNU tar and GNU make respectively. It
could be that they are installed as gtar and gmake on your system.
Ok, this was very optimistic. This try will probably have ended with
configure complaining about several missing libraries. If you are on a
@@ -216,7 +216,7 @@ because it seems that a fair number of people have ill configured python and
tcl setups that would prevent rrdtool from building if they are included in
their current state.
- cd $BUILD_DIR/rrdtool-1.2.26
+ cd $BUILD_DIR/rrdtool-1.2.27
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod
index 07ac7eb..dd3e71e 100644
--- a/doc/rrdbuild.pod
+++ b/doc/rrdbuild.pod
@@ -35,12 +35,12 @@ Once you have decided. Save the two locations into environment variables.
Depending on the shell you are using, you can do either (bash,zsh):
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.26
+ INSTALL_DIR=/usr/local/rrdtool-1.2.27
Or if you run tcsh:
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.26
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.27
If your F is mounted with the option noexec (RHEL seems todo that) you have to choose
a different directory!
@@ -55,9 +55,9 @@ pre-installed. Note that these instructions assume that your copies of
B and B are actually B and B respectively. It
could be that they are installed as B and B on your system.
- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.26.tar.gz
- tar zxf rrdtool-1.2.26.tar.gz
- cd rrdtool-1.2.26
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
+ tar zxf rrdtool-1.2.27.tar.gz
+ cd rrdtool-1.2.27
./configure --prefix=$INSTALL_DIR && make && make install
Ok, this was very optimistic. This try will probably have ended with
@@ -185,7 +185,7 @@ because it seems that a fair number of people have ill configured python and
tcl setups that would prevent rrdtool from building if they are included in
their current state.
- cd $BUILD_DIR/rrdtool-1.2.26
+ cd $BUILD_DIR/rrdtool-1.2.27
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
diff --git a/doc/rrdbuild.txt b/doc/rrdbuild.txt
index 7749d99..d63f139 100644
--- a/doc/rrdbuild.txt
+++ b/doc/rrdbuild.txt
@@ -30,12 +30,12 @@ DDEESSCCRRIIPPTTIIOONN
(bash,zsh):
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.26
+ INSTALL_DIR=/usr/local/rrdtool-1.2.27
Or if you run tcsh:
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.26
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.27
If your _/_t_m_p is mounted with the option noexec (RHEL seems todo that)
you have to choose a different directory!
@@ -50,9 +50,9 @@ DDEESSCCRRIIPPTTIIOONN
ttaarr and mmaakkee are actually GGNNUU ttaarr and GGNNUU mmaakkee respectively. It could
be that they are installed as ggttaarr and ggmmaakkee on your system.
- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.26.tar.gz
- tar zxf rrdtool-1.2.26.tar.gz
- cd rrdtool-1.2.26
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
+ tar zxf rrdtool-1.2.27.tar.gz
+ cd rrdtool-1.2.27
./configure --prefix=$INSTALL_DIR && make && make install
Ok, this was very optimistic. This try will probably have ended with
@@ -171,7 +171,7 @@ DDEESSCCRRIIPPTTIIOONN
python and tcl setups that would prevent rrdtool from building if they
are included in their current state.
- cd $BUILD_DIR/rrdtool-1.2.26
+ cd $BUILD_DIR/rrdtool-1.2.27
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
@@ -190,4 +190,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDBUILD(1)
+1.2.27 2008-02-17 RRDBUILD(1)
diff --git a/doc/rrdcgi.1 b/doc/rrdcgi.1
index 5be0d12..f4e67fb 100644
--- a/doc/rrdcgi.1
+++ b/doc/rrdcgi.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDCGI 1"
-.TH RRDCGI 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDCGI 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdcgi \- Create web pages containing RRD graphs based on templates
.SH "SYNOPSIS"
diff --git a/doc/rrdcgi.txt b/doc/rrdcgi.txt
index 949a8ef..604bbcc 100644
--- a/doc/rrdcgi.txt
+++ b/doc/rrdcgi.txt
@@ -204,4 +204,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDCGI(1)
+1.2.27 2008-02-17 RRDCGI(1)
diff --git a/doc/rrdcreate.1 b/doc/rrdcreate.1
index b18228f..f32da36 100644
--- a/doc/rrdcreate.1
+++ b/doc/rrdcreate.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDCREATE 1"
-.TH RRDCREATE 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDCREATE 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdcreate \- Set up a new Round Robin Database
.SH "SYNOPSIS"
@@ -144,12 +144,12 @@ rrdcreate \- Set up a new Round Robin Database
The create function of RRDtool lets you set up new Round Robin
Database (\fB\s-1RRD\s0\fR) files. The file is created at its final, full size
and filled with \fI*UNKNOWN*\fR data.
-.IP "\fIfilename\fR" 8
+.IP "\fIfilename\fR" 4
.IX Item "filename"
The name of the \fB\s-1RRD\s0\fR you want to create. \fB\s-1RRD\s0\fR files should end
with the extension \fI.rrd\fR. However, \fBRRDtool\fR will accept any
filename.
-.IP "\fB\-\-start\fR|\fB\-b\fR \fIstart time\fR (default: now \- 10s)" 8
+.IP "\fB\-\-start\fR|\fB\-b\fR \fIstart time\fR (default: now \- 10s)" 4
.IX Item "--start|-b start time (default: now - 10s)"
Specifies the time in seconds since 1970\-01\-01 \s-1UTC\s0 when the first
value should be added to the \fB\s-1RRD\s0\fR. \fBRRDtool\fR will not accept
@@ -157,11 +157,11 @@ any data timed before or at the time specified.
.Sp
See also AT-STYLE \s-1TIME\s0 \s-1SPECIFICATION\s0 section in the
\&\fIrrdfetch\fR documentation for other ways to specify time.
-.IP "\fB\-\-step\fR|\fB\-s\fR \fIstep\fR (default: 300 seconds)" 8
+.IP "\fB\-\-step\fR|\fB\-s\fR \fIstep\fR (default: 300 seconds)" 4
.IX Item "--step|-s step (default: 300 seconds)"
Specifies the base interval in seconds with which data will be fed
into the \fB\s-1RRD\s0\fR.
-.IP "\fB\s-1DS:\s0\fR\fIds-name\fR\fB:\fR\fI\s-1DST\s0\fR\fB:\fR\fIdst arguments\fR" 8
+.IP "\fB\s-1DS:\s0\fR\fIds-name\fR\fB:\fR\fI\s-1DST\s0\fR\fB:\fR\fIdst arguments\fR" 4
.IX Item "DS:ds-name:DST:dst arguments"
A single \fB\s-1RRD\s0\fR can accept input from several data sources (\fB\s-1DS\s0\fR),
for example incoming and outgoing traffic on a specific communication
@@ -185,7 +185,7 @@ For \s-1COMPUTE\s0 data sources, the format is:
In order to decide which data source type to use, review the
definitions that follow. Also consult the section on \*(L"\s-1HOW\s0 \s-1TO\s0 \s-1MEASURE\s0\*(R"
for further insight.
-.RS 8
+.RS 4
.IP "\fB\s-1GAUGE\s0\fR" 4
.IX Item "GAUGE"
is for things like temperatures or number of people in a room or the
@@ -207,9 +207,9 @@ example, to measure the rate of people entering or leaving a
room. Internally, derive works exactly like \s-1COUNTER\s0 but without
overflow checks. So if your counter does not reset at 32 or 64 bit you
might want to use \s-1DERIVE\s0 and combine it with a \s-1MIN\s0 value of 0.
-.RS 4
-.IP "\s-1NOTE\s0 on \s-1COUNTER\s0 vs \s-1DERIVE\s0" 4
-.IX Item "NOTE on COUNTER vs DERIVE"
+.Sp
+\&\s-1NOTE\s0 on \s-1COUNTER\s0 vs \s-1DERIVE\s0
+.Sp
by Don Baarda
.Sp
If you cannot tolerate ever mistaking the occasional counter reset for a
@@ -226,9 +226,6 @@ for high bandwidth interfaces and a 32bit counter, \s-1DERIVE\s0 with min=0 is
probably preferable. If you are using a 64bit counter, just about any max
setting will eliminate the possibility of mistaking a reset for a counter
wrap.
-.RE
-.RS 4
-.RE
.IP "\fB\s-1ABSOLUTE\s0\fR" 4
.IX Item "ABSOLUTE"
is for counters which get reset upon reading. This is used for fast counters
@@ -247,7 +244,7 @@ of the \s-1COMPUTE\s0 data source (that is the rpn-expression is only applied
to generate PDPs). In database software, such data sets are referred
to as \*(L"virtual\*(R" or \*(L"computed\*(R" columns.
.RE
-.RS 8
+.RS 4
.Sp
\&\fIheartbeat\fR defines the maximum number of seconds that may pass
between two updates of this data source before the value of the
@@ -275,7 +272,7 @@ names of data source listed previously in the create command. This is
similar to the restriction that \fB\s-1CDEF\s0\fRs must refer only to \fB\s-1DEF\s0\fRs
and \fB\s-1CDEF\s0\fRs previously defined in the same graph command.
.RE
-.IP "\fB\s-1RRA:\s0\fR\fI\s-1CF\s0\fR\fB:\fR\fIcf arguments\fR" 8
+.IP "\fB\s-1RRA:\s0\fR\fI\s-1CF\s0\fR\fB:\fR\fIcf arguments\fR" 4
.IX Item "RRA:CF:cf arguments"
The purpose of an \fB\s-1RRD\s0\fR is to store data in the round robin archives
(\fB\s-1RRA\s0\fR). An archive consists of a number of data values or statistics for
diff --git a/doc/rrdcreate.html b/doc/rrdcreate.html
index 8b4d326..a331537 100644
--- a/doc/rrdcreate.html
+++ b/doc/rrdcreate.html
@@ -139,9 +139,9 @@ room. Internally, derive works exactly like COUNTER but without
overflow checks. So if your counter does not reset at 32 or 64 bit you
might want to use DERIVE and combine it with a MIN value of 0.
-
diff --git a/doc/rrdcreate.pod b/doc/rrdcreate.pod
index 27ef702..a47acbb 100644
--- a/doc/rrdcreate.pod
+++ b/doc/rrdcreate.pod
@@ -16,7 +16,7 @@ The create function of RRDtool lets you set up new Round Robin
Database (B) files. The file is created at its final, full size
and filled with I<*UNKNOWN*> data.
-=over 8
+=over
=item I
@@ -63,7 +63,7 @@ In order to decide which data source type to use, review the
definitions that follow. Also consult the section on "HOW TO MEASURE"
for further insight.
-=over 4
+=over
=item B
@@ -89,9 +89,7 @@ room. Internally, derive works exactly like COUNTER but without
overflow checks. So if your counter does not reset at 32 or 64 bit you
might want to use DERIVE and combine it with a MIN value of 0.
-=over
-
-=item NOTE on COUNTER vs DERIVE
+NOTE on COUNTER vs DERIVE
by Don Baarda Edon.baarda@baesystems.comE
@@ -110,8 +108,6 @@ probably preferable. If you are using a 64bit counter, just about any max
setting will eliminate the possibility of mistaking a reset for a counter
wrap.
-=back
-
=item B
is for counters which get reset upon reading. This is used for fast counters
diff --git a/doc/rrdcreate.txt b/doc/rrdcreate.txt
index 3d2560c..eaa70c1 100644
--- a/doc/rrdcreate.txt
+++ b/doc/rrdcreate.txt
@@ -15,172 +15,166 @@ DDEESSCCRRIIPPTTIIOONN
with _*_U_N_K_N_O_W_N_* data.
_f_i_l_e_n_a_m_e
- The name of the RRRRDD you want to create. RRRRDD files should end
- with the extension _._r_r_d. However, RRRRDDttooooll will accept any file-
- name.
+ The name of the RRRRDD you want to create. RRRRDD files should end with
+ the extension _._r_r_d. However, RRRRDDttooooll will accept any filename.
----ssttaarrtt|--bb _s_t_a_r_t _t_i_m_e (default: now - 10s)
- Specifies the time in seconds since 1970-01-01 UTC when the
- first value should be added to the RRRRDD. RRRRDDttooooll will not accept
- any data timed before or at the time specified.
+ Specifies the time in seconds since 1970-01-01 UTC when the first
+ value should be added to the RRRRDD. RRRRDDttooooll will not accept any data
+ timed before or at the time specified.
- See also AT-STYLE TIME SPECIFICATION section in the _r_r_d_f_e_t_c_h
- documentation for other ways to specify time.
+ See also AT-STYLE TIME SPECIFICATION section in the _r_r_d_f_e_t_c_h docu-
+ mentation for other ways to specify time.
----sstteepp|--ss _s_t_e_p (default: 300 seconds)
- Specifies the base interval in seconds with which data will be
- fed into the RRRRDD.
+ Specifies the base interval in seconds with which data will be fed
+ into the RRRRDD.
DDSS::_d_s_-_n_a_m_e::_D_S_T::_d_s_t _a_r_g_u_m_e_n_t_s
- A single RRRRDD can accept input from several data sources (DDSS),
- for example incoming and outgoing traffic on a specific commu-
- nication line. With the DDSS configuration option you must define
- some basic properties of each data source you want to store in
- the RRRRDD.
-
- _d_s_-_n_a_m_e is the name you will use to reference this particular
- data source from an RRRRDD. A _d_s_-_n_a_m_e must be 1 to 19 characters
- long in the characters [a-zA-Z0-9_].
-
- _D_S_T defines the Data Source Type. The remaining arguments of a
- data source entry depend on the data source type. For GAUGE,
- COUNTER, DERIVE, and ABSOLUTE the format for a data source
- entry is:
-
- DDSS::_d_s_-_n_a_m_e::_G_A_U_G_E _| _C_O_U_N_T_E_R _| _D_E_R_I_V_E _| _A_B_S_O_L_U_T_E::_h_e_a_r_t_-
- _b_e_a_t::_m_i_n::_m_a_x
-
- For COMPUTE data sources, the format is:
-
- DDSS::_d_s_-_n_a_m_e::_C_O_M_P_U_T_E::_r_p_n_-_e_x_p_r_e_s_s_i_o_n
-
- In order to decide which data source type to use, review the
- definitions that follow. Also consult the section on "HOW TO
- MEASURE" for further insight.
-
- GGAAUUGGEE
- is for things like temperatures or number of people in a
- room or the value of a RedHat share.
-
- CCOOUUNNTTEERR
- is for continuous incrementing counters like the ifInOctets
- counter in a router. The CCOOUUNNTTEERR data source assumes that
- the counter never decreases, except when a counter over-
- flows. The update function takes the overflow into
- account. The counter is stored as a per-second rate. When
- the counter overflows, RRDtool checks if the overflow hap-
- pened at the 32bit or 64bit border and acts accordingly by
- adding an appropriate value to the result.
-
- DDEERRIIVVEE
- will store the derivative of the line going from the last
- to the current value of the data source. This can be useful
- for gauges, for example, to measure the rate of people
- entering or leaving a room. Internally, derive works
- exactly like COUNTER but without overflow checks. So if
- your counter does not reset at 32 or 64 bit you might want
- to use DERIVE and combine it with a MIN value of 0.
-
- NOTE on COUNTER vs DERIVE
- by Don Baarda
-
- If you cannot tolerate ever mistaking the occasional
- counter reset for a legitimate counter wrap, and would
- prefer "Unknowns" for all legitimate counter wraps and
- resets, always use DERIVE with min=0. Otherwise, using
- COUNTER with a suitable max will return correct values
- for all legitimate counter wraps, mark some counter
- resets as "Unknown", but can mistake some counter
- resets for a legitimate counter wrap.
-
- For a 5 minute step and 32-bit counter, the probability
- of mistaking a counter reset for a legitimate wrap is
- arguably about 0.8% per 1Mbps of maximum bandwidth.
- Note that this equates to 80% for 100Mbps interfaces,
- so for high bandwidth interfaces and a 32bit counter,
- DERIVE with min=0 is probably preferable. If you are
- using a 64bit counter, just about any max setting will
- eliminate the possibility of mistaking a reset for a
- counter wrap.
-
- AABBSSOOLLUUTTEE
- is for counters which get reset upon reading. This is used
- for fast counters which tend to overflow. So instead of
- reading them normally you reset them after every read to
- make sure you have a maximum time available before the next
- overflow. Another usage is for things you count like number
- of messages since the last update.
-
- CCOOMMPPUUTTEE
- is for storing the result of a formula applied to other
- data sources in the RRRRDD. This data source is not supplied a
- value on update, but rather its Primary Data Points (PDPs)
- are computed from the PDPs of the data sources according to
- the rpn-expression that defines the formula. Consolidation
- functions are then applied normally to the PDPs of the COM-
- PUTE data source (that is the rpn-expression is only
- applied to generate PDPs). In database software, such data
- sets are referred to as "virtual" or "computed" columns.
-
- _h_e_a_r_t_b_e_a_t defines the maximum number of seconds that may pass
- between two updates of this data source before the value of the
- data source is assumed to be _*_U_N_K_N_O_W_N_*.
-
- _m_i_n and _m_a_x define the expected range values for data supplied
- by a data source. If _m_i_n and/or _m_a_x any value outside the
- defined range will be regarded as _*_U_N_K_N_O_W_N_*. If you do not know
- or care about min and max, set them to U for unknown. Note that
- min and max always refer to the processed values of the DS. For
- a traffic-CCOOUUNNTTEERR type DS this would be the maximum and minimum
- data-rate expected from the device.
-
- _I_f _i_n_f_o_r_m_a_t_i_o_n _o_n _m_i_n_i_m_a_l_/_m_a_x_i_m_a_l _e_x_p_e_c_t_e_d _v_a_l_u_e_s _i_s _a_v_a_i_l_a_b_l_e_,
- _a_l_w_a_y_s _s_e_t _t_h_e _m_i_n _a_n_d_/_o_r _m_a_x _p_r_o_p_e_r_t_i_e_s_. _T_h_i_s _w_i_l_l _h_e_l_p _R_R_D_-
- _t_o_o_l _i_n _d_o_i_n_g _a _s_i_m_p_l_e _s_a_n_i_t_y _c_h_e_c_k _o_n _t_h_e _d_a_t_a _s_u_p_p_l_i_e_d _w_h_e_n
- _r_u_n_n_i_n_g _u_p_d_a_t_e_.
-
- _r_p_n_-_e_x_p_r_e_s_s_i_o_n defines the formula used to compute the PDPs of
- a COMPUTE data source from other data sources in the same
- . It is similar to defining a CCDDEEFF argument for the graph
- command. Please refer to that manual page for a list and
- description of RPN operations supported. For COMPUTE data
- sources, the following RPN operations are not supported: COUNT,
- PREV, TIME, and LTIME. In addition, in defining the RPN expres-
- sion, the COMPUTE data source may only refer to the names of
- data source listed previously in the create command. This is
- similar to the restriction that CCDDEEFFs must refer only to DDEEFFs
- and CCDDEEFFs previously defined in the same graph command.
+ A single RRRRDD can accept input from several data sources (DDSS), for
+ example incoming and outgoing traffic on a specific communication
+ line. With the DDSS configuration option you must define some basic
+ properties of each data source you want to store in the RRRRDD.
+
+ _d_s_-_n_a_m_e is the name you will use to reference this particular data
+ source from an RRRRDD. A _d_s_-_n_a_m_e must be 1 to 19 characters long in
+ the characters [a-zA-Z0-9_].
+
+ _D_S_T defines the Data Source Type. The remaining arguments of a data
+ source entry depend on the data source type. For GAUGE, COUNTER,
+ DERIVE, and ABSOLUTE the format for a data source entry is:
+
+ DDSS::_d_s_-_n_a_m_e::_G_A_U_G_E _| _C_O_U_N_T_E_R _| _D_E_R_I_V_E _| _A_B_S_O_L_U_T_E::_h_e_a_r_t_b_e_a_t::_m_i_n::_m_a_x
+
+ For COMPUTE data sources, the format is:
+
+ DDSS::_d_s_-_n_a_m_e::_C_O_M_P_U_T_E::_r_p_n_-_e_x_p_r_e_s_s_i_o_n
+
+ In order to decide which data source type to use, review the defi-
+ nitions that follow. Also consult the section on "HOW TO MEASURE"
+ for further insight.
+
+ GGAAUUGGEE
+ is for things like temperatures or number of people in a room
+ or the value of a RedHat share.
+
+ CCOOUUNNTTEERR
+ is for continuous incrementing counters like the ifInOctets
+ counter in a router. The CCOOUUNNTTEERR data source assumes that the
+ counter never decreases, except when a counter overflows. The
+ update function takes the overflow into account. The counter
+ is stored as a per-second rate. When the counter overflows,
+ RRDtool checks if the overflow happened at the 32bit or 64bit
+ border and acts accordingly by adding an appropriate value to
+ the result.
+
+ DDEERRIIVVEE
+ will store the derivative of the line going from the last to
+ the current value of the data source. This can be useful for
+ gauges, for example, to measure the rate of people entering or
+ leaving a room. Internally, derive works exactly like COUNTER
+ but without overflow checks. So if your counter does not reset
+ at 32 or 64 bit you might want to use DERIVE and combine it
+ with a MIN value of 0.
+
+ NOTE on COUNTER vs DERIVE
+
+ by Don Baarda
+
+ If you cannot tolerate ever mistaking the occasional counter
+ reset for a legitimate counter wrap, and would prefer
+ "Unknowns" for all legitimate counter wraps and resets, always
+ use DERIVE with min=0. Otherwise, using COUNTER with a suitable
+ max will return correct values for all legitimate counter
+ wraps, mark some counter resets as "Unknown", but can mistake
+ some counter resets for a legitimate counter wrap.
+
+ For a 5 minute step and 32-bit counter, the probability of mis-
+ taking a counter reset for a legitimate wrap is arguably about
+ 0.8% per 1Mbps of maximum bandwidth. Note that this equates to
+ 80% for 100Mbps interfaces, so for high bandwidth interfaces
+ and a 32bit counter, DERIVE with min=0 is probably preferable.
+ If you are using a 64bit counter, just about any max setting
+ will eliminate the possibility of mistaking a reset for a
+ counter wrap.
+
+ AABBSSOOLLUUTTEE
+ is for counters which get reset upon reading. This is used for
+ fast counters which tend to overflow. So instead of reading
+ them normally you reset them after every read to make sure you
+ have a maximum time available before the next overflow. Another
+ usage is for things you count like number of messages since the
+ last update.
+
+ CCOOMMPPUUTTEE
+ is for storing the result of a formula applied to other data
+ sources in the RRRRDD. This data source is not supplied a value on
+ update, but rather its Primary Data Points (PDPs) are computed
+ from the PDPs of the data sources according to the rpn-expres-
+ sion that defines the formula. Consolidation functions are then
+ applied normally to the PDPs of the COMPUTE data source (that
+ is the rpn-expression is only applied to generate PDPs). In
+ database software, such data sets are referred to as "virtual"
+ or "computed" columns.
+
+ _h_e_a_r_t_b_e_a_t defines the maximum number of seconds that may pass
+ between two updates of this data source before the value of the
+ data source is assumed to be _*_U_N_K_N_O_W_N_*.
+
+ _m_i_n and _m_a_x define the expected range values for data supplied by a
+ data source. If _m_i_n and/or _m_a_x any value outside the defined range
+ will be regarded as _*_U_N_K_N_O_W_N_*. If you do not know or care about min
+ and max, set them to U for unknown. Note that min and max always
+ refer to the processed values of the DS. For a traffic-CCOOUUNNTTEERR type
+ DS this would be the maximum and minimum data-rate expected from
+ the device.
+
+ _I_f _i_n_f_o_r_m_a_t_i_o_n _o_n _m_i_n_i_m_a_l_/_m_a_x_i_m_a_l _e_x_p_e_c_t_e_d _v_a_l_u_e_s _i_s _a_v_a_i_l_a_b_l_e_,
+ _a_l_w_a_y_s _s_e_t _t_h_e _m_i_n _a_n_d_/_o_r _m_a_x _p_r_o_p_e_r_t_i_e_s_. _T_h_i_s _w_i_l_l _h_e_l_p _R_R_D_t_o_o_l _i_n
+ _d_o_i_n_g _a _s_i_m_p_l_e _s_a_n_i_t_y _c_h_e_c_k _o_n _t_h_e _d_a_t_a _s_u_p_p_l_i_e_d _w_h_e_n _r_u_n_n_i_n_g
+ _u_p_d_a_t_e_.
+
+ _r_p_n_-_e_x_p_r_e_s_s_i_o_n defines the formula used to compute the PDPs of a
+ COMPUTE data source from other data sources in the same . It
+ is similar to defining a CCDDEEFF argument for the graph command.
+ Please refer to that manual page for a list and description of RPN
+ operations supported. For COMPUTE data sources, the following RPN
+ operations are not supported: COUNT, PREV, TIME, and LTIME. In
+ addition, in defining the RPN expression, the COMPUTE data source
+ may only refer to the names of data source listed previously in the
+ create command. This is similar to the restriction that CCDDEEFFs must
+ refer only to DDEEFFs and CCDDEEFFs previously defined in the same graph
+ command.
RRRRAA::_C_F::_c_f _a_r_g_u_m_e_n_t_s
- The purpose of an RRRRDD is to store data in the round robin
- archives (RRRRAA). An archive consists of a number of data values
- or statistics for each of the defined data-sources (DDSS) and is
- defined with an RRRRAA line.
+ The purpose of an RRRRDD is to store data in the round robin archives
+ (RRRRAA). An archive consists of a number of data values or statistics
+ for each of the defined data-sources (DDSS) and is defined with an
+ RRRRAA line.
- When data is entered into an RRRRDD, it is first fit into time
- slots of the length defined with the --ss option, thus becoming a
- _p_r_i_m_a_r_y _d_a_t_a _p_o_i_n_t.
+ When data is entered into an RRRRDD, it is first fit into time slots
+ of the length defined with the --ss option, thus becoming a _p_r_i_m_a_r_y
+ _d_a_t_a _p_o_i_n_t.
- The data is also processed with the consolidation function (_C_F)
- of the archive. There are several consolidation functions that
- consolidate primary data points via an aggregate function:
- AAVVEERRAAGGEE, MMIINN, MMAAXX, LLAASSTT. The format of RRRRAA line for these con-
- solidation functions is:
+ The data is also processed with the consolidation function (_C_F) of
+ the archive. There are several consolidation functions that consol-
+ idate primary data points via an aggregate function: AAVVEERRAAGGEE, MMIINN,
+ MMAAXX, LLAASSTT. The format of RRRRAA line for these consolidation functions
+ is:
- RRRRAA::_A_V_E_R_A_G_E _| _M_I_N _| _M_A_X _| _L_A_S_T::_x_f_f::_s_t_e_p_s::_r_o_w_s
+ RRRRAA::_A_V_E_R_A_G_E _| _M_I_N _| _M_A_X _| _L_A_S_T::_x_f_f::_s_t_e_p_s::_r_o_w_s
- _x_f_f The xfiles factor defines what part of a consolidation
- interval may be made up from _*_U_N_K_N_O_W_N_* data while the consoli-
- dated value is still regarded as known. It is given as the
- ratio of allowed _*_U_N_K_N_O_W_N_* PDPs to the number of PDPs in the
- interval. Thus, it ranges from 0 to 1 (exclusive).
+ _x_f_f The xfiles factor defines what part of a consolidation interval
+ may be made up from _*_U_N_K_N_O_W_N_* data while the consolidated value is
+ still regarded as known. It is given as the ratio of allowed
+ _*_U_N_K_N_O_W_N_* PDPs to the number of PDPs in the interval. Thus, it
+ ranges from 0 to 1 (exclusive).
- _s_t_e_p_s defines how many of these _p_r_i_m_a_r_y _d_a_t_a _p_o_i_n_t_s are used to
- build a _c_o_n_s_o_l_i_d_a_t_e_d _d_a_t_a _p_o_i_n_t which then goes into the
- archive.
+ _s_t_e_p_s defines how many of these _p_r_i_m_a_r_y _d_a_t_a _p_o_i_n_t_s are used to
+ build a _c_o_n_s_o_l_i_d_a_t_e_d _d_a_t_a _p_o_i_n_t which then goes into the archive.
- _r_o_w_s defines how many generations of data values are kept in an
- RRRRAA.
+ _r_o_w_s defines how many generations of data values are kept in an
+ RRRRAA.
AAbbeerrrraanntt BBeehhaavviioorr DDeetteeccttiioonn wwiitthh HHoolltt--WWiinntteerrss FFoorreeccaassttiinngg
In addition to the aggregate functions, there are a set of specialized
@@ -504,4 +498,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDCREATE(1)
+1.2.27 2008-02-17 RRDCREATE(1)
diff --git a/doc/rrddump.1 b/doc/rrddump.1
index d559ec0..3df1a45 100644
--- a/doc/rrddump.1
+++ b/doc/rrddump.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDDUMP 1"
-.TH RRDDUMP 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDDUMP 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrddump \- dump the contents of an RRD to XML format
.SH "SYNOPSIS"
diff --git a/doc/rrddump.txt b/doc/rrddump.txt
index 226a7b8..f995a56 100644
--- a/doc/rrddump.txt
+++ b/doc/rrddump.txt
@@ -42,4 +42,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDDUMP(1)
+1.2.27 2008-02-17 RRDDUMP(1)
diff --git a/doc/rrdfetch.1 b/doc/rrdfetch.1
index e218ff8..9c20fb6 100644
--- a/doc/rrdfetch.1
+++ b/doc/rrdfetch.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDFETCH 1"
-.TH RRDFETCH 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDFETCH 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdfetch \- Fetch data from an RRD.
.SH "SYNOPSIS"
diff --git a/doc/rrdfetch.txt b/doc/rrdfetch.txt
index 10057c2..e2af859 100644
--- a/doc/rrdfetch.txt
+++ b/doc/rrdfetch.txt
@@ -228,4 +228,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDFETCH(1)
+1.2.27 2008-02-17 RRDFETCH(1)
diff --git a/doc/rrdfirst.1 b/doc/rrdfirst.1
index 7834052..57e7c1a 100644
--- a/doc/rrdfirst.1
+++ b/doc/rrdfirst.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDFIRST 1"
-.TH RRDFIRST 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDFIRST 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdfirst \- Return the date of the first data sample in an RRA within an RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdfirst.txt b/doc/rrdfirst.txt
index 7a3559e..684e8bc 100644
--- a/doc/rrdfirst.txt
+++ b/doc/rrdfirst.txt
@@ -26,4 +26,4 @@ AAUUTTHHOORR
-1.2.26 2007-11-20 RRDFIRST(1)
+1.2.27 2008-02-17 RRDFIRST(1)
diff --git a/doc/rrdgraph.1 b/doc/rrdgraph.1
index 2020b9e..674a370 100644
--- a/doc/rrdgraph.1
+++ b/doc/rrdgraph.1
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "RRDGRAPH 1"
-.TH RRDGRAPH 1 "2007-11-20" "1.2.26" "rrdtool"
+.TH RRDGRAPH 1 "2008-02-17" "1.2.27" "rrdtool"
.SH "NAME"
rrdgraph \- Round Robin Database tool grapher functions
.SH "SYNOPSIS"
@@ -170,7 +170,7 @@ Sometimes data is not exactly in the format you would like to display
it. For instance, you might be collecting \fBbytes\fR per second, but
want to display \fBbits\fR per second. This is what the \fBdata calculation\fR command is designed for. After
\&\fBconsolidating\fR the data, a copy is made and this copy is modified
-using a rather powerful \fB\s-1RPN\s0\fR command set.
+using a rather powerful rrdgraph_rpn command set.
.PP
When you are done fetching and processing the data, it is time to
graph it (or print it). This ends the \fBrrdtool graph\fR sequence.
@@ -193,7 +193,7 @@ The start and end of the time series you would like to display, and which
\&\fB\s-1RRA\s0\fR the data should come from. Defaults are: 1 day ago until
now, with the best possible resolution. \fBStart\fR and \fBend\fR can
be specified in several formats, see
-AT-STYLE \s-1TIME\s0 \s-1SPECIFICATION\s0 and rrdgraph_examples.
+rrdfetch and rrdgraph_examples.
By default, \fBrrdtool graph\fR calculates the width of one pixel in
the time domain and tries to get data from an \fB\s-1RRA\s0\fR with that
resolution. With the \fBstep\fR option you can alter this behaviour.
@@ -268,13 +268,8 @@ integer number of pixels and also start on an integer pixel value.
This might extend the scale too much for some logarithmic scales
and for linear scales where \fB\-\-alt\-autoscale\fR is needed.
Using \fB\-\-no\-gridfit\fR disables modification of the scale.
-.IP "Grid" 4
-.IX Item "Grid"
-.RS 4
-.PD 0
-.IP "X\-Axis" 4
-.IX Item "X-Axis"
-.PD
+.IP "X\-Grid" 4
+.IX Item "X-Grid"
[\fB\-x\fR|\fB\-\-x\-grid\fR \fI\s-1GTM\s0\fR\fB:\fR\fI\s-1GST\s0\fR\fB:\fR\fI\s-1MTM\s0\fR\fB:\fR\fI\s-1MST\s0\fR\fB:\fR\fI\s-1LTM\s0\fR\fB:\fR\fI\s-1LST\s0\fR\fB:\fR\fI\s-1LPR\s0\fR\fB:\fR\fI\s-1LFM\s0\fR]
.Sp
[\fB\-x\fR|\fB\-\-x\-grid\fR \fBnone\fR]
@@ -311,8 +306,8 @@ lines as they specify exactly that time.
This places grid lines every 8 hours, major grid lines and labels
each day. The labels are placed exactly between two major grid lines
as they specify the complete day and not just midnight.
-.IP "Y\-Axis" 4
-.IX Item "Y-Axis"
+.IP "Y\-Grid" 4
+.IX Item "Y-Grid"
[\fB\-y\fR|\fB\-\-y\-grid\fR \fIgrid step\fR\fB:\fR\fIlabel factor\fR]
.Sp
[\fB\-y\fR|\fB\-\-y\-grid\fR \fBnone\fR]
@@ -367,9 +362,6 @@ fideling with the y\-axis labeling.
With this option y\-axis values on logarithmic graphs will be scaled to
the appropriate units (k, M, etc.) instead of using exponential notation.
Note that for linear graphs, \s-1SI\s0 notation is used by default.
-.RE
-.RS 4
-.RE
.IP "Miscellaneous" 4
.IX Item "Miscellaneous"
[\fB\-z\fR|\fB\-\-lazy\fR]
diff --git a/doc/rrdgraph.html b/doc/rrdgraph.html
index dd767de..e7a9505 100644
--- a/doc/rrdgraph.html
+++ b/doc/rrdgraph.html
@@ -71,7 +71,7 @@ well become unknown!
it. For instance, you might be collecting bytes per second, but
want to display bits per second. This is what the data calculation command is designed for. After
consolidating the data, a copy is made and this copy is modified
-using a rather powerful RPN command set.
+using a rather powerful the rrdgraph_rpn manpage command set.
When you are done fetching and processing the data, it is time to
graph it (or print it). This ends the rrdtool graph sequence.
@@ -102,7 +102,7 @@ this case, no other output is generated.
RRA the data should come from. Defaults are: 1 day ago until
now, with the best possible resolution. Start and end can
be specified in several formats, see
-AT-STYLE TIME SPECIFICATION and the rrdgraph_examples manpage.
+the rrdfetch manpage and the rrdgraph_examples manpage.
By default, rrdtool graph calculates the width of one pixel in
the time domain and tries to get data from an RRA with that
resolution. With the step option you can alter this behaviour.
@@ -200,10 +200,7 @@ and for linear scales where --alt-autoscale is needed.
Using --no-gridfit disables modification of the scale.
@@ -322,7 +319,6 @@ the appropriate units (k, M, etc.) instead of using exponential notation.
Note that for linear graphs, SI notation is used by default.
diff --git a/doc/rrdgraph.pod b/doc/rrdgraph.pod
index 9060bd8..11b447e 100644
--- a/doc/rrdgraph.pod
+++ b/doc/rrdgraph.pod
@@ -43,7 +43,7 @@ it. For instance, you might be collecting B per second, but
want to display B per second. This is what the B> command is designed for. After
B the data, a copy is made and this copy is modified
-using a rather powerful B> command set.
+using a rather powerful L command set.
When you are done fetching and processing the data, it is time to
graph it (or print it). This ends the B sequence.
@@ -70,7 +70,7 @@ The start and end of the time series you would like to display, and which
B the data should come from. Defaults are: 1 day ago until
now, with the best possible resolution. B and B can
be specified in several formats, see
-L and L.
+L and L.
By default, B calculates the width of one pixel in
the time domain and tries to get data from an B with that
resolution. With the B option you can alter this behaviour.
@@ -149,11 +149,7 @@ This might extend the scale too much for some logarithmic scales
and for linear scales where B<--alt-autoscale> is needed.
Using B<--no-gridfit> disables modification of the scale.
-=item Grid
-
-=over 4
-
-=item X-Axis
+=item X-Grid
[B<-x>|B<--x-grid> IB<:>IB<:>IB<:>IB<:>IB<:>IB<:>IB<:>I]
@@ -188,7 +184,7 @@ This places grid lines every 8 hours, major grid lines and labels
each day. The labels are placed exactly between two major grid lines
as they specify the complete day and not just midnight.
-=item Y-Axis
+=item Y-Grid
[B<-y>|B<--y-grid> IB<:>I