argus-3.0.0.rc.14 / log detail

Karl Tatgenhorst karlt at uchicago.edu
Tue Jul 11 10:28:26 EDT 2006


configure:4070: checking for ANSI ioctl definitions
configure:4103: gcc -c -g -O2  conftest.c >&5
conftest.c: In function `main':
conftest.c:23: error: case label does not reduce to an integer constant
conftest.c:24: error: case label does not reduce to an integer constant
configure:4109: $? = 1
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
| /*
|                      * This generates a "duplicate case value" when
fixincludes
|                      * has not be run.
|                      */
| #               include <sys/types.h>
| #               include <sys/time.h>
| #               include <sys/ioctl.h>
| #               ifdef HAVE_SYS_IOCCOM_H
| #               include <sys/ioccom.h>
| #               endif
| int
| main ()
| {
| switch (0) {
|                     case _IO('A', 1):;
|                     case _IO('B', 1):;
|                     }
|   ;
|   return 0;
| }
configure:4134: result: no
configure:4139: error: see the INSTALL for more info


   Sorry, I should have included this earlier.

Karl


On Tue, 2006-07-11 at 09:04 -0500, Karl Tatgenhorst wrote:
> I tried out your advice, I just globally used sed s/u_int/uint/g. I
> figured some of the definitions like nff_u_int(s) might be changed and
> were already adequately defined in the argus header files but it made
> for consistent reading and I didn't have to poke through the files and
> decide about changing each and every entry. So now on the ./configure it
> finds the uint types and the very next line is: checking for ANSI ioctl
> definitions... no... then it bombs. I can see the ioct.h file is
> in /usr/include/sys as I would think that it should be. Any ideas?
> 
> Thanks,
> 
> Karl
> 
> On Tue, 2006-07-11 at 00:53 +0000, Robert Edmonds wrote:
> > On 2006-07-10, Carter Bullard <carter at qosient.com> wrote:
> > > I hate Solaris.   Just thought I'd get that out there in the beginning
> > > to avoid any confusion on the topic ;o)  No, Solaris is fine, but it is
> > > very picky about  include files, and typing.  Argus 3.0 has compiled
> > > on Solaris in the recent past, so it shouldn't be a big deal.
> > >
> > > You are failing on ANSI ioctl definitions, which is something of a
> > > big deal, but you failed on the u_int64_t type check as well, which
> > > is new, and may actually be the problem.  Let me find a Solaris
> > > machine to see what I need to do to fix it.
> > 
> > Hmm, on Solaris 8 I found the _IO macro definition in
> > /usr/include/sys/ioccom.h, which bears this comment:
> > 
> > /*      ioccom.h 1.3 88/02/08 SMI; from UCB ioctl.h 7.1 6/4/86  */
> > 
> > For the u_int64_t problem, I would change all u_int types to uint, since
> > uint's are standard.
> > 
> > This is on Solaris 8:
> > 
> >     $ grep uint /usr/include/sys/int_types.h | head -5
> >     typedef unsigned char           uint8_t;
> >     typedef unsigned short          uint16_t;
> >     typedef unsigned int            uint32_t;
> >     typedef unsigned long           uint64_t;
> >     typedef unsigned long long      uint64_t;
> > 
> >     (although <sys/inttypes.h> should be included, not <sys/int_types.h>)
> > 
> > This is a C standard thing, not just Solaris.  glibc has the same types:
> > 
> >     http://www.gnu.org/software/libc/manual/html_node/Integers.html
> > 
> 




More information about the argus mailing list