Skip Menu |
 

Download (untitled) / with headers
text/plain 7.4KiB
From lio@hpss1.ccs.ornl.gov Mon Jan 14 11:12:33 2002
Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.7.21.83])
by rt-11.mit.edu (8.9.3/8.9.3) with ESMTP id LAA18833
for <bugs@RT-11.mit.edu>; Mon, 14 Jan 2002 11:12:32 -0500 (EST)
Received: from hpss1.ccs.ornl.gov (hpss1.ccs.ornl.gov [160.91.192.125])
by pacific-carrier-annex.mit.edu (8.9.2/8.9.2) with ESMTP id LAA12016
for <krb5-bugs@mit.edu>; Mon, 14 Jan 2002 11:12:32 -0500 (EST)
Received: (from root@localhost)
by hpss1.ccs.ornl.gov (AIX4.3/8.9.3/8.9.1) id LAA16474;
Mon, 14 Jan 2002 11:12:18 -0500
Message-Id: <200201141612.LAA16474@hpss1.ccs.ornl.gov>
Date: Mon, 14 Jan 2002 11:12:18 -0500
From: Dan Million <lio@hpss1.ccs.ornl.gov>
Reply-To: lio@hpss1.ccs.ornl.gov
To: krb5-bugs@mit.edu
Subject: telnetd build fails on AIX
X-Send-Pr-Version: 3.99

Show quoted text
>Number: 1043
>Category: krb5-build
>Synopsis: telnetd build fails on AIX
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: tlyu
>State: feedback
>Class: sw-bug
>Submitter-Id: unknown
>Arrival-Date: Mon Jan 14 11:13:01 EST 2002
>Last-Modified: Tue Jan 29 15:34:00 EST 2002
>Originator: Dan Million
>Organization:
Oak Ridge National Laboratory
Show quoted text
>Release: krb5-1.2.3
>Environment:
IBM RS/6000
AIX 4.3.3
System: AIX hpss1 3 4 000BF74D4C00


Show quoted text
>Description:
The ChangeLog in the src/appl/telnet/telnetd directory says that
ext.h was modified to change prototypes for netprintf and other
functions (entry dated 2001-08-02), but attempting to compile
utility.c in this directory fails because of prototype mismatches
on these functions:

"utility.c", line 373.1: 1506-343 (S) Redeclaration of netprintf
differs from previous declaration on line 192 of "ext.h".
"utility.c", line 373.1: 1506-378 (I) Prototype for function
netprintf cannot contain "..." when mixed with a nonprototype
declaration.
"utility.c", line 383.1: 1506-343 (S) Redeclaration of netprintf_urg
differs from previous declaration on line 193 of "ext.h".
"utility.c", line 383.1: 1506-378 (I) Prototype for function
netprintf_urg cannot contain "..." when mixed with a nonprototype
declaration.
"utility.c", line 393.1: 1506-343 (S) Redeclaration of
netprintf_noflush differs from previous declaration on line
194 of "ext.h".
"utility.c", line 393.1: 1506-378 (I) Prototype for function
netprintf_noflush cannot contain "..." when mixed with a
nonprototype declaration.
make: 1254-004 The error code from the last command is 1.

Show quoted text
>How-To-Repeat:
Try building on an AIX system.
Show quoted text
>Fix:
None determined yet.
Show quoted text
>Audit-Trail:

From: Dan Million <lio@hpss1.ccs.ornl.gov>
To: <krb5-bugs@mit.edu>, <tlyu@mit.edu>
Cc: Dan Million <lio@hpss1.ccs.ornl.gov>
Subject: krb5-build/1043: telnetd build fails on AIX
Date: Tue, 15 Jan 2002 13:56:32 -0500 (EST)

As a follow-up to this problem report:

The problem in compiling utility.c in the src/appl/telnet/telnetd
directory seems to come from using the AIX "cc" compiler. If the
"xlc" compiler command is used, the compilation succeeds. The "xlc"
compiler conforms more strictly to ANSI C than "cc".

HOWEVER, I have always used "cc" in the past for building Kerberos for
AIX, and never had a problem. And the solution is not to simply use "xlc"
for the entire build, because that causes other compilations to fail due
to increased strictness in enforcing type mismatches and other glitches.

Would it be better to just use gcc for the compilation?

Dan Million
Oak Ridge National Laboratory

State-Changed-From-To: open-feedback
State-Changed-By: tlyu
State-Changed-When: Tue Jan 29 15:18:23 2002
State-Changed-Why:




From: Tom Yu <tlyu@MIT.EDU>
To: lio@hpss1.ccs.ornl.gov
Cc: krb5-bugs@MIT.EDU
Subject: Re: krb5-build/1043: telnetd build fails on AIX
Date: Tue, 29 Jan 2002 15:18:17 -0500 (EST)

This looks like there's a problem with AIX cc failing to define
__STDC__ at all, even though it supports ANSI prototypes. This
results in the observed prototype mismatch. Please try the following
patch and let us know if it works.

---Tom

Index: ext.h
===================================================================
RCS file: /cvs/krbdev/krb5/src/appl/telnet/telnetd/ext.h,v
retrieving revision 5.7.12.1
retrieving revision 5.7.12.2
diff -c -r5.7.12.1 -r5.7.12.2
*** ext.h 2001/08/02 22:05:19 5.7.12.1
--- ext.h 2002/01/18 17:58:07 5.7.12.2
***************
*** 189,199 ****
willoption P((int)),
wontoption P((int));

! extern void netprintf P((const char *, ...));
! extern void netprintf_urg P((const char *fmt, ...));
! extern void netprintf_noflush P((const char *fmt, ...));
! extern int netwrite P((const char *, size_t));
! extern void netputs P((const char *));

#ifdef ENCRYPTION
extern char *nclearto;
--- 189,199 ----
willoption P((int)),
wontoption P((int));

! extern void netprintf(const char *, ...);
! extern void netprintf_urg(const char *fmt, ...);
! extern void netprintf_noflush(const char *fmt, ...);
! extern int netwrite(const char *, size_t);
! extern void netputs(const char *);

#ifdef ENCRYPTION
extern char *nclearto;

From: Dan Million <lio@hpss1.ccs.ornl.gov>
To: Tom Yu <tlyu@mit.edu>
Cc: <krb5-bugs@mit.edu>, Dan Million <lio@hpss1.ccs.ornl.gov>
Subject: Re: krb5-build/1043: telnetd build fails on AIX
Date: Tue, 29 Jan 2002 15:33:01 -0500 (EST)

On Tue, 29 Jan 2002, Tom Yu wrote:

Show quoted text
> This looks like there's a problem with AIX cc failing to define
> __STDC__ at all, even though it supports ANSI prototypes. This
> results in the observed prototype mismatch. Please try the following
> patch and let us know if it works.
>
> ---Tom

You can run the AIX compiler with the "cc" command, which is loose about
the rules, or with the "xlc" command, which implies full ANSI compliance.
With "cc", __STDC__ is not defined; with "xlc" it is.

I tried using both compilers on Kerberos. The problem is, if I use "xlc",
the compilation bombs in other places because of type mismatches which are
ignored with "cc". So I was hosed either way.

However, I got around the problem by using gcc, which built all of
Kerberos on AIX just fine.

Up to version 1.2.3, I have always used the AIX "cc" compiler to build
Kerberos. (But that was also an older version of the compiler; we
recently upgraded to the latest AIX compilers.)

Dan

Show quoted text
>
> Index: ext.h
> ===================================================================
> RCS file: /cvs/krbdev/krb5/src/appl/telnet/telnetd/ext.h,v
> retrieving revision 5.7.12.1
> retrieving revision 5.7.12.2
> diff -c -r5.7.12.1 -r5.7.12.2
> *** ext.h 2001/08/02 22:05:19 5.7.12.1
> --- ext.h 2002/01/18 17:58:07 5.7.12.2
> ***************
> *** 189,199 ****
> willoption P((int)),
> wontoption P((int));
>
> ! extern void netprintf P((const char *, ...));
> ! extern void netprintf_urg P((const char *fmt, ...));
> ! extern void netprintf_noflush P((const char *fmt, ...));
> ! extern int netwrite P((const char *, size_t));
> ! extern void netputs P((const char *));
>
> #ifdef ENCRYPTION
> extern char *nclearto;
> --- 189,199 ----
> willoption P((int)),
> wontoption P((int));
>
> ! extern void netprintf(const char *, ...);
> ! extern void netprintf_urg(const char *fmt, ...);
> ! extern void netprintf_noflush(const char *fmt, ...);
> ! extern int netwrite(const char *, size_t);
> ! extern void netputs(const char *);
>
> #ifdef ENCRYPTION
> extern char *nclearto;
>

Show quoted text
>Unformatted:
Thanks; this was fixed in the krb5-1.2.4 release.