Replied: Thu, 31 Oct 1996 18:24:24 -0500
Replied: "Paul.Russell@rustcorp.com.au mills@udel.edu"
Received: from copland.udel.edu by huey.udel.edu id aa13356; 30 Oct 96 22:58 EST
Received: from mail.telstra.com.au (mail.telstra.com.au [192.148.160.10]) by copland.udel.edu (8.7.6/8.7.3) with ESMTP id WAA19842 for <mills@udel.edu>; Wed, 30 Oct 1996 22:57:29 -0500 (EST)
Received: (from uucp@localhost) by mail.telstra.com.au (8.8.2/8.6.9) id OAA01889 for <mills@udel.edu>; Thu, 31 Oct 1996 14:56:48 +1100 (EST)
Received: from mail_gw.fwall.telecom.com.au(192.148.147.10) by mail via smap (V1.3)
	id sma001480; Thu Oct 31 14:53:54 1996
Received: (from uucp@localhost) by mail_gw.fwall.telecom.com.au (8.8.2/8.6.9) id OAA08766 for <mills@udel.edu>; Thu, 31 Oct 1996 14:53:52 +1100 (EST)
Received: from cdn_mail.dn.itg.telecom.com.au(144.135.109.134) by mail_gw.telecom.com.au via smap (V1.3)
	id sma008713; Thu Oct 31 14:53:34 1996
Received: from sydney.trl.telstra.com.au (provence.sydney.trl.telstra.com.au [143.238.2.99]) by cdn-mail.telecom.com.au (8.8.2/8.6.9) with SMTP id OAA09595 for <mills@udel.edu>; Thu, 31 Oct 1996 14:53:34 +1100 (EST)
Received: from wink.sydney.trl.telstra.com.au by sydney.trl.telstra.com.au (SMI-8.6/SMI-SVR4)
	id OAA09380; Thu, 31 Oct 1996 14:53:29 +1100
Received: from localhost (prussell@localhost) by wink.sydney.trl.telstra.com.au (8.8.2/8.8.2) with SMTP id OAA11368 for <mills@udel.edu>; Thu, 31 Oct 1996 14:53:25 +1100 (EST)
Message-Id: <199610310353.OAA11368@wink.sydney.trl.telstra.com.au>
X-Authentication-Warning: wink.sydney.trl.telstra.com.au: prussell owned process doing -bs
X-Authentication-Warning: wink.sydney.trl.telstra.com.au: prussell@localhost didn't use HELO protocol
To: mills@udel.edu
Subject: Bugfix for xntpd configuration w/ non-ANSI preprocessors
Reply-To: Paul.Russell@rustcorp.com.au
Date: Thu, 31 Oct 1996 14:53:22 +1100
From: Paul Russell <prussell@sydney.trl.telstra.com.au>


Hi David,

	I recently tried to make xntpd3-5.86 on sparc-sun-sunos4.1.3_U1,
and the configuration came out wrong; I noticed when the compile failed
in xntpd/ntp_io.c due to MCAST being defined - it shouldn't be.

	SunOS 4 uses a non-ansi C preprocessor, which does not grok
preprocessor directives which are preceeded by whitespace; the test

AC_CACHE_CHECK(for kernel multicast support, ac_cv_var_mcast,
 AC_EGREP_CPP(yes,
  [#include <netinet/in.h>
   #ifdef IP_ADD_MEMBERSHIP
   yes
   #endif
  ], ac_cv_var_mcast=yes, ac_cv_var_mcast=no))

was passing straight through the preprocessor without modification of
the #ifdef and #endif lines, due to the whitespace problem.

Here is a patch (tested on sparc-sun-sunos4.1.3_U1) which fixes this
and other tests on whitespace-challenged preprocessors:
----------------------------------------------------------------Cut Here
*** configure.in.~1~	Wed Sep  4 13:40:33 1996
--- configure.in	Thu Oct 31 13:59:39 1996
***************
*** 294,302 ****
  AC_CACHE_CHECK(for SIGIO, ac_cv_hdr_def_sigio,
   AC_EGREP_CPP(yes,
    [#include <signal.h>
!   #ifdef SIGIO
     yes
!   #endif
    ], ac_cv_hdr_def_sigio=yes, ac_cv_hdr_def_sigio=no))
  
  dnl Override those system that have a losing SIGIO
--- 294,302 ----
  AC_CACHE_CHECK(for SIGIO, ac_cv_hdr_def_sigio,
   AC_EGREP_CPP(yes,
    [#include <signal.h>
! #ifdef SIGIO
     yes
! #endif
    ], ac_cv_hdr_def_sigio=yes, ac_cv_hdr_def_sigio=no))
  
  dnl Override those system that have a losing SIGIO
***************
*** 327,335 ****
  AC_CACHE_CHECK(for SIGPOLL, ac_cv_hdr_def_sigpoll,
   AC_EGREP_CPP(yes,
   [#include <signal.h>
!  #ifdef SIGPOLL
    yes
!  #endif
   ], ac_cv_hdr_def_sigpoll=yes, ac_cv_hdr_def_sigpoll=no))
  
  AC_CACHE_CHECK(if we can use SIGPOLL for UDP I/O, ac_cv_var_use_udp_sigpoll,
--- 327,335 ----
  AC_CACHE_CHECK(for SIGPOLL, ac_cv_hdr_def_sigpoll,
   AC_EGREP_CPP(yes,
   [#include <signal.h>
! #ifdef SIGPOLL
    yes
! #endif
   ], ac_cv_hdr_def_sigpoll=yes, ac_cv_hdr_def_sigpoll=no))
  
  AC_CACHE_CHECK(if we can use SIGPOLL for UDP I/O, ac_cv_var_use_udp_sigpoll,
***************
*** 485,493 ****
  AC_CACHE_CHECK(for kernel multicast support, ac_cv_var_mcast,
   AC_EGREP_CPP(yes,
    [#include <netinet/in.h>
!   #ifdef IP_ADD_MEMBERSHIP
     yes
!   #endif
    ], ac_cv_var_mcast=yes, ac_cv_var_mcast=no))
  case "$ac_cv_var_mcast" in
   yes) AC_DEFINE(MCAST) ;;
--- 485,493 ----
  AC_CACHE_CHECK(for kernel multicast support, ac_cv_var_mcast,
   AC_EGREP_CPP(yes,
    [#include <netinet/in.h>
! #ifdef IP_ADD_MEMBERSHIP
     yes
! #endif
    ], ac_cv_var_mcast=yes, ac_cv_var_mcast=no))
  case "$ac_cv_var_mcast" in
   yes) AC_DEFINE(MCAST) ;;
***************
*** 501,509 ****
      ;;
    *) AC_EGREP_CPP(yes,
       [#include <sys/syscall.h>
!       #if defined(SYS_ntp_gettime) && defined(SYS_ntp_adjtime)
         yes
!       #endif
        ], ac_cv_var_ntp_syscalls=kernel)
       ;;
   esac])
--- 501,509 ----
      ;;
    *) AC_EGREP_CPP(yes,
       [#include <sys/syscall.h>
! #if defined(SYS_ntp_gettime) && defined(SYS_ntp_adjtime)
         yes
! #endif
        ], ac_cv_var_ntp_syscalls=kernel)
       ;;
   esac])
***************
*** 593,601 ****
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
!          #ifdef TIOCMBIS
           yes
!          #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
--- 593,601 ----
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
! #ifdef TIOCMBIS
           yes
! #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
***************
*** 710,718 ****
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
!          #ifdef TIOCMBIS
           yes
!          #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
--- 710,718 ----
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
! #ifdef TIOCMBIS
           yes
! #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
***************
*** 838,846 ****
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
!          #ifdef TIOCMBIS
           yes
!          #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
--- 838,846 ----
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
! #ifdef TIOCMBIS
           yes
! #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
***************
*** 963,971 ****
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
!          #ifdef TIOCMBIS
           yes
!          #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
--- 963,971 ----
      [ntp_ok=$enableval],
      [AC_EGREP_CPP(yes,
          [#include <termios.h>
! #ifdef TIOCMBIS
           yes
! #endif
           ], ntp_ok=$ntp_eac, ntp_ok=no)])
  if test "$ntp_ok" = "yes"; then
      ntp_refclock=yes
----------------------------------------------------------------End Patch

Hope this helps,
Paul.
--
Paul.Russell@RustCorp.com.au                  "Engineer? So you drive trains?"
Lies, damned lies, and out-of-date documentation.
Currently contracted to Telstra, Sydney.
