Hi all,
The following small patch gets gmond working on Opteron boxes and also
on Linux 2.5.x.
Regards,
Robert.
diff -rNu ganglia-monitor-core-2.5.3-orig/gmond/machines/linux.c ganglia-monitor-core-2.5.3/gmond/machines/linux.c
--- ganglia-monitor-core-2.5.3-orig/gmond/machines/linux.c 2003-03-06 14:10:19.000000000 -0800
+++ ganglia-monitor-core-2.5.3/gmond/machines/linux.c 2003-06-12 11:30:40.000000000 -0700
@@ -346,7 +346,7 @@
static g_val_t val = {0};
/* i386, ia64, and hppa all report MHz in the same format */
-#if defined (__i386__) || defined(__ia64__) || defined(__hppa__)
+#if defined (__i386__) || defined(__ia64__) || defined(__hppa__) || defined(__x86_64__)
if (! val.uint32 )
{
p = proc_cpuinfo;
@@ -442,6 +442,9 @@
#ifdef __i386__
snprintf(val.str, MAX_G_STRING_SIZE, "x86");
#endif
+#ifdef __x86_64__
+ snprintf(val.str, MAX_G_STRING_SIZE, "x86_64");
+#endif
#ifdef __ia64__
snprintf(val.str, MAX_G_STRING_SIZE, "ia64");
#endif
@@ -763,8 +766,12 @@
g_val_t val;
p = strstr( update_file(&proc_meminfo), "MemShared:" );
- p = skip_token(p);
- val.uint32 = strtol( p, (char **)NULL, 10 );
+ if (p) {
+ p = skip_token(p);
+ val.uint32 = strtol( p, (char **)NULL, 10 );
+ } else {
+ val.uint32 = 0;
+ }
return val;
}
diff -rNu ganglia-monitor-core-2.5.3-orig/lib/Makefile.am ganglia-monitor-core-2.5.3/lib/Makefile.am
--- ganglia-monitor-core-2.5.3-orig/lib/Makefile.am 2002-11-07 15:32:48.000000000 -0800
+++ ganglia-monitor-core-2.5.3/lib/Makefile.am 2003-06-10 13:33:31.000000000 -0700
@@ -26,7 +26,7 @@
libganglia_la_LDFLAGS = -version-info 2:0:1
-include_HEADERS = ganglia.h ganglia/ascii.h ganglia/asciitab.h ganglia/daemon_inetd.h \
+nobase_include_HEADERS = ganglia.h ganglia/ascii.h ganglia/asciitab.h ganglia/daemon_inetd.h \
ganglia/daemon_init.h ganglia/debug_msg.h ganglia/error.h ganglia/file.h ganglia/hash.h \
ganglia/iasciitab.h ganglia/latin1tab.h ganglia/llist.h ganglia/my_inet_ntop.h \
ganglia/nametab.h ganglia/net.h ganglia/rdwr.h ganglia/utf8tab.h ganglia/xmldef.h \