Add glue for old versions of K4
authorPaul Park <pjpark@mit.edu>
Fri, 16 Jun 1995 21:05:11 +0000 (21:05 +0000)
committerPaul Park <pjpark@mit.edu>
Fri, 16 Jun 1995 21:05:11 +0000 (21:05 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6084 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/des425/ChangeLog
src/lib/des425/Makefile.in
src/lib/des425/configure.in
src/lib/des425/k4_glue.c [new file with mode: 0644]

index 818e0c5425d9b3ae54b2389af4dc3f99295d9f2d..6d39c4fc8d487d700d18df113e4974822a23a246 100644 (file)
@@ -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.
 
index 3da8c049db48ff0b6807c8bc19e98db7fd8c2fa9..67c50cf0dabfa7a9e3605736c09a8c930eaab1d4 100644 (file)
@@ -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
index 284566ffb3c09177253e514aec03f20171444498..198313e1bbd35c0ba432d1a5550a7185e5b9f4fd 100644 (file)
@@ -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 (file)
index 0000000..0087306
--- /dev/null
@@ -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 */