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

Robert Sturrock rns@unimelb.edu.au
Fri, 31 Aug 2007 21:27:49 +1000


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 :-().

Regards,

Robert.