]> granicus.if.org Git - sysstat/commitdiff
Check for existence of sys/param.h before using Posix constants.
authorMike Winter <mike.winter@usask.ca>
Wed, 19 Oct 2016 19:01:23 +0000 (13:01 -0600)
committerMike Winter <mike.winter@usask.ca>
Wed, 19 Oct 2016 19:01:23 +0000 (13:01 -0600)
Modify tapestat to use the same checks as pidstat.

Makefile.in
configure
configure.in
pidstat.h
tapestat.c

index b25c57ac9bda8de2ea7a839fbc73c4c7a3519a85..efb56cef41ac3ee90e5bc75b6225b83e6d4ac5f2 100644 (file)
@@ -94,6 +94,10 @@ SYSMACROS = @SYSMACROS@
 ifeq ($(SYSMACROS),y)
        DFLAGS += -DHAVE_SYS_SYSMACROS_H
 endif
+SYSPARAM = @SYSPARAM@
+ifeq ($(SYSPARAM),y)
+       DFLAGS += -DHAVE_SYS_PARAM_H
+endif
 NLS = @NLS@
 ifeq ($(NLS),y)
 REQUIRE_NLS = -DUSE_NLS -DPACKAGE=\"$(PACKAGE)\" -DLOCALEDIR=\"$(NLS_DIR)\"
index 52fa5190ea2c17ffa3aa8162943b9b3047a75ed2..46a7b10b7d305dca195e31b741c9bcbd4716023f 100755 (executable)
--- a/configure
+++ b/configure
@@ -658,6 +658,7 @@ SA_DIR
 sa_dir
 SA_LIB_DIR
 sa_lib_dir
+SYSPARAM
 SYSMACROS
 INITD_DIR
 INIT_DIR
@@ -4019,6 +4020,7 @@ echo .
 HAVE_LIBINTL_H=
 HAVE_LOCALE_H=
 HAVE_SYS_SYSMACROS_H=
+HAVE_SYS_PARAM_H=
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
 if ${ac_cv_header_stdc+:} false; then :
@@ -4409,6 +4411,18 @@ fi
 
 done
 
+for ac_header in sys/param.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_PARAM_H 1
+_ACEOF
+ HAVE_SYS_PARAM_H=1
+fi
+
+done
+
 for ac_header in sys/stat.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
@@ -4927,6 +4941,13 @@ else
 fi
 
 
+if test $HAVE_SYS_PARAM_H; then
+   SYSPARAM="y"
+else
+   SYSPARAM="n"
+fi
+
+
 # Set sadc directory
 if test $prefix != "NONE"; then
    AuxPrefix=$prefix
index 72d8774a60c693d40613a374251b00076df5a20a..c66b000732cb6d5726464f92cee3cace9f87e2de 100644 (file)
@@ -58,6 +58,7 @@ echo .
 HAVE_LIBINTL_H=
 HAVE_LOCALE_H=
 HAVE_SYS_SYSMACROS_H=
+HAVE_SYS_PARAM_H=
 AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_CHECK_HEADERS(ctype.h)
@@ -70,6 +71,7 @@ AC_CHECK_HEADERS(signal.h)
 AC_CHECK_HEADERS(stdio.h)
 AC_CHECK_HEADERS(sys/file.h)
 AC_CHECK_HEADERS(sys/ioctl.h)
+AC_CHECK_HEADERS(sys/param.h, HAVE_SYS_PARAM_H=1)
 AC_CHECK_HEADERS(sys/stat.h)
 AC_CHECK_HEADERS(sys/sysmacros.h, HAVE_SYS_SYSMACROS_H=1)
 
@@ -209,6 +211,13 @@ else
 fi
 AC_SUBST(SYSMACROS)
 
+if test $HAVE_SYS_PARAM_H; then
+   SYSPARAM="y"
+else
+   SYSPARAM="n"
+fi
+AC_SUBST(SYSPARAM)
+
 # Set sadc directory
 if test $prefix != "NONE"; then
    AuxPrefix=$prefix
index c8ea0576f3851af5816e5d20b3ad767986535c50..7904552ac9ae7df5db2915031aef60543acce321 100644 (file)
--- a/pidstat.h
+++ b/pidstat.h
@@ -2,13 +2,13 @@
  * pidstat: Display per-process statistics.
  * (C) 2007-2016 by Sebastien Godard (sysstat <at> orange.fr)
  */
-
-#include <sys/param.h>
-#undef HZ
-
 #ifndef _PIDSTAT_H
 #define _PIDSTAT_H
 
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#undef HZ
+#endif
 
 #define K_SELF         "SELF"
 
 
 #define NR_PID_PREALLOC        100
 
+#ifdef _POSIX_ARG_MAX
 #define MAX_COMM_LEN    _POSIX_ARG_MAX
 #define MAX_CMDLINE_LEN _POSIX_ARG_MAX
+#else
+#define MAX_COMM_LEN    128
+#define MAX_CMDLINE_LEN 128
+#endif
+
+#ifdef LOGIN_NAME_MAX
 #define MAX_USER_LEN    LOGIN_NAME_MAX
+#else
+#define MAX_USER_LEN    32
+#endif
 
 /* Activities */
 #define P_A_CPU                0x01
index b06d1d571062a1df3c33a7786d368fde02ae3741..a7614c10bad30ac7bb118cf669d0ec2b17708f34 100644 (file)
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/utsname.h>
+
+#ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #undef HZ /* sys/param.h defines HZ but needed for MAXPATHLEN */
+#endif
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 256
+#endif
 
 #include "version.h"
 #include "tapestat.h"