kerberos 1.2.3 compile problems on aix 4.3.3

jesse raynor generalyore at hotmail.com
Wed Feb 27 18:28:36 EST 2002


I had trouble compiling kerberos 1.2.3 on AIX 4.3.3.  I got it to build with
cc, which doesn't define __STDC__, but not with xlc, which does.  I am using
version 5 of the AIX C compiler.


To build with cc, I cd'ed to the src directory and did:

	./configure --prefix=/opt/kerberos --without-krb4
	make


By default, cc gets picked as the compiler to use.  Eventually the build 
dies
under the telnet directory.  Here's the last command make tried:


cc -DKRB5_DNS_LOOKUP_KDC=1 -DKRB5_DNS_LOOKUP=1 -DTERMCAP=1 -DUSE_TERMIO=1 
-DTIME_WITH_SYS_TIME=1 -DHAVE_STRING_H=1 -DHAVE_ARPA_NAMESER_H=1 
-DHAVE_UTMP_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_STREAM_H=1 
-DHAVE_SYS_UTSNAME_H=1 -DHAVE_VSNPRINTF=1 -DSTREAMSPTY=1  -DAUTHENTICATION 
-DENCRYPTION -DKRB5 -DFORWARD -UNO_LOGIN_F -ULOGIN_CAP_F 
-DLOGIN_PROGRAM=KRB5_PATH_LOGIN -DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK 
-DOLD_ENVIRON -I../../../include -I./../../../include 
-I../../../include/krb5 -I./../../../include/krb5 -I.. -I./..  -c utility.c
"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.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.




To make the prototypes match, I changed lines 192-194 of ext.h from

extern void netprintf P((const char *, ...));
extern void netprintf_urg P((const char *fmt, ...));
extern void netprintf_noflush P((const char *fmt, ...));

to

extern void netprintf (const char *, ...);
extern void netprintf_urg (const char *fmt, ...);
extern void netprintf_noflush (const char *fmt, ...);


and then reran make.  It finished compiling.








To build with xlc, I cd'ed to the src directory and did:


	./configure --prefix=/opt/kerberos --without-krb4 --with-cc=xlc
	make



Again, the build dies, and the last command tried is:



xlc -DKRB5_DNS_LOOKUP_KDC=1 -DKRB5_DNS_LOOKUP=1 -DHAVE_SYSLOG_H=1 
-DHAVE_OPENLOG=1 -DHAVE_SYSLOG=1 -DHAVE_CLOSELOG=1 -DHAVE_STRFTIME=1 
-DHAVE_VSPRINTF=1 -DHAVE_RE_COMP=1 -DHAVE_RE_EXEC=1 -DHAVE_REGEXEC=1 
-DHAVE_REGCOMP=1 -DHAVE_SRAND48=1 -DHAVE_SRAND=1 -DHAVE_SRANDOM=1  
-DUSE_KADM5_API_VERSION=1 -I../../../include
-I./../../../include -I../../../include/krb5 -I./../../../include/krb5   
-UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -DINIT_TEST -c 
-I./../../../lib/kadm5 ./../../../lib/kadm5/clnt/client_init.c
"./../../../lib/kadm5/clnt/client_init.c": 1506-213 (S) Macro name 
USE_KADM5_API_VERSION cannot be redefined.
"./../../../lib/kadm5/clnt/client_init.c", line 446.37: 1506-280 (E) 
Function argument assignment between types "const char**" and "char**" is 
not allowed.
"./../../../lib/kadm5/clnt/client_init.c", line 468.32: 1506-280 (E) 
Function argument assignment between types "struct gss_OID_desc_struct*" and 
"const struct gss_OID_desc_struct* const" is not allowed.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.






I decided to remove -DUSE_KADM5_API_VERSION=1 from the command and run it
directly.  I cd'ed to lib/kadm5/unit-test and ran it, and it compiled.  I 
then
cd'ed back to the toplevel source directory and reran make.  It continued a
little, but died again.  Here's more output:



making all in lib/kadm5/unit-test...
Target "all" is up to date.
Target "all" is up to date.
Target "all" is up to date.
        xlc -DKRB5_DNS_LOOKUP_KDC=1 -DKRB5_DNS_LOOKUP=1 -DHAVE_SYSLOG_H=1 
-DHAVE_OPENLOG=1 -DHAVE_SYSLOG=1 -DHAVE_CLOSELOG=1 -DHAVE_STRFTIME=1 
-DHAVE_VSPRINTF=1 -DHAVE_RE_COMP=1 -DHAVE_RE_EXEC=1 -DHAVE_REGEXEC=1 
-DHAVE_REGCOMP=1 -DHAVE_SRAND48=1 -DHAVE_SRAND=1 -DHAVE_SRANDOM=1  
-DUSE_KADM5_API_VERSION=1 -I../../../include
-I./../../../include -I../../../include/krb5 -I./../../../include/krb5   
-UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -c 
./../../../lib/kadm5/unit-test/setkey-test.c
"./../../../lib/kadm5/unit-test/setkey-test.c": 1506-213 (S) Macro name 
USE_KADM5_API_VERSION cannot be redefined.
"./../../../lib/kadm5/unit-test/setkey-test.c", line 191.47: 1506-280 (E) 
Function argument assignment between types "int*" and "unsigned int*" is not 
allowed.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.





Since this was the same error as before, I removed -DUSE_KADM5_API_VERSION=1
from the command, cd'ed to lib/kadm5/unit-test, and ran it.  The file
compiled, and I cd'ed back to the toplevel source directory and reran make.
Compilation continued, but then died.  The final output was:



xlc -DKRB5_DNS_LOOKUP_KDC=1 -DKRB5_DNS_LOOKUP=1 -DHAVE_LIBCRYPT=1 
-DSTDC_HEADERS=1 -DHAVE_ISATTY=1 -DHAVE_INET_ATON=1 -DHAVE_KILLPG=1 
-DHAVE_INITGROUPS=1 -DHAVE_SETPRIORITY=1 -DHAVE_SETREUID=1 -DHAVE_WAITPID=1 
-DHAVE_SETSID=1 -DHAVE_PTSNAME=1 -DHAVE_TCGETPGRP=1 -DHAVE_TCSETPGRP=1 
-DHAVE_SETPGID=1 -DHAVE_UTIMES=1 -DHAVE_UNISTD_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_TTYENT_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_UTMP_H=1 
-DHAVE_SYS_TIME_H=1 -DHAVE_PATHS_H=1 -DHAVE_ARPA_NAMESER_H=1 
-DHAVE_STDARG_H=1 -DHAVE_GETDTABLESIZE=1 -Dkrb5_sigtype=void 
-DPOSIX_SIGTYPE=1 -DPOSIX_SIGNALS=1 -DPOSIX_SETJMP=1 -DUSE_DIRENT_H=1 
-DWAIT_USES_INT=1 -DPOSIX_TERMIOS=1 -DHAVE_SETUTENT=1 -DHAVE_SETUTXENT=1 
-DHAVE_UPDWTMP=1 -DHAVE_STREAMS=1 -DHAVE_SETOWN=1 -DHAVE_ETC_ENVIRONMENT=1 
-DKRB5_PROVIDE_PROTOTYPES=1  -DKRB5_PATH_RLOGIN=\"/opt/kerberos/bin/rlogin\" 
-DUCB_RLOGIN=\"/bin/rlogin\"  -DUCB_RSH=\"/bin/rsh\" -DUCB_RCP=\"/bin/rcp\"  
  -DLOGIN_PROGRAM=\"/opt/kerberos/sbin/login.krb5\" 
-DKPROGDIR=\"/opt/kerberos/bin\" -I../../include -I./../../include 
-I../../include/krb5 -I./../../include/krb5 -DKERBEROS   -c krlogind.c
"/usr/include/arpa/onameser_compat.h", line 114.9: 1506-213 (S) Macro name 
NOERROR cannot be redefined.
"/usr/include/arpa/onameser_compat.h", line 114.9: 1506-358 (I) "NOERROR" is 
defined on line 344 of /usr/include/sys/stream.h.
"krlogind.c", line 529.59: 1506-280 (E) Function argument assignment between 
types "unsigned long*" and "int*" is not allowed.
"krlogind.c", line 551.56: 1506-280 (E) Function argument assignment between 
types "unsigned long*" and "int*" is not allowed.
"krlogind.c", line 558.54: 1506-280 (E) Function argument assignment between 
types "unsigned long*" and "int*" is not allowed.
"krlogind.c", line 1039.39: 1506-280 (E) Function argument assignment 
between types "char*" and "unsigned char*" is not allowed.
"krlogind.c", line 1127.39: 1506-280 (E) Function argument assignment 
between types "char*" and "unsigned char*" is not allowed.
"krlogind.c", line 1391.54: 1506-280 (E) Function argument assignment 
between types "unsigned long*" and "int*" is not allowed.
"krlogind.c", line 1396.56: 1506-280 (E) Function argument assignment 
between types "unsigned long*" and "int*" is not allowed.
"krlogind.c", line 1489.57: 1506-280 (E) Function argument assignment 
between types "unsigned long*" and "int*" is not allowed.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.








_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com




More information about the Kerberos mailing list