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