From: Paul Park Date: Fri, 16 Jun 1995 21:05:11 +0000 (+0000) Subject: Add glue for old versions of K4 X-Git-Tag: krb5-1.0-beta6~1728 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5554fb7fd1ad2acaadf29e6f636eab428c8c3a84;p=krb5.git Add glue for old versions of K4 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6084 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/des425/ChangeLog b/src/lib/des425/ChangeLog index 818e0c542..6d39c4fc8 100644 --- a/src/lib/des425/ChangeLog +++ b/src/lib/des425/ChangeLog @@ -1,4 +1,10 @@ +Fri Jun 16 17:00:04 EDT 1995 Paul Park (pjpark@mit.edu) + * k4_glue.c - Add this module with the "req_act_vno" symbol definition + so that we can use old versions of K4. + * configure.in - Check for #pragma weak. + * Makefile.in - Add k4_glue.c, Add K4 to include list. + Fri Jun 16 11:15:11 EDT 1995 Paul Park (pjpark@mit.edu) * configure.in - Add install target for shared library. diff --git a/src/lib/des425/Makefile.in b/src/lib/des425/Makefile.in index 3da8c049d..67c50cf0d 100644 --- a/src/lib/des425/Makefile.in +++ b/src/lib/des425/Makefile.in @@ -1,4 +1,4 @@ -CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../crypto/des +CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../crypto/des -I$(srcdir)/../../include/kerberosIV LDFLAGS = -g ##DOSBUILDTOP = ..\.. @@ -22,7 +22,8 @@ OBJS= cksum.$(OBJEXT) \ str_to_key.$(OBJEXT) \ unix_time.$(OBJEXT) \ util.$(OBJEXT) \ - weak_key.$(OBJEXT) + weak_key.$(OBJEXT) \ + k4_glue.$(OBJEXT) SRCS= $(srcdir)/cksum.c \ $(srcdir)/des.c \ @@ -37,7 +38,8 @@ SRCS= $(srcdir)/cksum.c \ $(srcdir)/str_to_key.c \ $(srcdir)/unix_time.c \ $(srcdir)/util.c \ - $(srcdir)/weak_key.c + $(srcdir)/weak_key.c \ + $(srcdir)/k4_glue.c LIB_SUBDIRS= . LIBDONE= DONE diff --git a/src/lib/des425/configure.in b/src/lib/des425/configure.in index 284566ffb..198313e1b 100644 --- a/src/lib/des425/configure.in +++ b/src/lib/des425/configure.in @@ -4,6 +4,20 @@ AC_PROG_ARCHIVE AC_PROG_ARCHIVE_ADD AC_PROG_RANLIB AC_PROG_INSTALL +dnl +AC_MSG_CHECKING([if pragma weak supported]) +AC_CACHE_VAL(krb5_cv_pragma_weak, +[AC_TRY_LINK( +[#pragma weak testit = __testit +int __testit = 1;], +[extern int testit; +exit(testit);], +krb5_cv_pragma_weak=yes, krb5_cv_pragma_weak=no)]) +AC_MSG_RESULT($krb5_cv_pragma_weak) +if test $krb5_cv_pragma_weak = yes; then +AC_DEFINE(HAVE_PRAGMA_WEAK) +fi +dnl V5_SHARED_LIB_OBJS SubdirLibraryRule([${OBJS}]) LinkFileDir(../libdes425.a, libdes425.a, ./des425) diff --git a/src/lib/des425/k4_glue.c b/src/lib/des425/k4_glue.c new file mode 100644 index 000000000..0087306e1 --- /dev/null +++ b/src/lib/des425/k4_glue.c @@ -0,0 +1,45 @@ +/* + * lib/des425/k4_glue.c + * + * Copyright 1995 by the Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + */ + +/* + * k4_glue.c - The glue which holds us together with old versions of K4. + */ + +/* + * This is here because old versions of the Kerberos version 4 library + * reference this symbol. It's just a dangling reference which is supposed + * to be defined by referencing modules. For the purpose of building shared + * libraries, we'll need a definition, and since the des425 library is + * required for K4 compatability, this is as good a place as any. + * + * In an effort to keep this bit of (ahem) logic from being too intrusive, + * we use #pragma weak, if available, otherwise just go with a normal def. + */ + +#if HAVE_PRAGMA_WEAK +#pragma weak req_act_vno = des425_req_act_vno +const int des425_req_act_vno = 4; +#else /* HAVE_PRAGMA_WEAK */ +const int req_act_vno = 4; +#endif /* HAVE_PRAGMA_WEAK */