I am trying to build an authentication application using pre-installed (static)kerberos libraries that come with AIX(ver 7.1), which up to now was being built using MIT Kerberos shared libs.
The pre-installed AIX kerberos libraries exist in /usr/krb5/lib.
Here is a snip of the make output, which fails:
xlC_r -q64 -qthreaded -qcpluscmt -qcheck=nullptr -qlanglvl=extended -qsuppress=1500-029:1540-1405:0711-224 -qnotempinc -qstaticinline -I/cb/cb10/cb/server/include -I/cb/cb10/cb/server/include/stl -I/sv/app/oracle/product/12.1.0.2/precomp/public -I/sv/app/oracle/product/12.1.0.2/rdbms/demo -I/sv/app/oracle/product/12.1.0.2/rdbms/public -g -qfullpath -DAIX -I/sv/app/openssl/product/openssl-1.0.1g/include -bstatic -I/usr/krb5/lib -I/sv/app/tuxedo/product/12.1/include -DBI_FN_EVALUATE -DNDEBUG -O3 -c authsvr.cc
"trekrb5.h", line 47.10: 1540-0836 (S) The #include file "gssapi/gssapi.h" is not found. "trekrb5.h", line 48.10: 1540-0836 (S) The #include file is not found. make: *** [authsvr.o] Error 1enter code here
I am using IBM NAS 1.5.0.3.
I looked for a gssapi.h file which comes from the AIX NAS installation. But no such file was found.
Removing the reference to the gssapi.h file (in the trekrb5.h culprit file) gives an error: "The text "OM_uint32" is unexpected". I searched(grepped - in /usr/krb5/) for OM_uint32, but that is not found in /usr/krb5/.
From the gassapi.h obtained from the MIT-Kerberos source:
typedef uint32_t gss_uint32; typedef int32_t gss_int32;
typedef gss_uint32 OM_uint32;
But changing all these things may take a good amount of time. Are any shortcuts available?
Could you please let me know what I am doing wrong here? My make knowledge is just that of a beginner. Any help is appreciated.
When the compiler (strictly speaking, it is the preprocessor) doesn't find file a header (gssapi/gssapi.h) you have to find it manually (use utility program find(1)), and give the compiler a -I option. Eg:
$ find / -name gssapi.h 2>/dev/null
/tmp/foobar/gssapi/gssapi.h
$ xlC_r ... -I/tmp/foobar
Edit: If you don't have such gssapi.h on your computer, then you have install a component that contains it. Contact your software vendor.
Edit: Kerberos for AIX can be downloaded from external non-official source, too: http://www.perzl.org/aix/index.php?n=Main.Krb5