[OpenAFS] Trying to build aklog with Solaris 10 (x86), openafs-1.4.4, Sun Kerberos

Douglas E. Engert deengert@anl.gov
Fri, 31 Aug 2007 08:37:35 -0500


Robert Sturrock wrote:
> Hi,
> 
> On Thu, Aug 30, 2007 at 09:14:41AM -0500, Douglas E. Engert wrote:
> 
>>> But the last stage of the build gives me (full log at bottom):
>>>
>>>    Undefined                       first referenced
>>>     symbol                             in file
>>>    krb5_cc_get_principal               aklog_main.o
>>>    ld: fatal: Symbol referencing errors. No output written to aklog
>>>    *** Error code 1
>>>    make: Fatal error: Command failed for target `aklog'
>>
>> The krb5.h as referred to in the above note was from OpenSolaris
>> and appears to match Solaris 10 libs and has
>>
>> "#pragma ident   "@(#)krb5.h 1.17    04/09/28 SMI":
>>
>> #define krb5_x(ptr,args) ((ptr)?((*(ptr)) args):(abort(),1))
>>
>> #define krb5_cc_get_principal(context, cache, principal) 
>> krb5_x((cache)->ops->get_princ,(context, cache, principal))
>>
>>
>> So krb5_cc_get_principal should not end up as symbol in the object file.
>>
>> Look at the krb5.h you are using see what version, and how
>> krb5_cc_get_principal is defined.  Are you picking up some other
>> krb5.h?
> 
> Thanks - that certainly explains the problem.  Unfortunately the only krb5.h
> I could find on opensolaris.org is quite a bit newer than the one you cite:
> 
>     http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/gssapi/mechs/krb5/include/krb5.h
> 
>       1 /*
>       2  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
>       3  * Use is subject to license terms.
>       4  */
>       5 
>       6 /* This is the prologue to krb5.h */
>       7 /* Unfortunately some of these defines are compiler dependent */
>       8 #ifndef _KRB5_H
>       9 #define _KRB5_H
>      10 
>      11 #pragma ident	"%Z%%M%	%I%	%E% SMI"
> 
>    1272 krb5_error_code KRB5_CALLCONV
>    1273 krb5_cc_get_principal (krb5_context context, krb5_ccache cache,
>    1274                        krb5_principal *principal);
> 
> So it doesn't seem to be straight #define anymore.
> 
> Is the older krb5.h source available elsewhere?  (I googled, but couldn't
> find any other :-().


Yes, this is a problem, in that the header files are from Opensolars, but
the library is from Solaris. OpenSolaris has changed.  When I copied them
earlier, they matched. Sun developers have said the "Update 4" of Solaris 10
would have the Kerberos header files. This should be the 8/07 release. (any day...)


I can send you the headers I am using now if you want.


> 
> Regards,
> 
> Robert.
> 
> 

-- 

  Douglas E. Engert  <DEEngert@anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444