<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Hi,<br>
<br>
Compiling works like a charm now.<br>
Thanks Henrik, great effort.<br>
<br>
Still the ld problem and the /usr/ccs/bin path<br>
On Solaris 9 it is setup-newfiles that complains.<br>
But a link /usr/ccs/bin/ld that point to my gnu linker solves the
problem.<br>
<br>
- Roland<br>
<div class="moz-signature">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<title>test</title>
<br>
<br>
</div>
On  6/12/10 08:38 PM, Henrik Størner wrote:
<blockquote cite="mid:idiatv$m7j$1@voodoo.hswn.dk" type="cite">
  <pre wrap="">In <a class="moz-txt-link-rfc2396E" href="mailto:ic2jgs$8ss$1@voodoo.hswn.dk"><ic2jgs$8ss$1@voodoo.hswn.dk></a> Henrik "Størner" <a class="moz-txt-link-rfc2396E" href="mailto:henrik@hswn.dk"><henrik@hswn.dk></a> writes:

  </pre>
  <blockquote type="cite">
    <pre wrap="">In <a class="moz-txt-link-rfc2396E" href="mailto:4CE450D8.1050809@logicaltech.com.au"><4CE450D8.1050809@logicaltech.com.au></a> Roland Soderstrom <a class="moz-txt-link-rfc2396E" href="mailto:rolands@logicaltech.com.au"><rolands@logicaltech.com.au></a> writes:
    </pre>
  </blockquote>
  <pre wrap="">
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">Another problem:
I'm trying to compile the client on Solaris 9 SPARC and get this error.
gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include 
-DCLIENTONLY=1 -I. -I../include    -c -o misc.o misc.c
In file included from /var/tmp/xymon-4.3.0.beta3/include/libxymon.h:56,
                 from misc.c:34:
/var/tmp/xymon-4.3.0.beta3/include/../lib/eventlog.h:38: error: syntax 
error before numeric constant
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap="">
  </pre>
  <blockquote type="cite">
    <pre wrap="">Yes, I've seen this on Solaris 8 also. Looking into it.
    </pre>
  </blockquote>
  <pre wrap="">

Turned out to be a name collision between some constants defined on Solaris
and in Xymon. So renaming them in Xymon solves this issue. Patch attached,
or download rev. 6604 from SVN.


Index: xymongen/pagegen.c
===================================================================
--- xymongen/pagegen.c  (revision 6602)
+++ xymongen/pagegen.c  (revision 6604)
@@ -954,7 +954,7 @@
                                do_eventlog(output, nongreeneventlogmaxcount, nongreeneventlogmaxtime,
                                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, nongreennodialups, 
                                host_exists,
-                               NULL, NULL, NULL, COUNT_NONE, S_NONE, NULL);
+                               NULL, NULL, NULL, XYMON_COUNT_NONE, XYMON_S_NONE, NULL);
                        }
                }
                else if (strcmp(p, "acklog.sh") == 0) {
@@ -1139,7 +1139,7 @@
                        do_eventlog(output, nongreeneventlogmaxcount, nongreeneventlogmaxtime, 
                                    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, nongreennodialups, 
                                    host_exists,
-                                   NULL, NULL, NULL, COUNT_NONE, S_NONE, NULL);
+                                   NULL, NULL, NULL, XYMON_COUNT_NONE, XYMON_S_NONE, NULL);
                }
                if (nongreenacklog && !havedoneacklog) do_acklog(output, nongreenacklogmaxcount, nongreenacklogmaxtime);
        }
Index: lib/eventlog.c
===================================================================
--- lib/eventlog.c      (revision 6602)
+++ lib/eventlog.c      (revision 6604)
@@ -641,7 +641,7 @@
                oldcolname = colorname(eventcolor(oldcol));
                newcolname = colorname(eventcolor(newcol));
                /* For DURATION counts, we must parse all events until now */
-               if ((counttype != COUNT_DURATION) && (eventtime > lastevent)) break;
+               if ((counttype != XYMON_COUNT_DURATION) && (eventtime > lastevent)) break;
                eventhost = hostinfo(hostname);
                eventcolumn = getname(svcname, 1);
 
@@ -657,7 +657,7 @@
                                        ignoredialups, hostcheck) == 0) continue;
 
                        /* For duration counts, record all events. We'll filter out the colors later. */
-                       if (colrregexp && (counttype != COUNT_DURATION)) {
+                       if (colrregexp && (counttype != XYMON_COUNT_DURATION)) {
                                colrmatch = ( (pcre_exec(colrregexp, NULL, newcolname, strlen(newcolname), 0, 0,
                                                        ovector, (sizeof(ovector)/sizeof(int))) >= 0) ||
                                              (pcre_exec(colrregexp, NULL, oldcolname, strlen(oldcolname), 0, 0,
@@ -678,7 +678,7 @@
                        newevent->next = eventhead;
                        eventhead = newevent;
 
-                       if (counttype != COUNT_DURATION) {
+                       if (counttype != XYMON_COUNT_DURATION) {
                                countrec = (eventcount_t *)xmh_item(eventhost, XMH_DATA);
                                while (countrec && (countrec->service != eventcolumn)) countrec = countrec->next;
                                if (countrec == NULL) {
@@ -695,8 +695,8 @@
        /* Count the state changes per host */
        svccounthead = hostcounthead = NULL;
        switch (counttype) {
-         case COUNT_EVENTS: count_events(&hostcounthead, &svccounthead); break;
-         case COUNT_DURATION: count_duration(firstevent, lastevent,
+         case XYMON_COUNT_EVENTS: count_events(&hostcounthead, &svccounthead); break;
+         case XYMON_COUNT_DURATION: count_duration(firstevent, lastevent,
                                               pageregexp, expageregexp,
                                               hostregexp, exhostregexp,
                                               testregexp, extestregexp,
@@ -718,12 +718,12 @@
                if (periodstring) fprintf(output, "<p><font size=+1>%s</font></p>\n", periodstring);
 
                switch (sumtype) {
-                 case S_HOST_BREAKDOWN:
+                 case XYMON_S_HOST_BREAKDOWN:
                        /* Request for a specific service, show breakdown by host */
                        for (cwalk = hostcounthead; (cwalk); cwalk = cwalk->next) totalcount += cwalk->total;
                        fprintf(output, "<table summary=\"Breakdown by host\" border=0>\n");
                        fprintf(output, "<tr><th align=left>Host</th><th colspan=2>%s</th></tr>\n",
-                               (counttype == COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
+                               (counttype == XYMON_COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
                        fprintf(output, "<tr><td colspan=3><hr width=\"100%%\"></td></tr>\n");
                        for (cwalk = hostcounthead; (cwalk && (cwalk->total > 0)); cwalk = cwalk->next) {
                                fprintf(output, "<tr><td align=left>%s</td><td align=right>%lu</td><td align=right>(%6.2f %%)</tr>\n",
@@ -733,12 +733,12 @@
                        fprintf(output, "</table>\n");
                        break;
 
-                 case S_SERVICE_BREAKDOWN:
+                 case XYMON_S_SERVICE_BREAKDOWN:
                        /* Request for a specific host, show breakdown by service */
                        for (cwalk = svccounthead; (cwalk); cwalk = cwalk->next) totalcount += cwalk->total;
                        fprintf(output, "<table summary=\"Breakdown by service\" border=0>\n");
                        fprintf(output, "<tr><th align=left>Service</th><th colspan=2>%s</th></tr>\n",
-                               (counttype == COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
+                               (counttype == XYMON_COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
                        fprintf(output, "<tr><td colspan=3><hr width=\"100%%\"></td></tr>\n");
                        for (cwalk = svccounthead; (cwalk && (cwalk->total > 0)); cwalk = cwalk->next) {
                                fprintf(output, "<tr><td align=left>%s</td><td align=right>%lu</td><td align=right>(%6.2f %%)</tr>\n",
@@ -748,11 +748,11 @@
                        fprintf(output, "</table>\n");
                        break;
 
-                 case S_NONE:
+                 case XYMON_S_NONE:
                        break;
                }
 
-               if (sumtype == S_NONE) {
+               if (sumtype == XYMON_S_NONE) {
                        int  count;
                        count=0;
                        ewalk=eventhead; 
@@ -783,11 +783,11 @@
                for (ewalk=eventhead; (ewalk); ewalk=ewalk->next) {
                        char *hostname = xmh_item(ewalk->host, XMH_HOSTNAME);
 
-                       if ( (counttype == COUNT_DURATION) &&
+                       if ( (counttype == XYMON_COUNT_DURATION) &&
                             (ewalk->oldcolor < COL_YELLOW) &&
                             (ewalk->newcolor < COL_YELLOW) ) continue;
 
-                       if ( (counttype == COUNT_DURATION) &&
+                       if ( (counttype == XYMON_COUNT_DURATION) &&
                             (ewalk->eventtime >= lastevent) ) continue;
 
                        fprintf(output, "<TR BGCOLOR=%s>\n<a class="moz-txt-link-rfc2396E" href="mailto:,bgcolors[bgcolor]);Index:lib/eventlog.h===================================================================---lib/eventlog.h(revision6602)+++lib/eventlog.h(revision6604)@@-35,8+35,8@@structcountlist_t*next;}countlist_t;-typedefenum{S_NONE,S_HOST_BREAKDOWN,S_SERVICE_BREAKDOWN}eventsummary_t;-typedefenum{COUNT_NONE,COUNT_EVENTS,COUNT_DURATION}countsummary_t;+typedefenum{XYMON_S_NONE,XYMON_S_HOST_BREAKDOWN,XYMON_S_SERVICE_BREAKDOWN}eventsummary_t;+typedefenum{XYMON_COUNT_NONE,XYMON_COUNT_EVENTS,XYMON_COUNT_DURATION}countsummary_t;typedefint(*f_hostcheck)(char*hostname);Index:web/eventlog.c===================================================================---web/eventlog.c(revision6602)+++web/eventlog.c(revision6604)@@-43,8+43,8@@char*colorregex=NULL;intignoredialups=0;inttopcount=0;-eventsummary_tsummarybar=S_NONE;-countsummary_tcounttype=COUNT_NONE;+eventsummary_tsummarybar=XYMON_S_NONE;+c
ountsummary_tcounttype=XYMON_COUNT_NONE;char*webfile_hf=">", bgcolors[bgcolor]);
Index: lib/eventlog.h
===================================================================
--- lib/eventlog.h      (revision 6602)
+++ lib/eventlog.h      (revision 6604)
@@ -35,8 +35,8 @@
        struct countlist_t *next;
 } countlist_t;
 
-typedef enum { S_NONE, S_HOST_BREAKDOWN, S_SERVICE_BREAKDOWN } eventsummary_t;
-typedef enum { COUNT_NONE, COUNT_EVENTS, COUNT_DURATION } countsummary_t;
+typedef enum { XYMON_S_NONE, XYMON_S_HOST_BREAKDOWN, XYMON_S_SERVICE_BREAKDOWN } eventsummary_t;
+typedef enum { XYMON_COUNT_NONE, XYMON_COUNT_EVENTS, XYMON_COUNT_DURATION } countsummary_t;
 
 typedef int (*f_hostcheck)(char *hostname);
 
Index: web/eventlog.c
===================================================================
--- web/eventlog.c      (revision 6602)
+++ web/eventlog.c      (revision 6604)
@@ -43,8 +43,8 @@
 char   *colorregex = NULL;
 int    ignoredialups = 0;
 int    topcount = 0;
-eventsummary_t summarybar = S_NONE;
-countsummary_t counttype = COUNT_NONE;
+eventsummary_t summarybar = XYMON_S_NONE;
+countsummary_t counttype = XYMON_COUNT_NONE;
 char   *webfile_hf = "</a>event";
 char   *webfile_form = "event_form";
 cgidata_t *cgidata = NULL;
@@ -102,14 +102,14 @@
                        if (*(cwalk->value)) topcount = atoi(cwalk->value);
                }
                else if (strcasecmp(cwalk->name, "SUMMARY") == 0) {
-                       if (strcasecmp(cwalk->value, "hosts") == 0) summarybar = S_HOST_BREAKDOWN;
-                       else if (strcasecmp(cwalk->value, "services") == 0) summarybar = S_SERVICE_BREAKDOWN;
-                       else summarybar = S_NONE;
+                       if (strcasecmp(cwalk->value, "hosts") == 0) summarybar = XYMON_S_HOST_BREAKDOWN;
+                       else if (strcasecmp(cwalk->value, "services") == 0) summarybar = XYMON_S_SERVICE_BREAKDOWN;
+                       else summarybar = XYMON_S_NONE;
                }
                else if (strcasecmp(cwalk->name, "COUNTTYPE") == 0) {
-                       if (strcasecmp(cwalk->value, "events") == 0) counttype = COUNT_EVENTS;
-                       else if (strcasecmp(cwalk->value, "duration") == 0) counttype = COUNT_DURATION;
-                       else counttype = COUNT_NONE;
+                       if (strcasecmp(cwalk->value, "events") == 0) counttype = XYMON_COUNT_EVENTS;
+                       else if (strcasecmp(cwalk->value, "duration") == 0) counttype = XYMON_COUNT_DURATION;
+                       else counttype = XYMON_COUNT_NONE;
                }
                else if (strcasecmp(cwalk->name, "TIMETXT") == 0) {
                        if (*(cwalk->value)) strcpy(periodstring, cwalk->value);
@@ -165,14 +165,14 @@
                addtobuffer(othercriteria, "&amp;SUMMARY=services");
                addtobuffer(othercriteria, "&amp;TIMETXT=");
                addtobuffer(othercriteria, periodstring);
-               if (counttype == COUNT_EVENTS) addtobuffer(othercriteria, "&amp;COUNTTYPE=events");
-               else if (counttype == COUNT_DURATION) addtobuffer(othercriteria, "&amp;COUNTTYPE=duration");
+               if (counttype == XYMON_COUNT_EVENTS) addtobuffer(othercriteria, "&amp;COUNTTYPE=events");
+               else if (counttype == XYMON_COUNT_DURATION) addtobuffer(othercriteria, "&amp;COUNTTYPE=duration");
 
                fprintf(output, "<td width=40%% align=center valign=top>\n");
                fprintf(output, "   <table summary=\"Top %d hosts\" border=0>\n", topcount);
                fprintf(output, "      <tr><th colspan=3>Top %d hosts</th></tr>\n", topcount);
                fprintf(output, "      <tr><th align=left>Host</th><th align=left colspan=2>%s</th></tr>\n",
-                       (counttype == COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
+                       (counttype == XYMON_COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
 
                /* Compute the total count */
                for (i=0, cwalk=hostcounthead; (cwalk); i++, cwalk=cwalk->next) totalcount += cwalk->total;
@@ -246,15 +246,15 @@
                addtobuffer(othercriteria, "&amp;SUMMARY=hosts");
                addtobuffer(othercriteria, "&amp;TIMETXT=");
                addtobuffer(othercriteria, periodstring);
-               if (counttype == COUNT_EVENTS) addtobuffer(othercriteria, "&amp;COUNTTYPE=events");
-               else if (counttype == COUNT_DURATION) addtobuffer(othercriteria, "&amp;COUNTTYPE=duration");
+               if (counttype == XYMON_COUNT_EVENTS) addtobuffer(othercriteria, "&amp;COUNTTYPE=events");
+               else if (counttype == XYMON_COUNT_DURATION) addtobuffer(othercriteria, "&amp;COUNTTYPE=duration");
 
 
                fprintf(output, "<td width=40%% align=center valign=top>\n");
                fprintf(output, "   <table summary=\"Top %d services\" border=0>\n", topcount);
                fprintf(output, "      <tr><th colspan=3>Top %d services</th></tr>\n", topcount);
                fprintf(output, "      <tr><th align=left>Service</th><th align=left colspan=2>%s</th></tr>\n",
-                       (counttype == COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
+                       (counttype == XYMON_COUNT_EVENTS) ? "State changes" : "Seconds red/yellow");
 
                /* Compute the total count */
                for (i=0, cwalk=svccounthead; (cwalk); i++, cwalk=cwalk->next) totalcount += cwalk->total;
@@ -360,7 +360,7 @@
                do_eventlog(NULL, -1, -1, fromtime, totime, 
                            pageregex, expageregex, hostregex, exhostregex, testregex, extestregex,
                            colorregex, ignoredialups, NULL,
-                           &events, &hcounts, &scounts, counttype, S_NONE, NULL);
+                           &events, &hcounts, &scounts, counttype, XYMON_S_NONE, NULL);
 
                lastevent = (totime ? eventreport_time(totime) : getcurrenttime(NULL));
 


Regards,
Henrik

To unsubscribe from the xymon list, send an e-mail to
<a class="moz-txt-link-abbreviated" href="mailto:xymon-unsubscribe@xymon.com">xymon-unsubscribe@xymon.com</a>


  </pre>
</blockquote>
</body>
</html>