Made some checks solaris only.
* configure.in: Made some checks solaris only.
This commit is contained in:
47
configure.in
47
configure.in
@@ -195,28 +195,33 @@ AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in
|
|||||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
||||||
|
|
||||||
dnl Solaris
|
dnl Solaris
|
||||||
AC_CHECK_LIB(kstat, kstat_open)
|
case "$host_os" in
|
||||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
solaris*)
|
||||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
AC_CHECK_LIB(kstat, kstat_open)
|
||||||
|
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||||
|
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||||
|
|
||||||
dnl Some versions of Solaris require -lelf for -lkvm
|
|
||||||
AC_CHECK_LIB(kvm, kvm_open,[
|
dnl Some versions of Solaris require -lelf for -lkvm
|
||||||
LIBS="-lkvm $LIBS"
|
AC_CHECK_LIB(kvm, kvm_open,[
|
||||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
LIBS="-lkvm $LIBS"
|
||||||
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
||||||
[ac_save_LIBS="$LIBS"
|
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
[ac_save_LIBS="$LIBS"
|
||||||
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
LIBS="-lkvm -lelf $LIBS"
|
||||||
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
||||||
LIBS="$ac_save_LIBS"
|
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
||||||
])
|
LIBS="$ac_save_LIBS"
|
||||||
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
])
|
||||||
AC_MSG_RESULT(yes)
|
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
AC_MSG_RESULT(yes)
|
||||||
else
|
LIBS="-lkvm -lelf $LIBS"
|
||||||
AC_MSG_RESULT(no)
|
else
|
||||||
fi
|
AC_MSG_RESULT(no)
|
||||||
])
|
fi
|
||||||
|
])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
dnl For DEC OSF1
|
dnl For DEC OSF1
|
||||||
AC_CHECK_LIB(mach, vm_statistics)
|
AC_CHECK_LIB(mach, vm_statistics)
|
||||||
|
@@ -96,3 +96,20 @@ file_to_buffer(glibtop *server, char *buffer, const char *filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
get_boot_time(glibtop *server)
|
||||||
|
{
|
||||||
|
char buffer[BUFSIZ];
|
||||||
|
char *btime;
|
||||||
|
|
||||||
|
file_to_buffer(server, buffer, "/proc/stat");
|
||||||
|
|
||||||
|
btime = strstr(buffer, "btime");
|
||||||
|
|
||||||
|
g_return_val_if_fail(btime != NULL, 0UL);
|
||||||
|
|
||||||
|
btime = skip_token(btime);
|
||||||
|
return strtoul(btime, NULL, 10);
|
||||||
|
}
|
||||||
|
@@ -111,6 +111,12 @@ proc_stat_after_cmd (char *p)
|
|||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
get_boot_time(glibtop *server) G_GNUC_INTERNAL;
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __LINUX__GLIBTOP_PRIVATE_H__ */
|
#endif /* __LINUX__GLIBTOP_PRIVATE_H__ */
|
||||||
|
@@ -87,11 +87,7 @@ glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid)
|
|||||||
|
|
||||||
/* seconds since epoch */
|
/* seconds since epoch */
|
||||||
{
|
{
|
||||||
/* Linux provides start_time as clock_t representing
|
/*
|
||||||
the start of <pid> after boot_time.
|
|
||||||
Let's use glibtop_get_uptime to get boot_time.
|
|
||||||
But i'm not sure if this is safe
|
|
||||||
|
|
||||||
See libgtop documentation.
|
See libgtop documentation.
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
@@ -109,10 +105,7 @@ glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid)
|
|||||||
system clock is not synchronised with you hardware clock.
|
system clock is not synchronised with you hardware clock.
|
||||||
'man hwclock'
|
'man hwclock'
|
||||||
*/
|
*/
|
||||||
glibtop_uptime up;
|
buf->start_time = get_boot_time(server) + strtoull (p, &p, 0) / 100;
|
||||||
glibtop_get_uptime_s(server, &up);
|
|
||||||
|
|
||||||
buf->start_time = up.boot_time + strtoull (p, &p, 0) / 100;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buf->frequency = 100;
|
buf->frequency = 100;
|
||||||
|
@@ -57,7 +57,7 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
|
|||||||
|
|
||||||
buf->uptime = g_ascii_strtod (buffer, &p);
|
buf->uptime = g_ascii_strtod (buffer, &p);
|
||||||
buf->idletime = g_ascii_strtod (p, &p);
|
buf->idletime = g_ascii_strtod (p, &p);
|
||||||
buf->boot_time = (guint64) time(NULL) - (guint64) buf->uptime;
|
buf->boot_time = get_boot_time(server);
|
||||||
|
|
||||||
buf->flags = _glibtop_sysdeps_uptime;
|
buf->flags = _glibtop_sysdeps_uptime;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user