[mrtg] MRTG 2.9.27 Fails to Build on Digital Unix 4.0D and Tru64 5.1A

Vic Summerour vicsum at swbell.net
Tue Apr 1 01:29:45 MEST 2003


When attempting to build the latest MRTG, 2.9.27, on either Digital Unix 
4.0 or Tru64 5.1A, the following messages are displayed from configure as 
it halts.

checking for unistd.h... yes
checking for unsigned long long... yes
checking for long long... yes
checking for strtoll... no
checking for sqrt in -lm... yes
checking for acos in -lm... yes
checking if long long works here... nope

** Ooops, your compiler seems to have issues with long long:

    figure out how to get long long, printf with %lld and
    strtoll working on your platform.
    probably the  config.log file can give you a hint.


Since Digital Unix aka Tru64 aka OSF/1 is a real 64 bit OS, there is no 
%lld format or no strtoll routine as they are not necessary (except for 
compatibility).  The Digital compiler(s) do allow for "long long" and it is 
equivalent to "long", i.e., both are 64 bits.  I have not tried using gcc, 
but I would suspect the same thing.

Both %ld and strtol support 64 bit words.

A change in the configure script as indicated below allowed the script to 
complete successfully.

2984,2985c2984,2987
<    i=strtoll(val,NULL,10);
<    if (sprintf(x,"%lld",i) < 0) {
---
 > /* i=strtoll(val,NULL,10); */
 >    i=strtol(val,NULL,10);
 > /* if (sprintf(x,"%lld",i) < 0) { */
 >    if (sprintf(x,"%ld",i) < 0) {


With the following change in rateup.c, it will successfully compile, link, 
and run.

57c57
< #define LLD "%lld"
---
 > #define LLD "%ld"
58a59
 > # define strtoll(a, b, c)        strtol((a), (b), (c))

Of course the way these changes have been done, the build process on 32 bit 
would break.






--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive     http://www.ee.ethz.ch/~slist/mrtg
FAQ         http://faq.mrtg.org    Homepage     http://www.mrtg.org
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the mrtg mailing list