Building Kerberos on AIX

Mohit Aggrawal mohit500 at
Mon May 6 07:42:51 EDT 2013

Hello Greg,

In the file changepw.c there is a function  *krb5int_setpw_result_codestring
*at line 344 ,which the linker is not able to resolve. In my setup the
libraries linked to this file are

(ld): lib ../../lib/
(ld): lib ../../lib/
(ld): lib ../../lib/
(ld): lib /usr/lib/libpthreads.a
(ld): lib /usr/lib/libc.a
(ld): lib /usr/lib/librtl.a

Please let me know if I need to link any other libraries to this file.


On Mon, May 6, 2013 at 3:14 PM, Mohit Aggrawal <mohit500 at> wrote:

> Thanks Greg for you help. I am able to build the kerberos  1.9.5 for HPUX
> but for AIX after
> casting sockaddr_storage structures to sockaddr using ss2sa i am getting
> the following linker error
> + /bin/ld -o krb5_libinit.o error_tables/asn1_err.o
> error_tables/kdb5_err.o error_tables/krb5_err.o error_tables/k5e1_err.o
> error_tables/kv5m_err.o error_tables/krb524_err.o asn.1/asn1_decode.o
> asn.1/asn1_k_decode.o asn.1/asn1_encode.o asn.1/asn1_get.o
> asn.1/asn1_make.o asn.1/asn1buf.o asn.1/krb5_decode.o asn.1/krb5_encode.o
> asn.1/asn1_k_encode.o asn.1/ldap_key_seq.o asn.1/asn1_misc.o
> ccache/ccbase.o ccache/cccopy.o ccache/cccursor.o ccache/ccdefault.o
> ccache/ccdefops.o ccache/cc_retr.o ccache/cc_file.o ccache/cc_memory.o
> ccache/cc_keyring.o ccache/ccfns.o ccache/ser_cc.o keytab/ktadd.o
> keytab/ktbase.o keytab/ktdefault.o keytab/ktfr_entry.o keytab/ktremove.o
> keytab/ktfns.o keytab/kt_file.o keytab/kt_memory.o keytab/kt_srvtab.o
> keytab/read_servi.o krb/addr_comp.o krb/addr_order.o krb/addr_srch.o
> krb/allow_weak.o krb/appdefault.o krb/auth_con.o krb/authdata.o
> krb/authdata_exp.o krb/authdata_enc.o krb/authdata_dec.o krb/bld_pr_ext.o
> krb/bld_princ.o krb/chk_trans.o krb/chpw.o krb/conv_creds.o
> krb/conv_princ.o krb/copy_addrs.o krb/copy_auth.o krb/copy_athctr.o
> krb/copy_cksum.o krb/copy_creds.o krb/copy_data.o krb/copy_key.o
> krb/copy_princ.o krb/copy_tick.o krb/cp_key_cnt.o krb/decode_kdc.o
> krb/decrypt_tk.o krb/deltat.o krb/enc_helper.o krb/enc_keyhelper.o
> krb/encode_kdc.o krb/encrypt_tk.o krb/etype_list.o krb/fast.o krb/fwd_tgt.o
> krb/gc_via_tkt.o krb/gen_seqnum.o krb/gen_subkey.o krb/gen_save_subkey.o
> krb/get_creds.o krb/get_in_tkt.o krb/gic_keytab.o krb/gic_opt.o
> krb/gic_pwd.o krb/in_tkt_sky.o krb/init_ctx.o krb/copy_ctx.o
> krb/init_keyblock.o krb/kdc_rep_dc.o krb/kerrs.o krb/kfree.o
> krb/libdef_parse.o krb/mk_cred.o krb/mk_error.o krb/mk_priv.o krb/mk_rep.o
> krb/mk_req.o krb/mk_req_ext.o krb/mk_safe.o krb/pac.o krb/pac_sign.o
> krb/parse.o krb/plugin.o krb/pr_to_salt.o krb/preauth2.o
> krb/gic_opt_set_pa.o krb/princ_comp.o krb/rd_cred.o krb/rd_error.o
> krb/rd_priv.o krb/rd_rep.o krb/rd_req.o krb/rd_req_dec.o krb/rd_safe.o
> krb/recvauth.o krb/s4u_authdata.o krb/s4u_creds.o krb/sendauth.o
> krb/send_tgs.o krb/ser_actx.o krb/ser_adata.o krb/ser_addr.o krb/ser_auth.o
> krb/ser_cksum.o krb/ser_ctx.o krb/ser_key.o krb/ser_princ.o krb/serialize.o
> krb/set_realm.o krb/srv_dec_tkt.o krb/srv_rcache.o krb/str_conv.o
> krb/tgtname.o krb/unparse.o krb/val_renew.o krb/valid_times.o
> krb/vfy_increds.o krb/vic_opt.o krb/walk_rtree.o rcache/rc_base.o
> rcache/rc_dfl.o rcache/rc_io.o rcache/rcdef.o rcache/rc_none.o
> rcache/rc_conv.o rcache/ser_rc.o rcache/rcfns.o unicode/ucdata.o
> unicode/ure.o unicode/urestubs.o unicode/ucstr.o os/accessor.o
> os/an_to_ln.o os/c_ustime.o os/def_realm.o os/ccdefname.o os/changepw.o
> os/dnsglue.o os/dnssrv.o os/free_krbhs.o os/full_ipadr.o os/get_krbhst.o
> os/gen_port.o os/genaddrs.o os/gen_rname.o os/hostaddr.o os/hst_realm.o
> os/init_os_ctx.o os/krbfileio.o os/ktdefname.o os/kuserok.o os/mk_faddr.o
> os/localaddr.o os/locate_kdc.o os/lock_file.o os/net_read.o os/net_write.o
> os/osconfig.o os/port2ip.o os/prompter.o os/read_msg.o os/read_pwd.o
> os/realm_dom.o os/realm_iter.o os/sendto_kdc.o os/sn2princ.o
> os/thread_safe.o os/timeofday.o os/toffset.o os/trace.o os/unlck_file.o
> os/ustime.o os/write_msg.o ../../util/profile/prof_tree.o
> ../../util/profile/prof_file.o ../../util/profile/prof_parse.o
> ../../util/profile/prof_get.o ../../util/profile/prof_set.o
> ../../util/profile/prof_err.o ../../util/profile/prof_init.o -H512 -T512
> -bnoentry -bgcbypass:1 -bnodelcsect -bfilelist -bM:SRE
> -bE:./libkrb5.exports -bernotok -brtl -L../../lib -lk5crypto -lcom_err
> -lkrb5support -lpthreads -lc -binitfini::profile_library_finalizer:2
> -binitfini::krb5int_lib_fini:3
> *ld: 0706-026 The -b filelist option is ignored.
> ld: 0711-317 ERROR: Undefined symbol: .krb5int_setpw_result_codestring
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
> information.
> make: 1254-004 The error code from the last command is 8.*
> 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.
> bash-2.05b$
> Please let me know if I need to do any changes in the makefile for AIX.
> -Regards
>  Mohit
> On Fri, May 3, 2013 at 10:43 PM, Greg Hudson <ghudson at> wrote:
>> AIX and HPUX are not supported platforms for us, so you may have
>> multiple problems trying to build there.  I will try to address the
>> initial problems.
>> On AIX, you appear to be running into a lack of IPv6 support.  Although
>> 1.9 was intended to build on platforms without IPv6 support, a few more
>> recently-added bits of IPv6 code appear to mistakenly access the
>> ss_family field of struct sockaddr_storage directly.  You could try the
>> changes here:
>> Be aware that as of release 1.11, we require IPv6 support.  It sounds
>> like some versions of AIX have IPv6 support, but perhaps the version
>> you're building on does not.
>> On HPUX, you are running into some broken declarations which only cause
>> a problem when OM_uint32 is "unsigned long" instead of "unsigned int".
>> I've pushed a fix to the master branch which you could try applying to
>> your sources:

More information about the krbdev mailing list