[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