[OpenAFS-devel] AIX build fails with missing symbol .krb5_c_make_random_key

Ben Huntsman ben@huntsmans.net
Sun, 14 Aug 2022 18:46:00 +0000


--_000_MWHPR0701MB36743D74D14311A20D2B3F03A7699MWHPR0701MB3674_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Ken-

Ah, yes, I believe you are right.  That library does exist on my system als=
o, and I manually added it to Makefile.config and the build continued.  The=
 question is then, why didn't ./configure detect it and add it?

I think this is the problem:

$ grep md5 config.log
configure:41845: checking for krb5int_hash_md5 in -lk5crypto
ld: 0711-317 ERROR: Undefined symbol: .krb5int_hash_md5
| char krb5int_hash_md5 ();
| return krb5int_hash_md5 ();
configure:48734: checking for krb5int_hash_md5 in -lk5crypto
ac_cv_lib_k5crypto_krb5int_hash_md5=3Dno
$ nm /opt/freeware/lib/libk5crypto.a | grep md5
.EVP_md5             T   268449356
.EVP_md5             t   268449356          40
.hash_md5            t   268450036         120
.krb5int_hmacmd5_checksum T   268481192         892
EVP_md5              U           -
EVP_md5              d   536875224           4
_checksumhmacmd5.rop_ t   268504960          13
checksum_hmac_md5.c  f           -
hash_md5             d   536873496          12
hash_md5:f821        -         520
krb5int_hash_md5     D   536871692
krb5int_hash_md5     d   536875384           4
krb5int_hash_md5:G1628 -          60
krb5int_hmacmd5_checksum D   536874036
krb5int_hmacmd5_checksum d   536874036          12
krb5int_hmacmd5_checksum:F821 -           0


For some reason, the check for if we should add -lk5crypto is failing.  The=
re's a krb5int_hash_md5 but not a .krb5int_hash_md5.  Should we check for s=
omething else on AIX?

Thank you.

-Ben


________________________________
From: Ken Hornstein <kenh@cmf.nrl.navy.mil>
Sent: Sunday, August 14, 2022 10:25 AM
To: Ben Huntsman <ben@huntsmans.net>
Cc: openafs-devel@openafs.org <openafs-devel@openafs.org>
Subject: Re: [OpenAFS-devel] AIX build fails with missing symbol .krb5_c_ma=
ke_random_key

>   Like I said though, nm shows that the libkrb5.a library has the
>   symbol in question in it, so I'm not quite sure how providing a
>   newer version would alter the outcome...

Are you _sure_ that libkrb5.a has that symbol in it, and it's not just
an undefined reference to the symbol?  On my system (using MIT krb5 1.19)
krb5_c_make_random_key is in libk5crypto, and I noticed that library is
not in your link command (there are references to krb5_c_make_random_key
in libkrb5, but no symbol definition).

--Ken

--_000_MWHPR0701MB36743D74D14311A20D2B3F03A7699MWHPR0701MB3674_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Hi Ken-</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Ah, yes, I believe you are right.&nbsp; That library does exist on my syste=
m also, and I manually added it to Makefile.config and the build continued.=
&nbsp; The question is then, why didn't ./configure detect it and add it?</=
div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
I think this is the problem:</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
$ grep md5 config.log
<div>configure:41845: checking for krb5int_hash_md5 in -lk5crypto</div>
<div>ld: 0711-317 ERROR: Undefined symbol: .krb5int_hash_md5</div>
<div>| char krb5int_hash_md5 ();</div>
<div>| return krb5int_hash_md5 ();</div>
<div>configure:48734: checking for krb5int_hash_md5 in -lk5crypto</div>
<div>ac_cv_lib_k5crypto_krb5int_hash_md5=3Dno</div>
<div>$ nm /opt/freeware/lib/libk5crypto.a | grep md5</div>
<div>.EVP_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; T &nbsp; 268449356<=
/div>
<div>.EVP_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t &nbsp; 268449356 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;40</div>
<div>.hash_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t &nbsp; 268450036 =
&nbsp; &nbsp; &nbsp; &nbsp; 120</div>
<div>.krb5int_hmacmd5_checksum T &nbsp; 268481192 &nbsp; &nbsp; &nbsp; &nbs=
p; 892</div>
<div>EVP_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;U &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; -</div>
<div>EVP_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;d &nbsp; 53687=
5224 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4</div>
<div>_checksumhmacmd5.rop_ t &nbsp; 268504960 &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp;13</div>
<div>checksum_hmac_md5.c &nbsp;f &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</div>
<div>hash_md5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d &nbsp; 536873496 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;12</div>
<div>hash_md5:f821 &nbsp; &nbsp; &nbsp; &nbsp;- &nbsp; &nbsp; &nbsp; &nbsp;=
 520</div>
<div>krb5int_hash_md5 &nbsp; &nbsp; D &nbsp; 536871692</div>
<div>krb5int_hash_md5 &nbsp; &nbsp; d &nbsp; 536875384 &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; 4</div>
<div>krb5int_hash_md5:G1628 - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;60</div>
<div>krb5int_hmacmd5_checksum D &nbsp; 536874036</div>
<div>krb5int_hmacmd5_checksum d &nbsp; 536874036 &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp;12</div>
<div>krb5int_hmacmd5_checksum:F821 - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</=
div>
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
For some reason, the check for if we should add -lk5crypto is failing.&nbsp=
; There's a&nbsp;<span style=3D"background-color:rgb(255, 255, 255);display=
:inline !important">krb5int_hash_md5 but not a .<span style=3D"background-c=
olor:rgb(255, 255, 255);display:inline !important">krb5int_hash_md5.&nbsp;
 Should we check for something else on AIX?&nbsp;&nbsp;</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<span style=3D"background-color:rgb(255, 255, 255);display:inline !importan=
t"><span style=3D"background-color:rgb(255, 255, 255);display:inline !impor=
tant"><br>
</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<span style=3D"background-color:rgb(255, 255, 255);display:inline !importan=
t"><span style=3D"background-color:rgb(255, 255, 255);display:inline !impor=
tant">Thank you.</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<span style=3D"background-color:rgb(255, 255, 255);display:inline !importan=
t"><span style=3D"background-color:rgb(255, 255, 255);display:inline !impor=
tant"><br>
</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<span style=3D"background-color:rgb(255, 255, 255);display:inline !importan=
t"><span style=3D"background-color:rgb(255, 255, 255);display:inline !impor=
tant">-Ben</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<span style=3D"background-color:rgb(255, 255, 255);display:inline !importan=
t"><span style=3D"background-color:rgb(255, 255, 255);display:inline !impor=
tant"><br>
</span></span></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Ken Hornstein &lt;ken=
h@cmf.nrl.navy.mil&gt;<br>
<b>Sent:</b> Sunday, August 14, 2022 10:25 AM<br>
<b>To:</b> Ben Huntsman &lt;ben@huntsmans.net&gt;<br>
<b>Cc:</b> openafs-devel@openafs.org &lt;openafs-devel@openafs.org&gt;<br>
<b>Subject:</b> Re: [OpenAFS-devel] AIX build fails with missing symbol .kr=
b5_c_make_random_key</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">&gt;&nbsp;&nbsp; Like I said though, nm shows that=
 the libkrb5.a library has the<br>
&gt;&nbsp;&nbsp; symbol in question in it, so I'm not quite sure how provid=
ing a<br>
&gt;&nbsp;&nbsp; newer version would alter the outcome...<br>
<br>
Are you _sure_ that libkrb5.a has that symbol in it, and it's not just<br>
an undefined reference to the symbol?&nbsp; On my system (using MIT krb5 1.=
19)<br>
krb5_c_make_random_key is in libk5crypto, and I noticed that library is<br>
not in your link command (there are references to krb5_c_make_random_key<br=
>
in libkrb5, but no symbol definition).<br>
<br>
--Ken<br>
</div>
</span></font></div>
</body>
</html>

--_000_MWHPR0701MB36743D74D14311A20D2B3F03A7699MWHPR0701MB3674_--