Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SAP SSO - SNC Compile Errors (HP-UX)

Former Member
0 Kudos

We are busy implementing single sign on capabilities for the SAP environment. Kerberos is successfully installed and configured. But for SNC adapter, is another story.

Compiling SNC adapter on HP-UX is failing after applying a few changes as recommended by a number of papers and websites. below are the errors received after running make:

root@sapprd2: /sapupgrade/sncadapt # make

./build."`uname -s`" make do-all

cc +z -Ae -g -DXDEBUG=1 -c snckrb5.c

(Bundled) cc: warning 480: The +z option is available only with the C/ANSI C product; ignored.

(Bundled) cc: warning 480: The -A option is available only with the C/ANSI C product; ignored.

(Bundled) cc: warning 480: The -g option is available only with the C/ANSI C product; ignored.

(Bundled) cc: "gssapi_2.h", line 354: error 1000: Unexpected symbol: "*".

(Bundled) cc: "gssapi_2.h", line 359: error 1000: Unexpected symbol: "*".

(Bundled) cc: "gssapi_2.h", line 360: error 1000: Unexpected symbol: "*".

(Bundled) cc: "gssapi_2.h", line 361: error 1000: Unexpected symbol: "*".

(Bundled) cc: "gssapi_2.h", line 353: error 1506: Parameters allowed in function definition only.

(Bundled) cc: "gssapi_2.h", line 365: error 1000: Unexpected symbol: "gss_releas e_cred".

(Bundled) cc: error 2017: Cannot recover from earlier errors, terminating.

      • Error exit code 1

Stop.

      • Error exit code 1

Stop.

7 REPLIES 7

Former Member
0 Kudos

Apparantly, the built in C compiler does not want to compile the Kerberos SNC adapter. You have a few options (assuming you're not a C programmer):

  • Get a C programmer to fix the code and get it to work with the built in C compiler.

  • Buy the full fledged C compiler from HP and try again.

  • Install GCC and try again (this will likely also require the help of an experienced C programmer).

  • Pay a certified partner for an already built adapter.

0 Kudos

>

> * Pay a certified partner for an already built adapter.

Regarding this reference to the SNC adapter ... It should be made clear that the SNC adapter and the SNC library are different things. As far as I am aware, most (if not all) SAP partners provide SNC libraries and don't replace the SNC adapter library which is shipped with NetWeaver. However, the documentation which Benedictus has been following seems to suggest he needs to recompile the SNC adapter library, as well as using the GSS-API library he has installed as the SNC library.

With above in mind, I would be very cautious about changing the SNC adapter library, since this is shipped by SAP with NetWeaver product, and could cause support issues (and other issues) if it is changed.

0 Kudos

At least, I meant SNC library and I assumed that the OP was as well. Sorry for any confusion....

0 Kudos

>

> At least, I meant SNC library and I assumed that the OP was as well. Sorry for any confusion....

That's ok. I wanted to make this clear because it is not very well documented elsewhere. The issue is described below for the benefit of anybody reading this thread:

When using the open source implementation of Kerberos with SAP, this Kerberos library does not support the same IETF drafts/standards that are required when using the SAP SNC adapter, and so people who use open source Kerberos have to undertake this task of compiling the adapter source so they get an updated SNC adapter library which will work with their open source Kerberos library. This is not required when using commercially supported products from SAP partners that use Kerberos (at least not with the product that I am most familiar with), since these products are coded to support the correct IETF drafts/standards and are also SAP certified.

0 Kudos

Kerberos version we installed is from HP called KRB5CLIENT_C.1.3.5.06_HP-UX_B.11.11_32+64.depot. and the procedure below is what we are following:

Create a sncadapt/build.Linux with the following content:

#!/bin/sh

OBJ=".o"

CC="cc"

CFLAGS="-g -DXDEBUG=1"

RM="rm -f"

EXE=""

LD="$CC"

LDFLAGS="-ldl -lnsl -lpthread -lc"

LDTARGET='-o $@'

XD=""

LDLIBS="-ldl"

SHEXT=".so"

SHFLAGS="-fPIC"

LINK_SHARED='$(CC) -shared -Wl,-export-dynamic -Wl,-soname,$@'

LINK_SHARED_END=""

VENLIB="-lgssapi_krb5"

if [ "$VENLIB" = "" ] ; then

echo "***"

echo "*** Please edit $0 and define VENLIB to link your"

echo "*** GSS-API v2 shared library"

echo "***"

exit 1

fi

export OBJ CC CFLAGS RM EXE LDLIBS LD LDTARGET LDFLAGS XD

export SHEXT SHFLAGS LINK_SHARED LINK_SHARED_END VENLIB

"$@"

Change "XNAME = sncntlm" to "XNAME = snckrb5" in sncadapt/Makefile.

TODO???: comment out the function "sapgss_inquire_mechs_for_name" in snckrb5.c

Compile it:

cd sncadapt

make

Copy the resulting file snckrb5.so to /usr/local/lib:

cp snckrb5.so /usr/local/lib

-


Can we use the same configurations for the build.HP-UX, Makefile and snckrb5.c files?

0 Kudos

Can we use the same configurations for the build.HP-UX, Makefile and snckrb5.c files?

There is no reason to compile the build and makefiles. The contents of the build.HP-UX file may well be different from the build.Linux file (HP-UX is not the same as Linux after all).

Former Member
0 Kudos

I have just same problem. I have solved it with gcc-3.0.1 (from ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/). My build.HP-UX (see http://www.realtech.com/wInternational/pdf/consulting/Whitepaper/SAP_Single_Sign-On_und_Secure_Conne... is

#!/bin/sh

#

  1. $Id: build.HP-UX,v 1.2 1999/08/24 14:39:31 d019080 Exp $

#

OBJ=".o"

CC="/opt/precompiled/gcc-3.0.1-64/bin/gcc"

CFLAGS="-g -DXDEBUG=1"

RM="rm -f"

EXE=""

LD="$CC"

LDFLAGS=""

LDTARGET='-o $@'

XD=""

LDLIBS="-Wl,-a,default -lpthread -lsec -ldld"

if [ -f /opt/langtools/lib/end.o ] ; then

  1. this is for shared library debugging on HP-UX (10.20) ...

LDLIBS="$ /opt/langtools/lib/end.o"

fi

SHEXT=".sl"

SHFLAGS="-fPIC"

LINK_SHARED="$CC -shared"

LINK_SHARED_END=""

#VENLIB="-L/your/software/path +b /your/software/path -lgssapi"

VENLIB="-lgssapi_krb5"

if [ "$VENLIB" = "" ] ; then

echo "***"

echo "*** Please edit $0 and define VENLIB to link your"

echo "*** GSS-API v2 shared library"

echo "***"

exit 1

fi

export OBJ CC CFLAGS RM EXE LDLIBS LD LDTARGET LDFLAGS XD

export SHEXT SHFLAGS LINK_SHARED LINK_SHARED_END VENLIB

"$@"