summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/des425/ChangeLog6
-rw-r--r--src/lib/des425/Makefile.in8
-rw-r--r--src/lib/des425/configure.in14
-rw-r--r--src/lib/des425/k4_glue.c45
4 files changed, 70 insertions, 3 deletions
diff --git a/src/lib/des425/ChangeLog b/src/lib/des425/ChangeLog
index 818e0c5425..6d39c4fc8d 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 3da8c049db..67c50cf0da 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 284566ffb3..198313e1bb 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 0000000000..0087306e19
--- /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 */